20252815 2025-2026-2《网络攻防实践》课程总结
1.内容总结
第1次实践:网络攻防环境搭建
- 简要介绍:本次实验主要介绍了VM操作系统的三种网络连接方式的适用情况,阐述了蜜罐、蜜网及蜜网网关的相关概念,明确了攻击机、靶机、SEED虚拟机和蜜网网关的功能以及VMware搭建网络攻防实验环境的过程。这是为后续的攻防实验奠定基础,通过搭建环境,熟悉各种虚拟机的配置和网络连接方式,理解蜜罐等相关概念在攻防中的作用。
- 实验收获:本次实验掌握了VMware虚拟机的使用方法,学会了如何根据实验需求配置不同的网络模式,增强了动手操作能力和对网络攻防环境的认知。
第2次实践:网络信息收集
- 简要介绍:本次实验主要是网络踩点和网络扫描,介绍了使用搜索引擎、DNS查询、whois和IP反查等技术收集目标网络基本信息的方法,并在靶机环境中使用Nmap进行主机发现、端口扫描、服务识别和系统探测,最后使用Nessus进行漏洞扫描。整体流程体现了从域名到IP、从资产发现到漏洞暴露的完整信息收集链路,为后续的攻击提供了依据。
- 实验收获:掌握了通过公开渠道和工具搜集目标信息的方法,使用了Nmap的各项扫描参数及Nessus漏洞扫描器的配置与使用流程,理解了信息收集在渗透测试中的关键前置作用。
第3次实践:嗅探与分析
- 简要介绍:本次实验主要围绕网络嗅探与分析展开,首先学习了tcpdump命令行抓包工具的使用,随后使用Wireshark图形化界面分析数据包,最后进行了解码网络扫描器的取证实践。整体流程是从抓包-看包-分析扫描行为,通过对捕获流量的深度解析,理解网络协议栈各层的工作机制及异常行为的特征。
- 实验收获:掌握了tcpdump和Wireshark的基本操作与流量过滤技巧,理解了网络嗅探的原理,提升了网络流量取证与分析能力。
第4次实践:TCP/IP协议攻击
- 简要介绍:本次实验在网络攻防环境中完成了TCP/IP协议栈重点协议的攻击实践,主要包括网络层的ARP缓存欺骗、ICMP重定向和IP源地址欺骗,以及传输层的SYN Flood、TCP RST和TCP会话劫持攻击。通过使用netwox等工具发起真实攻击,深入体会了网络层和传输层协议的设计缺陷及其被利用的方式。
- 实验收获:深刻理解了ARP、ICMP、TCP三次握手等底层协议的工作原理及漏洞成因,掌握了利用相关工具实施协议层攻击的方法,增强了协议安全意识。
第5次实践:网络安全防范技术
- 简要介绍:本次实验主要进行了防火墙配置和入侵检测系统实践。在Linux和Windows平台上分别配置防火墙规则,实现了对ICMP包的过滤和对特定IP访问特定服务的控制;随后动手使用Snort并结合蜜网网关,分析了防火墙与IDS/IPS的配置规则,理解了如何利用它们完成攻击数据的捕获与控制。
- 实验收获:掌握了Linux iptables和Windows防火墙的规则配置方法,理解了防火墙的数据控制机制与IDS的数据捕获/预警机制,提升了网络边界防护与入侵检测的实操能力。
第6次实践:Windows系统攻防
- 简要介绍:本次实验包含三个主要实践内容:使用Metasploit对Windows靶机上的MS08-067漏洞进行远程渗透攻击并获取Shell;对一次成功的NT系统破解攻击进行取证分析,从pcap中提取Unicode漏洞和RDS漏洞特征,还原攻击过程;最后是团队对抗,攻方使用Metasploit攻击,守方用Wireshark抓包分析。
- 实验收获:掌握了Metasploit框架的基本使用流程,学会了从网络流量中分析还原攻击行为和漏洞利用细节,理解了Windows经典漏洞的利用原理及取证分析思路。
第7次实践:Linux系统攻防
- 简要介绍:本次实验主要针对Linux靶机进行渗透与对抗。首先使用Metasploit的exploit/multi/samba/usermap_script模块,利用Samba的username map script命令注入漏洞获得root权限的远程Shell;随后在攻防对抗中分析攻击流量,还原漏洞利用过程;然后进行攻防对抗,防守方利用tcpdump/Wireshark/Snort抓包,从流量中提取攻击者IP、目标端口等信息,还原攻击链路。
- 实验收获:掌握了针对Linux服务漏洞的渗透攻击方法,提升了在对抗环境中利用抓包工具提取攻击特征的分析能力和对攻击与取证双向链路的理解。
第8次实践:恶意代码分析实践
- 简要介绍:本次实验主要是恶意代码分析与网络数据源分析。通过对RaDa恶意代码样本进行文件格式识别、脱壳、字符串分析和IDA逆向,分析其功能、分类及行为特征;另一方面分析Snort蜜罐主机的网络数据源,从pcap中提取IRC通信特征,识别僵尸网络,并统计攻击IP及利用的漏洞。
- 实验收获:掌握了恶意代码静态与动态分析的基础方法,学会了使用PEiD脱壳和IDA Pro逆向分析,理解了僵尸网络的工作原理。
第9次实践:软件安全攻防--缓冲区溢出和shellcode
- 简要介绍:本次实验主要是缓冲区溢出与Shellcode注入,学习了常用汇编指令、反汇编和十六进制编辑器等基础知识。对pwn1程序进行了三种实践:手工修改可执行文件改变程序执行流程直接跳转getShell;利用foo函数的Bof漏洞构造输入覆盖返回地址触发getShell;注入并运行自己制作的Shellcode。
- 实验收获:掌握了通过反汇编定位关键函数和修改程序执行流的方法,理解了栈帧结构与缓冲区溢出覆盖返回地址的原理,学会构造Shellcode并完成注入攻击。
第10次实践:Web应用程序安全攻防
- 简要介绍:本次实验主要是Web应用安全,首先在SEED环境中对SELECT和UPDATE语句进行SQL注入攻击,并使用预处理语句进行防御;随后在Elgg平台上完成XSS攻击实验,包括弹窗、窃取Cookie、自动加好友、修改资料和编写XSS蠕虫,最后通过关闭HTMLawed插件实施防御。
- 实验收获:掌握了SQL注入的原理及手工注入方法,理解了预处理语句的防御机制;深入理解了XSS攻击的多种形态及危害,学会了构造XSS Payload和XSS蠕虫,并掌握了基本的XSS防御手段。
第11次实践:浏览器安全攻防实践
- 简要介绍:本次实验主要围绕Web浏览器安全与网页木马,学习了浏览器的安全威胁与网页木马机制。使用Metasploit的MS06-014模块对Win2K靶机发起浏览器渗透攻击获取Shell;随后对给定网页木马攻击场景进行取证分析,从start.html逐层追踪iframe/JS链接,解密xxtea和packed混淆脚本,分析下载的EXE文件,还原出完整的感染链。
- 实验收获:掌握浏览器渗透攻击的构造与实施方法,理解了网页木马的挂马机制和感染链结构,学会了通过解密混淆脚本、提取Shellcode和分析恶意URL来追踪网页木马,提升了针对复杂网页挂马的取证分析能力。
2.最喜欢且做得最好的实践是哪次?为什么?
在这十一次网络攻防实践中,我最喜欢的还是第二次实践:网络探测与漏洞扫描。这次实验我完成得比较顺,主要的是它不像后面的实验那么繁琐,难度也比较合适,不会刚开始就让人无从下手。
(1)这次实验的操作顺序很清楚,但又不是执行一条命令就结束。实验开始时,我先使用Whois工具查询baidu.com的注册信息,然后在Kali中查询到它对应的IP地址,再根据这个IP继续查找注册信息和大致位置。我还尝试获取QQ好友的IP地址并进行位置查询。做到这里时,我才比较直观地理解了域名、IP地址和地理位置之间的联系。
之后的实验对象转向靶机。我先扫描整个实验网段,再对靶机执行进一步扫描,发现靶机开放了TCP 22端口,并运行着SSH服务。最后,我在WinXP Attacker环境中使用Nessus扫描靶机漏洞。虽然用到的工具比较多,但每一步都有明确目的,前一步得到的信息也会影响后面的操作。
(2)我喜欢这次实验的另一个原因,是操作之后很快就能看到结果。扫描到主机在线以后,可以继续查看它开放了哪些端口;看到22端口以后,又可以判断靶机可能开启了SSH服务。Nessus部分刚开始并不顺利。我一开始分不清Policies和Scans两个模块,创建任务时来回试了几次。后来查阅资料才弄清楚,需要先在Policies中配置扫描策略,再到Scans中绑定策略、填写靶机IP并启动任务。看到漏洞扫描结果后,我也发现,扫描不能只看漏洞数量,还要查看风险等级、影响范围和修复建议,否则得到的只是一张结果列表。
(3)这次实验中也出现了意料之外的问题。直接执行dig baidu.com时无法解析域名,但执行dig baidu.com @8.8.8.8却可以正常返回结果。经检查,系统默认DNS服务器配置为蜜网网关192.168.200.1,但该地址未能正常解析外部域名。手动指定公共DNS服务器8.8.8.8后,域名解析恢复正常。另外,我最开始还因为判断错靶机IP而得到了异常的扫描结果。当时第一反应是命令可能写错了,后来才意识到应该先确认目标地址和网络是否连通。这件事让我明白了:扫描没有结果时,不能只盯着工具本身,IP地址、网络环境和参数设置都有可能出错。
总结:我喜欢第二次实践,主要是因为它的难度不算太大,但内容很完整。Whois查询、IP溯源、主机发现、端口扫描和漏洞检测之间是有联系的。做完这次实验后,我对网络探测有了比较具体的认识,也学会了遇到问题时先检查环境和目标,再调整命令。这次实验的成功体验让我对网络攻防有了更大的信心,也让我在后续的实践中更加自信地去面对更复杂的攻防场景。
3.本门课学到的知识总结
一)第1次实践
简要介绍
本次实验的主要任务是搭建一个网络攻防实验环境,包括攻击机、靶机、蜜网网关等,并进行网络连通性测试。实验通过配置VMware虚拟机,设置不同的网络连接模式,确保各个虚拟机能够正常通信。
核心知识
虚拟机网络连接模式:了解了桥接模式、NAT模式和仅主机模式的适用场景和配置方法。桥接模式将虚拟机与物理网络直接连接;NAT模式通过虚拟NAT设备实现网络地址转换;仅主机模式则将虚拟机与主机隔离,适用于内部测试环境。
蜜网网关的作用:理解了蜜网网关在网络安全中的重要性,包括攻击行为捕获与分析。蜜网网关可以记录攻击者的攻击行为,帮助分析攻击手段和意图。
网络拓扑结构:学会了如何绘制网络拓扑结构图,并合理分配IP地址。通过合理规划网络拓扑结构,可以提高网络的安全性和管理效率。
问题与解决
问题1:攻击机Kali无法ping通靶机Win2kServer,Honeywall也ping不通靶机,显示Destination Host Unreachable。
解决方法:原因是Honeywall的网桥br0虽已创建,但iptables规则拦截了跨网段流量;靶机Win2kServer的网卡模式与Honeywall的eth1不一致,导致物理链路隔离。通过清空iptables规则,并统一网卡绑定后,攻击机和靶机可以正常通信。
问题2:在Honeywall上执行ping时,报错“sendmsg: Operation not permitted”,无法发送ICMP包。
解决方法:Honeywall默认的iptables规则中使用QUEUE模块做流量监控,但配置错误会拦截出站数据包,导致权限不足。重新运行Honeywall配置向导,生成正确的LOG/QUEUE/ACCEPT规则,在保持流量监控的同时放开出站流量,ping恢复正常。
问题3:登录后执行tcpdump -i br0 icmp提示command not found,看不到监控日志,以为Honeywall没有工作。
解决方法:其实是登进了Sebek客户端,而不是Honeywall网关本身。退出客户端重新登录到Honeywall网关,再执行tcpdump -i br0 icmp,就能看到实时流量监控。
二)第2次实践
简要介绍
本次实验围绕渗透测试前期的侦察环节展开,综合运用被动信息收集与主动扫描技术,获取目标网络的资产信息、存活主机、开放端口及潜在漏洞,为后续攻击提供相关信息。
核心知识
信息收集:掌握了利用搜索引擎、Whois查询、DNS解析等公开渠道获取目标域名归属、IP段及网络架构信息的方法,其特点是不直接触碰目标系统。
网络扫描:使用Nmap工具进行主机存活性探测、端口状态扫描、服务指纹识别及操作系统侦测,以明确目标的攻击面。
漏洞评估:掌握了Nessus漏洞扫描器的使用,通过对目标系统进行自动化弱点检测,输出漏洞清单与风险等级,从而制定有效的攻击路径。
问题与解决
问题1:执行dig baidu.com时无法解析域名,但执行dig baidu.com @8.8.8.8后可以正常解析。
解决方法:经检查,系统默认DNS服务器配置为蜜网网关192.168.200.1,但该地址未能正常解析外部域名。手动指定公共DNS服务器8.8.8.8后,域名解析恢复正常。
问题2:刚开始用Nessus时,对Policies和Scans模块的关系不清楚,扫描任务建不出来。
解决方法:先在Policies模块创建一个基础扫描策略,再到Scans模块中绑定该策略并指定靶机IP 192.168.200.3,完成扫描任务的创建与启动。
三)第3次实践
简要介绍
本次实验聚焦于网络流量的截获与深度解析,从命令行抓包切入,过渡到图形化协议分析,最终在解码网络扫描器的场景中实操,掌握从原始数据包中还原攻击行为的取证技能。
核心知识
嗅探工具实操:掌握了tcpdump的命令行抓包与逻辑过滤语法,以及Wireshark的图形化流重组与分层协议解析功能。
协议栈解析原理:理解了嗅探器捕获的是底层二进制比特流,必须依据TCP/IP协议栈逐层解码,才能还原出网络层、传输层及应用层的明文交互内容与异常特征。
取证分析实战:通过分析pcap抓包文件,运用p0f等被动指纹识别工具推断攻击源的系统类型,提取扫描行为的流量特征,完成攻击溯源。
问题与解决
问题1:apt相关命令执行时报GID相关错误,无法正常安装、更新软件包,直接影响Snort等实验工具的部署。
解决方法:
1)删除损坏的配置脚本:sudo rm /var/lib/dpkg/info/openssh-server.postinst
2)强制修复依赖配置:sudo dpkg --configure -a --force-depends
3)修复broken依赖:sudo apt install -f -y
问题2:安装p0f时失败。
解决方法:开始将命令中的数字“0”打成了字母“O”,更正后安装成功。属于输入错误导致的命令执行失败。
四)第4次实践
简要介绍
本次实验深入剖析了网络层与传输层协议因先天设计缺陷导致的安全风险,利用工具复现了ARP欺骗、ICMP重定向及多种TCP攻击,直观体验了底层协议被滥用的危害。
核心知识
网络层协议攻击:掌握了ARP缓存投毒、ICMP重定向及IP源地址欺骗的原理与实操方法。
传输层协议攻击:理解了TCP三次握手与有限状态机的脆弱性,成功复现SYN Flood拒绝服务攻击、TCP RST强制断连攻击及TCP会话劫持。
攻击与防御验证:使用netwox等工具构造恶意数据包,并结合Wireshark验证攻击效果,同时了解了针对此类协议层攻击的防御与加固策略。
问题与解决
问题1:在TCP会话劫持攻击实验时,无法正常连接telnet。
解决方法:关闭Kali虚拟机里上一个实验的命令,释放占用的资源或端口后,telnet连接恢复正常。
问题2:TCP会话劫持攻击实验在Wireshark中没有捕到伪造的包。
解决方法:发现之前不知什么时候点了“停止捕获”按钮,界面看起来还在抓,其实已经停了;重新开始捕获后再执行攻击命令,成功抓到伪造的RST和会话劫持相关的包。
五)第5次实践
简要介绍
本次实验围绕网络边界防护与深度入侵检测展开,在双系统平台上配置访问控制规则,并运用Snort分析离线流量,剖析蜜网网关中数据控制与捕获的协同机制。
核心知识
防火墙规则配置:掌握了Linux下iptable及Windows高级防火墙的策略编写,实现对ICMP协议、特定IP及服务端口的精准过滤与放行。
Snort架构与分析:理解了Snort的四大核心组件,掌握了其离线分析pcap文件的命令与规则读取逻辑。
蜜网网关协同机制:通过分析rc.firewall脚本与snort_inline参数,理清了iptables负责连接阻断与流量控制,而Snort侧重于恶意特征匹配与预警日志记录的分工。
问题与解决
问题:将 listen.pcap 放在桌面上,输入路径 /home/listen.pcap 显示找不到路径。
解决方案:误以为桌面就是在 /home 下面,实际上需要将文件放到 /home/kali/ 目录下,再使用正确路径即可。
六)第6次实践
简要介绍
本次实验以Windows靶机为对象,利用Metasploit框架实施远程漏洞利用,对历史NT系统攻击流量进行逆向取证,并在红蓝对抗中体验真实的攻防博弈。
核心知识
Metasploit渗透实战:掌握了MSF框架的search、use、set、exploit操作流,成功利用MS08-067漏洞获取Windows靶机的系统控制权与命令行Shell。
流量取证与溯源:通过Wireshark过滤与TCP流追踪,识别出Unicode编码绕过与RDS漏洞利用特征,还原了攻击者上传木马、提权及发现蜜罐的完整过程。
红蓝对抗演练:在对抗环节,攻方利用MSF实施渗透,守方基于抓包工具提取攻击源IP、目标端口及漏洞特征,锻炼了实战环境下的应急响应能力。
问题与解决
问题1:拿到 Shell 后,输入 net user 无反应。
原因:未真正拿到靶机 Shell,而是误在 Metasploit 主界面执行 net user,或靶机权限不足。
解决方法:
1)确认出现 “Command shell session 1 opened” 提示;
2)进入 C:\WINNT\system32> 提示符后再执行 net user、whoami 等命令;
3)若仍无反应,检查 payload 是否为 generic/shell_reverse_tcp,必要时重新配置后再攻击。
问题2:执行 exploit 失败,第二次执行才成功。
原因:Metasploit 会话未正常退出,旧进程占用端口。
解决方法:执行 pkill -f msfconsole 关闭残留进程,再重新启动 Metasploit。
七)第7次实践
简要介绍
本次实验针对Linux靶机上的Samba服务漏洞开展远程渗透。实验使用Metasploit的exploit/multi/samba/usermap_script模块,利用Samba的username map script命令注入漏洞获得远程Shell。在攻防对抗环节,我作为防守方使用Wireshark等工具分析攻击流量,从数据包中提取攻击者IP、目标IP、目标端口和命令载荷,还原攻击过程。
核心知识
Linux漏洞利用:使用Metasploit搜索并加载exploit/multi/samba/usermap_script模块,配置目标地址和远程Shell Payload后执行攻击,成功获得靶机root权限的远程Shell。
流量特征提取:通过Wireshark分析SMB通信流量,确认攻击者IP为192.168.200.9、目标IP为192.168.200.123、目标端口为139,并从数据包中找到漏洞利用时注入的命令载荷。
攻击载荷分析:分析数据包中的nohup、telnet 192.168.200.9 4444和sh等命令,理解攻击者调用Shell并建立远程控制通道的过程。
问题与解决
问题:攻击机与靶机互 ping 失败。
原因:靶机防火墙/系统限制,靶机开启了 ICMP 拦截,导致 ping 请求被拒绝。
解决方法:关闭靶机 ICMP 拦截:在靶机终端执行sudo iptables -F
sudo ufw disable
之后攻击机与靶机可以正常互 ping。
八)第8次实践
简要介绍
本次实验从静态逆向与网络行为两个维度剖析恶意代码,对RaDa样本进行脱壳反编译,同时挖掘蜜罐流量中的IRC僵尸网络通信及各类网络攻击特征。
核心知识
恶意样本静态分析:掌握了使用file/strings查看基本信息,利用PEiD/超级巡警脱UPX壳,及使用IDA Pro逆向分析寻找作者信息与恶意行为逻辑的方法。
僵尸网络流量分析:理解了IRC协议通信机制,使用Wireshark/tcpflow过滤蜜罐流量,识别C2控制服务器并统计受控僵尸主机的数量。
攻击IP与漏洞挖掘:通过端口与协议特征过滤,识别出针对80端口的Code Red蠕虫攻击、445端口的PSEXESVC远控及139端口的SMB暴力尝试行为。
问题与解决
问题1:未找到逻辑图选项。
解决方案:通过查阅相关资料解决。
问题2:Kali 安装 tcpflow 未生效。
解决方案:重启后生效。
九)第9次实践
简要介绍
本次实验深入底层内存机制,针对pwn1程序依次通过修改可执行文件、构造输入覆盖返回地址及注入自定义Shellcode三种方式,实现程序控制流劫持。
核心知识
逆向与十六进制修改:掌握了使用objdump反汇编定位关键函数,利用vi/xxd将程序文件转为十六进制修改跳转指令机器码,直接篡改执行流。
栈溢出与EIP覆盖:理解了函数栈帧结构,通过构造超长输入缓冲区,精准计算偏移量,用目标函数地址覆盖返回地址,触发getShell。
Shellcode注入实战:掌握了关闭地址随机化、设置堆栈可执行的方法,构造包含NOP滑梯与Shellcode的攻击载荷,利用GDB动态调试确定注入地址完成攻击。
问题与解决
问题1:安装 execstack 时显示安装失败。
解决方案:通过询问 AI 找到解决办法,使用阿里云镜像下载并安装:
wget http://mirrors.aliyun.com/ubuntu/pool/universe/p/prelink/execstack_0.0.20131005-1.1_amd64.deb
sudo dpkg -i execstack_0.0.20131005-1.1_amd64.deb
问题2:实践 1 结束后使用 quit 无法退出。
解决方案:询问 AI 后得知,应使用 exit 命令退出,而不是 quit。
十)第10次实践
简要介绍
本次实验全面剖析Web端注入与跨站漏洞,在SEED平台实操SQL注入绕过认证,并在Elgg平台完成从XSS弹窗到蠕虫传播的进阶攻击及防御配置。
核心知识
SQL注入攻防:掌握了利用闭合符号注释绕过SELECT登录验证,及在UPDATE语句中拼接恶意SQL修改数据的技巧;理解使用预处理语句阻断注入的防御原理。
XSS跨站脚本攻防:掌握构造JS脚本实现弹窗、窃取Cookie发送至攻击机、伪造请求自动加好友与修改属性;理解XSS蠕虫的自我传播逻辑。
Web安全防御机制:通过关闭HTMLawed插件观察缺少内容过滤时的XSS攻击效果,理解SQL预处理语句用于防御SQL注入。
问题与解决
问题1:再输入 SQL 命令时,没有出现结果。
解决方案:忘记添加分号“;”。
问题2:在 Alice 的 About me 框中输入代码无效。
解决方案:要先点击右上角的 Edit HTML 切换到相应的输入框,输入代码并保存。
十一)第11次实践
简要介绍
本次实验聚焦客户端安全威胁,利用MS06-014漏洞对浏览器发起渗透攻击,并针对真实网页木马场景,层层剥开混淆加密,追踪iframe感染链与恶意PE下载源。
核心知识
浏览器渗透攻击:掌握使用Metasploit的ie_createobject模块配置恶意URL,利用IE浏览器漏洞在靶机植入bind_tcp载荷并获取Shell。
网页木马挂马机制:理解网页木马通过内嵌iframe/frame、恶意script标签等重定向流量,构建多层嵌套的“感染链”以对抗安全检测。
混淆解密与溯源分析:掌握使用xxtea算法解密JS脚本、提取packed混淆中的Shellcode,分析ActiveX控件漏洞利用过程,最终追踪到所有下载的恶意EXE文件实为同一木马的不同下载通道。
问题与解决
问题1:靶机无法ping通
解决方案:注意网络模式
4.课堂的收获与不足
1)收获
深刻理解了TCP/IP协议栈的脆弱性,了解了漏洞的多个诱因。知道如何使用网络攻防的相关工具;学会了从流量中抓取特征,从二进制文件中逆向分析恶意代码。明白了防御需要从多个方面考虑,不能默认信任来自外部的输入;亲手做过渗透攻击,才知道如何针对性地做好防御。
2)不足
部分实验存在“知其然而不知其所以然”的情况。例如在部分实验中,虽然成功完成了实验,但对背后原理的理解依然吃力;在遇到环境配置报错或攻击失效时,独立分析和Debug的耐心不足,有时过于依赖搜索引擎或AI给出的答案,缺乏深入研读。

浙公网安备 33010602011771号