中聯綠盟資訊技術 技術篇 |
|
jackkcg
站務副站長 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
中聯綠盟資訊技術 http://www.nsfocus.com 有興趣之人請自行至原網站觀摩
理面有粉多 防駭安全機制文章 <iframe width=800 height=600 src="http://www.nsfocus.com/"></iframe> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
此為轉貼資料 (c)版權所有 1999-2003,中聯綠盟資訊技術(北京)有限公司 綠盟科技緊急公告(Alert2003-zh-01) Nsfocus安全小組(security@nsfocus.com)
http://www.nsfocus.com 新SQL蠕蟲緊急公告! 發佈日期:2003-01-25 受影響的軟體及系統:
====================
Microsoft SQL Server 2000 SP2
Microsoft SQL Server 2000 SP1
Microsoft SQL Server 2000 Desktop Engine
Microsoft SQL Server 2000
- Microsoft Windows NT 4.0 SP6a
- Microsoft Windows NT 4.0 SP6
- Microsoft Windows NT 4.0 SP5
- Microsoft Windows NT 4.0
- Microsoft Windows 2000 Server SP3
- Microsoft Windows 2000 Server SP2
- Microsoft Windows 2000 Server SP1
- Microsoft Windows 2000 綜述:
======
綠盟科技安全小組監測到一種針對Microsoft SQL Server 2000的蠕蟲正在活躍,危害極大。 綠盟科技安全小組專門為此免費提供了檢測Microsoft SQL Server漏洞的掃描工具。可以到如下位址下載: http://www.nsfocus.net/tools/SQLWormScanner.exe 更新記錄: 2003-01-26 13:50 更新了安全補丁資訊和解決方案;增加了對該蠕蟲代碼的分析;增加了一個專門查找該漏洞的工具。 分析:
======
北京時間2003年01月25日14時許,綠盟科技安全小組監測到忽然發生了世界範圍的大規模網路訪問速度減慢甚至阻塞的情況,經過綠盟科技安全小組對捕獲的資料樣本分析和研究,已經明確,這是一種新出現的針對Microsoft SQL Server 2000的蠕蟲。 該蠕蟲本身非常小,僅僅是一段376個位元組的資料。利用的安全漏洞是"Microsoft SQL Server 2000 Resolution服務遠端棧緩衝區溢出漏洞"(http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=3148)。 蠕蟲利用的埠是UDP/1434,該埠是SQL Server Resolution服務。Microsoft SQL Server 2000支援在單個物理主機上伺服多個SQL伺服器的實例,每個實例操作需要通過單獨的服務,不過多個實例不能全部使用標準SQL服務會話會話埠(TCP 1433),所以SQL Server Resolution服務操作監聽在UDP 1434埠,提供一種使用戶端查詢適當的網路末端用於特殊的SQL服務實例的途徑。 當SQL Server Resolution服務在UDP 1434埠接收到第一個位元組設置為0x04的UDP包時,SQL監視線程會獲取UDP包中的資料並使用此用戶提供的資訊來嘗試打開註冊表中的某一鍵值,如發送\x04\x41\x41\x41\x41類似的UDP包,SQL服務程式就會打開如下註冊表鍵:
HKLM\Software\Microsoft\Microsoft SQL Server\AAAA\MSSQLServer\CurrentVersion
攻擊者可以通過在這個UDP包後追加大量字串資料,當嘗試打開這個字串相對應的鍵值時,會發生基於棧的緩衝區溢出,通過包含"jmp esp"或者"call esp"指令的位址覆蓋棧中保存的返回位址,可導致以SQL Server進程的許可權在系統中執行任意指令。 蠕蟲溢出成功取得系統控制權後,就開始向隨機IP位址發送自身,由於這是一個閉環的過程,發包密度僅和機器性能和網路帶寬有關,所以發送的資料量非常大。在綠盟科技安全小組的測試中,和被感染機器在同一網段的每一台分析機每秒鐘都收到了近千個資料包。 該蠕蟲對被感染機器本身並沒有進行任何惡意破壞行為,也沒有向硬碟上寫檔,僅僅存在與記憶體中。對於感染的系統,重新啟動後就可以清除蠕蟲,但是仍然會重複感染。由於發送資料包佔用了大量系統資源和網路帶寬,形成Udp Flood,感染了該蠕蟲的網路性能會極度下降。一個百兆網路內只要有一兩台機器感染該蠕蟲就會導致整個網路訪問阻塞。 蠕蟲代碼分析: 以下地址以以未打sql server service pack的為准。 溢出是用sprintf( )的格式串bug覆蓋了ssnetlib.dll中如下函數的返回位址。將返回地址指向sqlsort.dll中檔偏移位址為0x2C9DC處的一條JMP ESP指令,實際上該處是sqlsort.dll的資料區,只不過資料FF E4正好也是JMP ESP這條指令的機器碼。 第N個包的目的IP位址 = (107005的N次方) 乘以 (seed) + N 乘以 C,C = GetProcAddress這個函數的起始虛擬位址與一個常數FFD9613C異或的結果,所以C只取決於OS類型和Service pack號。在win2k sp3中,C = 8831FA24。 * Referenced by a CALL at Address:
|:42CFACC3
|
:42CFB392 55 push ebp
:42CFB393 8BEC mov ebp, esp
...........................................................................//此處省略
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:42CFB562(C)
|
:42CFB58E 8B8538DBFFFF mov eax, dword ptr [ebp+FFFFDB38]
:42CFB594 50 push eax * Possible StringData Ref from Data Obj ->"SOFTWARE\Microsoft\Microsoft SQL "
->"Server\"
|
:42CFB595 68000BD042 push 42D00B00 * Possible StringData Ref from Data Obj ->"%s%s\MSSQLServer\SuperSocketNetLib\"
|
:42CFB59A 682C0BD042 push 42D00B2C
:42CFB59F 8D8DFCD6FFFF lea ecx, dword ptr [ebp+FFFFD6FC]
:42CFB5A5 51 push ecx * Reference To: MSVCRT.sprintf, Ord:02B2h
|
:42CFB5A6 FF1510E1CF42 Call dword ptr [42CFE110]
:42CFB5AC 83C410 add esp, 00000010
:42CFB5AF 8B9538DBFFFF mov edx, dword ptr [ebp+FFFFDB38]
:42CFB5B5 52 push edx * Possible StringData Ref from Data Obj ->"SOFTWARE\Microsoft\Microsoft SQL "
->"Server\"
|
:42CFB5B6 68500BD042 push 42D00B50 * Possible StringData Ref from Data Obj ->"%s%s\MSSQLServer\CurrentVersion"
|
:42CFB5BB 687C0BD042 push 42D00B7C
:42CFB5C0 8D857CFFFFFF lea eax, dword ptr [ebp-84] <--------利用這個局部緩衝區的溢出來覆蓋返回位址
:42CFB5C6 50 push eax * Reference To: MSVCRT.sprintf, Ord:02B2h
|
:42CFB5C7 FF1510E1CF42 Call dword ptr [42CFE110]
:42CFB5CD 83C410 add esp, 00000010 * Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:42CFB58C(U)
|
:42CFB5D0 8D8D00DBFFFF lea ecx, dword ptr [ebp+FFFFDB00]
:42CFB5D6 51 push ecx
:42CFB5D7 6819000200 push 00020019
:42CFB5DC 6A00 push 00000000
:42CFB5DE 8D957CFFFFFF lea edx, dword ptr [ebp+FFFFFF7C]
:42CFB5E4 52 push edx
:42CFB5E5 6802000080 push 80000002 * Reference To: ADVAPI32.RegOpenKeyExA, Ord:0172h
|
:42CFB5EA FF1518E0CF42 Call dword ptr [42CFE018] 解決方法:
==========
* 通用解決方案: 我們建議所有運行Microsoft SQL Server 2000和近期發現網路訪問異常的用戶按照以下解決方案操作: 1、在邊界防火牆或者路由器上阻塞外部對內和內部對外的UDP/1434埠的訪問 根據Cisco的安全公告,可以使用下列命令來完成對UDP/1434埠的阻塞的操作: 對交換機(以6500系列為例): 配置: set security acl ip WORM deny udp any eq 1434 any
set security acl ip WORM deny udp any any eq 1434
set security acl ip WORM permit any
commit security acl WORM
set security acl map WORM
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |