CodeRed II&III 程序代碼分析及清除指南

CodeRed II&III 程序代碼分析及清除指南 By Seraph Chutium http://com.6to23.com/ http://www.cnhack.org/ 新浪科技報道: 代號紅色C來勢更猛 專家稱危險性大 http://tech.sina.com.cn/s/n/2001-08-07/79179.shtml 最新信息表明紅色代碼Ⅲ來勢更猛 http://tech.sina.com.cn/s/n/2001-08-08/79420.shtml CodeRed 蠕蟲病毒未對中文視窗系統造成多大影響, 不過近來的 CodeRed II 型可是專門針對中文系統的病毒, 最新的 CodeRed.v3 蠕蟲病毒繼承了 CodeRed II 的大部分功能。 同樣是有意針對中文 Windosws 操作系統的攻擊性病毒, 它與 CodeRed II 都將對 簡體中文/繁體中文 Windows 系統進行雙倍的攻擊。 別名:CodeRed.v3, CodeRed III, W32.Bady.C 病毒的詳細分析可在此下載: http://chutium.top263.net/software.htm 微軟已經發布了一個安全公告MS01-033: http://www.microsoft.com/technet/security/bulletin/MS01-033.asp 同時提供了針對NT和2000系統的補丁: Windows NT 4.0: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=30833 Windows 2000 Professional, Server and Advanced Server: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=30800 研究了一下,現在以成功清除,分析結果及手動清除方法如下: 一、分析 這個蠕蟲的行爲可以分爲三部分:初始化、感染、繁殖、安裝木馬。 1.初始化 當一個 WEB 服務器感染此病毒後,它首先將初始化: (1) 確定 Kernel32.dll 動態鏈接庫中 ISS 服務器的服務進程地址。 (2) 查找調用 API 函數 GetProcAddress 以使用以下 API 函數: LoadLibraryA CreateThread .. .. GetSystemTime (3) 加載 WS2_32.dll 庫使用socket closesocket SAGetLastError 等函數。 (4) 從 USER32.DLL 中調用 ExitWindowsEx 以重新啓動系統。 2.感染 (1) 蠕蟲設置一個跳轉表,以便得到所有需要的函數地址。 (2) 獲得當前主機的IP地址,以便在後面的繁殖步驟中處理子網掩碼時使用。 (3) 檢查系統語言是否中文 (臺灣或中華人民共和國版本)。 (4) 檢查是否已經執行過了,如已執行則跳至繁殖步驟。 (5) 檢查"CodeRedII" atom是否已被放置。這個步驟可以確保此主機不會被重複感染。 (如已放置,則進入永久休眠狀態。) (6) 如上一檢查沒有發現中沒有發現"CodeRedII" atom,則增加一個"CodeRedII" atom。 (用來表示此主機已經被感染。) (7) 對於非中文系統,將工作線程數目定爲300。如果是中文系統,則設置爲600。 (8) 蠕蟲開始產生一個新的線程跳到第一步去執行。蠕蟲會根據上一步驟中設定的線程。 (數目產生新線程。這些線程都會跳至繁殖步驟去執行。) (9) 調用木馬功能。 (10) 如果是非中文系統,休眠1天;如果是中文系統,休眠2天。 (11) 重起系統。這會清除內存中駐留的蠕蟲,只留下後門和explorer.exe木馬。 3.繁殖 (1) 設置IP_STORAGE變量。保證不會重複感染本主機。 (2) 休眠64h毫秒。 (3) 獲取本地系統時間。蠕蟲會檢查當前時間是不是小於2002年或月份小於10月。 如果日期超出了上述條件,蠕蟲會重啓系統。這使蠕蟲的傳播不會超過10月1日。 (4) 設置SockAddr_in變量,獲取攻擊主機IP時會使用這個變量。 (5) 設置Socket套接字。蠕蟲調用socket()函數,產生一個套接字,並設置該套接 字爲非阻塞模式。這可以加速連接速度。 (6) 產生下一要攻擊主機的IP併發起連接。如果連接成功,將跳到"設置套接字爲 阻塞模式"步驟。 (7) 調用select()。如果沒有返回句柄,則跳到最後一步。 (8) 設置套接字爲阻塞模式。 這是因爲連接已經建立,沒有必要再使用非阻塞模式。 (9) 向該套接字發送一份蠕蟲的拷貝。 (10) 執行recv調用。 (11) 關閉套接字,返回第一步。 繁殖中的 IP 地址分析: 這個蠕蟲的獨特之處在於它選擇下一個要連接的主機IP的方法。它首先在1到254的範 圍內隨機生成4個字節(防止IP地址爲一個0或255)。然後,隨機從這些字節中取出一個 字節,然後與7做與操作('AND'),產生一個0 - 7之間的隨機數。然後根據這個隨機數 從一個地址掩碼錶中取出相應的掩碼,實際掩碼在內存中的位置是反向存儲的。 這個表可以決定隨機生成的IP地址有多少會被使用。例如,如果生成一個隨機數5,則 根據上面的掩碼錶,新的地址應該一半爲隨機地址一半爲舊IP地址。比如如目前受害 者IP地址是192.168.1.1,隨機產生的IP可能是 01.23.45.67,則新的攻擊地址可能爲 192.168.45.67。 其結果就是新的被攻擊IP會有八分之三的機率(5,6,7)在當前機器IP所在的B類地址 範圍內產生,有八分之四的機率(1,2,3,4)在A類範圍內產生,另八分之一的機 率是隨機IP地址(0)。 蠕蟲如果發現產生的IP是127.x.x.x或者是224.x.x.x或者與當前IP相同,它就會重新 產生一個新的IP. 很多情況下,與被感染的主機在同一或相近網段內的主機也使用相同的系統。因此, 蠕蟲使用這種機制就會大大增加感染的成功率。 4.安裝木馬 (1) 獲取%SYSTEM%系統目錄。例如C:/WINNT/SYSTEM32 (2) 將cmd.exe加到系統目錄字符串的末尾,例如C:/WINNT/SYSTEM32/cmd.exe (3) 將驅動器盤符設置爲C: (4) 將cmd.exe拷貝到 驅動器盤符:/inetpub/scripts/root.exe (5) 將cmd.exe拷貝到 驅動器盤符:/progra~1/common~1/system/MSADC/root.exe (6) 創建"驅動器盤符:/explorer.exe" (7) 往"驅動器盤符:/explorer.exe"中寫入二進制代碼。 (8) 關閉"驅動器盤符:/explorer.exe" (9) 將驅動器盤符改爲D,重複從第四步開始的操作 (10) 回到 1.感染 階段的最後一步,開始休眠。 安裝木馬的詳細分析: 蠕蟲創建的"explorer.exe"是一個木馬,它的主要工作方式與 CodeRed II 基本相同: 獲取本地windows目錄 執行真正的"explorer.exe" 進入下面的死循環: while(1) { 設置"SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon/SFCDisable" 爲 0FFFFFF9Dh, 禁止系統文件保護檢查 設置"SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/Virtual Roots/Scripts" 爲 ,,217 設置"SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/Virtual Roots/msadc" 爲 ,,217 設置"SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/Virtual Roots/c" 爲c:/,,217 設置"SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/Virtual Roots/d" 爲d:/,,217 休眠10分鐘 } 蠕蟲通過修改上面的註冊表增加了兩個虛擬web目錄(/c和/d),並將其分別映射到C: 和D:/。這使得即使用戶刪除了root.exe,只要"explorer.exe"木馬仍在運行,攻擊者 仍然可以利用這兩個虛擬目錄來遠程訪問您的系統。例如: http://TARGET/scripts/root.exe?/c+command (如果root.exe還存在) http://TARGET/msadcs/root.exe?/c+command http://TARGET/c/winnt/system32/cmd.exe?/c+command (如果root.exe已經被刪除) http://TARGET/c/inetpub/scripts/root.exe?/c+command http://TARGET/c/progra~1/common~1/system/MSADC/root.exe?/c+command 蠕蟲將"explorer.exe"木馬放在"C:/"和"D:/"的根目錄下面,這是想利用微軟安全公 告MS00-052(http://www.microsoft.com/technet/security/bulletin/MS00-052.asp) 中所描述的漏洞,windows系統在執行可執行程序時,會先搜索系統盤根目錄下面有沒 有同名的程序,如果有,就先執行該程序。因此,如果攻擊者將"exploer.exe"木馬放 在系統盤根目錄下面,就可能先於真正的"exploer.exe"被執行。當屬於管理員組的用 戶交互地登錄進入系統時,木馬將被執行。如果您沒有安裝SP2或者MS00-052中的補丁, 您就可能執行這個木馬程序;否則,您不會執行這個木馬。 二、清除 —— 注:以下修復過程對 CodeRed II 型同樣有效。 如果不幸中了此病毒,應該立即關閉所有 80 端口的 web 服務,避免病毒繼續傳播。 1.清除的 web 服務器中的兩個後門文件:/msadc/root.exe , /scripts/root.exe 這兩個文件的物理地址一般情況下默認爲: C:/inetpub/scripts/root.exe C:/progra~1/common~1/system/MSADC/root.exe 2.清除本地硬盤中:c:/explorer.exe 和 d:/explorer.exe , 先要殺掉進程explorer.exe,打開任務管理器,選擇進程。檢查是否進程中有兩個 "exploer.exe".如果您找到兩個"exploer.exe",說明木馬已經在您的機器上運行了, 在菜單中選擇 查看 -> 選定列 -> 線程計數,按確定。這時您會發現顯示框中增加了新的 一列"線程數"。檢查兩個"exploer.exe", 顯示線程數爲"1"的"exploer.exe"就是木馬 程序。您應當結束這個進程。 之後,您就可以刪除掉C:/exploer.exe和D:/exploer.exe了, 這兩個程序都設置了隱藏和只讀屬性。您需要設置"資源管理器" 的 查看 -> 選項 -> 隱藏文件 爲"顯示所有文件"才能看到它們。 3.清除病毒在註冊表中添加的項目: HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon 刪除鍵:SFCDisable 鍵值爲:0FFFFFF9Dh 或將鍵值改爲 0 ( 設置爲0FFFFFF9Dh後,將在登陸時禁止系統文件檢查 ) HKLM/SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/Virtual Roots 鍵:Scripts 鍵值爲:,,217 改爲 ,,201 ( 這個鍵默認就是被打開的,不過如果沒有特別需要的話,可以關閉 ) ( 因爲很多漏洞都是利用了這個虛擬目錄下的文件攻擊的。 ) HKLM/SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/Virtual Roots 鍵:msadc 鍵值爲:,,217 改爲 ,,201 ( 同Scripts ) HKLM/SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/Virtual Roots 刪除鍵:c 鍵值爲:c:/,,217 ( 它將本地硬盤中的 C 盤在 web 中共享爲 c ) HKLM/SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/Virtual Roots 刪除鍵:d 鍵值爲:d:/,,217 ( 它將本地硬盤中的 D 盤在 web 中共享爲 d ) 如果不刪除註冊表中的以上鍵,中毒服務器的本地硬盤 C、D 將被完全控制。 4.重新啓動系統,以確保 CodeRed.v3 徹底清除。 三、後記 如果要確保清除病毒後不再次被感染,就需要安裝微軟發佈的補丁。 以上內容資料引自:http://chutium.top263.net/ 對 CodeRed 病毒程序的分析。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章