ICMP隧道之PingTunnel利用

ICMP隧道

icmp隧道简单、实用,是一个比较特殊的协议。在一般的通信协议里,如果两台设备进行通信肯定需要开放端口,而在icmp协议中则不需要。最常见的icmp消息为ping命令的回复,攻击者可以利用命令行得到比回复更多的icmp请求。
利用价值,在利用 ping 穿透防火墙的检测,因为通常防火墙是不会屏蔽 ping 数据包的。

PingTunnel

用于通过ICMP回显请求和答复数据包(通常称为ping请求和答复)可靠地建立TCP连接的隧道。这对于避免由于某种原因阻止传出TCP连接但允许传入和传出ICMP数据包的防火墙很有用。隧道通过使代理在防火墙内部可ping通的计算机上运行,​​而客户端在需要TCP访问的本地计算机上运行来工作。

环境配置

攻击机和跳板机都需安装 pingtunnel工具
在这里插入图片描述
也可以编译该c项目得到win下exe版本,使用工具时win环境下得安装wincap
https://www.winpcap.org/install/default.htm
在这里插入图片描述
在这里插入图片描述

PingTunnel 的解压,配置,安装
tar -zxvf PingTunnel-0.72.tar.gz
cd PingTunnel
make && make install (注意gcc版本不能过低,gcc版本要求较高我用的10.2)
如果安装中出现报错,例如提示缺少pcap.h,则需要安装libcap(数据包捕获函数库)用于捕捉经过指定网络端口的数据包。在windows平台类似的库叫做wincap
在这里插入图片描述
(若安装出现错误,可能需安装libpcap/wincap数据包捕获函数库,wget下载 http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
在这里插入图片描述
./configure
在这里插入图片描述
apt-get install flex bison
apt-get install -y byacc
在这里插入图片描述
make && make install
在这里插入图片描述
man pcap查看是否安装成功
在这里插入图片描述
攻击机与跳板均能正常使用
在这里插入图片描述

实验利用
  1. 攻击机:kali2020 —— 192.168.101.129
  2. 跳板机:Ubuntu —— 192.168.101.128 ,10.10.10.130
  3. 靶    机:win7 —— 10.10.10.128

在这里插入图片描述
Ubuntu 跳板机
开启隧道
ptunnel -x [隧道连接密码]
在这里插入图片描述
Kali 攻击机
ptunnel -p [跳板机ip] -lp(监听本地TCP) [监听本地port] -da [目标机ip] -dp [目标机port] -x [密码]
ptuunel -p 192.168.101.128 -lp 4444 -da 10.10.10.128 -dp 3389 -x password
在这里插入图片描述
以上含义:在访问攻击机的监听端口时,会把目标机的3389端口封装在ICMP隧道,以Ubuntu为跳板进行传送

客户端连接攻击机的监听端口
在这里插入图片描述
在这里插入图片描述

查看流量包

由于数据是利用PING请求/回复报文通过网络层传输,因此并不需要指定服务或者端口。这种流量是无法被基于代理的防火墙检测到的,因此这种方式可能绕过一些防火墙规则。加上我使用软件/服务去进行连接,由于本次实验使用软件进行的远程连接,自然作为客户端通过握手,客户端和服务器协商各种参数用于创建安全连接:

  1. 当客户端连接到支持TLS协议(安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性)的服务器要求创建安全连接并列出了受支持的密码组合(加密密码算法和加密哈希函数),握手开始。
  2. 服务器从该列表中决定加密和散列函数,并通知客户端。
  3. 服务器发回其数字证书,此证书通常包含服务器的名称、受信任的证书颁发机构(CA)和服务器的公钥。
  4. 客户端确认其颁发的证书的有效性。
  5. 为了生成会话密钥用于安全连接,客户端使用服务器的公钥加密随机生成的密钥,并将其发送到服务器,只有服务器才能使用自己的私钥解密。
  6. 利用随机数,双方生成用于加密和解密的对称密钥。这就是TLS协议的握手,握手完毕后的连接是安全的,直到连接(被)关闭。如果上述任何一个步骤失败,TLS握手过程就会失败,并且断开所有的连接。
    在这里插入图片描述
    在这里插入图片描述
总结

当内网目标机器权限被拿下且连接受到防火墙策略对TCP等更上层协议的限制时,外网机器又没办法直接连接内网机器服务,通过PingTunnel工具,我们就可以将内网机器的服务端口转发到拥有内外网卡的机器即跳板机端口上,然后外网机器就可以访问内外网机器的转发端口即可访问到内网指定的服务。
 

GOT IT!

 
******************************************************
小实验小结,具体测试利用方式需根据具体实践场景~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值