欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP网站被挂马防御战

程序员文章站 2022-04-24 09:03:46
...

最近把几个PHP网站的程序备份到本地,准备与本地的发布版的svn做内容整合。发现有一些non-versioned的程序文件,仔细查看,是一些木马程序。 我在本地测试了这些木马程序,可以读取所有硬盘的文件,可以随意修改文件,下载任意硬盘位置的文件,上传文件到主

最近把几个PHP网站的程序备份到本地,准备与本地的发布版的svn做内容整合。发现有一些non-versioned的程序文件,仔细查看,是一些木马程序。

我在本地测试了这些木马程序,可以读取所有硬盘的文件,可以随意修改文件,下载任意硬盘位置的文件,上传文件到主机任意硬盘位置,可以说接近在主机上管理文件了,更糟糕的是还可以执行本地程序或命令,管理mysql等等

它怎么隐藏和伪装的?

它一般藏的目录很深,喜欢藏到图片目录下面。由两部分构成,一个zip压缩包和一个解压程序,木马程序放到zip压缩包中。

我是如何清理的?

1、 将所有的程序备份一份,用于之后的挂马分析

2、 对比本地svn很快定位到所有的木马文件,将所有的木马文件一一清除。

分析挂马文件,主要发现以下几个问题:

1、 使用了com组件(fso/shell)

2、 使用了shell函数(system/passthru/shell_exec/exec)

3、程序遍历了所有硬盘

对比以上几点,通过修改php配置,做了以下相应的措施:

disable_classes= COM
//禁用com组件

disable_functions= exec,passthru,shell_exec,system,popen
//禁用shell函数

open_basedir= "D:/htdocs/;C:/windows/temp/"
//限制php的作用域 

然后重启apache,这样ok了吗?

答案是否定的。

前面提到该木马有执行本地程序或命令的功能,还可以随意上传其他木马程序。那么控制主机对它来说,已经是探囊取物那么简单了。

使用msconfig查看系统启动加载的服务,发现多了PsExec(远程控制工具)的启动项,看来主机确实被控制了。我禁用了该服务,找到程序删了。

启用“任务管理器”发现,仔细检查所有的进程和服务,发现还多了一个程序mimikatz(系统密码捕捉工具)。看来主机系统的密码也泄漏了。杀了程序,找到程序删了,也改了密码。

最后使用一些安全工具或命令检查一下系统关键路径,端口占用,网络连接情况等等,看看还有没有问题。

很遗憾,由于系统曾经清理过日志,我只能追踪到最开始出现的地方。至于它是如何入侵的,暂时也找不到确切答案。