全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1206
推到 Plurk!
推到 Facebook!

"Code Red" 蠕蟲攻擊方式詳細分析和防範措施總結 (Other,其他)

 
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-24 21:14:02 IP:218.175.xxx.xxx 未訂閱
 "Code Red" 蠕蟲攻擊方式詳細分析和防範措施總結 (Other,其他)
涉及程式: 
code red  
  
描述: 
"Code Red" 蠕蟲攻擊方式詳細分析和防範措施總結 
  
詳細:
CODE RED 利用 IIS WEB 伺服器 .IDA 緩衝區溢出漏洞傳播。 如果它感染了一個主機,將會在受影響機器上作如下活動:    1、建立起初始蠕蟲環境
2、建立起100個蠕蟲線程
3、前99個線程會傳播感染其他主機
4、第100個線程會檢查自身是否運行于一個英文版本的 Windows NT/2000    如果是,它將會替換該主機頁面    Welcome to http://www.worm.com !, Hacked By Chinese!    該資訊會在10小時後自動消失,除非再次受到感染。    如果不是英文版本,它也會被用作感染其他主機。    5、每個線程會檢查當地時間
如果時間位於 20:00 UTC 和 23:59 UTC 間,該線程會往 www.whitehouse.gov 發送 100K 位元組資料。
如果小於 20:00 UTC,它會繼續傳播感染其他主機    在下面的詳細分析中,將要用到    IDA(Interactive Disassembler) ,它來自www.datarescue.com。
MS VC   調試環境    我將該蠕蟲分為三個部分以便研究:核心功能模組,hack web 頁面模組,攻擊 www.whitehouse.gov 模組。    一、核心功能模組    1、起始感染容器(已被感染並將傳播蠕蟲的主機)    當被感染時,系統記憶體將會呈現如下資訊:          
     4E 00 4E 00 4E 00 4E 00 
     4E 00 4E 00 4E 00 4E 00 
     4E 00 4E 00 4E 00 4E 00 
     92 90 58 68 4E 00 4E 00 
     4E 00 4E 00 4E 00 4E 00 
     FA 00 00 00 90 90 58 68 
     D3 CB 01 78 90 90 58 68 
     D3 CB 01 78 90 90 58 68 
     D3 CB 01 78 90 90 90 90 
     90 81 C3 00 03 00 00 8B 
     1B 53 FF 53 78     EIP 會被 0x7801CBD3 重寫。在 0x7801CBD3 處的代碼將會被分解成 call ebx ,當 EIP 被 call ebx 重寫時,它會導致程式流重定向回堆疊。堆疊上的代碼將會跳到蠕蟲代碼,該蠕蟲代碼在起始 HTTP 請求體中。    2、建立起始堆疊變數    CODEREF: seg000:000001D6 WORM     首先,蠕蟲建立一個充滿 CCh 的 218h 位元組堆疊,然後它將轉而啟動跳轉函數。
所有的變數會被引用為 EBP-X 值。    3、裝載函數(建立跳轉表"jump table") 
CODEREF: seg000:00000203 DataSetup     首先,蠕蟲會引用 exploit 代碼在 EBP-198h 中的資料部分。然後,它需要創建自己內部函數跳轉表。
該蠕蟲用到了一項 RVA (Relative Virtual Addresses) 查詢技術,在一個 nutshell 中,RAV 被用來得到 GetProcAddress 的位址。GetProcAddress 然後被用來得到 LoadLibraryA 地址。它會用到這兩個函數裝載下面的函數:    >From kernel32.dll: 
GetSystemTime 
CreateThread 
CreateFileA 
Sleep 
GetSystemDefaultLangID 
VirtualProtect     >From infocomm.dll: 
TcpSockSend     >From WS2_32.dll: 
socket 
connect 
send 
recv 
closesocket     最後,蠕蟲會存儲 w3svc.dll 的基底位址,該位址將被用來更改頁面。    4、檢查已經創建的線程:
CODEREF: seg000:00000512 FUNC_LOAD_DONE     它會運行 WriteClient (ISAPI Extension API 的一部分),發送"GET" 回進攻機。這應該是告訴告訴攻擊機它已成功感染該機。    然後,它會計算活動的蠕蟲線程
如果線程等於100,控制會轉向 hack web 頁面功能項。
如果線程小於100,它會創建新的線程。每一個新線程都是蠕蟲的簡單複製。    5、檢查已存在的 c:\notworm 
它有一個"lysine deficiency" 功能,用來保持惡意代碼進一步傳播。
如果該文件存在,它不會作其他動作;如果不存在,它會進行下一步。    6、檢查受影響系統時間:
CODEREF: seg000:00000803 NOTWORM_NO 
CODEREF: seg000:0000079D DO_THE_WORK     如果時間位於 20:00 UTC 和 23:59 UTC 間,該線程會往 www.whitehouse.gov 發送 100K 位元組資料。
如果小於 20:00 UTC,它會繼續傳播感染其他主機    7、感染一個新的主機
如果能建立一個80埠連接,它將會發送自己的一個複製到那個 IP,如果發送成功,它會關閉 socket 並轉到第5步,從而開始一個新的迴圈。    二、hack webpage 模組    如果100個線程產生,該模組會被調用    1、檢查系統語言是否為英文,然後轉到核心模組第5步
CODEREF: seg000:000005FE TOO_MANY_THREADS     2、休眠2小時
CODEREF: seg000:00000636 IS_AMERICAN 
這應該是在更改頁面之前作盡可能的傳播。    3、試圖改變受影響系統的 WEB 頁面
CODEREF: seg000:0000064F HACK_PAGE     三、攻擊www.whitehouse.gov 模組    創建 socket 連接到 www.whitehouse.gov 80 埠發送 100K 位元組資料:
CODEREF: seg000:000008AD WHITEHOUSE_SOCKET_SETUP     首先,它會創建一個 socket 並連接到 198.137.240.91 (www.whitehouse.gov/www1.whitehouse.gov) 80 埠,
CODEREF: seg000:0000092F WHITEHOUSE_SOCKET_SEND     如果連接成功,它會創建一個迴圈:發送18000h 單字節send()'s 到該站點    CODEREF: seg000:00000972 WHITEHOUSE_SLEEP_LOOP     在 18000h send()'s 後,它會休眠4個半小時,然後重複此攻擊。    From: Marc Maiffret  by ntbugtraq maillist
CNNS 編譯    解決方案:
1、如果系統已被感染,請到微軟處下載安裝補丁,並重啟機器,相關資訊參考 
http://www.cnns.net/article/db/1720.htm    2、如果不能確定,可以通過在 MS-DOS 提示符中鍵入 netstat -an 查看,如果有過多的外部任意 IP 80 
系統時間:2024-05-07 2:02:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!