20252904 2025-2026-2 《网络攻防实践》课程总结

20252904 2025-2026-2 《网络攻防实践》课程总结

20252904 2025-2026-2 《网络攻防实践》课程总结

1. 内容总结

1.1 所有实验博客汇总链接

  • 第1次实践:网络攻防实践的搭建
  • 第2次实践:网络信息收集
  • 第3次实践:网络嗅探与协议分析
  • 第4次实践:TCP/IP协议攻击
  • 第5次实践:网络安全防范技术
  • 第6次实践:Windows系统攻防
  • 第7次实践:Linux系统攻防
  • 第8次实践:恶意代码分析实践
  • 第9次实践:软件安全攻防--缓冲区溢出和shellcode
  • 第10次实践:Web应用程序安全攻防
  • 第11次实践:浏览器安全攻防实践

第1次实践 网络攻防环境搭建:

​ 本次实践是整门课程的基础环节,主要使用 VMware Workstation 搭建虚拟化攻防环境,并配置攻击机、靶机、SEED 虚拟机和蜜网网关。实验中通过 NAT、Host-Only 等虚拟网络模式划分不同网段,为 BT5/Kali、WinXPAttacker、Win2kServer、Metasploitable 和 Honeywall 等虚拟机设置 IP 地址、网关和网络连接方式,再通过 pingifconfigipconfigtcpdump 等工具测试连通性和流量监听效果。通过这次实践,我理解了攻防实验不能一上来就谈攻击,首先要有一个隔离、安全、可复现的实验环境,后续所有渗透、检测和取证分析都建立在这套网络拓扑之上。

实验中遇到的问题及解决方法:

1.遇到攻击机ping不通蜜罐靶机的情况

问题原因:发现之前网络适配器中用的是仅主机模式,没有用VMnet1(仅主机模式)

解决方法:将两个靶机的网络以及蜜罐其中一个网络配置器改成VMnet1(仅主机模式),中途尝试修改端口,发现并没有用。

2.命令打错,一直没成功

问题原因:将vim打成vin

解决方法:上网搜集了命令内容,并修正。

3.一开始没有了解蜜网原理,发现ping的又所错误

问题原因:发现蜜罐在监听时能被攻击机发现,以为试验成功。

解决方法:修改了配置,是蜜罐丢掉攻击机的连接数据请求包。

第2次实践 网络信息收集:

本次实践围绕攻击前期的信息收集展开,主要使用 Whois、nslookup、Nmap、Nessus、资源监视器和搜索引擎等工具完成目标识别与资产探测。实验中先对 baidu.com 等域名进行 Whois 查询和 DNS 解析,获取域名注册信息、IP 地址及归属地信息;随后通过资源监视器观察 QQ 通话过程中的网络连接,理解通信中 IP 暴露的可能性;接着使用 Nmap 对靶机进行主机存活探测、TCP/UDP 端口扫描、操作系统识别和服务版本探测;最后借助 Nessus 对靶机漏洞进行扫描,查看不同端口对应的风险等级和漏洞信息。这次实践让我认识到,信息收集不是简单“扫一下”,而是从域名、IP、端口、服务、漏洞到个人隐私暴露的连续分析过程。

实验中遇到的问题及解决方法:

1.做实验一开始发现无法连接到网络,怎么改设置也不行。

image-20260423213635954

需要按照文章一开始的步骤完成设置,我们在自己电脑这个位置共享网络就可以了。

image-20260422161027249

第3次实践 网络嗅探与协议分析:

本次实践主要使用 tcpdump 和 Wireshark 对网络通信过程进行抓包分析,并结合 listen.pcap 进行扫描取证。第一部分通过 tcpdump 抓取访问网站时产生的 HTTP 流量,分析浏览器访问网页时实际连接的服务器 IP;第二部分使用 Wireshark 抓取 Telnet 登录 BBS 的过程,观察 Telnet 明文传输用户名、口令和服务器回显内容的特点;第三部分打开给定的抓包文件,从源 IP、目的 IP、端口、TCP 标志位和响应特征中判断扫描主机、扫描目标、扫描方式和开放端口。通过这次实践,我更直观地理解了“协议不安全”并不是抽象概念,明文协议在抓包视角下几乎是完全透明的,也学会了从数据包还原一次网络行为的基本思路。

