反彈端口原理與HTTP隧道技術
現在,很多木馬都利用了“反彈端口原理”與“HTTP隧道技術”,它的服務端(被控制端)會主動連接客戶端(控制 端),因此,在互聯網上可以訪問到局域網里通過NAT代理(透明代理)上網的電腦,可以穿過防火墻( 包括:包過濾型及代理型防火墻) ,并且支持所有的上網方式,只要能瀏覽網頁的電腦,這種木馬都可以訪問到,那么我們有必要了解一下此類木馬用到的相關技術。
反彈端口原理:
如果對方裝有防火墻,客戶端發往服務端的連接首先會被服務端主機上的防火墻攔截,使服務端程序不能收到連接,軟件不能正常工作。同樣,局域網內通過代理上 網的電腦,因為是多臺共用代理服務器的IP地址,而本機沒有獨立的互聯網的IP地址( 只有局域網的IP地址) ,所以也不能正常使用,就是說傳統型的同類軟件不能訪問裝有防火墻和在局域網內部的服務端主機。
與一般的軟件相反,反彈端口型軟件的服務端(被控制端) 主動連接客戶端(控制端) ,為了隱蔽起見,客戶端的監聽端口一般開在80(提供HTTP服務的端口),這樣,即使用戶使用端口掃描軟件檢查自己的端口,發現的也是類似 TCP UserIP:1026 ControllerIP:80 ESTABLISHED 的情況,稍微疏忽一點就會以為是自己在瀏覽網頁(防火墻也會這么認為的) 。看到這里,有人會問:既然不能直接與服務端通信,如何告訴服務端何時開始連接自己呢?答案是:通過主頁空間上的文件實現的,當客戶端想與服務端建立連接 時,它首先登錄到FTP服務器,寫主頁空間上面的一個文件,并打開端口監聽,等待服務端的連接,服務端定期用HTTP協議讀取這個文件的內容,當發現是客 戶端讓自己開始連接時,就主動連接,如此就可完成連接工作。
HTTP隧道技術
常常使用木馬的用戶一定對木馬所使用的反彈連接技術、線程插入技術等耳熟能詳,但是對“HTTP隧道技術”可能就不 甚了解了,那到底什么是“HTTP隧道技術”呢?我們知道,使用了“反彈連接技術”的遠程控制軟件只能訪問撥號上網的服務端以及局域網里通過 NAT DL上網的服務端。
而使用“HTTP 隧道技術”以后,遠程控制軟件可以訪問到局域網里通過 HTTP、SOCKS4/5 DL上網的服務端。簡單來說,“HTTP 隧道技術”就是把所有要傳送的數據全部封裝到 HTTP 協議里進行傳送。因此,在互聯網上可以訪問到局域網里通過 HTTP、SOCKS4/5 DL上網的電腦,而且也不會有什么防火墻會攔截。
可以這么說,使用“HTTP 隧道技術”的遠程控制軟件幾乎支持了所有的上網方式,如:撥號上網、ADSL、Cable Modem、NAT透明代理、HTTP的GET型和CONNECT型代理、SOCKS4 代理、SOCKS5 代理等。
通過使用反彈連接技 術和HTTP隧道技術后,服務端程序的打開端口一般開為80(即用于網頁瀏覽的端口)。這樣稍微疏忽一點用戶就會以為是自己在瀏覽網頁,而防火墻也會同樣 這么認為,再加上反彈連接型木馬的服務端主動連接客戶端,這樣就可以輕易突破防火墻的限制。 曾經案例
2005年7月,作為網站管理員的張 慶發現自己所管轄的網站被黑客入侵。通過對網路日志的分析,跟蹤到一個IP地址,結果發現該IP地址是一臺代理服務器的IP地址。在通過對代理服務器當前 網絡連接的分析后,最終鎖定黑客真正的IP地址,并確認黑客是通過一款名為Pcshare的木馬程序對它進行了控制。而Pcshare就是一款集反彈連接 技術和HTTP隧道技術于一身的木馬程序。 簡單防御方法
由于HTTP隧道技術穿透防火墻的能力十分的強大,并且現在只被利用到某些木馬程 序之中,所以要防范“HTTP隧道技術”對用戶帶來的危害,還需要從木馬程序的基本防范做起。
除此以外,我們應該了解哪些木馬程序使用了“HTTP隧道技術”,這些木馬程序的特點又是什么。據統計,現在 國產木馬程序使用了“HTTP隧道技術”的有Pcshare和網絡神偷這兩款木馬程序。網絡神偷的清除相對簡單,而Pcshare的清除就相對復雜了。 如今又有一款隧道技術木馬紅狼(Gh0st RAT)。
B/S 型木馬
冰河、灰鴿子、紅狼都屬于C/S型木馬,而這里不得不介紹下B/S型木馬。
C/S型木馬就是通過客戶端(Client)對服務端(Server)進行控制操作;而B/S型木馬就是通過瀏覽器(Browser)對服務端 (Server)進行控制操作。
最早的B/S型木馬是1998年第七屆"DEF CON“黑客大會,由”死牛崇拜(CDC)“組織拿出的BO2000.國內也有個網絡精靈,其實是把BO2000進行漢化精簡后重新用VC++進行編譯封 裝。
利用HTTP協議的缺陷來實現對防火墻的滲透,或者說現有的一些HTTP隧道技術的實現,是基于防火墻在對HTTP協議的報文進行識別與過濾時,往往只對 其諸如POST、GET等命令的頭進行識別,而放行其后的所有報文。
所以,只要具備了對HTTP的基本認識與基本的C語言或者Perl等編程語言的常識,就可以從事HTTP方面的學習與研究了。
這是C版本的:
http://www.nocrew.org/software/httptunnel.html
雖然是在UNIX下的源代碼,但對于了解基本原理與基本實現技術是很好的。
如果需要JAVA和PHP版本的可以到
http://www.ohardt.com/mailbridge/
這里下載,這是一個利用HTTP隧道技術來收發EAMIL的實現。