海洋CMS是用Windows 2008 R2系统搭建,PHPOA用Linux系统搭建,由于实验环境是事先搭建好了的,以是在这里就不重复了。
环境配置→网络配置
首先我们做的是内网的渗透,以是我们须要配置海洋CMS两个虚拟网卡,两个不同网段的IP,也便是相称于一个是内网,一个是外网,内网连接网的段是跟PHPOA为同一个网段(192.168.80.0/24),内网之间网络要能ping通,外网跟攻击者一个网段(192.168.1.0/24),也要能ping通,攻击者不能直接访问内网,Windows海洋CMS的IP配置(如图1),攻击者IP配置(如图2),Linux的内网IP配置(如图3)。
图1
图2
图3
防火墙配置
海洋CMS做事器防火墙必须开启,防火墙加上两条规则担保web做事能够访问,通过掌握面板打开Windows防火墙,点击高等设置,在入站规则和出站规则加上80端口许可连接的规则;而PHPOA 的Linux做事器须要配置以下几条规则(如图4)。
iptables -P INPUT DROP 禁止所有进站链接
iptables -I INPUT -p tcp --dport 80 -j DROP 禁止所有80端口的链接
iptables -I INPUT -s 192.168.80.10 -p tcp --dport 80 -j ACCEPT只许可指定的内网IP访问80端口
图4
3.实验事理海洋CMS漏洞事理:
通过代码审计,利用area参数处理过的地方经由字符是否造孽判断之后,调用echoSearchPage()函数,由于能实行PHP代码一样平常便是eval()函数,利用area参数把eval函数带入进去实行。
lcx端口转发事理:
lcx事情事理是使不同端口之间形成一个回路,这样就可以进行端口转发,常用于外网连接内网3389端口。
这个程序紧张采取Socket来实现,有几个比较主要的函数:bind2bind、bind2conn、conn2conn及transmitdata。transmitdata函数是核心,这个函数浸染是使得不同端口之间的数据形成一个回路
内网代理事理:
正向代理:Lhost为了访问到Rhost,向proxy发送了一个要求并且指定目标是Rhost,然后proxy向Rhost转交要求并将得到的内容返回给Lhost,大略来说正向代理便是proxy代替了我们去访问Rhost。
反向代理:Lhost只向proxy发送普通的要求,详细让他转到哪里,proxy自己判断,然后将返回的数据递交回来,这样的好处便是在某些防火墙只许可proxy数据进出的时候可以有效的进行穿透
而我们平常利用的reDuh、tunna,和reGeorg一样,都是正向代理。一样平常都是用户上传一个代理脚本到做事器端,本地的程序去连接做事器上的脚本,脚本程序做代理转发轫口和流量。
渗透测试步骤利用到的工具中国菜刀,lcx.exe转发软件,Proxifier代理软件。
进行外网web渗透→拿外网webshell
海洋web通过代码审计可以得出area参数里利用eval()函数把一句话木马带入,把变量打印出来。
Payload:http://192.168.1.109/search.php?searchtype=5&tid=&area=eval($_POST[hah])
之后直接用菜刀链接,密码是hah(如图5),直接就能拿到webshell,而且还是system权限的(如图6)。
图5
图6
通过端口转发远程连接做事器之后通过菜刀的虚拟终端创建我们的管理员用户考试测验开启做事器的3389端口远程连接登录并掌握该做事器。(如图7,图8)
图7
图8
由于做事器开启了防火墙屏蔽了3389端口了(如图9),不能远程登录到web做事器,以是我们可以利用端口转发来连接做事器。
图9
通过菜刀直接可以上传我们须要的转发工具lcx.exe(如图10),实行以下命令(如图11,图12),再考试测验连接,连接成功(图13)。
图10
图11
图12
图13
内网代理与渗透→内网代理
通过最大略的arp –a地址解析协议就可以查到内网还存在的一台主机IP地址(如图14),当然真正的内网扫描会有很多的主机,以是必须得利用其它的扫描工具,比如nmap,在这里就不演示了。内网的web做事器外网是无法访问的,只能内网访问,以是我们可以利用内网代理来实现外网主机访问内网主机。
图14
还是由菜刀来把我们事先准备好的reGeorg的对应脚本tunnel.nosocket.php文件上传到web做事器的web目录下(如图15),再通过网页运行一下该文件(如图16)没问题,正常运行,接着打开攻击者reGeorg的对应目录下CMD运行reGeorgSocksProxy.py -p 8888 -u http://192.168.1.109/include/tunnel.nosocket.php命令(如图17),之后直接打开我们的代理软件Proxifier设置代理,成功利用内网代理访问内网的主机(如图18)。
图15
图16
图17
图18
内网渗透
既然我们能通过内网代理直接访问内网主机就可以开始对该内网做事器进行渗透,首先我们可以看到站点直接便是在登录页面的,而且登录不须要验证码,可以考试测验密码爆破,这个韶光会比较长,以是我们在这期间可以找找有没有别的漏洞,相对付这个PHPOA的CMS漏洞,网上可以找到的是属于文件上传漏洞,那么我们可以考试测验下该CMS漏洞还存不存在。
要想把一个php木马挂到网站上首先要在本地布局上传地址。下图便是我构建的上传地址(如图19)。此路径也是由代码审计得出的。
图19
利用我们布局好确当地上传HTML把PHP木立时传到内网的做事器主机上,第一个上传的是随便一个TXT文件,第二个选择我们的PHP一句话木马文件(如图20)。上传成功后给出了一个文件的上传路径(如图21),然后考试测验菜刀连接(如图22),没问题,内网的webshell也已经拿到了。
图20
图21
图22
实验总结总结
通过本次渗透测尝尝验可以看出海洋CMS与PHPOA的安全防护结果不是很空想,外网内置参数与函数过滤不足严格,权限策略设置不当,从而导致一步就能拿到webshell以及最高权限。而内网存在文件上传漏洞,权限中存在漏洞或者权限策略做的不足得当。本次渗透的打破口紧张是分为内网和外网,外网设备存在注入和弱口令破解。内网由于arp防火墙策略做的不是很严密。导致内网沦陷。
安全加固建议
对本次渗透给予安全加固建议:
1. 对用户可控的变量进行严格的检讨和过滤;
2. 文件上传利用随机数改写文件名和文件路径,上传目录无实行权限;
3. 还有一些加固建议暂时没明白,待续。
末了,渗透测试的小伙伴们,欢迎私信我