安全矩阵

 找回密码
 立即注册
搜索
查看: 1568|回复: 0

XX第五届对抗赛

[复制链接]

181

主题

182

帖子

721

积分

高级会员

Rank: 4

积分
721
发表于 2022-6-27 00:33:49 | 显示全部楼层 |阅读模式
本帖最后由 wangqiang 于 2022-6-27 00:38 编辑

XX第五届对抗赛
17岁的one 衡阳信安
2022-06-26 00:34 发表于山东
转载地址:XX第五届对抗赛

前言
据上次部门内组织的对抗赛-记一次内部红蓝对抗已经过去两届了,第四次的时候导师将靶场的网络拓扑重新设计了下,当时是以防守队的身份参与。
这次有幸以靶场环境设计的角色参与,在之前原有网络拓扑的基础下重新部署了漏洞环境,便有了本文。

背景介绍:目标是拿到企业www.xxx.com的《上市商业计划书.docx》,通过OPENVPN访问。
特别提出的得分规则修改,权限的得分必须有WEBSHELL/交互式SHELL,只有一个漏洞回显不给分,更加偏向考察漏洞利用而非漏洞验证。
Author: 0ne

DMZ区

DMZ区大概有9台机器,3台入口点和官网分别用防火墙映射出去模拟互联网,4个页面分别对应xxx.com的四个子域名。

Ngnix解析漏洞
在网站目录下写了个upload.html页面,考察路径扫描,上传页面是做了白名单校验,本来是考察在有WAF情况下怎么判断黑白名单,如果一开始
就上传webshell,包被阻断就不好判断是程序不允许还是WAF拦截了,会浪费些许时间。但是在实际的过程中考虑难度就未启用WAF。细心的同学可能
看见Ngnix版本信息就会联想到解析漏洞,有经验的同学可能看见PHP+白名单可能也会第一时间联想到解析漏洞。

未预期的解?:上传的php代码是在菜鸟教程找的。笔者测试的时候,发现"白名单可以绕过",win环境+文件上传后未重命名。
其中<>?/^*:|"等符号不允许在文件名中出现。所以有了:

1.php:.png能够落地1.php,但是文件内容为0kb,绕不过去。哈哈哈嗝,等一个师傅能落地webshellQAQ

PHPStudy后门
常规RCE漏洞+win环境+杀软的考察,留了php探针页面。一些常用的下载执行的命令无法使用会被拦截,绕过可自行测试LOLBAS。
其实这个漏洞本质还是php代码执行,可以直接用file_put_contents()写入一句话:


很多同学还是用的system('echo/powershell/certutil')写入,杀软不给力PHP_CGI.exe调powershll/certutil写文件或是解码,进程链未拦截,
初衷还是希望大家能代码执行的时候不调用命令执行。

Fastjson漏洞
本来部署的靶场是shiro JRMP链+win+杀软的,奈何不懂java,捣鼓半天没弄出来

原意是想让大家修改yso实现代码执行打shiro JRMP实现内存马/下载执行【java实现】/静态资源写webshell,但卒QAQ
考察JNDI注入+win环境+杀软上线问题,比较通用的方法就是内存马/下载执行【java实现】/静态资源写webshell,需要自己动手
写恶意类实现上述功能,以静态资源为例,如何拿到web路径:


其中一只攻击队同学是echo写入再certutil解码:



如果使用JAVA代码实现恶意EXE的下载执行上线,建议先判断System.getProperty("os.name")和System.getProperty("os.arch")。
git有很多优秀的JNDI利用工具可以使用,但是初衷还是希望自己动手实现上述场景定制的恶意类,一个包就打成功,攻击流量不要太多。
办公网

办公网大概有7台主机通过DMZ区redis打过来,其中SMB泄露的账号密码直接用impacket包横向移动的脚本利用。同事帮忙搭了log4j漏洞的环境
和完善了办公网的路径分,log4j的利用和fastjson那台利用手法相似。
办公网跨域还是沿用了上次的保存的RDP连接记录。
需要提及的就是从域外如何发现域,除了网络侧netbios扫描或是88&389等常用端口的扫描【需要知道网段,很可能触发大量流量】,若工作组主机DNS服务器是域控时,
可nslookup 域名根据返回DNS服务器名称判断是否有域,主机侧还可以收集的信息就是cmdkey /list |findstr Domain和mimikatz收集的凭据。


shell dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*
RDP密码破解参考。

域环境

域环境有8台主机,靶标在corp1.com域内,需要拿下corp1域管权限才能登录。
域内部分主机不出网,以下方便复现给VPSIP开了出网白名单,实际解决可利用beacon_bind_pipe/beacon_bind_tcp/pivot listener
利用RDP破解的dev\user02登录C06,有applocker,限制了执行的程序,于是dll上线,白+黑参考LOLBAS。

dev01.dev.corp1.com-10.5.12.248,起socks4A代理域外sAMAccountName spoofing直接打,利用成功会生成一张域管访问dev01的ST,PTT利用secretsdump.py获取krbtgt:


生成黄金票据:

域内横向移动常见方法:SC, AT/SCHTASKS, PSEXEC, WMI, WINRM, DCOM.
上线dev01,CS自带的remote-exec wmi报错,psexec执行上线了但是又掉了,不稳定,还是手敲:
shell wmic /node:dev01 process call create "C:\xx\beacon.exe"

在DEV01-beacon运行mimikatz获取凭证发现corp1\jeff用户,steal jeff用户的token,再Kerberoasting,发现报错:


只好pth,模拟corp1\jeff权限:

在corp1域Kerberoasting发现SPNuser->user_S02:
execute-assembly C:\Users\Rubeus.exe kerberoast /outfile:C:\Users\jeff\tgs.txthashcat -m 13100 -a 0 --force tgs.txt /usr/share/wordlists/FastPwds.txt

在dev01-beacon以corp1\user_S02派生会话,发现失败,不能登录,于是在C06上派生会话,以corp1\user_S02进入corp1域内:


发现corp1\user_S02是S02的管理员:

和上线dev01一样,上线S02:

发现S02上跑着corp1域管的进程:

窃取token,corp1域管权限,成功拿下靶标S03,窃取目标文件:

题外话
溯源反制是可遇不可求的事,通过攻击流量找到人或是反制C2通常是攻击的VPS关联了自己的域名信息,或是有自己ID的payload,或是踩了蜜罐。
反制可能是攻击者在不恰当的目录下开了http服务。
上次攻防对抗的时候用了UNC获取攻击者ID,还比较好使:
编辑

利用desktop.ini获取访问诱饵文件的ntlm请求,做好后压缩为www.zip,等人下载解压。

因为在/root目录下误启用python-http服务导致的反制:

来源:先知(https://xz.aliyun.com/t/11158#toc-0)






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-28 18:59 , Processed in 0.013254 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表