分佈式拒絕服務***工具mstream

分佈式拒絕服務***工具mstream

時間:2009-12-23 15:10來源:未知 作者:admin 點擊:198次
☆ 簡介 分佈式拒絕服務***工具mstream是基於stream2.c源碼的。目前爲止有七種公認的分佈式拒絕服務*** trinoo [03] Tribe Flood Network (TFN) [04] Tribe Flood Network 2000 (tfn2k) [06] stacheldraht/stacheldrahtV4 [05] stacheldraht v2.666 shaft

☆ 簡介

分佈式拒絕服務***工具mstream是基於stream2.c源碼的。目前爲止有七種公認的分佈式拒絕服務***

trinoo [03]
Tribe Flood Network (TFN) [04]
Tribe Flood Network 2000 (tfn2k) [06]
stacheldraht/stacheldrahtV4 [05]
stacheldraht v2.666
shaft [07]
mstream

與其它DDoS工具相比,mstream顯得粗糙多了。逆向工程還原出的C代碼表明mstream
尚處在早期開發階段,含有大量的BUGs以及未完成的特性。然而由於stream/stream2
***本身所具有的威力,即使參與的***機只有幾臺,也足以對victim(以及agent)
所在網絡產生極大影響。

mstream的源代碼於2000年4月29日被人匿名發佈到[email protected]以及
BugTraq郵件列表上,因此本文做少許修正,希望緊急事件響應小組、廠商花點時間
提出自己的響應辦法。仍存留在本文中的錯誤可能正是這次匆忙而就的修正所致。

提醒讀者的是,對源代碼的修改必將導致與本文分析細節不相符,比如提示、口令、
命令、TCP/UDP端口號、所支持的***方式、簽名、特性等等。事實上,外面廣爲流
傳的代碼的通訊端口已與本文分析中的不同。

本文使用了CERT Distributed System Intruder Tools workshop於1999年11月所發
布的術語標準。強烈建議先閱讀如下鏈接以做背景知識

http://www.cert.org/reports/dsit_workshop.pdf
http://staff.washington.edu/dittrich/misc/ddos/

2000年4月下旬在某大學一臺被***的Linux主機上發現了mstream agent,該機正以
僞造的源IP對超過一打(12個)的目標主機進行flooding***。

這個子網的出口上應用了RFC 2267所定義的外出過濾規則(參考資源[13]),在32bits
範圍內僞造的源IP中,只有一小部分(匹配子網掩碼的)能離開子網發送出去。然而,
此時出口路由器(內側有18個子網)停止響應。這意味着做外出過濾規則的路由設備本
身將遭受***,儘管原來所定***目標只收到比***者預期要少得多的***報文。教
訓是,對於DDoS,簡單的包過濾機制並不是一個快速有效的解決方案。我們已經提醒
了路由廠商,希望他們能找出問題原因並修正之。

應用外出過濾規則後被拒絕外出的***報文無法到達下一跳路由器,下一跳路由器感
受不到***。這意味着基於IDS的邊界路由器、DMZ上的IDS或者ISP方的監視設備無法
確認***發生。除非你正在監視路由器本身,而用戶抱怨並暗示***來自你的子網。
這也使Sniffer抓包分析更加困難,只能在應用外出過濾規則的路由器內側才能抓到
所有包。

2000年2月上旬一家電子商務網站遭受***,至今爲止他們還不知道對方使用何種攻
擊工具,只知道他們的路由器崩潰了,每次都依賴於他們的上級路由器阻斷***、恢
復通訊。法律部門在缺乏證據的情況下無法介入,他們不能認定這是DoS、DDoS***
而非路由器、瀏覽器自身技術故障。針對Yahoo!的***描述在Packetstormsecurity
找到(參考資源[11]),並沒有更多其它可用信息。

1999年trinoo、TFN和stacheldraht伴隨着大量自動***行爲,mstream則處在代碼開
發的早期階段,通常是手工***、安裝(包括handler和agent),並用一個略微改動後
的Linux rootkit version 4 [10]保護自己。

