当前位置: 首页 > news >正文

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

1. 内容总结

第一次实践 网络攻防实验环境搭建

本次实验围绕蜜网攻防环境的搭建展开。实验中我在电脑上下载了 VMware 虚拟机,在 VMware 中划分了不同虚拟网段。随后部署 Kali、WinXP、SEEDUbuntu 等攻击主机,以及 Metasploitable、Win2kServer 等靶机。由于实验涉及多台虚拟机和多个网段,我通过多次 ping 测试、网关配置和路由调整,实现了蜜网管理页面的正常访问,顺利完成网络连通性检验。

第二次实践 网络踩点、扫描与漏洞评估

本次实验的主要工作是围绕网络信息收集与漏洞探测展开。实验中我先使用 whois、nslookup 等工具对 baidu.com 进行 DNS 域名查询,再通过资源监视器获取到了好友微信通话中的网络连接信息,找到好友的IP地址。之后使用 nmap 对 Metasploitable 靶机进行主机发现、端口扫描、操作系统识别和服务探测,并通过 Nessus 对靶机漏洞进行扫描分析,找出了暴露出的高危漏洞。

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

本次实验的主要工作是网络嗅探、协议分析和流量取证。实验中我先使用 tcpdump 对 Kali 主机产生的 HTTPS 连接流量进行抓取,并统计出去重后的 Web 服务器 IP 地址。之后使用 Wireshark 对 TELNET 登录 BBS 的过程进行分析,通过追踪 TCP 数据流还原出了登录过程中的用户名,直观感受到明文协议存在的安全隐患。最后我对 listen.pcap 文件进行了取证分析,结合 Snort 和 p0f 判断出攻击主机、扫描目标、扫描方式、开放端口以及攻击机操作系统,进一步理解了流量分析在攻击识别和安全取证中的作用。

第四次实践 网络协议攻击实验

本次实验的重点是网络协议攻击。在攻击之前需要获取 SEED、Kali、Win2k 和 Metasploitable 等虚拟机的 IP 地址与 MAC 地址,为后续攻击做准备。然后使用 netwox 工具完成了 ARP 缓存欺骗、ICMP 重定向、SYN Flood 攻击和 TCP RST 攻击,观察到了靶机通信异常、路由被重定向以及 BBS 连接中断等现象。并且还通过 Ettercap 进行 TCP 会话劫持,成功发现了登录过程中输入的用户名和密码。

第五次实践 防火墙与入侵检测

本次实验的主要内容是防火墙配置与入侵检测分析。我先在 Kali 中查看并设置 iptables 规则,对 ICMP 数据包进行过滤,验证了主机从能够被 ping 通到无法被探测的变化;接着启动 Apache2 服务,针对 80 端口配置访问控制,只允许指定的 WinXP 主机访问网页。而实验后半部分则使用 Snort 对 pcap 文件进行离线检测,得到端口扫描、Nmap XMAS 扫描、ARP 扫描等告警记录;之后进入 HoneyWall 查看蜜网网关中的防火墙、黑白名单、FenceList 以及 Snort/IPS 启动脚本,分析其对攻击流量的记录和外连限制。

第六次实践 Windows系统远程渗透攻击与取证分析

本次实践围绕 Windows 系统远程渗透和取证分析展开。实验中,我使用 Metasploit 对 Win2k 靶机的 MS08-067 漏洞进行攻击,成功建立反向 Shell 会话,并在靶机中查看系统信息、创建目录和写入文件,验证了远程控制效果。取证分析部分主要借助 Wireshark 对攻击流量进行还原,定位了 msadc.pl 利用 IIS 相关漏洞入侵系统的过程,进一步分析攻击者下载工具、建立后门、枚举用户和清理痕迹等行为。在团队对抗环节中,我与同学互相完成攻防操作,不仅利用漏洞获取对方靶机控制权,而且监听并分析对方攻击留下的数据包。

