Apache-2.2

如何檢測哪個 PHP 腳本正在發送垃圾郵件

  • August 25, 2015

一個 php 腳本正在發送大量電子郵件。我想檢測來源是什麼。所有電子郵件都是通過 apache 使用者使用的 www-data 發送的。當我檢查過程時,我有這個結果:

www-data 16220  0.7  4.7 402508 95924 ?        S    09:37   0:06 /usr/sbin/apache2 -k start
www-data 16352  0.4  3.8 402132 78064 ?        S    09:39   0:03 /usr/sbin/apache2 -k start
www-data 16725  0.6  3.8 402472 78624 ?        S    09:46   0:02     /usr/sbin/apache2 -k start
www-data 16840  0.8  4.2 410744 87204 ?        S    09:48   0:01 /usr/sbin/apache2 -k start
www-data 16949  1.0  4.5 417560 93436 ?        S    09:49   0:01 /usr/sbin/apache2 -k start
www-data 16958  1.0  3.5 402120 72748 ?        S    09:50   0:01 /usr/sbin/apache2 -k start
www-data 16978  1.2  4.6 425160 94864 ?        S    09:51   0:00 /usr/sbin/apache2 -k start
www-data 16980  0.8  3.5 402140 72208 ?        S    09:51   0:00 /usr/sbin/apache2 -k start
www-data 16983  0.4  2.6 402160 54400 ?        S    09:51   0:00 /usr/sbin/apache2 -k start

Apache 正在使用許多程序,我不知道發送郵件的腳本是什麼。

有沒有辦法做到這一點?

您可能可以執行 strace 將所有正在執行的 Apache 程序轉儲到一個文件中,然後在垃圾郵件消失後,查看您是否可以追踪發生的情況(例如,如果是,則使用 mod_status 保存伺服器狀態的頻繁轉儲通過查看文件路徑從 strace 中不明顯)。

您可以嘗試以下方法 - 儘管請注意它可能會佔用大量資源。根據需要調整-s參數。

pidlist=''; \
for pid in `ps ax | grep apache2 |grep /usr/sbin/apache2 | awk '{print $1}'`;\
   do pidlist="$pidlist -p $pid"; \
done; \
strace -s 1024 -tt -F -f $pidlist  > strace_apache2.out 2>&1

引用自:https://serverfault.com/questions/716318