一、背景

幾周前接到某單位管理人員電話,說“您好,我單位某系統受到攻擊,現系統已癱瘓(想到系統已癱瘓,心理特別慌張,要寫溯源報告了),應用無法使用,需到現場進行排查”,隨後簡單問了一下網絡情況,就匆匆趕往客戶現場。

通過電話瞭解到的大致內容爲:該系統已處於癱瘓狀態、系統屬於內網未對互聯網開發端口、操作系統爲Windows server 2008、已做斷網處理。

二、現場排查

經過2小時後到達客戶現場,再次與系統管理人員確認情況,得到的信息與電話溝通的內容差不多。原本想先進入系統看看情況,確認一下問題,可是有其他廠家的人員在看,也不好意思,就等着看他操作,一等就等了1個小時。這期間他主要操作還是在看系統安全日誌,日誌查看一直追溯到事發前1周時間,在日誌的查看中並沒有發現問題,如果是我在操作我也會先查看一下日誌。

2.1、着手排查

通過之前的等待和其他人員的排查,在系統安全日誌上並未發現存異常問題。到這裏想到網絡癱瘓於是有了以下想法:

想法1:系統遭受到類似於DOS或者DDOS之類的攻擊;

想法2:系統存在web應用類漏洞,可能被上傳了shell,系統被控制了。

但想到該系統未開發應用到互聯網上,以上想法就不能成立,黔驢技窮了,一下子沒思路了,不能剛剛接手鼠標和鍵盤就沒有操作呀。頓時冷靜了一下,想到既然是應用癱瘓了,那先看看網絡活動的 TCP 連接情況。於是我用nestat -ano查看了tcp的連接情況,輸入完netstat -ano回車後,我的媽呀!什麼情況,爲什麼會有那麼多tcp的連接,我倒是驚訝了,足足登錄2分鐘信息才刷新完,刷新完成後,發現有太多的TIME_WAIT等待了。

爲了看的更清楚,我使用了netstat -ano | more命令,然後一頁一頁的翻,發現單位內部與該應用系統有通信IP的40000或50000以上的端口均處於TIME_WAIT狀態。這讓我想到了Windows 2008R2大量回話在TIME_WAIT狀態的一個BUG,在系統啓動時從 497 天后所有在TIME_WAIT狀態的 TCP/IP 端口都不會被關閉。因此, TCP/IP 端口可能會被用光,並且可能不會創建新的 TCP/IP 會話。

到這裏我將得到的信息反饋給管理人員,並詢問了系統的開機時間,該系統已開啓了500多天。管理人員並不是很接受,並說出了新的問題(這是我有開始有點慌了,難道不是這個問題嘛)“後臺程序出現接口無法調用的問題”:

看到相關報錯後,我更確認了我之前的想法。爲了驗證我的想法,我將之前看到的博客與微軟的通告信息給管理人員看,最終確認問題。

相關連接如下:

https://support.microsoft.com/zh-cn/help/2553549/all-the-tcp-ip-ports-that-are-in-a-time-wait-status-are-not-closed-aft

windows 2008 R2 大量會話在TIME_WAIT狀態

socket-詳細分析No buffer space available(轉載)

該問題確認後,我又對系統進程和服務進行排查,發現該系存在WannaCry勒索病毒的服務,但未發現相關勒索病毒進程,並在殺毒軟件的恢復區發現了WannaCry的文件。

通過詢問後,發現該病毒在18年6月份已被刪除過,但是由於系統未重啓,該服務還存在,最後我清理註冊表。

相關操作完成後,聯繫管理員重啓系統,整個過程花費時間不到半個小時,最終解決問題。

三、總結

通過這次應急,我認爲管理人員有時提供的信息與應急人員所需求的可能不同,很可能會誤導應急人員。作爲應急人員,應該有很強的邏輯能力和分析能力,另外還需要擁有自信。

新手上路,大佬勿噴,感謝。

*本文原創作者:bbbbbbig,本文屬於FreeBuf原創獎勵計劃,未經許可禁止轉載

相關文章