反彈埠型木馬

反彈埠型木馬

反彈埠型木馬是一個專業級遠程文件訪問工具,利用它可實現對本地及遠程驅動器進行包括文件刪除、複製、移動、修改在內的各種操作,而且可以任意修改驅動器屬性、修改文件屬性。並且由於它利用了“反彈埠原理”與“HTTP隧道技術”,它的服務端(被控制端)會主動連接客戶端(控制端)。

相關背景


首先要知道反彈埠的原理:
簡單地說,就是由木馬的服務端主動連接客戶端所在IP對應的電腦的80埠。相信沒有哪個防火牆會攔截這樣的連接(因為它們一般認為這是用戶在瀏覽網頁),所以反彈埠型木馬可以穿牆。
以下是在“網路神偷”的介紹中挖下來的:道高一尺、魔高一丈,不知哪位高人分析了防火牆的特性后發現:防火牆對於連入的連接往往會進行非常嚴格的過濾,但是對於連出的連接卻疏於防範。於是,與一般的軟體相反,反彈埠型軟體的服務端(被控制端)主動連接客戶端(控制端),為了隱蔽起見,客戶端的監聽埠一般開在80(提供HTTP服務的埠),這樣,即使用戶使用埠掃描軟體檢查自己的埠,發現的也是類似 TCP UserIP:1026 ControllerIP:80 ESTABLISHED 的情況,稍微疏忽一點你就會以為是自己在瀏覽網頁(防火牆也會這麼認為的)。看到這裡,有人會問:既然不能直接與服務端通信,那如何告訴服務端何時開始連接自己呢?答案是:通過主頁空間上的文件實現的,當客戶端想與服務端建立連接時,它首先登錄到FTP伺服器,寫主頁空間上面的一個文件,並打開埠監聽,等待服務端的連接,服務端定期用HTTP協議讀取這個文件的內容,當發現是客戶端讓自己開始連接時,就主動連接,如此就可完成連接工作。
反彈埠型木馬:利用反彈埠原理,躲避防火牆攔截的一類木馬的統稱。國產的優秀反彈埠型木馬主要有:灰鴿子、上興遠程控制、PcShare等。

基本簡介


