找到垃圾邮件脚本的来源

时间:2014-11-18 14:18:25

标签: php perl apache2 webserver spam

我们有一个共享主机cgi-server,apache2+php fcgidma作为mta(它将邮件转发给邮件中继) - 它的Debian Wheezy - 在它上面并且具有客户端的能力运行perl / cgi脚本。有一个拥有70多个站点的客户端,他疯狂地从他的ftp帐户发垃圾邮件。事情是他不知道垃圾邮件脚本的来源,我们也是如此。

发送垃圾邮件的进程是隐藏为crond的perl脚本 - 当您检查/proc/$PID/cwd它总是/tmp时,启动该进程的文件已被删除。 strace对此过程没有帮助 - 所有您看到的是系统调用以发送另一封邮件和标题等。通过他访问过的少数几个访问日志来搜索重复/可疑的GET / POST请求获取我们无处可去。

我应该在{em> .php / .cgi / *。pl上为grep定期base64,eval,fopen,gzinflate,并且他们的组合结果为零。

问题是 - 是否有更有效的方法/软件来查找垃圾邮件脚本或查看哪个脚本运行了什么?感谢。

2 个答案:

答案 0 :(得分:1)

我认为,这里的恶意脚本不是通常的.pl / .cgi / .fcgi / .fpl扩展形式,但仍然在系统级别上作为cgi脚本执行。您需要检查Apache Handlers / Apache MIME类型,以查看作为cgi脚本运行的其他扩展。一旦你缩小范围,一个简单的grep应该工作。

答案 1 :(得分:1)

我遇到了类似的问题,并且按照ITroubs的提示,找到了一个cron作业,在这种情况下,调度命令每15分钟运行一次,在/var/spool/cron/apache中:

*/15 * * * * /var/tmp/lkvnTiofU >/dev/null 2>&1

注释掉这一点,将文件所有者和组更改为root,最后使用perl命令删除apache用户的所有进程并删除/var/tmp/lkvnTiofU似乎解决了这个问题。

查看有问题的进程的打开文件,lsof -p [PID] | more其中[PID]是进程ID,似乎三个进程中有两个忙于建立与许多不同服务器的SMTP连接以发送垃圾邮件,绕过我的服务器完全是MTA,第三个进程正在侦听端口39331,可能是处理垃圾邮件的后门。

在我的情况下,这是我几周前修补的攻击的剩余部分,但在您的情况下,您可能需要首先确定原始漏洞利用,这可能是完全使用不同的语言,然后再进行上述操作