简介:面向OSCP备考人员及渗透测试初学者,这份资料围绕渗透测试全生命周期,系统整理了通用测试方法、操作技巧与常用工具,内容覆盖Web服务、系统服务、Linux提权、Windows提权、靶机Writeups等核心模块;既适合按目录速查知识点,也适合结合靶机环境边练边学,是备考过程中实用的一站式参考。压缩包共119个文件,以81份Markdown笔记为主干,笔记内容涵盖从入门到进阶的要点整理,同时包含PHP/ASP/ASPX等Web shell脚本、Shell/Python/Perl/C编写的辅助工具与漏洞利用代码(如CVE-2002-0082)、PNG/JPG示意图、考试报告模板DOCX等,整体大小仅5.87MB,轻量易携带。已有113人学习下载。具体内容包括OSCP考试要求与常见问题中文翻译、监考工具说明、学生手册、官方实验室靶机攻略、考试报告模板修改版、Vulnhub靶机攻略以及多个可直接参考的Web shell和提权脚本,从规则解读到实战手法均有覆盖,对备考冲刺和日常渗透测试工作都有直接帮助。尤其适合在冲刺阶段对照官方要求查漏补缺,也可作为平时查阅知识点的紧凑工具库。
1. 备考 OSCP 的资料包,价值不在“存了多少”,而在“打开时能不能用”
我见过太多人备考 OSCP 的第一步是囤资料:从论坛、网盘、付费星球里扒下来一堆“渗透测试干货资料.zip”,文件名长得像加密口令,解压后又是一个更大的 zip,套娃套了三四层。最后真正打开的次数屈指可数——不是不想学,而是资料一多,光想清楚“今天到底该看哪一份”就要花掉半小时。备考 OSCP 本身是时间密集型的事情,官方靶场的机器、实验手册、命令速查、写报告的时间都要挤,花在找资料上的每一分钟都是在消耗训练配额。这篇文章想讲清楚的,恰恰是怎么让一份 zip 真正变成你的备考杠杆:它应该包含哪些内容、目录怎么组织、拿到手之后怎么安全打开、以及怎么识别那些会让你浪费几天时间的过期资料和坏包。适合两类人:一是已经报名或准备报名 OSCP,正在攒资料的;二是手里已经有一堆“干货资料包”,但打开率极低的。前者可以照着这个体系重新组织自己手头的资料,后者至少能学会一个道理——备考资料不是用来收藏的,是用来反复打开和改写的。
2. 先拆考试再选资料:OSCP 需要的四类干货和优先级
2.1 用考纲反推资料清单,比收藏别人整理好的现成包更靠谱
备考资料包最大的问题是“什么都有,但都没有针对性”。OSCP 的考试是偏实操的认证,当前版本的考纲大致由独立靶机加一套 Windows 域环境(Active Directory 攻击链)构成,考生需要在限定时间内完成枚举、漏洞识别、利用、提权,最后提交一份中文叫“报告”的专业英文文档,里面要写清楚攻击路径和复现步骤。决定你过不过的,不是你看过多少篇漏洞分析,而是你在靶场上练出了多少肌肉记忆。所以我整理资料包的时候,从来不按“PDF 文件夹、视频文件夹、工具文件夹”这种按文件类型分的方式,而是按考试的环节拆:枚举、Web 漏洞、权限提升、AD 攻击链、报告写作。这样做的原因是,学习的时候是沿着一条攻击链走的,资料也应该沿着同一条链排。你在内网里拿下一台机器,接下来要查“Linux 提权的 check list”,这时候最怕的就是还要翻三层目录、再筛掉 30 个文件名毫无区别的 PDF。资料按阶段组织,查一次就能定位,这份成本省下来,省的是注意力。
下面这张表是我整理资料包的默认结构,也是我判断一份“渗透测试干货资料.zip”值不值得要的标准:
| 资料类型 | 对应考试环节 | 优先级 | 典型内容 |
|---|---|---|---|
| 枚举命令速查与输出解读 | 信息收集/初步立足 | 极高 | nmap 脚本、端口服务识别、目录扫描字典 |
| 漏洞利用与 Web 攻击手册 | 初步立足/定向攻击 | 高 | SQL 注入、文件上传、反序列化、常见 CVE 复现笔记 |
| 提权清单与checklist | 拿到立足点之后 | 极高 | Linux/Windows 内核漏洞、SUID、服务弱配置 |
| Active Directory 攻击路径笔记 | 域环境攻击链 | 极高 | ASREP、Kerberoasting、ACL 滥用、域间信任 |
| 报告模板与截图规范 | 提交报告 | 高 | 攻击路径图、复现步骤、引用格式 |
2.2 命令速查是最高频的生产资料,资料包里最值钱的内容往往是一页命令
OSCP 考试里真正卡人的,不是某个高深的 0day,而是“信息摆在面前你没认出来”。比如看到 445 端口开放,应该立刻想到 SMB 枚举的几条命令;看到 Linux 靶机上有写权限的脚本,应该立刻想到能不能替换或者往里面注入命令。这些反应速度,靠的是命令速查表的重复翻看。所以一份干货资料包里最值钱的文件,不是我以前以为的“XX 漏洞原理详解.pdf”,而是一份足够浓缩的枚举命令清单:nmap 的常用脚本参数、smbclient 的枚举方式、Linux 提权时第一轮该跑哪些检查项、Windows 下用 PowerView 查域信息的常用命令。这类资料不需要长,两三页就够,但必须能让你在敲命令的时候直接照抄,而不是还要翻译一遍思路再想参数。
我一般会把这类速查单独放在一个叫cheatsheets/的目录里,文件名直接写用途,比如linux-enum-commands.md、ad-attack-quick-ref.md。如果你拿到的资料包里没有这种按用途命名的速查,而只有一堆长篇 PDF,那么再“干货”我也建议自己花一个下午做一份。做速查本身就是在备考,因为你要从资料里挑命令、测命令、删掉跑不通的,这个过程相当于把别人的知识转成自己的肌肉记忆。
2.3 靶机笔记和实验手册决定你有多少有效练习,而不是有多少阅读量
我要说一句可能泼冷水的话:备考 OSCP 的资料包里,理论文档的重要性远低于“带命令、带输出、带踩坑记录”的靶机 walkthrough。原因是 OSCP 考试不问你“什么是 DLL 注入”,而是给你一台机器,让你自己把它打下来。你需要的资料是一份能照做的实验手册:比如“这台 HTB 机器是先通过 NFS 拿到一个脚本,脚本里泄露了数据库口令,再用口令登录 phpMyAdmin 写马”。这种顺序和路径没法靠读理论推出来,只能靠看别人怎么一步步走过来,然后自己在靶场上复现一遍。所以我整理资料包时有个习惯:凡是纯概念型的 PDF,最多留一本当手册查;凡是带命令带截图的靶机笔记,全部单独放一个walkthroughs/目录,并且至少手抄复现过五篇以上,才允许自己认为“掌握了”。如果一份资料包里全是理论 PDF,没有任何一篇能让你对着终端复现的笔记,那这份 zip 对你的备考价值就要打个问号。
3. 把资料整理成 zip:目录结构、命名规范与打包脚本
3.1 目录按攻击链分,不按文件类型分,这是资料包能不能被用起来的分水岭
我见过最糟糕的资料包结构是这样的:教程/、视频/、PDF/、工具/,每个文件夹下面堆了几十个文件,文件名五花八门,“笔记最终版.pdf”和“笔记最终版2.pdf”并排躺着。这种包解压完,你只会获得一个巨大的心理负担。正确做法是让目录结构模拟一次完整的攻击流程,这样你在练习时是顺着目录走,而不是在目录里迷路。我常用的目录骨架是这样的:
oscp-prep-pack/ ├── 00-start-here.md ├── 01-recon/ # 枚举与信息收集 │ ├── nmap-cheatsheet.md │ ├── web-enum-tools.md │ └── dicts/ # 目录扫描字典 ├── 02-exploit/ # Web 漏洞与利用 │ ├── sqli-notes.pdf │ ├── file-upload-bypass.md │ └── known-cves/ ├── 03-privesc/ # 提权 │ ├── linux-checklist.md │ ├── windows-checklist.md │ └── kernel-exploits/ ├── 04-ad/ # Active Directory 攻击 │ ├── attack-path.md │ ├── kerberos-notes.md │ └── powerview-commands.md ├── 05-report/ # 报告模板与截图规范 │ ├── oscp-report-template.md │ └── screenshot-rules.md └── walkthroughs/ # 靶机复现笔记 ├── htb-box-a.md └── pg-box-b.md这段目录结构的设计是把“学习的场景”而不是“文件的属性”放在第一位。01-recon到05-report正好对应一次完整攻击链的推进顺序,你练习时遇到哪个阶段的问题,就进哪个目录找资料,不用搜文件名。00-start-here.md是全包的索引文件,我会在里面写清每个目录是干什么的、哪些资料已经过时、先看哪个后看哪个。这份文件建议也放进你自己的包里,因为它让别人接手时能直接开干,而不是又要花一个星期摸索。
3.2 文件名带日期和来源,杜绝“最终版2”式的命名
我最初整理资料时有个血泪教训:一份命令速查,我改了七版,存了七个文件,三天后我已经分不清哪个是最新的。后来我定了一条死规矩:文件名里必须包含日期和版本简写,例如nmap-cheatsheet-20250112-v2.md,从文件名就能看出“2025 年 1 月 12 日更新的第二版”。如果是从网上摘抄或别人包里拿来的资料,我会在文件名最后加一个来源标记,比如-src-forum或-src-twbbs,这样以后发现内容有误,能追溯到出处。这条规矩看起来琐碎,但能救命的场景是:考试前一周你发现某条提权命令在新版内核上跑不了,你要快速找到所有相关笔记,逐个核对是版本问题还是笔记写错了。文件名规范的资料包,用find或grep一次就能筛干净;乱命名的包,你只能一个个打开看。
3.3 打包命令与参数:压缩率、隐藏文件和可校验性
把整理好的目录打成 zip 不是zip -r 包名.zip 目录名一句话那么简单。我有几个固定的参数习惯,直接贴命令:
# 进入上一级目录后打包,避免 zip 里多套一层外层文件夹 cd /path/to/ zip -r oscp-prep-pack.zip oscp-prep-pack/ -x "*.DS_Store" -x "oscp-prep-pack/tmp/*" # 如果目录里有大量文本和图片,用 -9 提高压缩率 zip -9 -r oscp-prep-pack.zip oscp-prep-pack/第一段命令里-x是排除规则,我一般会排除操作系统自动生成的隐藏文件(macOS 的.DS_Store、Windows 的Thumbs.db)和临时目录,这些文件放进包里没有任何价值,还会让解压时产生一堆垃圾。参数-9是最高压缩级别,资料包通常是 PDF、Markdown、截图这类文本和图片混合的内容,开最高压缩率能明显缩小体积,代价是打包时间长一些,但备考资料包本来就不是频繁重打的,用-9很划算。还有一个提醒:打包前先看一眼有没有被误放进来的大文件,比如 IDA 的安装包、靶机镜像,它们体积巨大还容易触发网盘的文件审查,放进资料包里只会让下载的人骂娘。这类工具应该和资料分开存放,而不是塞进同一个 zip。
4. 拿到 zip 后的第一道关卡:校验、解压与密码移除
4.1 别急着双击,先用哈希校验确认包没有被中途替换
备考圈子里流传的资料包经常是几经转手的:A 传到网盘,B 下载后重新打包,C 再传到自己的分享链接。每转一次手,包里的内容都可能被改动——可能是有人恶意塞了东西,也可能是转手时损坏了几个文件。所以拿到一个 zip,我做的第一件事不是解压,而是在终端里算一下 SHA-256 哈希值,和发布者提供的原始值比对。
# 计算下载文件的 SHA-256 哈希值 sha256sum oscp-prep-pack.zip # 计算后对比发布页面给出的哈希值,不一致则不要解压 echo "期望的哈希值 文件路径" | sha256sum -c -注意第二段命令里-c是校验模式,它会按前面给出的“哈希值 文件名”格式逐项检查。通常我会把发布者页面上的哈希复制到一个文本文件里,再执行sha256sum -c。如果校验失败,不要硬解压,直接重新下载一次。很多时候网盘下载会有文件损坏的情况,多下两次可能就好了;如果每次哈希都不一样,那基本能断定文件本身有问题,或者发布源头就不可信。这一步的成本只有一分钟,但能帮你避开后面所有“解压到一半突然报错”的恶心体验。
4.2 解压到隔离目录,防止路径穿越与文件名乱码
zip 格式有一个老牌的坑叫“zip slip”,恶意构造的 zip 包可以在压缩条目里写../../etc/cron.d/evil这样的路径,解压时如果直接用默认选项,文件就会写到当前目录之外的地方。备考资料包一般不会有人故意害你,但保不齐有转手时被污染的情况,而且“解压到当前目录导致文件散落一地”这种事故也很常见。我的固定流程是:先建一个专门目录,再指定解压目标位置,全程不碰默认路径。
mkdir -p /tmp/oscp-unpack cd /tmp/oscp-unpack unzip ~/Downloads/oscp-prep-pack.zip注意我在解压前先cd到了一个临时目录,这样即使包里有路径穿越条目,最坏情况也只是在/tmp下产生脏文件,不会碰你的用户目录或系统目录。另一个常见问题是从 Windows 或繁体中文环境打包的 zip,在 Linux 下解压会出现中文文件名乱码,因为 zip 里的编码标记不统一。遇到这种情况,可以指定字符集解压:
# 在 Ubuntu/Debian 系的 unzip 上指定用 GBK 解码中文文件名 unzip -O gbk oscp-prep-pack.zip -d /tmp/oscp-unpack/这里-O gbk是告诉 unzip“压缩条目里的文件名是用 GBK 编码写的”,解压出来才能看到正常的中文文件名。如果-O参数在你的 unzip 版本里不存在,则是编译时没带这个选项,可以换成7z x oscp-prep-pack.zip,它通常在文件名编码处理上更稳健。解压完成之后,先ls -la看一眼有没有异常的可执行文件或脚本,再开始翻阅内容。
4.3 加密 zip 的密码移除:用字典而不是穷举
有些资料包发布者会加密压缩包再给出密码,但时间一长,密码本身可能丢了,这就轮到“密码移除”的需求上场。这里说的密码移除不是破解加密算法,而是用字典攻击猜出一个弱密码。zip 的加密强度取决于加密算法,老式 ZipCrypto 有已知明文攻击的可能,但大部分备考资料包的加密只是为了防止网盘自动扫描,密码往往简单到令人发指。顺序我一般是这样:先试空密码,再试oscp、kali、123456这类常见弱密码,最后才上字典爆破。
# 先用 fcrackzip 跑一个短字典,探测包内某个加密文件 fcrackzip -D -p ~/tools/wordlists/rockyou.txt -u oscp-prep-pack.zip # 指定暴力破解位数(不推荐大范围使用) fcrackzip -b -c a1 -l 1-4 -u oscp-prep-pack.zip-D表示字典模式,-p指定字典文件路径,-u是为了过滤:只显示能通过解压测试的密码。我一般拿rockyou.txt的前十万行来跑,而不是全量跑,因为全量接近 1400 万条,对 zip 这种自带解压测试的格式来说时间太长。如果字典模式跑不出来,我不会继续用暴力模式,因为纯粹暴力尝试四位以上所有组合,时间成本是用天算的。更务实的做法是联系发布者、翻发布帖的评论区,或者接受“这个包解不开”的现实。资料包是拿来学习的,不是用来练密码破解的,在这个步骤上花超过半小时就不划算了。
5. 资料包避坑:解压炸弹、过期靶场与失效命令
5.1 下载的 zip 一解压就卡死,磁盘空间飞速下降
现象:双击解压时进度条走到一半就不动了,系统提示磁盘空间不足,CPU 占用飙升。
原因:你遇到了解压炸弹。这类 zip 的压缩率极高,比如一个 10KB 的压缩文件解压出来可能是 10GB 的重复数据。有人把资料包压缩时开了极端压缩比,或者故意塞了这种条目进来制造麻烦。备考资料包里出现解压炸弹的可能性不大,但网盘转存的包良莠不齐,防范成本也很低。
解决:不要原地解压,先查看压缩包内文件大小的总和和单个文件大小:unzip -l 文件名.zip | sort -k2 -n。这一步能看到每个条目的压缩后大小和原始大小,如果某个文件的原始大小明显不合理(比如一个几 KB 的文件解压后达到数 GB),直接放弃这个包。另外,永远在有剩余空间检查的目录里解压,至少留出压缩包体积五倍以上的空间。
5.2 资料里的命令在新版 Kali 上跑不通,报“command not found”或“无法解析”
现象:照着笔记里的命令敲,终端直接提示找不到工具,或者命令参数不合法。
原因:资料包是好几年前整理的,里面的工具名和参数在当时的 Kali/Kali Linux 上成立,但现在很多工具改名或者被合并到其他工具里了。这里我不指名道姓,但我遇到的最典型的是老笔记里的信息收集命令集合被拆散,参数选项也变了,直接照抄必然报错。这是备考资料包最普遍的时效性问题。
解决:遇到跑不通的命令,不去硬背,而是先man 工具名看当前版本的参数,然后对照笔记的意图重写命令。比如原笔记想做的事是“枚举 HTTP 服务的目录”,就算具体参数错了,这个意图还在,用当前版本的目录扫描工具照样能完成。重写一遍之后,我会直接修订资料包里的那份笔记,标注上日期和新的命令。资料包被修订过多次之后,才真正变成自己的东西。
5.3 靶机清单全是旧机器名,提供的地址要么已下线,要么打不开
现象:资料包里附了一份靶机列表,标着“推荐按照顺序打”,但你挨个访问,有的域名解析不了,有的提示机器已下线。
原因:靶场平台的在线机器一直在轮换,老的机器会被移除以保证题库新鲜度和服务器负载。资料包的整理者当年打的时候这些机器确实存在,但他不会想到几个月后大半都下线了。跟着一个过期的靶机清单走,等于拿着旧地图找新地址,最后只会白费时间。
解决:用资料包里的机器名单当题库,但实际选择以靶场平台当前的在线列表为准。上平台官网看当期有哪些机器,再去搜这些机器有没有新一点的 walkthrough。如果资料包里有某台机器的详细笔记,而平台还有同型号或同系列的机器在线,我会优先挑思路类似的去练,这样资料包的学习价值还在,只是不能照搬名称和地址。
5.4 zip 密码跑了几小时没结果,回头发现密码就在文件名里
现象:对一个加密的备考资料 zip 跑了两个小时的字典,毫无进展,后来才发现发布者把密码写在了帖子的隐藏内容里,点一下就能看到。
原因:这类分享帖为了保护网盘链接不被程序抓取,才会给 zip 加一道密码。密码通常是很简单的一个词,但因为它不一定符合“字典里的常见密码”这个假设,纯靠fcrackzip反而不容易撞出来。我犯过这个错,当时花了一整个晚上破解一个其实密码就是发布者 ID 的包。
解决:执行字典爆破之前,先回到资源发布页面把可见信息全部过一遍:帖子的标题、发布者署名、正文里加粗或高亮的字样。这部分做完了再决定是否上工具。另外提醒一句:能联系到发布者就直接要密码,比任何工具都快。工具是最后手段,不是默认手段。
6. 把资料包变成自己的东西:Day 0 到 Day 90 的索引式复习法
拿到任何一份“干货资料包”,第一件事永远不要是“从头开始读”,而是先做索引。我见过太多人打开资料包后就从第一个 PDF 开始翻,翻到第三章遇到看不懂的,退回去继续翻,三天后发现进度不到百分之十。那样的备考效率是灾难级的。正确做法是先把整包扫一遍,建立一份“内容地图”,之后每次练习只按地图查内容,而不是漫无目的地翻阅。这个动作我叫它“索引式复习法”。
具体操作非常简单,不需要额外工具,普通 shell 命令就够了:
cd /path/to/oscp-prep-pack/ # 生成目录树和关键文件列表,输出到索引 md 文件 find . -type f \( -name "*.md" -o -name "*.pdf" -o -name "*.txt" \) -printf "%T@ %p\n" | \ sort -rn > /tmp/file-index-full.txt # 按考试阶段汇总成 markdown 列表 find . -type f -name "*.md" -printf "%p\n" | sort > 00-start-here.md第一段命令里的-printf "%T@ %p\n"会输出每个文件的“修改时间戳+路径”,再按时间倒序排列,让你一眼看清哪些资料是最新更新的,哪些已经很久没动过很可能过时了;第二段命令把所有 Markdown 文件的路径写进00-start-here.md,后面每处理一份,就顺手在它前面加一个[x],三个月之后看这个文件,你的练习轨迹一目了然。这个做法还有个好副作用:你为了建索引,必须快速浏览每一份资料的标题和开头,这个过程本身就是在脑海里建立一个“这份资料大概能解决什么问题”的目录。
索引建好之后,我的练习节奏是:把每天的学习目标拆成一个个具体问题,比如“NTLM 中继怎么抓包验证”“phpMyAdmin 写马被拦了怎么办”,然后去索引里找对应的资料,只读那一份,复现完,写下自己的命令和结果,才算完成当天任务。这个习惯一开始很慢,但坚持到 Day 3、Day 10,你会发现能查到的内容越来越少,需要自己动手试的越来越多——那是好信号,说明资料已经装进你脑子里了。我的一个教训是:资料包永远整理不完,但你不应该一直整理下去。我见过有人把资料包美化得像发行版一样精致,结果自己的靶场打得一塌糊涂。资料是用来消耗的,不是用来收藏的。拿一份包,建一份索引,打三台机器,把踩过的坑写回笔记里——一个月后你会发现包里一半内容已经不值得再看,剩下的那部分才是你自己的 OSCP 地图。这份朴素的办法帮我省了大量备考时间,希望帮到你。
本文还有配套的精品资源,点击获取