第七次实践 Linux系统远程渗透攻击与取证分析

本次实践的内容集中在 Linux 靶机漏洞利用和攻击流量取证上。实验开始前,需要确认 Metasploitable 与 Kali 两台主机处于同一网段并能够正常通信,然后打开 Metasploit ,检索 Samba usermap_script 漏洞模块,配置目标地址和载荷后,即可获得靶机访问权限。在对抗实践中,我选择 vsftpd 2.3.4 后门漏洞作为攻击入口,通过反弹 Shell 取得 root 权限,并在靶机中执行查看权限、确认系统信息、新建目录和写入日志文件等操作。在防守分析部分,我使用 Wireshark 监听攻击流量,重点还原了 FTP 连接建立、恶意 USER 命令触发后门、6200 端口控制通道建立以及后续命令执行的过程。

第八次实践 恶意代码分析

本次实践围绕恶意代码样本分析和网络流量取证展开。实验中,我先利用文件识别、字符串提取和 PEiD 判断样本类型与加壳情况,随后使用脱壳工具并在 IDA Pro 中查看字符串信息,定位到样本作者和程序特征。接着对 crackme1.exe 和 crackme2.exe 进行静态分析,通过字符串窗口和函数调用关系找出程序的判断逻辑。然后我通过字符串特征,确认了RaDa代码中远程控制、持久化驻留、文件操作、截屏和 DDoS 等行为。在僵尸网络流量分析部分,我通过 Wireshark、tcpflow 和 tcpdump 筛选 IRC 通信、统计访问主机数量、提取攻击源 IP,并进一步判断不同端口上的攻击尝试,其中 445 端口出现 ADMIN$ 访问和 PSEXESVC.EXE 写入痕迹,说明该方向的入侵已经成功。

第九次实践 缓冲区溢出攻击

本次实践的重点在于缓冲区溢出攻击。实验中,我使用 objdump 对程序进行反汇编,定位 main、foo 和 getShell 函数的地址关系,并通过修改 CALL 指令的偏移量,将原本调用 foo 的流程改为直接跳转到 getShell,运行程序后成功获得 Shell。 然后我针对 foo 函数中的 gets 输入漏洞,根据栈帧结构计算缓冲区到返回地址的偏移,构造填充字符串覆盖返回地址,使程序在返回时进入 getShell 函数。并且在最后一部分注入自制 Shellcode,让程序跳转到 Shellcode 所在位置并成功执行。

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

本次实践的核心是 SQL 注入与 XSS 攻击。我先在 SEEDUbuntu 中查看 Users 数据库结构,并通过登录页面的 SELECT 注入绕过密码验证,又在信息修改页面利用 UPDATE 注入篡改 salary 字段。随后修改 PHP 后端代码,对登录和更新逻辑进行修复,原有注入语句不再生效。在 XSS 部分中,我依次实现弹窗、Cookie 回传、自动加好友、资料篡改和 XSS 蠕虫传播,最后启用 HTMLawed 插件来阻止恶意脚本执行。

第十一次实践 Web浏览器渗透攻击攻防

本次实践围绕网页挂马与浏览器渗透展开。我先在 Kali 中使用 Metasploit 加载 MS06-014 模块,配置反向 Shell 载荷和攻击机地址,生成恶意网页链接;Win2k 靶机访问后,攻击端成功获得远程会话并执行命令。随后对网页木马样本进行分析,通过 MD5 定位文件,结合 XXTEA、八进制和 packed 解密,还原脚本下载木马的过程。对抗环节中,我构造包含 MS06-014、MS06-055 的钓鱼页面,并在防御方的视角中,利用 Wireshark 从流量中提取挂马链接,完成了解混淆和漏洞类型判断。

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

我最喜欢且认为自己完成得最好的是第十次实践:Web应用程序安全攻防。我本科是数据科学与大数据技术专业,之前在学习数据库、Web 开发和网络安全相关内容时,一直听说 SQL 注入、XSS 这些攻击方式,但更多停留在概念层面,没有真正动手完整做过。这次实验让我第一次比较系统地把这些内容跑通了,从查看数据库结构,到利用 SQL 注入绕过登录、篡改字段,再到修改后端代码验证防护效果,整个过程比单纯看原理直观很多。并且 XSS 部分也给我留下了很深的印象,从简单弹窗到 Cookie 回传、自动加好友、资料篡改,再到蠕虫传播,攻击效果一步步变得更明显。让我感受到只有真正实操过,才会意识到输入过滤、权限控制和后端校验有多重要。而且相比其他实践,这次实验攻防过程完整,现象清楚,所以我觉得自己理解得最深入,完成质量也最好。

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

3.1 安全加固和检测技术

相关实践:第二次、第三次、第五次、第六次、第七次、第十次

安全加固和检测技术的核心,是先发现系统暴露了什么,再判断哪些暴露会带来风险,最后把检测结果转化为可执行的防护措施。安全检测给出风险位置,加固负责降低风险,两者必须连在一起才有实际意义。

第二次实践中的 Nmap 扫描对应的是资产探测和服务识别,它能判断主机是否在线、端口是否开放、服务类型和版本信息。端口本身不是漏洞,但端口后面的服务、版本和配置决定了风险大小。比如开放 80 端口说明存在 Web 服务,开放 445 端口可能涉及 Windows 文件共享,开放 FTP、TELNET、Samba 等服务时,还要结合版本和认证方式判断是否存在已知漏洞。

第三次实践中的 tcpdump 和 Wireshark 属于流量检测手段。扫描工具看到的是“目标暴露了什么”,抓包工具看到的是“通信过程中发生了什么”。Wireshark 可以分析源 IP、目的 IP、端口、协议字段、TCP 标志位和应用层内容,适合判断扫描、明文传输、异常连接和攻击载荷。TELNET 登录流量能被还原出来,说明明文协议在传输身份信息时存在天然风险。

第五次实践中的 iptables、Snort 和 HoneyWall 更接近加固与入侵检测。iptables 属于访问控制工具,可以限制 ICMP 探测、端口访问和来源地址,从网络层降低暴露面。Snort 根据规则匹配异常流量,可以识别端口扫描、XMAS 扫描、ARP 扫描等行为。HoneyWall 则把蜜网流量记录、黑白名单控制和攻击外连限制结合起来,既能观察攻击,又能防止靶机被攻击者继续利用。

第六次、第七次远程渗透实践也说明,加固不能只停留在防火墙层面,系统补丁、服务关闭、弱口令清理、最小权限和日志留存都很重要。

第十次 Web 实验中的 PHP 修复和 HTMLawed 插件,则属于应用层加固。

3.2 Web安全技术

相关实践:第十次、第十一次

Web 安全技术的重点,是理解用户输入、前端请求、后端代码和数据库之间的关系。Web 安全的关键不是记住某个 payload,而是判断数据从哪里来、到哪里去、在哪个环节被错误信任。

第十次实践中的 SQL 注入和 XSS 最能说明这一点。SQL 注入发生在后端把用户输入直接拼接进 SQL 语句时,攻击者输入的内容被数据库当成语句结构的一部分执行,从而改变原有查询或更新逻辑。SELECT 注入常见于登录、查询、搜索等功能,可能造成登录绕过和数据泄露;UPDATE 注入常见于资料修改、订单更新等功能,可能造成越权篡改。联合查询、布尔盲注、时间盲注等方式,本质上都是利用后端 SQL 语义被改变这一点。