实验中遇到的问题及解决方法:

这周当时很顺利就完成了,没有问题!

第4次实践 TCP/IP 协议攻击:

本次实践围绕 TCP/IP 协议栈中的典型安全问题展开,主要使用 netwox、tcpdump、Wireshark、Telnet 等工具完成 ARP 缓存欺骗、ICMP 重定向、SYN Flood、TCP RST 和 TCP 会话劫持实验。实验中通过伪造 ARP 应答改变靶机 ARP 缓存,使流量转向攻击机;通过 ICMP Redirect 修改目标主机路由;通过大量 SYN 报文观察半连接资源被占用后的影响;通过伪造 RST 报文中断正常 TCP 连接;最后结合序列号和会话信息理解 TCP 会话劫持的基本原理。这次实践让我认识到,很多攻击并不是凭空产生的,而是利用了协议设计中“默认信任”“缺少认证”“状态依赖”等机制缺陷。

实验中遇到的问题及解决方法:

1.权限不足

image-20260414183431779

原因:

当前以普通用户 kali 身份运行 netwox 76 命令,而 netwox 76 是一个SYN Flood 攻击工具,需要通过原始套接字伪造 TCP SYN 包,这类操作必须拥有 root 权限才能执行。Linux 系统为了安全,严格限制非 root 用户使用原始套接字,防止恶意用户发起网络攻击、嗅探流量或伪造数据包。

解决方法:

使用root用户即可

第5次实践 网络安全防范技术:

本次实践从防守角度出发,主要使用 iptables、Snort、Wireshark、tcpdump、curl、nmap 等工具学习主机防护、入侵检测和蜜网网关规则分析。实验中在 Metasploitable_ubuntu 上使用 iptables 配置 ICMP 过滤规则,使主机不再响应 Ping 请求;随后配置基于源 IP 和端口的访问控制,只允许指定主机访问特定 Web 服务;接着使用 Snort 对离线 pcap 文件进行检测,分析端口扫描和异常 TCP 流量特征;最后查看 Honeywall 相关配置文件,理解蜜网网关如何在“允许攻击发生”和“防止攻击扩散”之间取得平衡。这次实践让我从攻击视角切换到防御视角,意识到安全防护的核心不只是阻断,更是监测、记录和分析。

实验中遇到的问题及解决方法:

  • 问题1:配置 iptables 规则后,发现服务完全无法访问,连指定 IP 也被拦截。
  • 问题1解决方案:之前网络架构问题,导致地址出现代理情况,导致规则无法正常让真正的IP主机访问,修改网络结构即可。
  • 问题2:执行 Ping 过滤后,仍然可以 Ping 通目标主机。
  • 问题2解决方案:检查后发现只配置了部分 ICMP 规则,且没有确认规则是否加载成功。重新使用 iptables -L -n -v 查看规则计数,并确认使用的是 echo-request 类型后,过滤生效。
  • 问题3:Snort 运行时提示配置文件错误或规则加载失败。
  • 问题3解决方案:检查 /etc/snort/snort.conf 中的规则路径、网络变量和输出模块配置,修正后重新运行,Snort 能正常读取 pcap 并生成日志。
  • 问题4:Snort 检测后日志目录中没有看到报警文件。
  • 问题4解决方案:Snort 因默认规则未开启端口扫描检测功能而未触发告警,但该异常流量已明确存在安全风险,设置规则后出现告警日志。

第6次实践 Windows 系统攻防:

