网络安全之红蓝对抗实战
前言
背景介绍:目标是拿到企业www.xxx.com
的《上市商业计划书.docx》,通过 OPENVPN 访问。特别提出的得分规则修改,权限的得分必须有 WEBSHELL/交互式 SHELL,只有一个漏洞回显不给分,更加偏向考察**漏洞利用
**而非漏洞验证。
DMZ 区
DMZ 区大概有 9 台机器,3 台入口点和官网分别用防火墙映射出去模拟互联网,4 个页面分别对应 xxx.com 的四个子域名。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mKNzOL7i-1649485754984)(https://upload-images.jianshu.io/upload_images/26472780-a10992982dbbeca2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
Ngnix 解析漏洞
在网站目录下写了个 upload.html 页面,考察路径扫描,上传页面是做了白名单校验,本来是考察在有 WAF 情况下怎么判断黑白名单,如果一开始就上传 webshell,包被阻断就不好判断是程序不允许还是 WAF 拦截了,会浪费些许时间。但是在实际的过程中考虑难度就未启用 WAF。细心的同学可能看见 Ngnix 版本信息就会联想到解析漏洞,有经验的师傅可能看见 PHP+白名单可能也会第一时间联想到解析漏洞。测试的时候,发现"白名单可以绕过",win 环境+文件上传后未重命名。其中<>?/^*:|"等符号不允许在文件名中出现。所以有了:
1.php:.png 能够落地 1.php,但是文件内容为 0kb,绕不过去。,等一个师傅能落地 webshell。
【一>所有资源获取<一】1、很多已经买不到的绝版电子书 2、安全大厂内部的培训资料 3、全套工具包 4、100 份 src 源码技术文档 5、网络安全基础入门、Linux、web 安全、攻防方面的视频 6、应急响应笔记 7、 网络安全学习路线 8、ctf 夺旗赛解析 9、WEB 安全入门笔记
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,但卒。考察 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 收集的凭据。
域环境
域环境有 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 执行上线了但是又掉了,不稳定,还是手敲:
在 DEV01-beacon 运行 mimikatz 获取凭证发现 corp1\jeff 用户,steal jeff 用户的 token,再 Kerberoasting,发现报错:
只好 pth,模拟 corp1\jeff 权限:
在 corp1 域 Kerberoasting 发现 SPNuser->user_S02:
在 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 服务导致的反制:
评论