來源:ttian.net
反向木馬的主要種植手段是通過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映像的表徵圖(我把系統中的顯示已知檔案名稱的尾碼選項去掉的),來不及了,我太喜歡黑崎一戶了,手快了…
Forum:www.nspcn.com