内网穿透-ICMP协议

Posted 李志宽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内网穿透-ICMP协议相关的知识,希望对你有一定的参考价值。

 

ICMP协议


 

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

 

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

 

ICMP报文格式如下啊,可以看到icmp是有数据data部分的

 

 

我们ping一下8.8.8.8并抓个icmp的包看看

 

 

ICMP报文里面的类型、代码、校验和什么的我们不用管,重要的是数据部分(data)

 

可以看到啊,我们ping了8.8.8.8,icmp报文的data竟然是abcd......,一看就是没用的填充字符啊

 

返回包也是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.git
make

AB主机都需要禁用自带的icmp

sysctl -w net.ipv4.icmp_echo_ignore_all=1
echo 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

 

B主机进行回连A主机

./icmptunnel
opened tunnel device: tun0
connection established.
(ctrl-z  bg)

连接成功同样创业一个隧道接口tun0,需要配置一下ip

/sbin/ifconfig tun0 10.10.1.2 netmask 255.255.255.0

 

这样我们就有了icmp协议搭建的隧道,我们就可以使用此10.10.1.0/24网段访问B主机

 

比如ssh连接B主机

ssh xiaogang@10.10.1.2

 

或者使用ssh的端口转发开启socks代理,可见《内网穿透-ssh转发技术》

ssh -CfNg xiaogang@10.10.1.2 -D 127.0.0.1:1080

这样就可以设置浏览器代理或全局代理连接 socks://VPS:1080

 

下面是我用浏览器连接A主机的1080端口,访问B主机的web页面

看到这里的大佬,动动发财的小手 点赞 + 回复 + 收藏,能【 关注 】一波就更好了

我是一名渗透测试工程师,为了感谢读者们,我想把我收藏的一些网络安全/渗透测试学习干货贡献给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

① 2000多本网安必看电子书(主流和经典的书籍应该都有了)

② php标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ 网络安全基础入门、Linux运维,web安全、渗透测试方面的视频(适合小白学习)

⑤ 网络安全学习路线图(告别不入流的学习)

 渗透测试工具大全

⑦ 2021网络安全/Web安全/渗透测试工程师面试手册大全

各位朋友们可以关注+评论一波 然后加下QQ群:581499282  备注:CSDN  联系管理大大即可免费获取全部资料

注意


 

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

以上是关于内网穿透-ICMP协议的主要内容,如果未能解决你的问题,请参考以下文章

内网渗透系列:内网穿透(隧道)学习

红蓝对抗之隧道技术第二篇(reGeorg内网穿透SSH隧道本地Socks代理SSH远程转发Earthworm Socks5代理Tunna正向代理ICMP隧道DNS隧道Frp穿透)

红蓝对抗之隧道技术第二篇(reGeorg内网穿透SSH隧道本地Socks代理SSH远程转发Earthworm Socks5代理Tunna正向代理ICMP隧道DNS隧道Frp穿透)

FRP内网穿透工具

FRP内网穿透部署

内网渗透系列:内网隧道之ICMP隧道