又被垃圾信攻擊了
最近做例行主機檢查時,發現郵件閘道主機異常的大量在往外寄信,但都無法寄出去。看了一下mailq, 果然發現有很大量的信在/var/spool/mqueue中。
直覺的先在mail log裡查看問題,但只看到一大堆由A主機寄到B主機的訊息,而B主機則是一大堆由A主機寄來信件以及試著要寄出,但無法寄出的訊息。
我們的架構是預設由A主機來寄信,如若寄不出去,則轉到B主機,由B主機來試著寄看看。所以真的寄不出去的信,都會queue在B主機。由初步看到的現象,我判斷(假設)攻擊者很有可能已經猜到我們使用者的帳號及密碼,然後由A主機大量的寄信進來。
我必須印證這個想法,並且若真為此情況,則必須找到是那個帳號被利用了。
但要如何印證呢?當然可以由mail log來查看,一定可以看到誰在那個時候,使用那個帳號進入,然後寄了多少信。這表示我必須查看大量的log訊息了,其實未必,我想到一個方法,在B主機裡queue了大量無法寄出的垃圾信,正好提供我重要的資訊。
我甚至還猜了一次該帳號的密碼,還真的猜對了。實在太好猜了。
最後,我只好先將該帳號鎖定(其實系統只是改了他的密碼),並將所有在mailq中的所有垃圾信都刪除。再觀察情況都正常後就收工了。
直覺的先在mail log裡查看問題,但只看到一大堆由A主機寄到B主機的訊息,而B主機則是一大堆由A主機寄來信件以及試著要寄出,但無法寄出的訊息。
我們的架構是預設由A主機來寄信,如若寄不出去,則轉到B主機,由B主機來試著寄看看。所以真的寄不出去的信,都會queue在B主機。由初步看到的現象,我判斷(假設)攻擊者很有可能已經猜到我們使用者的帳號及密碼,然後由A主機大量的寄信進來。
我必須印證這個想法,並且若真為此情況,則必須找到是那個帳號被利用了。
但要如何印證呢?當然可以由mail log來查看,一定可以看到誰在那個時候,使用那個帳號進入,然後寄了多少信。這表示我必須查看大量的log訊息了,其實未必,我想到一個方法,在B主機裡queue了大量無法寄出的垃圾信,正好提供我重要的資訊。
#cd /var/spool/mqueue如此,列出這些垃圾信的內容,(可能要多看幾封)結果我發現大部份的垃圾信都是在前幾天的幾點幾分寄到A主機的。如此,我只要看那個時刻的log就可以了。
#ls *
#cat xxxxxxx
#bzcat /var/log/maillog.0.bz2 | grep 16:08 | grep auth以上列指令,在正確的mail log檔裡找到該時刻的資訊,而其實我也只要知道是不是有人使用SMTP AUTH的方式驗證進入。所以這樣我很快的只要查看很少的資訊就發現,果然有。而且找到是那個帳號被利用了。再進行反覆確認,以這個帳號來查看當天寄了多少信,登入驗證多少次,果然都是很異常的大量,而且其ip, FQDN, enveloper的內容等,也都符合。
我甚至還猜了一次該帳號的密碼,還真的猜對了。實在太好猜了。
最後,我只好先將該帳號鎖定(其實系統只是改了他的密碼),並將所有在mailq中的所有垃圾信都刪除。再觀察情況都正常後就收工了。
留言