隧道代理与端口转发的学习

作者 f0zz 日期 2022-01-19
隧道代理与端口转发的学习

在目标网络中建立立足点之后,想要以对方“本地”的形式访问对方网络中内部开放的端口,从而进行横向移动和纵向渗透

应用场所

在目标网络中建立立足点之后,想要以对方“本地”的形式访问对方网络中内部开放的端口,从而进行横向移动和纵向渗透

两种模式

代理分为主动和被动两种模式
主动模式指的是服务器开放端口监听,客户端主动访问
被动模式指的是客户端开放端口监听,服务器进行连接

被动模式的原因:firewall对主动发送的流量的处理没有接收到的流量那么严格,所有大都选用被动模式_( admin 监听, agent去连接admin)_

实验 Venom隧道代理

实验环境:

Windows 10x64 物理机
ubuntu 虚拟机(nat) 192.168.252.139_(ban kali)_
kali 2021虚拟机 192.168.252.143

image.png

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服务了,但是物理机依然可以访问
    image.png
    开启隧道代理进行访问
    这里以节点端作为服务端
    跳板机
    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_linux_x64 -rhost 192.168.0.108 -rport 9000
    在kali的admin端中,开启跳板机socks5代理
    (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.
    随后配置proxychains4
    sudo vim /etc/proxychains4.conf
    在最后一行添加
    socks5 127.0.0.1 9001
    尝试访问
    proxychains4 curl 192.168.252.139
    image.png
    image.png
    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连接

    image.png
    并且这里已经存在venom的代理连接

    关闭xp的3389端口

    image.png
    这时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

image.png
成功连接