附錄D介紹了一次針對agent的***和蹤跡隱藏。附錄E介紹了一次針對handler的***
和蹤跡隱藏。

☆ mstream network: client(s)-->handler(s)-->agent(s)-->victim(s)

與trinoo和shaft一樣,mstream network由一個或多個handlers(master.c)以及大量
的agents(server.c)組成。Attacker到handler之間的通訊是未加密的TCP傳輸,
handler到agent之間的通訊是未加密的UDP傳輸。整個結構看上去像這個樣子

--------------------------------------------------------------------------

+----------+ +----------+
| attacker | | attacker |
+----------+ +----------+
| |
. . . --+------+---------------+------+----------------+-- . . .
| | |
| | |
+-----------+ +-----------+ +-----------+
| handler | | handler | | handler |
+-----------+ +-----------+ +-----------+
| | |
| | |
. . . ---+------+-----+------------+---+--------+------------+-+-- . . .
| | | | |
| | | | |
+-------+ +-------+ +-------+ +-------+ +-------+
| agent | | agent | | agent | | agent | | agent |
+-------+ +-------+ +-------+ +-------+ +-------+

圖: mstream network

--------------------------------------------------------------------------

☆ 通訊

Attacker -> Handler(s) : 6723/tcp (in published source)
15104/tcp ("in the wild")
12754/tcp (in recovered source)
Agent -> Handler(s) : 9325/udp (in published source)
6838/udp ("in the wild")
Handler -> Agent(s) : 7983/udp (in published source)
10498/udp ("in the wild")

Attacker到Handler的遠程控制是通過TCP連接完成的,端口號不定(很容易產生變體)。

Handler所等待的命令應該完整地位於單個TCP報文的數據區(PDU)中,而不是斷續的
字節流。這意味着不能使用"telnet"控制Handler,netcat [19]可以勝任。Security
Focus [20]中的源代碼並未包含這樣的客戶端工具。

Attacker到Handler的傳輸未做加密處理,儘管stacheldraht表明增加Blowfish
block cipher並不困難。命令行靠空格分隔參數。

與trinoo類似,Handler(s)與Agent(s)之間的通訊通過UDP報文完成。Agents命令行
靠斜槓('/')分隔參數,多項參數自身靠冒號(':')分隔。

我們所檢查的代碼中最多允許3個Attackers連接到一個Handler,或許這是一個保護
性措施,也可能是個多餘的訪問限制。

連接建立後,必須提交正確的口令,缺省值如下

Attacker -> Handler(s) : "sex" (in published source [20])
"N7%diApf!" (in recovered source)

如果口令不正確,所有目前已建立連接的用戶被提醒有人正試圖訪問該Handler,然
後關閉這個未通過驗證的連接。如果口令正確,所有目前已建立連接的用戶被提醒產
生新的會話連接,通過驗證的用戶得到一個"> "提示符。

☆ Handler命令

Handler命令行至多由3個空格分隔的參數組成(argv[0] - argv[2])。

如果***者建立連接後420秒內未輸入一條命令,連接終止。

Handler命令集如下

help

顯示如下信息

Available commands:
stream stream attack !(進行stream***)
servers Prints all known servers.(顯示所有已知servers/agents)
ping ping all servers.
who tells you the ips of the people logged in
mstream lets you stream more than one ip at a time

servers

顯示當前所有已知Agents

who

顯示當前已建立連接的用戶

ping

確認Agents的活動狀態。對所有已知Agents發送"ping",每收到一個"pong"迴應
就報告用戶。

stream

針對單個主機***,seconds指定***持續時間。Handler將主機名解析成IP地址
併發送命令"mstream/arg1:arg1/arg2"到所有Agents,這裏arg1是victim目標IP
地址,arg2是***持續時間。

mstream

51cto.com/a/luyoujiaohuan/index.html
http://www.net527.com
linux系統思科論壇Cisco


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章