20252802 2025-2026-2 《网络攻防实践》课程总结
20252802 2025-2026-2 《网络攻防实践》课程总结
1.内容总结
第1次实践 :网络攻防实验环境搭建与测试
基于HoneyWall搭建蜜网实验环境,在VMware中配置VMnet1与VMnet8虚拟网段,部署攻击机(Kali、WinXP)、靶机(Metasploitable、Win2kServer)及蜜网网关,设置静态IP、子网掩码与路由,完成各节点间的连通性测试,掌握虚拟网络隔离与蜜网部署方法。
第2次实践 :网络信息收集
使用nmap完成主机发现、SYN端口扫描、操作系统指纹识别与服务版本探测;利用Nessus扫描靶机漏洞并分析风险等级;通过whois和在线平台查询域名注册信息与IP地理位置;借助资源监视器获取通信IP并定位好友位置;利用搜索引擎排查个人网络隐私泄露情况。
第3次实践 :网络嗅探与协议分析
使用tcpdump抓取访问163.com的流量并统计Web服务器数量;利用Wireshark捕获telnet登录过程,通过追踪TCP流提取明文传输的账号密码;分析listen.pcap文件,结合Snort识别攻击工具为nmap,判断使用SYN半开扫描,确认开放端口,并使用p0f识别攻击主机操作系统为Linux 2.6.x。
第4次实践 :TCP IP网络协议攻击
利用netwox工具实施ARP缓存欺骗,伪造网关MAC地址截获流量;发送ICMP重定向报文篡改目标路由;对WinXP的23端口发起SYN Flood攻击耗尽资源造成拒绝服务;使用TCP RST攻击强制中断已建立的telnet连接;通过ettercap实施中间人攻击,完成TCP会话劫持并窃取明文口令。
第5次实践 :网络安全防范技术
使用iptables配置Linux防火墙,实现ICMP包过滤与基于源IP的HTTP访问控制;利用Snort对pcap文件进行离线入侵检测,分析Nmap XMAS扫描、SNMP探测等告警日志;剖析蜜网网关的rc.firewall与snort配置,理解iptables限速、Snort-inline深度检测及数据捕获与控制机制。
第6次实践 :Windows系统攻防
使用Metasploit加载ms08_067_netapi模块,利用MS08-067漏洞攻击Win2k靶机获取远程Shell。分析蜜罐主机日志,通过Snort识别攻击者使用自动化exploit脚本与Netcat建立后门,还原从漏洞利用到横向移动的完整攻击链,判断攻击者未察觉蜜罐身份,并提出补丁更新与IDS防御建议。
第7次实践 :Linux系统攻防
使用Metasploit的usermap_script模块,利用Samba服务漏洞攻击Metasploitable2靶机,配置bind_netcat payload获取root权限。攻防对抗中,防守方使用Wireshark捕获SMB协议流量,通过分析TCP数据流还原漏洞利用、恶意载荷投递与反向Shell建立过程,验证445端口SMB服务的安全风险。
第8次实践 :恶意代码分析实践
对rada.exe进行静态分析,使用PEiD识别UPX加壳并脱壳,通过IDA提取作者信息;逆向crackme1/2.exe,分析函数调用图与流程图破解参数验证逻辑;分析僵尸网络流量,使用tcpflow提取IRC通信,统计3462台受控主机,识别针对TCP 445端口的成功攻击及PSEXESVC.EXE后门证据。
第9次实践 :软件安全攻防——缓冲区溢出和shellcode
通过三种方式劫持程序执行流:使用vim+xxd手工修改ELF文件call指令直接跳转至getShell;利用foo函数gets()漏洞构造精确长度的输入字符串覆盖返回地址;关闭ASLR与NX保护后注入含NOP sled的shellcode。综合运用objdump、GDB等工具,深入理解x86栈帧结构与漏洞利用原理。
第10次实践 :Web应用程序安全攻防
分析unsafe_home.php源码,利用字符型注入绕过登录认证,通过UPDATE注入篡改Admin薪资数据,并使用预编译语句修复漏洞;在Elgg平台实施存储型XSS攻击,完成弹窗、Cookie窃取、CSRF自动加好友、资料篡改与蠕虫编写,最终启用HTMLawed插件对恶意脚本进行过滤防御。
第11次实践 :浏览器安全攻防实践
利用Metasploit的ie_createobject模块对Win2k IE浏览器实施MS06-014渗透攻击;分析网页木马样本,通过MD5哈希匹配、XXTEA/Base64解密、Packer混淆还原与八进制解码,提取MS06-014、暴风影音、PPStream、百度搜霸四个漏洞利用文件;构建多漏洞协同钓鱼页面,并使用Wireshark完成流量审计与解混淆分析。
2.最喜欢且做得最好的实践是哪次?为什么?
我最中意且完成质量最高的是实践八(恶意代码分析与逆向工程)。
原因有三:
其一,技术维度最丰富。这次实践同时覆盖了二进制静态分析(PEiD脱壳、IDA逆向)、程序破解(Crackme1/2的函数调用图与流程图分析)和网络流量取证(僵尸网络IRC通信分析、tcpflow会话重组)。
其二,分析深度与完成度最高。从识别UPX加壳、脱壳提取作者信息,到逐层破解Crackme的口令验证逻辑,再到运用Snort、tcpflow与复杂grep管道追踪僵尸网络规模(3462台受控主机)并定位成功攻击证据,每一步都有明确的方法论支撑和可验证的输出,体现了严谨的证据链意识。
其三,认知提升最大。这次实践让我建立起“静态分析→动态调试→流量取证”的完整恶意代码分析框架,理解了攻击者如何利用协议漏洞、加密混淆与多阶段下载链来投递后门。
3.本门课学到的知识总结(重点写)
3.1 安全加固和检测技术
系统实践了主机与网络层面的加固及检测能力。在蜜网搭建中,通过HoneyWall网关实现了攻击网段与蜜罐网段的隔离,利用iptables完成数据包过滤与连接速率限制,并基于Snort部署了NIDS/NIPS深度检测体系,对Nmap XMAS扫描、SMB漏洞利用等攻击行为进行实时告警。同时,使用Nessus对靶机开展漏洞扫描,识别风险等级并建立漏洞治理思维。
3.2 Web安全技术
围绕SQL注入与XSS两大核心漏洞展开了完整的攻防演练。在SQL注入部分,通过分析unsafe_home.php与unsafe_edit_backend.php源码,理解了字符型注入与UPDATE注入的原理,利用Admin'#绕过认证,并通过闭合语句实现越权篡改数据;防御层面采用PDO预编译语句将数据与代码分离,彻底消除注入点。在XSS部分,基于Elgg平台完成了存储型XSS利用链:从基础弹窗、Cookie窃取到CSRF自动加好友、静默篡改用户资料,最终编写出可跨用户自我传播的XSS蠕虫;防御上通过启用HTMLawed插件对富文本进行过滤清洗,掌握了输入过滤与上下文编码的防御精髓。
3.3 逆向分析技术
本次课程深入掌握了二进制与脚本逆向的核心方法。针对rada.exe,使用PEiD识别UPX加壳,通过超级巡警脱壳后,利用IDA Pro查看字符串表提取作者信息,并分析其注册表持久化、HTTP后门通信等恶意行为特征。在Crackme1/2分析中,通过IDA的函数调用图与流程图定位核心验证逻辑,逆向推导出口令验证算法与参数约束条件。在网页木马溯源中,面对Packer混淆、八进制编码及Base64+XXTEA双层加密的JavaScript,采用eval替换为console.log、在线解密及手动解码等方式还原出漏洞利用链与Shellcode逻辑,建立了多层混淆对抗的静态分析能力。
3.4 主流代码审计技术
对Web应用与恶意脚本进行了源码级审计。在SQL注入实验中,审计了PHP服务端代码,发现其直接将用户输入拼接到SQL语句中,缺乏参数化绑定与输入校验,从而定位了字符型注入与UPDATE注入漏洞点。在网页木马分析中,审计了加密JS的核心逻辑,识别出Adodb.Stream、Shellcode硬编码URL等关键攻击载荷,并追踪到msadcs.dll等危险组件调用。二进制层面,通过IDA审计Crackme的汇编流程,理解了条件跳转、字符串比对等底层验证机制。
3.5 程序设计
课程中的程序设计能力主要体现在攻击链构造与底层利用代码编写上。在缓冲区溢出实验中,使用Perl精确构造包含NOP Sled与Shellcode的十六进制输入字符串,利用小端序地址覆盖栈上返回地址,完成了对程序执行流的精准劫持。在XSS蠕虫编写中,设计了可获取自身代码并编码传播的JavaScript Payload,通过XMLHttpRequest伪造POST请求实现跨用户感染。此外,在网页木马分析中理解了攻击者如何利用JavaScript进行堆喷射、ActiveX控件实例化与多浏览器漏洞利用链的协同加载,提升了在攻防场景下的代码构造与逻辑设计能力。
3.6 计算机病毒技术
通过多个实验理解了恶意代码的分类、传播与驻留机制。对rada.exe的分析表明其属于后门程序,具备HTTP回连、注册表持久化、系统信息收集等特征,并采用UPX加壳与干扰字符串对抗分析。在僵尸网络流量分析中,识别了IRC协议控制的Botnet架构,统计出3462台受控主机,并发现通过TCP 445端口植入PSEXESVC.EXE后门的传播方式。在Web端,实现了XSS蠕虫的编写与传播,理解了网页木马利用多漏洞冗余加载(MS06-014/暴风影音/PPStream/百度搜霸)提高感染率的技术手段,全面认识了病毒、蠕虫、后门、木马的区别与协同危害。
3.7 网络溯源及防范技术
建立了从攻击发现到溯源还原的完整取证能力。使用Wireshark与tcpdump进行流量捕获,通过显示过滤、TCP流追踪、会话重组还原了SMB漏洞利用、IRC僵尸网络通信及网页木马下载链。利用Snort对pcap进行离线分析,基于特征匹配识别出Nmap扫描、MS08-067攻击及Netcat后门行为,并结合时间戳重建攻击时间线。在溯源层面,通过whois查询域名注册信息、IP地理位置定位、MD5哈希匹配恶意样本,实现了对攻击者身份与攻击工具的关联分析。防范方面,提出了及时补丁更新、最小权限原则、WAF部署、IDS规则优化及蜜网数据控制等多层次防御策略。
3.8 加密解密技术
在恶意代码与网络取证中广泛涉及编码与加密技术。网页木马分析中,面对Base64+XXTEA双层加密的JavaScript,通过提取硬编码密钥script(\x73\x63\x72\x69\x70\x74)完成对称解密,获取十六进制中间码并转换为明文攻击逻辑。针对Packer混淆的b.js,采用eval替换法还原出堆喷射代码;对八进制编码的pps.js,通过字符转换解码出漏洞利用载荷。此外,使用MD5哈希对恶意URL与PE样本进行唯一性校验,确认014.exe、bf.exe、pps.exe、bd.exe实为同一木马的不同副本。学习了多种编码解码与混淆对抗技术。
3.9 信息系统运行维护
在蜜网搭建阶段,配置了VMware虚拟网络编辑器,划分VMnet1/VMnet8网段,完成NAT、DHCP与静态IP的协同规划。在蜜网网关运维中,使用chkconfig管理防火墙与Snort的启动项,编辑rc.firewall、snortd及honeywall.conf等核心配置文件。Web实验环境中,维护SeedUbuntu的LAMP栈,使用sudo systemctl start apache2启动服务,通过MySQL命令行管理数据库用户与表数据。此外,还涉及Linux内核参数调整(关闭ASLR)、VMware Tools安装与共享文件夹映射等日常运维操作,提升了系统级环境保障能力。
3.10 网络协议分析
深入理解了多层级协议的安全机制与脆弱性。数据链路层实践了ARP缓存欺骗与中间人攻击;网络层分析了ICMP重定向报文对路由表的篡改风险;传输层重点剖析了TCP三次握手、SYN Flood资源耗尽、RST强制断连及会话劫持的序列号利用问题;应用层则针对Telnet明文传输、SMB协议漏洞(MS08-067、usermap_script)、IRC僵尸网络控制信道、HTTP网页木马加载及DNS域名解析进行了抓包与解码。熟练使用Wireshark过滤表达式、tcpdump命令行抓包、追踪TCP流及分析协议标志位(SYN/ACK/RST/PSH/URG),建立了协议分析功底。
3.11 数据库
在SEED SQL注入实验中,系统操作了MySQL数据库。通过命令行登录后,使用show databases、use Users、show tables查看数据库结构,利用select * from credential检索用户数据,掌握了基础SQL语法。核心在于理解应用层与数据库的交互风险:通过审计PHP源码发现动态拼接查询的漏洞,利用单引号闭合与注释符#改变查询逻辑;防御层面则使用PDO预编译语句与bind_param参数绑定,从根本上阻止恶意SQL执行。此外,通过UPDATE注入实验理解了数据库权限隔离与输入校验的重要性,学习了数据库安全开发与运维的基础。
3.12 法律
网络安全实践必须严格遵循国家法律法规与伦理边界。课程涉及《网络安全法》《数据安全法》《个人信息保护法》以及《关键信息基础设施安全保护条例》《网络安全等级保护条例》。在渗透测试与攻击实验中,所有操作均在封闭虚拟环境及授权靶机内进行,严禁对未授权系统实施扫描或攻击。个人信息保护方面,在搜集好友IP与地理位置的实验中,明确了最小必要原则与知情同意边界。此外,恶意代码分析仅用于教学研究与防御能力提升,不得用于制作、传播计算机病毒或侵犯他人隐私,树立了依法合规、授权测试、负责任披露的安全职业素养。
3.13 基础
课程深度融合了计算机组成、操作系统、网络与数据结构基础。计算机组成方面,通过缓冲区溢出实验理解了x86汇编指令、EIP寄存器、小端序存储及栈帧结构;操作系统方面,掌握了Linux/Windows进程管理、权限控制(sudo提权)、内核参数(ASLR/NX/ptrace_scope)及系统调用机制;计算机网络方面,实践了子网划分(CIDR)、NAT地址转换、静态路由配置及VMware虚拟网卡拓扑设计;数据结构方面,理解了栈的LIFO特性在溢出攻击中的利用、缓冲区边界检查缺失导致的内存破坏,以及利用NOP Sled提高Shellcode命中率的概率原理。这些基础知识的综合运用,是理解高级攻防技术的根本支撑。
4.课堂的收获与不足
这门课最大的收获是让我真正打通了“知其然”到“知其所以然”的路径。以前觉得渗透测试就是跑工具,现在才明白,从ARP欺骗到TCP会话劫持,从缓冲区溢出到SQL注入,本质上都是协议设计或代码实现中的信任边界被突破。亲手搭蜜网、调iptables、用Wireshark逐包还原攻击链,让我对网络层到应用层的防御逻辑有了肌肉记忆。特别是逆向和取证分析,从脱壳、IDA流程图到Snort日志研判,培养了我“看到现象→定位根因→验证假设”的排查习惯,这比单纯会用Metasploit更有价值。
但自己的不足也很明显。首先是主动性不够,前期几周基本是指令到哪打到哪,Metasploit能exploit成功就满足了,很少主动追问“这个Shellcode怎么编的”“为什么这个偏移刚好覆盖返回地址”,导致对漏洞原理的理解停留在表面。另外时间规划有问题,前几周环境配不通时容易钻牛角尖耗太久,后面Web安全和逆向分析周又赶得很仓促,有些实验报告写得像流水账,缺少更深层的横向对比和防御思考。总的来说,动手能力确实上来了,但想提升还得靠自己课后补代码、补内核知识才能走下去。
5.参考文献
- 诸葛建伟, 陈力波 等. 《网络攻防技术与实践》. 清华大学出版社, 2011.
- Wenliang Du. Computer Security: A Hands-on Approach (SEED Labs). Syracuse University.
- David Kennedy 等. 《Metasploit渗透测试指南》. 人民邮电出版社, 2014.
浙公网安备 33010602011771号