在目标网络中建立立足点之后,想要以对方“本地”的形式访问对方网络中内部开放的端口,从而进行横向移动和纵向渗透
应用场所
在目标网络中建立立足点之后,想要以对方“本地”的形式访问对方网络中内部开放的端口,从而进行横向移动和纵向渗透
两种模式
代理分为主动和被动两种模式
主动模式指的是服务器开放端口监听,客户端主动访问
被动模式指的是客户端开放端口监听,服务器进行连接
被动模式的原因:firewall对主动发送的流量的处理没有接收到的流量那么严格,所有大都选用被动模式_( admin 监听, agent去连接admin)_
实验 Venom隧道代理
实验环境:
Windows 10x64 物理机
ubuntu 虚拟机(nat) 192.168.252.139_(ban kali)_
kali 2021虚拟机 192.168.252.143
Venom介绍
地址:[https://github.com/Dliv3/Venom](https://github.com/Dliv3/Venom)
Venom有admin和agent两个节点,admin负责监听端口,agent负责连接节点
$ ./admin_linux_x64 lport 9000 (开始listen9000端口)
$ ./agent_linux_x64 rhost 192.168.252.139 -rport 9000 (发送到192.168.252.139的9000端口)
抄的特点,用的时候学到
- 可视化网络拓扑
- 多级socks5代理
- 多级端口转发
- 端口复用 (apache/mysql/…)
- ssh隧道
- 交互式shell
- 文件的上传和下载
- 支持多种平台(Linux/Windows/MacOS)和多种架构(x86/x64/arm/mips)
实验过程
打开Ubuntu的http服务后,使用kali进行访问
使用iptables将kali的ip ban掉
sudo iptables -I INPUT -s 192.168.252.143 -j DROP
这时的kali已经访问不了ubuntu的http服务了,但是物理机依然可以访问开启隧道代理进行访问
这里以节点端作为服务端跳板机 C:\Venom> agent.exe -lport 9000 2022/01/19 21:46:28 [+]Remote connection: 192.168.0.108:14157 2022/01/19 21:46:28 [+]A new node successfully connects to this node
在kali的admin端中,开启跳板机socks5代理kali $ ./admin_linux_x64 -rhost 192.168.0.108 -rport 9000
随后配置proxychains4(admin node) >>> show A + -- 1 (admin node) >>> goto 1 node 1 (node 1) >>> socks 9001 a socks5 proxy of the target node has started up on the local port 9001.
sudo vim /etc/proxychains4.conf
在最后一行添加socks5 127.0.0.1 9001
尝试访问proxychains4 curl 192.168.252.139
firefox在走proxychains代理时,浏览器不允许设置代理。防止冲突
实验2 Venom实现多层代理
承接实验1,在执行goto进入新的主机后,开始在新的主机中监听某个端口。
(admin node) >>> (admin node) >>> goto 1
node 1
(node 1) >>> listen 9001
listen 9001
the port 9001 is successfully listening on the remote node!
然后在跳板机2上执行agent.exe -rhost 192.168.252.139 -rport 9001
(192.168.252.139是跳板机1的ip地址)
(node 1) >>> show
A
+ -- 1
+ -- 2
这样就完成了多层代理的操作
实验3 端口转发
实验环境:
winxp 192.168.245.128
kali 192.168.252.143
在禁用3389的情况下,使用Venom将端口转发到3390,并且完成rdesktop远程桌面
端口转发分为本地端口转发和远程端口转发
- 本地端口转发就是将本地(admin节点)的端口转发到目标节点的 端口上。例如,将本地端口为80的Web服务转发到目标节点的80端口上
lforward 127.0.0.1 80 80
然后在目标节点的80端口上就可以访问该Web服务了 - 远程端口转发是将远程节点的端口转发到本地端口上。例如,将 前面目标节点打开的80端口再转发到admin节点的8080端口
rforward ip 80 8080
初始状态:允许rdesktop连接
并且这里已经存在venom的代理连接关闭xp的3389端口
这时kali已经无法成功连接
远程端口转发将3389端口转发到本地3390
(node 1) >>> rforward 192.168.245.128 3389 3390
forward remote network 192.168.245.128 port 3389 to local port 3390
成功连接