有一臺WIN2003的服務器,在單位的局域網內,與互聯網是物理隔離的,最近上面運行的一個WEB服務器經常出錯,查看日志發現是因為數據庫不能連接,因為系統的所有端口都已經被占用完。使用netstat -abn查看發現svchost.exe開啟了大量狀態為SYN_SENT的連接,目標端口都是445,但是連接的IP各種各樣的都有,由于機器不能建立Internet連接,所以狀態都是SYN_SENT,重啟一下這些連接都沒有了,但是過一會又會迅速建立起來,很快就把系統的所有端口都占用了。
根據端口找出哪個服務真不容易,通過netstat -abn只能查到是svchost.exe,最多還能得到一個PID,確定是哪個svchost.exe,然后通過tasklist /svc可以查到那個svchost對應了哪些服務,但是一看,很多服務都是使用那個svchost,包括Server,Workstation等等,根本不知道是哪個產生的連接。
找了半天發現有人和我一樣:
http://www.petri.co.il/forums/showthread.php?t=36427,討論了半天最后也找到了解決方法:
http://www.symantec.com/security_response/writeup.jsp?docid=2009-011316-0247-99,原來是W32.Downadup這個病毒惹的禍,下載了專殺工具回來查了一下,果然找到了兩個被感染的文件,一個是jpg文件,在IE的緩存里,一個是dll文件,在system32里。
根據dll文件名在注冊表里查到了它注冊的服務,原來又是之前處理過的那種,服務名隨機、服務描述為空、啟動類型為自動、狀態為未啟動、dll名隨機,但是我記得這臺服務器已經打過補丁,也沒有出現svchost錯誤,所以就忽略了服務的檢查,沒想到這種東西還有不同的癥狀。
這個病毒利用的是KB958644的漏洞,到微軟下載了補丁回來,一看才發現原來那臺服務器以前已經裝過這個補丁。補丁的作用也許就是只能防止再出問題,但不能解決已有的問題,所以那臺服務器雖然裝了補丁,但是可能已經被感染了,于是就沒治好。