本次实践主要围绕 Windows 靶机漏洞利用和攻击取证分析展开,核心工具包括 Metasploit、Wireshark 和 Windows 命令行环境。实验中使用 Metasploit 选择 MS08-067 相关漏洞模块,配置目标 IP、攻击载荷和端口参数,对 Windows 2000/XP 靶机进行授权环境下的渗透验证,并在成功后获得命令行会话。取证部分则通过 Wireshark 分析蜜罐攻击流量,观察目录遍历、MSADC/MDAC RDS 漏洞利用、工具下载、命令执行和痕迹清理等行为,逐步还原攻击者进入系统后的操作链条。通过这次实践,我认识到漏洞利用只是攻击链的一环,真正的分析重点在于从流量和日志中还原“攻击者做了什么、为什么这样做、是否成功”。

实验中遇到的问题及解决方法:

问题:在团队合作实践的时候无法连接网络,无法同一个网段。

解决方法:将网络连接调成桥接模式,并且要把静态IP调成自动获取。

image-20260423193657136

image-20260423195045590

问题2:在团队对抗实验中,石幸龙同学对我的WinXPattacker主机进行攻击,返回:Exploit completed, but no session was created。
问题2解决方案:考虑到可能是兼容性或漏洞已经被修复,因此修改成Win2Kserver进行实验。

第7次实践 Linux 系统攻防:

本次实践将攻击目标从 Windows 转向 Linux,主要使用 Metasploit、Wireshark、tcpdump 和 Snort 分析 Samba 服务漏洞利用过程。实验中以 Metasploitable 靶机为目标,使用 Metasploit 加载 Samba Usermap_script 漏洞模块,配置 RHOST、LHOST 和反向 Shell 载荷,执行后验证是否获得 Linux 靶机 Shell 权限;在攻防对抗部分,通过 Wireshark 过滤攻击机与靶机之间的通信流量,重点分析 SMB 相关端口、异常用户名字段和命令执行痕迹。这次实践让我理解了 Linux 服务漏洞利用的基本过程,也认识到攻防对抗中防守方不能只看结果,更要从流量中捕捉漏洞触发和权限获取的证据。

实验中遇到的问题及解决方法:

本次学习没有问题!!!

非常顺利,可能是之前实验做过好几次,有经验了。说明之前的实验实践也很管用。

第8次实践 恶意代码分析实践:

本次实践内容较多,主要围绕 RaDa 恶意代码样本分析、Crackme 逆向分析和僵尸网络流量取证展开,使用了 file、strings、PEiD、超级巡警脱壳机、IDA Pro、Process Explorer、Wireshark、Snort 等工具。实验中先对 RaDa.exe 进行文件类型识别、加壳检测、脱壳和字符串提取,确认其为 Windows PE 文件,并分析其远程控制、上传下载、注册表持久化、系统信息收集等行为;随后使用 IDA Pro 分析 crackme1.exe 和 crackme2.exe 的参数校验逻辑,找出正确输入;最后通过蜜罐日志和网络流量识别 IRC 通信、僵尸网络控制服务器、攻击源和成功入侵证据。

实验中遇到的问题及解决方法:

问题1:发现WinXP虚拟机没有解压工具,并且电脑一直再删除威胁软件。

1779459295660

- 问题1解决方案:只能通过本机先解压再复制到WinXP虚拟机中。将电脑的实时保护关掉。

1779459313075

第9次实践 软件安全攻防:缓冲区溢出与 Shellcode:

本次实践进入二进制安全领域,主要使用 objdump、vim/xxd、gdb、execstack、perl 等工具分析 pwn1 程序的控制流和栈溢出漏洞。实验中先通过反汇编定位 getShellfoomain 函数,手工修改可执行文件中的机器码,使程序直接跳转到 getShell;随后利用 foo 函数中不安全输入造成的缓冲区溢出,构造输入覆盖返回地址并触发目标函数;最后尝试注入自定义 Shellcode,通过调整栈可执行和关闭地址随机化等实验条件观察代码执行过程。这次实践让我真正理解了栈帧、返回地址、控制流劫持和 Shellcode 的关系,也意识到现代系统中栈保护、地址随机化和不可执行栈等防护机制的重要性。