XSS 的风险点在于浏览器会执行页面中的脚本。如果系统把用户输入保存到页面中,又没有做好过滤和输出编码,攻击脚本就会在其他用户访问页面时执行。存储型 XSS 危害更大,因为恶意代码会保存在服务器端;反射型 XSS 通常依赖诱导用户点击特制链接;DOM 型 XSS 则更多发生在前端脚本处理数据的过程中。第十次实践中的弹窗、Cookie 回传、自动加好友、资料篡改和 XSS 蠕虫,说明 XSS 可以借助用户身份完成一系列操作的危险性。

第十一次实践中的网页挂马和浏览器渗透说明,Web 安全不只包括服务器端漏洞,也包括客户端风险。浏览器版本过旧、插件存在漏洞、网页脚本被混淆后加载恶意资源,都可能让用户访问网页时被攻击。

为了保护 web 安全,应当从以下几个方面进行:SQL 注入使用参数化查询或预编译语句;XSS 依靠输入过滤、输出编码和内容安全策略;CSRF 通过 Token、SameSite Cookie、Referer 校验和敏感操作确认降低风险;文件上传漏洞需要检查后缀、MIME 类型、文件内容和存储路径。

3.3 逆向分析技术

相关实践:第八次、第九次、第十一次

逆向分析技术解决的是“没有源码时如何理解程序或脚本行为”的问题,本质是根据文件结构、字符串、函数调用、控制流和运行痕迹,逐步还原程序意图。

第八次实践中的 RaDa 样本分析,展示了逆向分析的基本思路。拿到一个可执行文件后,不能直接运行并相信表面现象,而应先判断文件类型、运行平台、是否加壳、是否存在可疑字符串。PE 文件是 Windows 平台常见可执行格式,ELF 文件常见于 Linux 平台。这说明文件头、节区信息、导入函数、字符串和资源信息,都能为分析提供线索。

恶意代码分析里的另一个比较经常遇到的内容是加壳和脱壳。加壳会压缩或保护原始程序,使静态分析时看到的字符串和函数信息变少。第八次实践中,RaDa 样本经过 UPX 加壳,脱壳后字符串信息明显增多,说明壳会干扰分析视线。IDA Pro 适合做静态分析,可以查看字符串窗口、函数调用、分支跳转和可疑 API;Process Explorer 等工具更偏动态观察,可以看进程、路径、句柄、网络连接和运行行为。静态分析给出怀疑点,动态分析验证程序运行时到底做了什么。

第九次实践中的 objdump 反汇编,则把逆向和漏洞利用连到一起。先分析明白了 main、foo、getShell 函数地址,理解 CALL 指令和返回地址的信息,就可以修改控制流或构造溢出输入。

第十一次实践中的 JavaScript 解混淆,属于脚本层逆向。八进制编码、XXTEA、packed 混淆都是降低可读性的一些常用方式。恶意文件会通过降低可读性来隐藏脚本中漏洞的真实下载地址、漏洞触发方式和执行逻辑。

3.4 主流代码审计技术

相关实践:第九次、第十次、第十一次。

代码审计的核心,是从代码中找出不可信输入进入危险操作的路径。人工审计比工具扫描更依赖上下文判断,比如在具体场景中,某个函数本身危险,不等于一定有漏洞,但某个输入看似普通,只要能进入危险操作,也可能成为攻击入口。不同语言的审计重点不同。PHP 常见问题包括 SQL 注入、文件包含、命令执行、反序列化和弱类型比较;Python 要关注 eval、exec、pickle、subprocess、模板注入和路径处理;Java 要关注反序列化、权限绕过、表达式注入、文件上传和框架配置。

第十次实践中的 PHP 后端代码最适合说明这一点。登录功能和资料修改功能都接收用户输入,如果这些输入未经处理就进入 SQL 查询或更新语句,就可能产生 SQL 注入。审计时不能只看页面是否能正常使用,而要追踪数据流:参数从表单、URL、Cookie 或请求体进入程序后,经过哪些变量、函数和判断,最后是否进入数据库、命令执行、文件路径、页面输出等敏感位置。

