填坑,之前frp和socks隧道代理后,proxychain4 ping无法返回包,此次学习了pingtunnel与icmp隧道绕过
网络拓扑图如下
前置知识
icmp协议
ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用 (百度百科)
icmp隧道
在实际的后渗透阶段:因为防火墙(大多不止一个)存在,未必开启了可以使用的端口(有时是因为要到的shell权限过低等无权操作防火墙)进行利用。那么可以利用icmp隧道建立联系。因为icmp协议工作在网络层,依附于IP工作,(像上一篇文章的坑:ping无数据包返回)。
因此,我们可以包tcp/unp数据包封装到icmp协议中(还在学习中,解释如下):
请求端的 Ping 工具通常会在 ICMP 数据包后面附加上一段随机的数据作为 Payload,而响应端则会拷贝这段 Payload 到 ICMP 响应数据包中返还给请求端,用于识别和匹配 Ping 请求。
Windows 和 Linux 系统下的 Ping 工具默认的 Payload 长度为 64 比特,但实际上协议允许附加最大 64K 大小的 Payload。 对于隧道数据,icmptunnel 首先会指定客户端和服务器端。随后,客户端会将 IP 帧封装在 ICMP 请求数据包中发送给服务器,而服务器端则会使用相匹配的 ICMP 响应数据包进行回复。这样在旁人看来,网络中传播的仅仅只是正常的 ICMP 数据包。 解释内容参考:先知社区《内网渗透之icmp隐藏隧道》
ptunnel工具
ptunnel是一款建立ICMP隧道传输数据的工具。
命令释义:
参数-p:指定代理服务器,即此示例中的代理服务器B(192.168.1.2)
参数-lp:指定本地监听端口
参数-da:指定欲访问的目标服务器
参数-dp:指定欲访问的目标端口
待更新。。。。