实验中遇到的问题及解决方法:

- 问题1:始终运行不了PWN文件,没有权限(好几次这种情况)

image-20260527205556343- 问题1解决方案:输入chmod +x pwn2904ZJY就可以了,释放执行权限。

第10次实践 Web 应用程序安全攻防:

本次实践基于 SEED 实验环境,主要学习 SQL 注入、XSS 跨站脚本攻击及其防御方法,使用了 MySQL、PHP 后端代码、浏览器开发者工具、netcat、Prepared Statement、CSP 等工具和机制。SQL 注入部分先进入 Users 数据库查看 credential 表结构,再分析登录页面中直接拼接 SQL 的代码逻辑,理解 SELECT 注入绕过认证和 UPDATE 注入篡改敏感字段的原因,最后通过 Prepared Statement 参数化查询修复漏洞。XSS 部分则在 Elgg 个人资料页面中测试脚本弹窗、Cookie 显示、Cookie 发送、自动加好友、资料修改和蠕虫传播等现象,并总结 HttpOnly、输出编码、输入过滤和 CSP 等防护思路。

实验中遇到的问题及解决方法:

- 问题1:发现文件保存不了。

image-20260601192759993

- 问题1解决方案:发现要使用root用户输入修改文件才有写功能权限。

image-20260601184414503

第11次实践 浏览器安全攻防实践:

本次实践主要围绕浏览器客户端漏洞、网页木马取证和攻防对抗展开,使用 Metasploit、Windows 靶机、Wireshark、MD5 工具、脚本解混淆工具、IDA Pro 等工具。实验中先使用 Metasploit 搜索并配置浏览器漏洞模块,生成恶意网页入口,由靶机浏览器访问后触发漏洞并建立远程会话;随后从 start.html 入手,追踪隐藏 iframe、外部脚本、ActiveX 控件检测、下载地址和木马文件,逐步还原网页木马加载链;最后在攻防对抗中,攻击方构造包含多个浏览器漏洞的仿真挂马链接,防守方负责提取链接、解混淆代码、判断 MS06-014、MS06-055 等漏洞目标,并分析恶意网页的真实意图。这次实践把漏洞利用、恶意网页、脚本混淆、取证分析和安全意识串联到一起,让我对浏览器安全有了更完整的认识。

实验中遇到的问题及解决方法:

- 问题1:bd.cab压缩包解压失败,被安全中心限制操作。

image-20260608114014499- 问题1解决方案:这里要把电脑的实时保护短暂关闭,要不然解压之后会删除文件,而且不允许任何操作。

image-20260608113951260

- 问题2:一开始以为无法同时启用两个客户端漏洞
- 问题2解决方案:直接在msfconsole中输入命令就可以了。

2. 最喜欢且做得最好的实践是哪次?为什么?

我最喜欢、也认为自己做得最好的是第11次实践“浏览器安全攻防实践”。

​ 喜欢这次实践的原因,是它不像前面某些实验只围绕一个工具或一个漏洞展开,而是把“攻击设计—用户触发—远程控制—网页木马分析—防守方还原”完整串成了一条线。刚开始做 Metasploit 浏览器漏洞实验时,我看到攻击机生成一个 URL,靶机浏览器一访问就能建立 Session,会觉得这个过程很直观,也很有冲击力。以前看到钓鱼邮件、挂马网页时,更多只是知道“不要乱点链接”,但这次真正从实验角度走了一遍流程,才明白一个看似普通的网页背后可能隐藏着脚本加载、漏洞探测、Payload 执行和远程控制等多个环节。