SQL 注入审计关注的是 SQL 语句是否拼接了用户输入,是否使用参数化查询,数据库错误信息是否直接回显,数据库账号权限是否过大。XSS 审计关注的是用户输入是否被保存或输出到页面,输出前有没有转义,富文本内容是否经过安全净化。就像第十次实践中启用 HTMLawed 插件后,脚本就不再执行。

第九次缓冲区溢出实践对应 C/C++ 代码审计。gets、strcpy、sprintf 等常用的函数如果没有长度限制就可能造成缓冲区溢出。通过栈空间、返回地址、局部变量和输入长度之间的构造就有可能构造漏洞。但和 PHP 中 SQL 拼接不同,C/C++ 的危险更多来自内存边界和指针操作。

第十一次网页挂马分析也能引出前端脚本审计,混淆后的 JavaScript 可能隐藏 iframe 加载、恶意跳转、浏览器版本判断和漏洞触发代码。

3.5 程序设计

相关实践:第三次、第九次、第十次、第十一次

程序设计能力是理解漏洞和编写检测工具的基础。安全方向的程序设计和普通功能开发相比,更强调“不可信输入”。程序不仅要在正常输入下可用,也要在异常输入、恶意输入、超长输入和畸形请求下保持稳定。Python 适合自动化安全检测,C/C++ 帮助理解底层漏洞,PHP 和 JavaScript 对应 Web 攻防。掌握程序设计以后,才能真正看懂漏洞成因.

第三次实践中,tcpdump 过滤条件体现了协议字段筛选的思路。指定源地址、端口和 TCP 标志位,本质上是在用规则从大量流量中选出目标数据。把这个思路扩展到 Python 脚本,就可以实现批量读取日志、解析 pcap、统计异常 IP、筛选端口扫描行为等功能。

第九次实践说明,C/C++ 程序设计中的内存安全直接影响系统安全。gets 函数不检查输入长度,导致输入可以覆盖栈上的返回地址。缓冲区溢出不是单纯的语法问题,而是程序运行时内存布局被破坏。局部变量、栈帧、返回地址、寄存器和机器指令共同决定程序控制流。写 C/C++ 程序时,必须避免不安全函数,检查数组边界,控制输入长度,合理使用编译保护和运行时保护机制。这也说明程序设计中的一个疏忽,可能变成漏洞利用的入口。

第十次实践中的 PHP 后端修复,说明安全开发应在编码阶段完成。SQL 查询应使用参数化方式,不能直接拼接字符串;用户权限应在后端校验,不能只依赖前端页面限制;敏感字段修改要有明确授权逻辑。第十一次实践中的网页挂马分析,也说明前端代码不是无关紧要的展示层。HTML、JavaScript、iframe、脚本加载顺序和浏览器兼容性,这些都可能影响安全结果。

3.6 计算机病毒技术

相关实践:第八次、第十次、第十一次

计算机病毒技术需要我们理解恶意代码如何感染、隐藏、驻留、传播和受控。在进行恶意代码分析时,需要把文件特征、运行行为、网络通信和系统痕迹结合起来判断。而在病毒防范中,也需要采取多种杀毒软件综合治理:特征码查杀可以识别已知样本,但加壳、变种和混淆会降低效果;沙箱可以观察行为,但样本可能检测虚拟环境;补丁管理可以减少漏洞利用入口;最小权限可以限制恶意代码影响范围;流量监控可以发现异常连接;隔离环境可以防止分析样本时扩散。

而在判断恶意代码的类型中,病毒、蠕虫和木马的区别需要结合传播方式理解。病毒强调感染宿主文件或系统对象,通常需要依附其他程序传播;蠕虫强调自我复制和自动传播,可以借助网络、漏洞、邮件或脚本平台扩散;木马强调伪装和远程控制,不一定主动复制自己。比如第十次实践就说明,蠕虫不一定是传统可执行文件,恶意脚本被写入用户资料页后,其他用户访问页面时脚本自动执行,并把自身复制到新的页面中,这就是 Web 场景下的自我传播。

