通过Google搜索网站访问的时候,会跳转到其他网站;直接通过网址访问网站的时候,不会跳转,隐蔽性极强 网站根目录的index.php和wp-config.php文件被插入 @include 代码加载恶意文件 网站很多目录会多出一些随机命名的php文件以及 .ico 文件 网站主题或插件会被插入恶意代码,并且带有特征码 Array();global 倡萌在大概2年前就遇到过这类木马,如果想彻底清理是非常麻烦的,但凡一个恶意的文件未清理干净,都可能触发再次感染,因为攻击者会不定时访问他投放的恶意文件(通过远程直接访问或服务器定时任务触发),如果这个恶意文件存在,就会再次执行。
以下分享一下清理该类木马的操作步骤。由于木马文件很多,靠人工是很难找到所有恶意文件的,所以要求通过ssh登录服务器去执行操作命令批量查找,也就是说,如果你的是一般的虚拟主机,通常没有ssh操作权限,无法按照本文命令执行。
首先,通过SSH登录服务器,或咨询你的主机商。
第1步:删除所有可疑的 ico 文件
代码语言:javascript复制#查找ico格式的文件
find . -name '*.ico'进入到网站所在的根目录,执行上面的命令,就看已查找到所有 ico 格式的文件,这些文件的名称一般是随机的,或者带有点号.开头的,删除它们!
第2步:检查包含特征码 Array();global 的所有文件
代码语言:javascript复制#检查所有php文件是否包含木马的特征码 Array();global
find . -type f -name '*.php' | xargs grep -l " *Array();global*"
攻击者一般会在主题或插件的某些文件插入上面的恶意代码,通过上面的命令可以找到包含这个特征码的文件,然后下载它们,并删除整段恶意代码。注意不要删除这些文件,因为文件包含了正常功能的代码。
第3步:查找通过 @includes 引入恶意文件的代码
攻击者一般会在网站根目录的index.php和wp-config.php文件被插入 @include 代码加载恶意文件,所以我们要先删除这两个文件开头的 @include 部分的代码。
然后可以通过下面的命令去查找包含了 @include 的php文件,逐一检查确认是否有问题。
代码语言:javascript复制#检查所有php文件是否包含@includes
find . -type f -name '*.php' | xargs grep -l " *@include*"
第4步:查找更多可疑的PHP文件
如果你的网站有访问日志,通过日志去查找上面找到的包含恶意代码的php文件,就会发现还有很多其他恶意文件,如下图所示:
通过分析,发现这些恶意文件的名称都是8位数随机字母命名的,所以我们可以通过下面的命令,找到所有8位字母命名的php文件,只要名称不是规则的英文单词,就下载下来检查,通常都是木马文件。
代码语言:javascript复制#检索出所有8位字符命名的php文件,随机命名的文件极为可疑文件
find . -type f | egrep './[a-z]{8}.php'
第5步:检查静态文件(images、css、js)等目录的php文件
通常来说,这些静态文件所在的目录是不会有php文件的,即使有,也可能是一个空白的或者只有一两句话的index.php文件。通过下面的命令,我们可以找到这些目录中包含的所有php文件。
代码语言:javascript复制#检查静态文件所在目录是否有php文件,查看文件大小判断是否可疑
find . -name '*.php' -exec ls -l {} ; | grep "uploads"
find . -name '*.php' -exec ls -l {} ; | grep "images"
find . -name '*.php' -exec ls -l {} ; | grep "css"
find . -name '*.php' -exec ls -l {} ; | grep "js"
find . -name '*.php' -exec ls -l {} ; | grep "assets"
find . -name '*.php' -exec ls -l {} ; | grep "javascript" 然后看下文件的大小,通常小于100字节的index.php都是正常的,大于100字节的就可疑了,下载它们进行检查。
第6步:检查服务器的定时任务
正如前文提到的,有时候攻击者会在服务器添加定时任务来执行恶意文件。我们可以通过下面的命令查看和修改服务器的定时任务:
代码语言:javascript复制#查看服务器定时计划是否有异常
crontab -l #编辑定时任务 crontab -e
第7步:更新WordPress核心、主题和插件
由于我们不知道通过上面的步骤能否彻彻底底删除所有恶意文件,所以,建议大家手动更新WordPress核心、主题和插件,
第8步:修改一切账号密码
我们不清楚攻击者是否收集了我们的账号信息,所以建议修改所有账号密码:
主机商网站登录密码 服务器SSH密码、FTP密码 网站mysql密码、phpMyAdmin密码 网站管理员密码等等
第9步:安装一个WordPress安全插件
安全无小事,我们到目前为止,仍然不知道攻击者利用了什么漏洞进行挂马,所以建议大家安装一个WordPress安全防护插件来增加一些保护。