Answers:
TL; DR:设置新的VPS,然后从头开始再次设置CMS。
特别是如果您不知道如何自行清洁系统,最安全,最简单的方法就是设置新的VPS。如果您不知道要查找的内容以及感染的工作方式,那么在进行清理时很容易会漏掉某些东西,然后感染可能会从这些残留物重新开始。从系统中查找并删除所有感染痕迹非常困难。对于某些客户,我这样做是可能的,但是这需要时间和知识。
如果您设置了新的VPS,请不要在新的VPS上安装旧的过时的CMS,因为它也只需要几个小时或几天就可以被感染。您必须将CMS更新到受支持的安全版本,并清除攻击者埋下的所有后门。同样,如果您不知道如何执行此操作,最简单的方法可能是在新的VPS上安装CMS,然后将内容从旧的安装复制到新的VPS。请勿复制整个数据库或文件,因为这两个数据库或文件都可能包含后门,这取决于所涉及的CMS。
如果您有干净的,未感染的CMS副本,则可以将其复制到新的VPS。
如果您有副本,但是它已经过时并且想要保留旧内容,则可以尝试将副本与受感染的安装进行比较。diff -ru copy infected
在这里可能会有所帮助,但同样,您需要知道您要寻找的内容。
有或没有副本,您也可以尝试使用列出过去一个月(如果感染是在一段时间之前发生的,则更长)上所有修改过的文件find -mtime -30
。但是,这并不安全,因为攻击者可能会伪造文件的修改时间。
如果您在.php
文件中看到一些乱码,这通常是受感染文件的标志。类似于下面的内容很明显可以证明文件已被感染。
eval(base64_decode('ZWNobyAiSGVsbG8gTHViV24sIHRoaXMgaXMgaG93IGNvZGUgb2Z0ZW4gbG9va3MgbGlrZSBpZiBhbiBhdHRhY2tlciB3YW50cyB0byBoaWRlIHdoYXQgdGhlIGNvZGUgZG9lcyBmcm9tIHlvdXIgcHJ5aW5nIGV5ZXMuIjs='));
当然,您可以grep -r eval .
针对这些台词,但并非所有感染都必须包含eval
。还有其他执行随机代码的方法,攻击者可能添加了未混淆的代码。
请注意,如果您沿着这条路走,则必须找到攻击者操纵CMS的所有地方并清理它们,否则感染可能会继续。
在您的情况下,可能也有中间途径。假设攻击者没有获得root
特权(当然这是不安全的,但是随着矿工的运行www-data
可能确实如此),您可以备份然后删除属于的所有文件www-data
。备份当然应该在不同的系统上,并且不应从该备份运行CMS。您还应该清除www-data
(crontab -e -u www-data
)的crontab 。如果仅用户www-data被感染,则应从系统中完全清除感染,然后可以开始在VPS上安装新的CMS。如果继续感染,则应设置新的VPS并再次安装CMS。
关于clamav
:您可以尝试运行它,但它很可能无法清除感染,因此您的净收益可能为零。