​ 这次实践中我做得比较好的地方,是没有停留在“攻击成功”这个结果上,而是进一步从防守者角度分析它为什么能成功。比如在网页木马取证部分,我从 start.html 开始观察隐藏 iframe 和外部脚本地址,对相关 URL 计算 MD5,再继续分析脚本中的混淆代码、ActiveX 控件检测逻辑和后续下载文件。这个过程不像单纯执行命令那样直接,需要一点点顺着线索往下挖:先找入口,再看跳转,再解混淆,再判断攻击目标。做完之后,我感觉自己不是只会“复现实验”,而是能真正理解网页木马的加载链和攻击链。

​ 所以我认为第11次实践是我收获最大的一次。它让我把之前学过的 Metasploit、Wireshark、恶意代码分析、脚本解混淆和取证分析都重新串联起来,也让我对“不要点击陌生链接”这句话有了更深的理解。以前这句话只是安全提醒,现在我知道它背后真的可能是一整套攻击链。通过这次实践,我不仅掌握了浏览器漏洞利用和网页木马分析的基本流程,也提高了自己面对可疑链接、可疑网页和异常脚本时的分析意识。

3.本门课学到的知识总结

3.1 安全加固和检测技术

通过本学期的网络攻防实践,我对安全检测与加固形成了比较完整的认识。安全检测并不是简单地“扫一下漏洞”,而是要先明确资产、端口、服务、系统版本和网络边界,再结合漏洞扫描结果判断风险等级。实践中我接触并使用了 Nmap、Wireshark、Nessus、Snort、iptables 等工具,其中 Nmap 主要用于主机发现、端口扫描、服务识别和操作系统判断,Wireshark 用于抓包分析通信过程,Snort 用于入侵检测和异常流量识别,iptables 则用于配置 Linux 主机防火墙规则。

我理解的安全加固是“发现问题—分析原因—制定策略—验证效果”的闭环过程。例如,发现主机暴露了不必要的端口,就需要关闭冗余服务或限制访问来源;发现 Ping 请求可被外部探测,就可以配置 ICMP 过滤规则;发现 Web 服务只能被指定主机访问,就可以通过防火墙规则限定源 IP。通过这些实验,我认识到安全加固不能只依赖工具结论,更要结合网络拓扑、服务用途和实际业务需求,做到既保证可用性,又降低暴露面。

3.2 Web安全技术

在 Web 安全实践中,我重点学习了 SQL 注入和 XSS 跨站脚本攻击,也对 CSRF、文件上传漏洞等常见问题有了基础认识。SQL 注入的根本原因是程序将用户输入直接拼接进 SQL 语句,使输入内容被数据库当作代码执行;XSS 的根本原因是网页没有正确过滤和编码用户输入,导致恶意脚本在其他用户浏览器中执行。这些漏洞表面上是某个输入框的问题,本质上是程序没有区分“数据”和“代码”的边界。

通过 SEED 实验,我理解了 SELECT 注入可能造成登录绕过,UPDATE 注入可能造成敏感字段被篡改,存储型 XSS 可能造成 Cookie 泄露、资料篡改甚至脚本传播。防御方面,我掌握了参数化查询防 SQL 注入、输入过滤和输出编码防 XSS、HttpOnly 保护 Cookie、CSP 限制脚本来源、Token 校验防 CSRF 等基本方法。对我来说,Web 安全最重要的启示是:漏洞修补不应等到出问题后再做,而应该在代码设计阶段就把输入校验、权限控制和安全边界考虑进去。

3.3 逆向分析技术

逆向分析部分主要通过 RaDa 恶意代码样本和 Crackme 程序完成。实践中我使用 file、strings、PEiD、超级巡警脱壳机、IDA Pro 等工具,对样本进行文件类型识别、加壳检测、脱壳处理、字符串提取和函数逻辑分析。通过这些步骤,我认识到逆向分析不是一开始就直接看汇编,而是先从文件格式、运行平台、壳信息、可疑字符串、导入函数等基础信息入手,逐步缩小分析范围。

