Linux-記錄一次被當肉雞行為


轉自:http://huoding.com/2016/03/07/495

話說從前些天開始,我的某台服務器不時會出現外網訪問響應速度變慢的情況,不過內網訪問倒是一直正常。因為並不是核心服務器,所以一開始我便忽略了監控報警,但是隨着服務器的可用性越來越差,我不得不騰出手來看看到底發生了什么。


既然是網絡問題,那么可以在客戶端用「mtr <IP>」檢查一下網絡情況:

發現丟包主要發生在最后一跳,接着可以在服務器用「sar -n DEV」檢查帶寬:

明顯可見 TX 流量時不時便會到達一定的高峰,說明服務器在向外發送大量數據,導致觸及了帶寬閾值,那么到底是什么原因造成的呢?是時候祭出「iptraf」神器了,本例的服務器中,內網(eth0)正常;外網(eth1)異常:

單獨監控外網網卡發現大部分流量都集中在 UDP 協議之上:

按照端口監控發現流量主要集中在 UDP 的 53 端口上。不過需要說明的是這里的端口既可能是源端口,也可能是目標端口,並且 iptraf 缺省只監控 1024 以下的端口:

監控具體的流量包,發現本地端口在不停的往遠程的端口發請求:

隨便提一下,在上面的確診過程中,我詳細描述了 iptraf 的用法,其實 iftop 也不錯,但是需要說明的是,iftop 缺省並不顯示端口信息(按 p 鍵顯示)。

如果要想知道某個端口運行的是什么程序,可以使用 lsof 命令:

lsof -i:<PORT>

結果發現可疑進程是通過 jenkins 用戶啟動的,於是我們基本上可以確認攻擊者是通過 jenkins 漏洞攻陷服務器的,讓我的服務器成為一台肉雞,進而對目標發起 DNS 反射攻擊。既然已經大概搞清楚了被攻擊的原因,那么最簡單的方法就是把問題服務器直接下線,重新配置一個新服務器,不過有時候事情並不簡單,所以得想辦法恢復它。

因為攻擊者可能會在服務器上做手腳,所以我們需要仔細排查每一個存在隱患的地方,比如 cron 配置,還有 /etc/passwd 和 /etc/rc.d/init.d/* 等文件。此外,一些常用的命令也存在被感染的可能性,如果操作系統是 CentOS 的話,可以按如下方式確認:

rpm -V $(rpm -qa)

它會檢測文件在安裝后是否發生了變化,如果是,那么會給出相應的提示,比如:長度變化提示 S,權限變化提示 M,最重要是的 MD5 變化的話提示 5,一旦發現了某個命令可能存在問題,重新安裝它(前提是 yum 沒有被感染):

yum reinstall <PACKAGE>

即便再小心,也難免百密一疏,木馬可能會死灰復燃,此時可以試試 sysdig 命令:

sysdig -c spy_users

它會監控所有的用戶行為,如果木馬有動作,自然也會被記錄下來。

回想整個事件,如果我不在外網服務器上亂裝服務,或者及時升級到最新版,那么可能就不會被黑;如果我沒有忽視監控報警,那么可能很早就會發現問題。不過出問題並不可怕,更重要的是我們要能理清問題的來龍去脈,別重復摔在同一個坑里。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM