专栏名称: 渗透师老A
不一样的角度学习五花八门的渗透技巧,了解安全圈背后的故事
目录
相关文章推荐
于小戈  ·  贵妇复出,富豪家没钱了? ·  昨天  
HOT男人  ·  我洗头1分钟,女友教我洗头30分钟! ·  2 天前  
于小戈  ·  顶线大花,第一眼都没认出是她 ·  2 天前  
于小戈  ·  几个月前还人见人骂,这就洗白了? ·  2 天前  
于小戈  ·  殿堂级天后,紧急割韭圈钱? ·  3 天前  
51好读  ›  专栏  ›  渗透师老A

实战 | 记一次授权网络攻防演练(上)

渗透师老A  · 公众号  ·  · 2022-08-09 10:38

正文

作者:yangyangwithgnu原文地址:https://www.freebuf.com/vuls/211842.html

完整攻击链大概包括信息搜集、漏洞利用、建立据点、权限提升、权限维持、横向移动、痕迹清除等七步,虽然这个站点只经历了前四步,但也具有较强的代表性,组合利用漏洞形成攻击链,拿下管理权限。


事情缘起

杜兄弟在某旅游集团公司任职 IT 技术主管,有两家驻场安全厂商为其提供安全服务,一家负责业务相关的渗透测试,一家负责网络访问、流量监测的安全管控,上周和他吃了个串串,整个饭局除了刚开始的寒喧,大部份时间就是布道,在他的管理下,生产系统做到了绝对安全


well,你知道的 虽然我在蓝队,但一直有颗红心 自然得怼一下,“这个还是要看攻击者哟,攻防演练没丢分,说明不了啥子三”,杜兄弟不高兴了,在酒精的作用下,他开腔了 ,“这样,我帮你申请 5K 的漏洞赏金,你看哈能找到啥问题不”。


对嘛,找得到,挣点油钱,找不到,当学习,于是就应下来了。


杜兄弟看我敢接招,临走前点了根烟,猛吸了两口,思索片刻后又给我加了两个限定条件:

一是,每步实质攻击前,必须先得到他的授权,


二是,单个漏洞不算完成任务,必须拿到操作系统 root。


wow,挺大的挑战 ,拿不下就打脸,我陷入激烈的思想斗争,wait、wait,我不是应该向钱看么,脸面不重要,ok,一下就想通了。


初步刺探


拿到的目标是个供应商管理系统,访问之,自动跳转至登录页面:



正准备启动信息收集工作,页面上有三个地方引起了我的注意:.do 的接口地址、登录功能、密码找回功能。


审查 .do 接口。看到 .do 自然联想到 struts2 命令执行全家桶。

看下用的哪种脚本语言:



的确是 java,用安恒出品的 S2 漏洞验证工具扫描下:


无果。


审查登录功能。登录功能的审查点很多,比如账号是否可枚举、密码是否可暴破,但前提是没有验证码,显然这里存在图片验证码,所以,我先确认验证码是否可绕过。


拦截登录请求:



应答标志为 2,第二次重发,应答标志变为 1:



显然,验证码防御机制有效,虽然 python 调用 tesseract 识别图片的手法可有效攻击图片验证码,但需要我爬取该站的大量图片来训练,这个阶段无需太深入,暂时放一放。


审查密码找回功能。密码找回功能很容易出现逻辑错误,经验来看,至少可从七个方面攻击密码找回功能:重置凭证接收端可篡改、重置凭证泄漏、重置凭证未校验、重置凭证可暴破、用户混淆、应答中存在影响后续逻辑的状态参数、token 可预测。


访问密码找回页面:



拦截密码找回的请求:



从应答描述可知,提示该用户不存在,重发几次,结果相同,说明图片验证码未生效,好了,第一个洞,用户名可枚举。


显然,用户名在该请求的 params 参数中,URL 解码可得明文:



于是,将 root 设定为枚举变量,加载中国人姓名(top500)、后台账号两个字典,进行枚举:



得到三个有效账号:nana、admin、liufei。