第八次实践中的 RaDa 样本更接近木马和远控后门。木马通常通过伪装或诱导运行进入系统,运行后可能建立远程连接、执行命令、读写文件、截屏、下载其他程序、修改注册表启动项,甚至参与 DDoS。RaDa 样本中的字符串、注册表路径、远程控制特征和运行行为,都说明恶意代码不是一个单点动作,而是一组持续控制能力。

而僵尸网络流量分析把恶意代码和网络控制联系起来。僵尸网络可控制感染主机,并通过 IRC 等控制通道发送指令,用于 DDoS、垃圾邮件、扫描、横向移动和恶意文件分发。

第十一次网页木马实践则展示了挂马传播方式,用户访问恶意网页后,浏览器漏洞可能被利用,后续恶意程序被下载或执行。

3.7 网络溯源及防范技术

相关实践:第三次、第五次、第六次、第七次、第八次、第十一次

网络溯源的目标,是根据日志、流量和主机痕迹还原攻击过程。防范措施要根据溯源结论制定,比如扫描行为频繁时,应减少端口暴露、配置防火墙和告警规则;暴力破解明显时,应加强密码策略、限制登录次数、启用多因素认证;发现后门或恶意文件时,应隔离主机、保留证据、清除落地文件、检查横向移动;DDoS 特征明显时,需要流量清洗、限速和上游防护。

第三次实践中的 TELNET 抓包和 listen.pcap 分析属于基础溯源。源 IP、目的 IP、端口、协议、时间戳和数据内容,是还原事件的基本要素。通过 Wireshark 追踪 TCP 流,可以看到一次连接中传输了什么;通过过滤规则,可以从大量数据包中找出扫描、登录、异常请求和可疑连接。

第六次 Windows 远程渗透取证中,溯源内容更接近完整攻击链分析。IIS Unicode 路径遍历、MSADC/RDS 远程代码执行、工具下载、FTP 脚本、samdump.dll、pdump.exe、nc.exe、后门端口等线索,能够串出攻击者从漏洞利用到取得控制权的过程。这里的重点不是只记录某个攻击源 IP,而是还原攻击者进入系统后做了哪些动作。如果能对攻击时间线分析的越清楚,那么后续判断影响范围和制定处置措施就越可靠。第十一次网页挂马分析中,HTTP 流量为防御方提取挂马链接、还原混淆脚本、判断漏洞类型提供了重要参考,属于典型的客户端溯源。

在后续几次实践中,也都使用了网络溯源技术来检查攻击效果。第七次 Linux 远程渗透取证中,Samba usermap_script 和 vsftpd 2.3.4 后门利用也留下了典型流量。FTP 连接、恶意 USER 命令、6200 端口控制通道和后续命令执行,能反映攻击从触发漏洞到建立控制的过程。第八次僵尸网络分析中,需要从蜜罐流量中筛选 IRC 通信、攻击源 IP、目标端口和成功入侵痕迹。第十一次实践中 HTTP 流量中帮助验证了攻击的成功实施。

3.8 加密解密技术

相关实践:第八次、第十次、第十一次

加密解密技术在安全实践中有两类用途:一类用于保护正常通信和数据完整性,另一类出现在恶意代码隐藏、脚本混淆和样本识别中。样本分析要用哈希确认文件是否一致,网页木马分析要区分编码、混淆和加密,Web 安全要理解 Cookie、HTTPS、会话保护和数字签名的作用。安全工作中,密码学更多是作为具体场景中的工具出现。

第八次实践中使用 MD5 对 RaDa 样本进行识别和校验,体现的是哈希算法的文件指纹作用。哈希算法把任意长度数据映射为固定长度摘要,常用于完整性校验、样本比对和证据固定。MD5 已经不适合高安全强度的抗碰撞场景,但在样本识别中仍然方便;而SHA256 更适合安全要求较高的文件校验。