在 Crackme 分析中,我通过 IDA Pro 查看函数调用图、关键比较函数和分支跳转逻辑,理解程序如何根据输入判断成功或失败。在恶意代码分析中,我通过字符串和反汇编信息判断样本是否具备远程控制、上传下载、注册表自启动、系统信息收集等行为。逆向分析让我认识到,程序表面的运行结果只是冰山一角,真正的逻辑隐藏在函数调用、条件跳转、系统 API 和网络行为之中。

3.4 主流代码审计技术

代码审计的核心是从源码中发现可能被攻击者利用的安全缺陷。通过 Web 安全实验中对 PHP 后端代码的查看,我认识到很多漏洞并不复杂,往往就是用户输入没有过滤、SQL 语句直接拼接、危险函数使用不当、权限判断不严谨等问题。代码审计时,需要重点关注输入点、输出点、数据库操作、文件操作、命令执行、身份认证和权限控制等位置。

从语言角度看,PHP、Python、Java 都有各自常见的风险点。例如,PHP 中要关注 SQL 拼接、文件包含、命令执行和反序列化;Python 中要关注 evalexec、模板注入和不安全反序列化;Java 中要关注反射调用、反序列化、权限绕过和框架配置问题。我的理解是,代码审计不能只看某一行是否危险,而要结合数据流分析:用户输入从哪里来,经过哪些处理,最终流向数据库、页面、系统命令还是文件系统。

3.5 程序设计

通过这门课的实践,我更加认识到 Python、C/C++、PHP 等语言在安全方向中的不同作用。Python 更适合写自动化脚本,例如批量请求、日志分析、端口探测、简单漏洞验证和数据处理;C/C++ 更适合理解底层内存、栈帧结构、缓冲区溢出和 Shellcode 原理;PHP 则能帮助理解 Web 后端漏洞产生的具体位置。

对我来说,程序设计不只是为了写功能,更是为了理解漏洞为什么会出现。例如,学习缓冲区溢出时,如果不了解函数调用、局部变量、返回地址和栈空间,就很难真正理解控制流为什么会被劫持;学习 SQL 注入时,如果不了解后端如何拼接查询语句,也很难理解参数化查询为什么有效。后续如果继续提升,我认为可以重点加强 Python 自动化安全检测脚本编写能力,用 requests、scapy、pandas 等工具把扫描、分析和报告生成串联起来。

3.6 计算机病毒技术

通过恶意代码分析实践,我对病毒、蠕虫、木马和僵尸网络的区别有了更清晰的认识。病毒通常强调依附和感染其他文件,蠕虫强调利用网络自动传播,木马强调伪装和远程控制,僵尸网络则强调大量受控主机接受 C&C 服务器指令。RaDa 样本分析让我看到恶意代码可能具备远程命令获取、文件上传下载、注册表持久化、系统信息收集和 DDoS 攻击等能力。

恶意代码的隐藏方式也比较多,包括加壳、混淆、反调试、反虚拟机、注册表启动项、进程隐藏等。防范方面,不能只依赖杀毒软件的特征码查杀,还需要结合沙箱隔离、行为监控、网络连接分析、注册表和启动项检查等方法。通过这部分实践,我认识到恶意代码分析的重点不是“这个文件叫什么”,而是判断它做了什么、如何驻留、连接哪里、是否下载其他文件,以及是否会继续横向传播。

3.7 网络溯源及防范技术

在实践中,我通过 Wireshark、Snort、tcpdump 和 pcap 文件分析攻击源 IP、目标 IP、端口、协议、TCP 标志位和会话内容,逐步还原扫描、漏洞利用、命令执行和后续操作过程。尤其是在蜜罐和僵尸网络流量分析中,我体会到溯源不是只找到一个 IP 地址,而是要结合攻击行为链判断攻击者做了哪些动作、是否成功、是否留下后门或下载工具。

防范方面,针对扫描和暴力破解可以进行访问频率限制、IP 封禁、强口令策略和日志告警;针对 DDoS 可结合流量清洗、限速和边界防护;针对入侵行为则需要保存完整日志、开启入侵检测、监控异常进程和异常外联。我的理解是,溯源和防范是相互支撑的:溯源帮助我们理解攻击路径,防范则根据攻击路径补齐薄弱环节。

