找出到底是什么(哪个 php 脚本)试图从服务器发送垃圾邮件

找出到底是什么(哪个 php 脚本)试图从服务器发送垃圾邮件

昨晚我的服务器被入侵了(我猜是过时的 PHP CMS 之一),许多垃圾邮件被发送。我已限制对 Postfix 的访问(via authorized_submit_users指令main.cf),从而成功控制了损害 - 现在垃圾邮件的发送被阻止了,我收到如下输入:

Jun 13 10:12:16 aurora postfix/sendmail[11715]: fatal: User www-data(33) is not allowed to submit mail
Jun 13 10:12:16 aurora postfix/sendmail[11717]: fatal: User www-data(33) is not allowed to submit mail
Jun 13 10:12:17 aurora postfix/sendmail[11719]: fatal: User www-data(33) is not allowed to submit mail
Jun 13 10:12:18 aurora postfix/sendmail[11721]: fatal: User www-data(33) is not allowed to submit mail
Jun 13 10:12:19 aurora postfix/sendmail[11723]: fatal: User www-data(33) is not allowed to submit mail

我的问题是 - 如何找到试图滥用我的 Postfix 服务器的脚本 -Postfix 有没有办法告诉我本地系统上触发命令的内容

我无法让网络服务器用户(www-data)永远无法发送电子邮件。

答案1

你检查过网络日志吗?试着查看进程以ps识别发送垃圾邮件的进程。也许你可以在那里找到它。

其次,垃圾邮件发送者可能会通过 crontab 定期发送,请检查crontab系统中的每个邮件以识别虚假脚本。

检查其中一封电子邮件,postcat看看哪个脚本尝试发送它们:postcat /var/spool/postfix/deferred/1/{$mail-id}

答案2

您可能想问自己的问题是,知道哪个脚本发送了电子邮件有什么好处?当然,您应该寻求修复您的安全问题,但漏洞利用与漏洞不同 - 攻击者可能会对您的系统进行多种操作,而不仅仅是发送电子邮件。所以您真正应该关注的是修复漏洞。但我现在会继续努力……

如何找到脚本

最有可能的是,它包含对 mail 或 fsockopen 函数的调用。尽管它也可能是由 exec 函数之一发送的。可以想象的是,它可以已通过调用带有“e”修饰符的 preg_replace 发送。

如果是我,我会首先尝试将邮件日志条目与 Web 服务器的 access_log 进行匹配,以尝试识别可能导致发送电子邮件的 URL。

相关内容