第十一次网页木马分析涉及编码、加密和混淆的区分。八进制、十六进制、Base64 更偏编码,作用是改变表示形式,不需要密钥;packed、变量替换、eval 包裹属于混淆,目标是降低代码可读性;XXTEA 这类算法则属于加密,需要算法和密钥才能还原。分析恶意脚本时,不能把所有难读内容都简单称为加密。判断类型以后,才能选择正确的还原方法。恶意代码常用这些手段隐藏真实下载地址、漏洞触发逻辑和执行代码。

第十次实践中的 Cookie 窃取也涉及到身份认证和传输安全问题。Cookie 中的会话标识如果被脚本读取或在不安全网络中暴露,攻击者就可以冒用用户身份,这里就需要加密技术对其进行保护。

4.9 信息系统运行维护

相关实践:第一次至第十一次

信息系统运行维护是完成所有安全实践的基础。第一次实践中的攻击机、靶机、蜜罐、蜜网和蜜网网关,说明安全实验依赖正确的系统环境。虚拟机网络模式、IP 地址、网关、服务状态和防火墙规则都会影响实验结果。不同的网络模式也有不同的效果,桥接更接近真实局域网,NAT 便于访问外网,Host-Only 适合隔离实验环境。网络模式选错,攻击机和靶机可能无法通信;服务未启动,扫描结果可能误判;安全软件拦截文件,也可能影响恶意样本分析。

Linux 命令是运行维护中最常用的能力。第三次实践中的 tcpdump 抓包,第五次实践中的 iptables 规则配置,第七次实践中的网络配置文件修改,第九次实践中的关闭 ASLR 和设置栈权限,第十次实践中的 MySQL 登录和 PHP 文件编辑,第十一次实践中的 Apache 服务启动,都离不开命令行。在这个学期的学习中,查看 IP 和路由、检查端口和进程、启动停止服务、修改配置文件、查看日志、调整权限、安装依赖和恢复环境的常用Linux 命令已经是比较熟悉了。

系统维护还包括补丁管理、账户管理、服务管理和备份恢复。第六次 Windows 远程渗透和第七次 Linux 远程渗透说明,老旧系统组件和默认服务容易成为攻击入口。补丁缺失、弱口令、无用端口开放、服务权限过高,都会增加风险。第五次实践中的防火墙规则配置说明,运维人员需要根据业务需求限制访问来源,而不是让所有端口对所有主机开放。

系统维护也要求故障排查能力。实验中出现连接失败、会话无法建立、浏览器缓存影响结果、样本被安全机制删除等情况,都需要按层次排查。一般应先确认主机是否在线,再检查网络连通性、端口状态、服务是否运行、权限是否正确,最后查看应用日志和安全策略。信息系统运行维护不是和安全分开的工作,很多安全问题本身就来自配置不当。系统越熟悉,排查问题越快,加固建议也越具体。

4.10 网络协议分析

相关实践:第三次、第四次、第五次

网络协议分析是理解网络攻防现象的基础。网络协议分析的价值在于验证工具输出。工具提示有漏洞或会话建立时,抓包能说明连接如何发生、数据如何传输、异常在哪里出现。看懂协议,才能真正理解扫描、利用、后门、木马通信和防火墙拦截。

第三次实践中,tcpdump 和 Wireshark 可以直接观察真实数据包,在数据包里可以发现TCP 三次握手的全过程、源端口、目的端口、SYN、ACK、RST 等字段。其中,TELNET 明文传输协议说明如果缺少加密,用户名、密码和交互内容都可能被还原。HTTPS 协议使用 TLS 加密后,应用层内容不会像 TELNET 那样直接暴露,但仍能观察到 IP、端口、连接过程和部分握手信息。