3.8 加密解密技术

对称加密如 AES、DES 主要特点是加解密使用同一个密钥,速度快,适合大量数据加密;非对称加密如 RSA、ECC 使用公钥和私钥,适合密钥交换、身份认证和数字签名;哈希算法如 MD5、SHA256 主要用于完整性校验和摘要计算,特点是单向性和定长输出。

在实践中,我接触到 MD5 摘要计算,用它识别恶意样本或网页木马文件。通过这些内容,我理解到加密并不只是“把数据变成看不懂”,还涉及身份认证、完整性校验、抗篡改和不可抵赖等安全目标。尤其是在网络通信和恶意代码分析中,哈希值可以帮助确认样本是否一致,数字签名可以帮助判断文件来源是否可信,而 HTTPS 中的证书和握手过程则体现了非对称加密和对称加密的结合使用。

3.9 信息系统运行维护

信息系统运行维护能力贯穿整个实践过程,无论是搭建虚拟机、配置网络,还是安装工具、查看服务状态、修改配置文件,都离不开 Linux 基础命令和系统管理能力。我在实验中频繁使用 ifconfigip addrpingnetstatpsvimcatlscdchmodservice 等命令,用于排查网络连通性、查看服务端口、编辑配置文件和验证实验效果。

我理解的运维安全不仅是“系统能跑起来”,还包括账号权限管理、补丁更新、服务最小化、日志留存、备份恢复和故障排查。例如,实验中有时因为网络模式、IP 地址、权限不足或配置文件错误导致操作失败,解决过程本身就是一次运维排错。后续在真实环境中,系统运行维护更需要稳定性和安全性并重,既要保证服务连续运行,也要避免弱口令、冗余服务和错误配置带来风险。

3.10 网络协议分析

网络协议分析是我在本课程中收获比较大的部分。通过 tcpdump 和 Wireshark 抓包,我对 TCP/IP 协议栈有了更加直观的理解。TCP 的三次握手、四次挥手、SYN、ACK、RST 等标志位不再只是书本概念,而是可以在数据包中直接观察到的通信过程。UDP 无连接、ICMP 控制报文、ARP 地址解析、HTTP 请求响应和 Telnet 明文传输等内容,也都能通过抓包进行验证。

协议分析的关键是根据源 IP、目的 IP、源端口、目的端口、协议类型和载荷内容判断通信行为。比如,通过大量 SYN 和 RST 可以判断端口扫描特征;通过 Telnet 流量可以看到明文认证风险;通过 HTTP 请求方法和状态码可以分析 Web 访问行为。通过这部分学习,我认识到网络安全分析不能只看工具报警,还要能回到协议本身,从数据包中判断异常是否真实存在。

3.11 数据库

数据库部分主要结合 SQL 注入实验进行学习。我通过 MySQL 查看数据库、数据表和 credential 表内容,掌握了基本的 show databasesuseshow tablesselect 等操作,也理解了数据库在 Web 系统中的核心地位。用户登录、个人资料、权限字段、工资信息等敏感内容都可能存储在数据库中,一旦数据库操作不安全,就会造成认证绕过、数据泄露或数据篡改。

数据库安全的重点包括权限最小化、参数化查询、敏感字段保护、错误信息隐藏和日志审计。通过 Prepared Statement 修复 SQL 注入实验,我理解到安全的数据库访问方式应该将 SQL 语句结构和用户输入参数分离,不能让用户输入改变原有查询逻辑。后续在开发或审计系统时,我会重点关注数据库连接权限是否过大、SQL 是否拼接用户输入、敏感信息是否明文存储以及是否存在越权查询问题。

3.12 法律

网络安全技术必须建立在合法合规的前提下。通过课程实践,我更加明确了网络攻防实验只能在授权环境中进行,不能对真实外部主机、网站或个人设备进行未授权扫描、攻击或数据获取。网络安全学习不仅要掌握技术手段,也要理解技术边界,知道哪些行为是实验验证,哪些行为可能触犯法律。