1 一般木馬的工作過程
木馬程序有兩部分組成,一部分是伺服器(Server)端程序,服務端運行后,會在本機打開一個特定的網路埠監聽客戶端的連接。另一部分是客戶(Client)端程序,即控制在攻擊者手中的程序,攻擊者通過它獲取遠程計算機的數據並通過它控制遠程計算機。攻擊者用客戶端去連接服務端計算機的特定埠,進行登錄,發出控制命令等,進而取得對計算機的控制許可權,可以任意查看或刪改服務端文件,操作服務端的註冊表,獲取服務端的系統信息,竊取口令等,就如同訪問他自己的計算機一樣方便。
其過程可用 VB 實現如下:(Horse_Server 和Horse_Client 均為 Winsock控制項) :
服務端:
Horse_Server. LocalPort = 31339 (打開一個特定的網路埠)
Horse_Server.Listen(監聽客戶端的連接)
客戶端
Horse_Client . RemoteHost = RemotelP (設遠端地址為伺服器端IP地址)
Horse_Client . RemotePort = 31339(設遠程埠為服務端程序起動的特定埠)
Horsec_Client . Connect (連接服務端計算機)
一旦服務端接到客戶端的連接請求 ConnectionRequest ,就接受連接。
Private Sub Horse_Server_ConnectionRequest (ByVal requestlD As Long)
Horse_Server.Accept requestlD
End Sub
客戶機端用 Horse_Client . SendData 發送命令,而伺服器在 Horse_Server_DataArrive事件中接受並執行命令(如:修改註冊表、刪除文件等) 。
如果客戶斷開連接,則服務端連接並重新監聽埠:
Private Sub Horse_Server_Close ()
Horse_Server. Close (關閉連接)
Horse_Server.Listen(再次監聽)
End Sub[1 ]
2 反彈埠型木馬的工作原理
一般木馬服務端運行后,會用郵件、ICQ 等方式發出信息通知入侵者,同時在本機打開一個網路埠監聽客戶端的連接(時刻等待著客戶端的連接) 。收到信息后,入侵者再運行客戶端程序向伺服器的這一埠提出連接請求(Connect Request) ,伺服器上的守護進程就會自動運行,來應答客戶機的請求。
目前,由於大部分防火牆對於連入的連接往往會進行非常嚴格的過濾,能對非法埠的IP包進行有效的過濾,非法連接被攔在牆外,客戶端主動連接的木馬,現已很難穿過防火牆。
與一般的軟體相反,反彈埠型木馬是把客戶端的信息存於有固定IP的第三方FTP伺服器上,服務端從 FTP 伺服器上取得信息後計算出客戶端的IP和埠,然後主動連接客戶端。另外,網路神偷的服務端與客戶端在進行通信,是用合法埠,把數據包含在像HTTP或FTP的報文中,這就是黑客們所謂的“隧道”技術。其過程如下:
服務端:
Horse_Server. RemoteHost = RemotelP(設遠端地址為從指定FTP伺服器取得的客戶端IP地址)
Horse_Server. RemotePort = RemotePort (設遠程埠為客戶端程序起動的特定埠,如:80、21等)
Horse_Server. Connect (連接客戶端計算機)
客戶端:
Horse_Client . LocalPort = LocalPort (打開一個特定的網路埠,如:80、21等)一旦客戶端接到服務端的連接請求 ConnectionRequest ,就接受連接。
Private Sub Horse_Client_ConnectionRequest(ByVal requestlD As Long)
Horse_Client .Accept requestlD
End Sub
Horse_Client .Listen(監聽客戶端的連接)客戶機端用Horse_Client . SendData 發送命令,而伺服器在 Horse_Server DataArrive事件中接受並執行命令。如果客戶斷開連接,則伺服器端關閉連接:
Private Sub Horse_Server_Close ()
Horse_Server. Close (關閉連接)
End Sub
之後每隔一段時間服務端就會向客戶發一個連接請求:Horse_Server. Connect (連接客戶端計算機)
目前,大部分防火牆對於連入的連接往往會進行非常嚴格的過濾,但對於連出的連接卻疏於防範。像這種“反彈埠”原理的木馬,又使用“隧道”技術,客戶端的監聽埠開在防火牆信任的埠上,把所有要傳送的數據全部封裝到合法的報文里進行傳送,防火牆就不會攔截。如80(提供HTTP服務的埠)或21(提供FTP服務的埠),它會認為內部用戶在瀏覽網頁或進行文件傳輸,則木馬穿過防火牆。其實即使用戶使用埠掃描軟體檢查自己的埠,對類似TCP local address :1026 foreign address :80 ESTABLISHED的情況也未必注意。這樣,反彈埠型木馬不但可以穿過防火牆,而且可以通過HTTP、SOCKS4/ 5 代理,甚至還能訪問區域網內部的電腦。像用NAT透明代理和HTTP的 GET型代理等的區域網,還有撥號上網、ISDN、ADSL 等的主機,都有可能。
3 查殺方法
對是不是中了反彈埠型木馬我們可以做如下檢查:
(1)關掉所有的網路連接程序(如:IE瀏覽器、FTP服務等) ,轉入命令行狀態用netstat -a命令,netstat命令的功能是顯示網路連接、路由表和網路介面信息,可以讓用戶得知目前都有哪些網路連接正在運行。
(2)用網路監視軟體,如:sniffer、IParmor 等查一下自己懷疑的埠是否被偵聽。如在(1)中發現類似TCP local address :1026 foreign address :HTTP ESTABLISHED(或者是類似TCP local address :1045 foreign address:FTPESTABLISHED)的情況或在(2)中發現懷疑的埠被偵聽,有可能中了此類木馬。
目前發現的反彈埠型木馬有網路神偷和灰鴿子(輻射版)兩種。如果中了反彈埠型的木馬,對於網路神偷,我們可以用下面的方法清除:
(1)查看註冊表啟動項HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中的可疑鍵值(鍵名是在生成服務端時由用戶設置的)並刪除(做這一步必須對Windows註冊表非常熟悉),重啟后,再刪除系統目錄(C:\Windows\System)中的服務端程序(文件名也是由用戶設置的) 。
(2)在中了木馬的機器上運行客戶端程序,可以再生成並運行新的配置正確的服務端,就會把原來的服務端衝掉。重新運行客戶間,在客戶端的“服務端在線列表”找到自己並連接上,再用菜單“網路” — >“遠程卸載” ,就可以徹底清除。
對於灰鴿子,由於此軟體原理與其他同類軟體不同,它的服務端只有生成它的客戶端才能訪問,其他人是不可能訪問的,所以不能用自動卸載的方法清除它,只能手工清除:先刪除註冊表啟動項
(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)
(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices)
(HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)
中的可疑鍵值(鍵名是在生成服務端時由用戶設置的)。重啟后,再刪除系統目錄(C:\Windows\System)中的服務端程序(文件名也是由用戶設置的)。最後檢查一下是不是木馬程序與EXE關聯,如果與EXE關聯則修改註冊表:(HKEY_CLASSES_ROOT\exefile\shell\open\command\)默認值為:“%1”% 3。否則刪除服務端程序后什麼程序也不能運行了。
由於以前的木馬都是客戶端主動連接,所以目前大部分防火牆對於連入的連接往往會進行非常嚴格的過濾,對付木馬我們只要在防火牆上設置為只能連出不能連進,就可一勞永逸了。然而反彈埠型木馬的出現對傳統的防火牆提出了新的要求:防火牆不但要防外還要防內,即應用程序訪問網路規則,過濾那些存在於用戶計算機內部的各種不法程序對網路的應用,從而可以有效的防禦像“反彈式木馬”那樣的騙取系統合法認證的非法程序。當用戶計算機內部的應用程序訪問網路的時候,必須經過防火牆的內牆的審核。但這也帶來一些問題:我們在訪問網路的時候必須手工確認哪些程序合法,這個工作可能非常煩瑣。再者對一個電腦入門者,決策哪些程序合法也是一個非常困難的問題。防,隨著攻的發展始終存在不完善之處,但是卻始終遵循一個原則:魔高一尺,道高一丈。