第四次实践把协议机制和攻击方式对应起来。ARP 缓存欺骗利用 ARP 缺少认证的问题,使局域网主机把错误 MAC 地址写入缓存;ICMP 重定向利用主机对路由重定向信息的信任,目标是改变流量路径;SYN Flood 利用 TCP 半连接队列资源,制造大量未完成握手连接;TCP RST 攻击伪造复位包中断已有连接;TCP 会话劫持则需要掌握通信双方地址、端口和序列号等信息。

第五次实践中的 ICMP 过滤说明协议分析与防火墙策略关系紧密。防火墙并不是简单“开或关”,而是根据协议、端口、方向、状态和来源地址做控制。

3.11 数据库

相关实践:第十次

数据库知识在第十次实践中应用最多。MySQL 中的数据库、表、字段和记录,都是 SQL 注入影响的对象。SQL 语句包括 SELECT、UPDATE、INSERT、DELETE 等基本操作,查询条件、字段名、表名和权限控制都会影响系统安全。

SELECT 注入常见于登录和查询功能。登录逻辑本应验证用户名和密码是否同时匹配,但当输入内容改变 WHERE 条件后,系统可能只判断用户名,甚至让条件恒真。UPDATE 注入目的则是数据篡改。资料修改功能本应只允许用户修改自己的有限字段,但后端语句处理不严时,攻击者可以额外修改 salary 等敏感字段。这也告诉我们数据库漏洞不只会泄露信息,也可能破坏数据完整性。

想要做好数据库安全防护可以从如下方面入手:后端应使用参数化查询或预编译语句,把 SQL 结构和用户输入分开;数据库账号应遵循最小权限,Web 应用不应使用 root 或高权限账号;敏感数据应加密或哈希保存;错误信息不应直接暴露 SQL 细节;关键操作应写入日志,便于追踪。

3.12 法律

相关实践:第一次至第十一次

我国网络安全领域的“三法”指的是《网络安全法》《数据安全法》和《个人信息保护法》。《网络安全法》是我国网络安全领域的基础性法律,确立网络空间主权原则;《数据安全法》规范数据处理活动,保障国家数据安全;《个人信息保护法》保护个人信息权益,规范个人信息处理。“两条例”指:《计算机信息网络国际联网安全保护管理办法》规范国际联网安全保护;《关键信息基础设施安全保护条例》强化关键信息基础设施运营者责任。这些法律法规共同构成我国网络安全法治体系的顶层设计。

3.13 基础

相关实践:第一次至第十一次

计算机组成、操作系统、计算机网络和数据结构是全部实践的底层基础。第一次实践中的攻防环境搭建,需要对计算机网络有足够的理解,在计算机网络的基础上,我们才能为虚拟机分配网段,用IP 地址去测试连通性,搭建自己的虚拟机中的网络。此外,IP 地址决定通信对象,端口对应服务入口,TCP 和 UDP 决定传输方式,ICMP 用于探测和控制信息,HTTP、TELNET、FTP 等应用层协议决定具体业务内容,这些过去通过背诵记忆的知识点,在实践中也直观的呈现在眼前,也让我感受到了实操的有趣。

操作系统知识在后面的实践中中作用很大。Snort 服务、Windows 服务漏洞、进程、权限、文件路径、注册表启动项,都属于系统层知识。第九次缓冲区溢出更直接涉及计算机组成和操作系统。比如函数调用会使用栈,局部变量和返回地址在栈上有固定关系,EIP 决定下一条执行指令,寄存器保存运行状态,机器码和小端序影响地址写入方式。如果没用这些前序知识,也就无法实现对应的漏洞构造。

数据结构和算法基础更是贯穿了实践的始终。也许在使用漏洞的过程中,我们没有直观看到具体的代码,但是就像如果我们需要对恶意代码、僵尸网络、网页木马等进行分析,数据结构的基础就可以帮助我们许多。

4. 课堂的收获与不足

收获

不足