在法律基础方面,我重点理解“三法两条例”的框架,即《网络安全法》《数据安全法》《个人信息保护法》,以及《关键信息基础设施安全保护条例》《网络数据安全管理条例》等相关法规。这些法律法规分别从网络运行安全、数据处理安全、个人信息保护、关键信息基础设施保护等方面提出要求。对我来说,法律学习的意义在于提醒自己:安全技术的目的不是突破边界,而是识别风险、保护系统、保护数据和服务合规。

3.13 基础

通过整门课程的学习,我更加认识到基础知识对网络安全的重要性。计算机组成原理帮助我理解程序执行、内存布局和指令运行过程;操作系统帮助我理解进程、权限、文件系统、注册表、系统调用和用户态/内核态;计算机网络帮助我理解协议栈、端口、路由、DNS、HTTP 和 TCP 连接;数据结构则帮助我理解程序逻辑、数据组织和算法效率。

这些基础知识看似和具体工具没有直接关系,但真正做实验时会发现,每一个工具背后都离不开基础原理。比如,理解 TCP 才能分析 SYN Flood 和 RST 攻击;理解栈帧才能理解缓冲区溢出;理解数据库才能理解 SQL 注入;理解操作系统权限才能理解提权和持久化。通过本学期实践,我最大的感受是:网络安全不是单一工具的堆砌,而是计算机基础、网络协议、系统原理、编程能力和安全意识的综合应用。

4.课堂的收获与不足

通过上强哥的《网络攻防实践》课程,我最大的收获是把原本零散的网络安全知识真正串成了一条完整的攻防链路。从最开始搭建虚拟网络环境,到后面的信息收集、协议分析、漏洞利用、防火墙配置、入侵检测、恶意代码分析、缓冲区溢出、SQL 注入、XSS 和浏览器安全实践,我逐渐理解了网络攻击并不是单一工具的使用,而是由环境准备、目标探测、漏洞验证、攻击实施、流量分析和安全防护共同组成的完整过程。

这门课也让我更加重视“攻防结合”的思维。以前学习安全时,容易只关注攻击效果,比如能不能成功扫描、能不能拿到会话、能不能触发漏洞;但通过实践,我逐渐意识到,更重要的是理解漏洞为什么产生、流量中有什么特征、防守方如何发现和阻断,以及系统应该如何加固。尤其是在 iptables、Snort、Wireshark、IDA Pro、Prepared Statement 等内容中,我不仅学到了工具操作,也加深了对协议、系统、代码和安全边界的理解。

当然,我也认识到自己还存在一些不足。首先,部分底层原理掌握还不够扎实,例如缓冲区溢出、Shellcode、反汇编分析等内容,虽然能跟着实验完成操作,但对汇编指令、栈帧结构和程序执行流程的理解还需要继续加强。其次,工具使用有时还停留在“会用”的层面,对参数含义、检测原理和误报分析理解不够深入。最后,在实验排错过程中,我有时过于依赖步骤说明,独立定位问题的能力还需要提升。

《网络攻防实践》是一门实践性很强、收获也很实在的课程。它让我从“知道一些安全概念”转变为“能动手验证、能分析现象、能思考防护”。后续我会继续补强网络协议、操作系统、代码审计和逆向分析等基础能力,把课堂中学到的攻防思维真正转化为自己解决实际安全问题的能力。

5. 参考文献

[1] VMware虚拟机安装及Kali Linux安装保姆级教程-CSDN博客

[2] Nmap网络扫描综合实验报告-CSDN博客

[3] Nmap端口与系统探测实验学习心得-CSDN博客

[5] 入侵检测环境部署:Snort安装与配置-CSDN博客

[6] 渗透测试第一步(信息收集)_nessus把信息采集-CSDN博客

[7] 新的SEEDUbuntu