随意选个账号进入密码找回流程,liufei,应答为 JSON 数据,格式化后吓我一跳:


敏感信息大赠送!有邮箱,甚至有哈希密码。记下来,第二个漏洞,账号相关敏感信息泄漏。


我的目的很明确,获取登录密码,所以,我计划利用泄漏信息,从信息库和哈 希反解两方面达到目的。

信息库。提取邮箱中的用户名,liufei 的 liufei、nana 的 18xxxxxx56、admin 的 legxxxxxxng,在信息库中查询历史密码。


只找到 liufei 相关的多个历史密码,逐一验证,均错误。


哈希反解。提取三个账号的哈希密码,liufei 的 a1e0476879cab2a76cc22c80bbf364dd、nana 的 208f0aba4a6d4b9afe94207e6c57d594、admin 的 3faf009c43bb39c5a37859bc48feaff3。


有了哈希密码,第一时间查彩虹表,反解明文密码:



只有账号 liufei 的密码解出为 !QAZ2wsx,nana、admin 无解,暂时放下。第三个漏洞,业务系统存在弱口令账号 liufei。


低权进站


通过 liufei / !QAZ2wsx 登录网站:



功能非常有限,只有个回收站,里面没有业务任何数据。


上图中有几个输入框,应该是个查询功能,但是找不到查询按钮,尝试在前端 HTML 源码中翻找查询接口,无果;在 burp 的报文历史中审查 JS,也没找到有用的接口。看来,还得找个高权限的账号。


回到先前未反解出来的两个账号,nana 的 208f0aba4a6d4b9afe94207e6c57d594、admin 的 3faf009c43bb39c5a37859bc48feaff3。


https://www.cmd5.com/拥有海量的彩虹表数据,它反解不出来,很可能是个强口令。对于强口令的暴破,我习惯围绕用户名,制作具有社工属性的密码字典,如,用户名 nana,社工属性密码可能为 NaNa、na520na、nana@19901015。如何生成社工属性密码字典?


hashcat!对滴,hashcat 不仅是哈希暴破神器,也支持基于规则生成密码字典,规则库位于 hashcat/rules/:



其中,dive.rule 含有我需要的规则,选之。我把 nana 视为基础信息存入 base.txt 中作为输入,让 dive.rule 模仿学习生成类似的密码字典,保存至 se_passwds.txt:



接着用社工字典暴破哈希密码:



7 秒出结果,得到 nana 的密码 nanacnacnanac,第四个漏洞,业务系统存在社工属性口令账号 nana。用类似的手法,制作了账号 admin 的社工密码字典,遗憾,并未暴出 admin 的密码。没关系,用 nana / nanacnacnanac 登录系统,或许有新发现。


一旦进入后台,习惯上先找三类功能:上传功能、查询功能、命令功能。上传功能,通过各种任意文件上传攻击手法,上传 webshell;


查询功能,审查是否存在 SQL 注入,拿数据(如,哈希密码);


命令功能,指那些有著名工具实现的功能,比如,输入个 IP,业务功能探测该 IP 是否存活,服务端可能执行了 ping 命令,又如,上传个压缩包,页面显示压缩包内容,服务端可能执行了 unzip 命令,这时,用命令注入或命令选项注入的手法,攻击服务端。


登录 nana 账号,业务功能也不多,但有个上传功能:



我得深入审查它,或许是 getshell 的唯一通道。


先上传一个正常的 PNG 图片,页面报错,提示非管理员禁止上传:








请到「今天看啥」查看全文


推荐文章
于小戈  ·  贵妇复出,富豪家没钱了?
昨天
于小戈  ·  顶线大花,第一眼都没认出是她
2 天前
于小戈  ·  殿堂级天后,紧急割韭圈钱?
3 天前
笑点研究所  ·  点个赞而已,就是性暗示了?
8 年前
心理语录  ·  从前的我错了,现在的我明白了。
7 年前
浙江大学团委  ·  军训后迅速变白的秘诀
7 年前