24h購物| | PChome| 登入
2006-05-23 14:12:20| 人氣173| 回應1 | 上一篇 | 下一篇

ICMP木馬程式原理

推薦 0 收藏 0 轉貼0 訂閱站台

「揭開木馬的神秘面紗」該文裡面,有許多的東西你必須要懂Winsock程式設計及ICMP通訊協定才看得懂,所以這裡我針對Shotgun的大作對一般初學者提出說明,並補充一些我個人的想法。




在這個圖中,我「同一時間」執行兩個ping程式,1對hinet,2對seednet,所以你知道機器應該會同時發出兩份的ICMP_EchoRequest要求,一份對hinet,一份對seednet,所以同理,當hinet和seednet都回應我ICMP_EchoReply訊息時,我應該同時也會收到兩份,一份是hinet回應我的,另一份是seednet到此。

接下來是整個Windows系統發生安全問題的重點及ICMP木馬的核心,對於Windows系統而言,它只知道裡面執行了兩個ping程式,然後過一會它收到了兩份ICMP_EchoReply的訊息,因為ICMP通訊協定本身並沒有埠號的設計,所以Windows無法像TCP或UDP協定一樣,用bind的方式把ICMP_EchoReply訊息遞送到當初個別的程式,也就是說Windows系統無法由遠端機器回應的ICMP_EchoReply,來知道這應該是屬於哪個ping程式的。因此它的做法很簡單,把收到的ICMP_EchoReply訊息,丟給每一個ping程式讓它們自己來判斷,



也就是說ping程式會收到所有「外界」回傳的ICMP_EchoReply訊息。用技術一點的術語來講,當Windows系統發現它收到ICMP_EchoReply訊息時,它會檢查系統所有執行中的程式…..或應該嚴格講是檢查系統所有執行中的process行程(對岸同胞稱做「進程」),看看是否有人剛剛送出ICMP_EchoRequest要求,如有的話就將所有收到的ICMP_EchoReply訊息丟給你。

這裡因此發生了一個安全上的大問題,如果駭客將它隱藏的訊息放在ICMP_EchoReply資料報裡面,所有剛剛送出ICMP_EchoRequest要求的行程都會收到,也就是說,假設木馬程式剛剛也送出ICMP_EchoRequest要求的話,它也會收到駭客隱藏的ICMP_EchoReply訊息在裡面,這下可好,新的木馬由此產生,ICMP又在網路安全內被記一過。



你可以看到shotgun文中木馬接收端收到訊息時,我的ICMP_EchoReply監控程式也收到訊息…..其實說真的,這兩個程式設計的原理完全一樣,會接收到訊息是很正常的。

後來我更進一步測試,我發現ICMP Type 3:ICMP DEST UNREACHABLE,Type 11:ICMP TIME EXCEEDED,Type 0:ICMP ECHO REPLY都可以被我的監控程式抓到,所以ICMP木馬除了用ICMP_EchoReply當作那條遙控線之外,ICMP Type 3和11也可以做到,所以在win2000要過濾協議時,這三個都要禁止才可能防堵ICMP木馬。



台長: 小H
人氣(173) | 回應(1)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: 未分類 |
此分類下一篇:端午節立蛋 ----秘技大公開
此分類上一篇:睽違32年重返世界杯 澳洲獲名教頭加持

吳老師
ok
2006-05-23 14:20:01
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文