查出反向木馬的反向連接域名
反向木馬的主要種植手段是通過IE的眾多漏洞,bt下載時不小心運行,或者來路不明的軟體,使未打補丁的用戶點擊之後下載運行了木馬程式,而這些用戶基本都是擁有動態IP的個人用戶,若不使用反向連接的方式,勢必無法長久控制。
下面讓我們來討論一下如何查出木馬的最關鍵的要素──反向連接域名,知道了反向連接域名,你就可以隨時了解到幕後元兇究竟在哪,是否在線等隱私資料,甚至可以進行域名劫持,從而使他所控制的單位全都連到你所設置的IP上去,可見反向域名一旦暴露,要抓住幕後黑手是輕而易舉的事情。木馬反向連接必須先向域名伺服器發送查詢要求,然後由域名伺服器返回查詢結果──域名對應的IP,有了IP之後再去連接主控端。而許多木馬都通過修改系統文件,進程插入,API HOOK等眾多方式實現了在系統中服務隱藏,進程隱藏,文件隱藏,端口隱藏,所以此時系統的輸出已經不是可靠的輸出了,可能你的抓包數據已經被惡意篡改,抹去了木馬的相關數據(事後發現我的測試對象灰鴿子並沒有這麼做…但不排除別的木馬會這麼做…)。於是我想到了通過物理上的方法,木馬雖然可以在系統中隱藏,但是這個域名查詢的請求無論如何都會經過網線或者無線信號傳送出去。
為了查出反向連接域名,構建以下網路拓撲結構:一台NOTEBOOK和一台PC連接在HUB上,ADSL MODEM接到HUB的UPLINK口上(注意:一般HUB的UPLINK口與旁邊的介面絕對不能同時使用),選用HUB而不是寬帶路由器的原因是我沒錢…呵呵,其實真正的原因是HUB可以把任意一個端口發送的數據轉發到除了本身端口外的其他任何一個端口,所以NOTEBOOK網卡的所有數據都會流經 PC的網卡,NOTEBOOK系統中可能被木馬隱藏的網路數據,都會毫無保留的暴露再PC機的網卡上。
需要真正透徹理解從而提高技術還是需要實踐,下面我就拿國內比較著名的灰鴿子木馬做試驗,嘗試找出灰鴿子木馬的反向連接域名(大家完全可以用別的木馬做測試,因為我的機器不小心中了灰鴿子所以才將計就計)。PC機上的監聽工具選擇了TcpDump的WINDOWS版本WinDump,現在想來多餘了,PC 上裝著LINUX呢,可以直接使用TcpDump.WinDump的使用需要先安裝WinPcap 3.1——點擊可直接下載,然後下載WinDump version 3.9.3——點擊可直接下載,就可以直接運行了。
監聽前介紹一下NOTEBOOK的狀態,中了灰鴿子木馬。查到服務名的方法很簡單,使用入侵檢測工具icesword,那麼更容易了,打開就可以查看到所有進程和所有服務,無論是否隱藏的,一目了然發現IEXPLORER進程和lente服務是隱藏的(見圖1和圖2),於是禁止lente服務。(假如沒有 icesword也沒問題,進入安全模式,system32文件夾下搜索_hook.dll,發現一個systen_Hook.dll,明顯是灰鴿子,註冊表中搜索systen,發現關聯的服務名為lente),把中了灰鴿子的NOTEBOOK一切有關網路的第三方開機自啟動程式都禁止,防止引起不必要的域名查詢混淆監聽結果,把lente服務改成Manual方式,最後啟動服務,在PC機上觀察監聽結果。
圖1,點擊可放大
圖2,點擊可放大
其中192.168.1.2是NOTEBOOK的IP地址,202.96.209.6是NOTEBOOK的主域名伺服器,並且沒有設置輔助域名伺服器。 PC機的IP地址是192.168.1.3,這不太重要,因為是通過HUB連接的,只要啟用網卡,無論設置成怎麼樣都會監聽到NOTEBOOK的數據。
監聽NOTEBOOK向默認域名伺服器(202.96.209.6)的域名查詢請求(圖3):
圖3
PC機命令行輸入:windump –vvnXi2 src 192.168.1.2 and dst 202.96.209.6 命令中vv表示更詳細的顯示輸出,n表示用數字表示服務端口和用IP表示已知域名的IP,src 192.168.1.2 and dst 202.96.209.6 表示只監聽來自192.168.1.2並且目標是202.96.209.6的數據包,當然可以根據需要隨機應變。
監聽NOTEBOOK接受到默認域名伺服器(202.96.209.6)的域名查詢響應(圖4):
圖4
從以上監聽數據來看,灰鴿子服務的啟動過程中只向域名伺服器查詢了ns1.3322.net的IP地址,並且域名伺服器返回的結果告訴我 ns1.3322.net的IP地址是61.177.95.125,查詢類型為A,即最普通的域名到IP的查詢。當然ns1.3322.net絕不可能是那個反向連接域名,因為這是希網動態域名解析的主DNS伺服器。灰鴿子居然向我的默認DNS伺服器查詢另外一個DNS伺服器的IP,或許是使用別的域名伺服器,為了掩人耳目?我停止了PC機上的監聽,準備改成監聽ns1.3322.net和NOTEBOOK之間的數據,果然不出所料,得到以下結果。
監聽NOTEBOOK向域名伺服器ns1.3322.net的域名查詢請求(圖5):
圖5
監聽NOTEBOOK收到域名伺服器ns1.3322.net的域名查詢響應(圖6):
圖6
從給ns1.3322.net的域名查詢請求中可以看到,中了灰鴿子的NOTEBOOK向ns1.3322.net發送了一個查詢域名 65200.huigezi.org的請求,查詢類型為MX,即郵件交換記錄,也就是發向郵件地址
someone@65200.huigezi.org 的郵件將會到達的的主機的地址(注意這裡的MX記錄正好是和原來的域名一樣,其實完全可以不一樣的,若MX記錄為163.com,那麼這封郵件就發送到 163.com這臺主機去了)。至此已經可以清晰的看出這個灰鴿子的反向域名為65200.huigezi.org,我ping了一下,發現這與我剛開機時ICESWORD裏看到的IEXPLORER進程連接某IP的8000端口的那個IP相同,可以確定結果完全正確。反向域名成功獲得。不過這裡出現一個技術疑問,nslookup後發現huigezi.org的域名伺服器為ns1.3322.net,但是為何會直接向ns1.3322.net伺服器查詢呢?應該是我設置的域名伺服器去問ns1.3322.net,然後告訴我查詢結果,並且緩存查詢結果,我對於這個過程是一無所知的,就像我的域名伺服器原來就知道答案一樣,我猜測是木馬的自我保護方式,各位有更好的解釋的話指點我下,謝謝了。得到域名後接下來可以做的事很多,我也不一一例舉了(其實是域名劫持的綜合技術要求很高,我沒那水準…),不過假如你實在是很氣憤的話,比如對方刪了你硬盤重要文件等等,我可以告訴你,110找網警…
在整個監聽過程中遇到過許多麻煩,比如NOTEBOOK上有其他程式訪問網路,導致PC機上的終端輸出狂閃不止,根本沒法看,保存在文件裏的話,也找得頭暈,重啟系統無數次等等…我始終相信技術是可以靈活使用的,創新的思路尤其重要,可能會有很意想不到的結果,無論是成功或者失敗,去嘗試一下總會獲得一些經驗,學到一點東西(在此稍點一下,名叫LOVEBOOM[DFCG][FCG][CUG]的傢夥反編譯了灰鴿子的客戶端找出了灰鴿子的配置資訊,當然包括反向連接域名,技術厲害哦,呵呵,不過遇到一個木馬就反編譯一個那就-_-,說笑的,偶很佩服他)。通過監聽與域名伺服器的通訊的方式從原理上來說對於一切木馬都有效,所以我不太使用反向連接的木馬,很早以前就覺得不安全。大家有技術上的問題可以和我一起學習探討。
花絮:我的灰鴿子是BT下載死神漫畫的時候機緣巧合中的,看到bleach000.exe,一個JPG圖像的圖標(我把系統中的顯示已知文件名的尾碼選項去掉的),來不及了,我太喜歡黑崎一戶了,手快了…