20252805 2025-2026-2 《网络攻防实践》第12次作业 《网络攻防实践》课程总结

目录


1.内容总结

实践一 网络攻防环境的搭建

该实践介绍了如何利用虚拟化技术搭建个人版网络攻防实验环境。实验环境采用VMware Workstation在单台计算机上构建,核心组件包括:攻击机(如Windows XP Attacker,安装了渗透测试工具)、靶机(如Metasploitable Ubuntu和Windows 2000 Server,存在已知安全漏洞)、SEED安全教育虚拟机以及蜜网网关(负责监控、捕获和分析攻击流量)。文章详细说明了各设备的IP配置和网络拓扑,通过网络虚拟网卡划分攻击网段与靶机网段,确保实验与外部网络隔离。该实践为后续所有攻防实验奠定了环境基础

实践二 网络信息收集技术

该实践聚焦于网络攻防的起始阶段——信息收集。主要包括五个任务:一是DNS信息查询,通过whois网站查询和nslookup获取域名注册信息及对应IP地址;二是利用资源监视器在QQ语音通话中获取好友IP并定位地理位置,理解社交场景下的信息暴露风险;三是使用Nmap进行网络扫描,包括探测主机活跃状态(-sP)、扫描TCP/UDP开放端口(-sS)、识别操作系统版本(-O)以及检测运行的服务(-sV);四是借助Nessus对靶机进行深度漏洞扫描,识别各端口服务的安全漏洞(如OpenSSL随机数生成器熵源缺失问题);五是通过搜索引擎检索个人公开信息,增强隐私保护意识。实践全面覆盖了主动信息收集的各类技术手段

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

该实践通过三个任务深入掌握网络嗅探与协议分析技术。第一个任务使用tcpdump抓包分析访问www.163.com的通信过程,捕获从本机发出的目标端口为80或443的数据包,经过去重识别出实际通信的六个Web服务器IP地址。第二个任务使用Wireshark对Telnet登录BBS的过程进行抓包,通过追踪TCP流还原了明文传输的用户名和口令,直观认识到Telnet协议缺乏加密的安全缺陷。第三个任务是对listen.cap抓包文件进行取证分析,识别攻击主机的IP地址、扫描目标、扫描工具类型及扫描方法,确定蜜罐上开放的端口和攻击主机的操作系统。该实践强调了网络通信明文传输的安全风险

实践四 TCP/IP网络协议攻击

该实践在隔离网络环境中利用netwox和Ettercap等工具完成了五种TCP/IP协议攻击实验。首先是ARP缓存欺骗攻击(netwox 80),伪造网关MAC地址使受害者将攻击者误认为网关,实现中间人劫持。其次是ICMP重定向攻击(netwox 86),伪装成网关向受害者发送重定向报文,篡改其路由表。第三是SYN Flood拒绝服务攻击(netwox 76),向目标23端口发送大量伪造源IP的SYN包,耗尽半连接资源。第四是TCP RST攻击(netwox 78),持续发送伪造的RST包中断目标所有TCP连接。最后是TCP会话劫持(Ettercap),结合ARP欺骗进行流量嗅探与数据注入。该实践系统展示了TCP/IP协议栈的设计缺陷及其被利用的方式

实践五 网络安全防范技术

该实践围绕网络安全的"防"展开。第一个任务是Linux防火墙(iptables)规则配置:添加规则禁止本机接收ICMP Ping请求(-A INPUT -p icmp --icmp-type echo-request -j DROP),验证了协议过滤功能;进一步配置仅允许特定IP(192.168.200.2)通过TCP访问本机,而拒绝其他所有IP的TCP连接,实现了基于IP的访问控制。第二个任务是Snort入侵检测实践,对提供的pcap攻击流量文件进行离线分析,配置snort.conf输出明文报警日志,检测其中的扫描或攻击行为。第三个任务是蜜网网关规则分析,研究防火墙与IDS/IPS的联动配置,剖析如何结合访问限制与深度分析实现攻击流量的诱捕、记录与隔离。该实践完整覆盖了"防火墙—IDS—蜜网"的纵深防御体系

实践六 Windows操作系统安全攻防

该实践围绕Windows系统远程渗透攻防展开,包含三个环节。第一是动手攻击:使用Metasploit框架对Windows 2000 Server靶机实施MS08-067漏洞利用,通过配置攻击载荷(windows/meterpreter/reverse_tcp)获得目标系统会话权限,成功获取SYSTEM权限的命令行控制权。第二是取证分析:对蜜罐捕获的NT系统破解攻击数据包进行解码,还原了攻击者利用Unicode漏洞和MDAC RDS漏洞(CVE-1999-1011)的攻击路径,成功返回了C:\boot.ini文件内容。第三是红蓝对抗:攻方利用Metasploit选定漏洞夺取控制权,防守方借助Wireshark全程抓包分析,反向提取攻击特征、IP与漏洞指纹。该实践覆盖了从漏洞利用到攻击溯源的完整攻防链条

实践七 Linux操作系统攻防

该实践针对Linux平台的渗透攻防。第一部分利用Metasploit对Metasploitable靶机进行远程渗透攻击,加载exploit/multi/samba/usermap_script模块,利用Samba服务的CVE-2007-2447漏洞(用户名映射脚本命令注入漏洞)。配置cmd/unix/bind_netcat作为攻击载荷,成功获取了目标主机的root权限远程Shell。漏洞成因在于Samba调用外部脚本时未对用户输入进行充分过滤,导致恶意Shell元字符被传递给Linux Shell执行。第二部分为攻防对抗实践,攻击方使用相同漏洞进行渗透,防守方捕获网络流量并利用Wireshark进行协议分析,成功还原了攻击者的IP、目标端口、攻击时间、漏洞特征、shellcode载荷以及执行的命令记录。该实践加深了对Linux平台攻击全流程与流量特征的理解

实践八 恶意代码分析实践

该实践覆盖恶意代码识别、脱壳、逆向分析、网络流量分析及僵尸网络行为研判。动手任务一分析Rada.exe恶意样本:通过file命令识别为PE32可执行文件,使用UPX加壳;利用超级巡警脱壳机脱壳后,用IDA Pro提取到版权信息"Copyright (C) 2004 Raul Siles & David Perez",确认为远程访问木马(RAT),具备命令执行、文件上传下载、屏幕截图等后门功能。动手任务二分析Crackme程序,发现需传入特定参数"I know the secret"才能成功。分析实践对Windows 2000蜜罐僵尸网络进行溯源:识别出蜜罐与5个IRC服务器通信,发现3458个不同主机组成的僵尸网络规模,120个攻击源IP尝试了135、139、445、80等多个端口的漏洞攻击。该实践全面展示了恶意代码分析的完整方法论

实践九 软件安全攻防--缓冲区溢出和shellcode

该实践围绕可执行文件pwn1展开,通过三种递进手段触发隐藏的getShell函数。第一种是手工修改二进制文件:使用objdump反汇编找到getShell地址(0x0804847d),以十六进制模式修改call指令的相对偏移,使程序无条件跳转至getShell。第二种是利用foo函数的缓冲区溢出覆盖返回地址:确定缓冲区大小为28字节,加上ebp占4字节,填充32字节后覆盖返回地址为getShell地址(小端序\x7d\x84\x04\x08),程序返回时跳转至getShell。第三种是注入shellcode:关闭NX保护和ASLR后,构造包含NOP sled和execve("/bin/sh")shellcode的payload,通过gdb调试确定栈上shellcode的实际地址,修正返回地址后成功获得交互式shell。该实践循序渐进地揭示了缓冲区溢出漏洞的利用原理

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

该实践包含SQL注入和XSS跨站脚本两大安全实验。SQL注入部分在SEEDUbuntu环境中进行:利用登录页面直接将用户输入拼接到SQL语句的漏洞,在用户名框输入Admin'#注释掉密码验证条件,成功绕过登录认证;在员工编辑资料页面利用UPDATE语句拼接漏洞,在昵称字段注入',SSN='20252805' where name='Admin'#,成功篡改管理员SSN号;修复方案是将字符串拼接改为参数化查询(Prepared Statement)。XSS实验在Elgg社交平台进行:在用户资料中嵌入JavaScript脚本,实现弹窗警报、窃取Cookie、自动添加好友、修改受害者资料等功能;还设计了能自我复制的XSS蠕虫,实现链式感染;最后通过停用HTMLawed插件演示了防御手段。该实践完整覆盖了Web安全的两大经典漏洞

第十一次 浏览器安全攻防实践

该实践围绕浏览器漏洞攻击展开。第一部分利用Metasploit的exploit/windows/browser/ie_createobject模块(MS06-014漏洞),配置反向TCP Payload生成恶意URL,靶机使用IE浏览器访问后攻击机成功建立远程Shell会话。第二部分为网页木马攻击场景取证分析:从入口文件start.html开始逐层解密挂马链,经XXTEA+Base64解密后得到JavaScript代码,其中利用多个ActiveX控件漏洞(如Adodb.Stream)加载不同的恶意脚本(1.js、b.js、pps.js)或直接下载执行可执行文件;对下载的exe文件进行反汇编分析,发现其具备结束安全软件、复制自身、反调试、反虚拟机等恶意行为。第三部分是攻防对抗,攻击方同时启动MS06-014和MS06-055两个漏洞模块,通过十六进制编码和延迟加载构造隐蔽攻击页面,成功捕获防守方的反向Shell会话。该实践完整展示了浏览器攻击从漏洞利用到取证分析的全过程

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

我最喜欢实践六 Windows操作系统安全攻防
这次实践让我以攻击者视角,首次借助Metasploit框架中的msfconsole控制台,针对Windows靶机的MS08-067远程代码执行漏洞实施攻击。通过配置反向TCP载荷(windows/meterpreter/reverse_tcp),我成功攻破靶机,获取了最高控制权限,切身感受了经典漏洞从利用到权限提升的完整攻击链条
攻击成功后,我随即切换至防守方视角,使用Wireshark对实验过程中捕获的流量包进行深度分析。面对成千上万条混杂的网络数据包,我首先通过设置过滤条件锁定攻击者IP地址与目标端口,迅速缩小分析范围,大幅提升了工作效率。在此基础上,我逐条追踪TCP流,从应用层数据中抽丝剥茧,还原出攻击载荷、命令执行记录及回显信息。期间,我还借助AI对协议字段和可疑字符串进行解析,使分析过程更加高效、精准
整个过程犹如一场严谨的解谜游戏,每一次发现都带来强烈的成就感。这次实践不仅加深了我对Windows系统漏洞利用与流量分析技术的理解,更让我体会到攻防双方在信息博弈中的微妙角力,也进一步激发了我对网络安全深度研究的热情与兴趣

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

3.1 安全加固和检测技术

重点锻炼了“攻防兼备”的检测与加固能力。在检测方面,实践二使用Nmap对靶机进行端口扫描(-sS)、服务版本识别(-sV)和操作系统探测(-O),并结合Nessus进行深度漏洞扫描,精准定位了OpenSSL等组件的安全缺陷;实践三、六、七均使用Wireshark对攻击流量进行抓包分析,验证攻击行为的网络特征。在加固方面,实践五通过配置iptables防火墙规则,实现了“禁止ICMP Echo-Request”和“仅允许特定IP访问本机TCP服务”的精细访问控制;实践六、七通过对MS08-067和Samba漏洞的复现,反向推导出“及时打补丁、关闭冗余服务(如SMBv1、Samba旧版本)”的基线加固策略。实验完整覆盖了“扫描→发现→验证→加固”的安全运维闭环

3.2 Web安全技术

实践十深入剖析了Web安全的经典攻防。SQL注入方面,利用登录框的字符串拼接漏洞,输入 Admin'# 绕过认证;在更新资料处注入 ',SSN='xxx' where name='Admin'# 篡改管理员身份证号,修复方案明确为参数化查询(PreparedStatement)XSS跨站脚本方面,在Elgg社交平台注入恶意脚本,实现了弹窗、窃取Cookie、强制添加好友以及自我复制的XSS蠕虫;防御措施为禁用HTMLawed插件进行输入过滤。实践十一针对浏览器发起攻击,利用MS06-014漏洞构造恶意网页,诱导用户点击后获取Shell,这属于客户端攻击范畴。整个模块还隐含了对CSRF(通过XSS自动发起请求)和文件上传(通过脚本加载恶意exe)的关联理解

3.3 逆向分析技术

实践八完整演示了恶意代码静态与动态分析流程:使用file命令识别PE32格式,借助超级巡警进行UPX脱壳,利用IDA Pro提取字符串及版权信息(Copyright (C) 2004 Raul Siles),判定为RAT木马。实践九对二进制文件pwn1使用objdump反汇编,定位getShell函数地址,手工修改机器码跳转逻辑。实践十一对捕获的网页木马中的exe载荷进行反汇编分析,识别出其具备“结束安全软件进程、复制自身、反调试、反虚拟机”等恶意行为。通过动态调试(gdb设置断点、查看寄存器)确定缓冲区溢出偏移量(28字节+4字节EBP),全面掌握了从静态反编译到动态寄存器监控的逆向方法论

3.4 主流代码审计技术

实验着重培养了人工定位危险函数的能力。实践七针对Samba服务,审计出其调用外部/bin/sh处理用户名映射脚本时未过滤用户输入,导致username=参数可注入Shell元字符(对应exec/system类危险函数),最终利用CVE-2007-2447实现命令注入。实践九审计C代码中的strcpy函数,发现未对缓冲区大小做边界检查,导致经典的栈溢出漏洞。实践十审计PHP/Java Web层代码,发现直接将$_POST['username']拼接到SQL查询语句中,未做任何过滤转义,属于典型的“未过滤用户输入”缺陷。通过这些实验,强化了对“所有外部输入皆不可信”这一安全编码原则的认知

3.5 程序设计

实践虽多使用现成工具,但蕴含了强大的编程逻辑。实践九在构造缓冲区溢出Payload时,利用Python编写脚本生成精确的字节填充(b'A'*32 + p32(0x0804847d))以及包含NOP滑动垫(\x90)和Shellcode的恶意数据,展示了Python在漏洞利用开发中的核心地位(p32打包、send网络发送)。实践四中虽用netwox演示攻击,但其原理对应Scapy库的构造伪造数据包能力(如伪造ARP响应、SYN洪水包)。此外,实践十一中对XXTEA+Base64嵌套加密的恶意脚本进行手工逆向解码,体现了编写解密脚本的算法逻辑能力。整体上,Python的requests(Web请求模拟)、socket(原始套接字)编程思想贯穿于各实验的数据构造环节

3.6 计算机病毒技术

实践八清晰区分了病毒类型:Rada.exe为典型的木马(伪装成正常文件,建立后门连接),具备命令执行、文件上传下载、屏幕截图功能;而通过蜜罐溯源发现,攻击源利用漏洞攻击植入后门后,通过IRC协议与5个控制端通信,组成了包含3458个主机的僵尸网络(Botnet),其中部分主机通过135/445端口蠕虫式传播。实践十中的XSS蠕虫在Elgg平台中利用用户间的社交关系(浏览资料)实现自我复制传播,是Web层蠕虫的典型代表。实验还涉及了病毒的隐藏方式(注册表启动项、进程注入概念)以及防范措施(沙箱隔离分析、特征码查杀)

3.7 网络溯源及防范技术

本模块充分训练了基于流量和日志的溯源取证能力。实践三对listen.cap文件进行溯源分析,成功识别出攻击主机IP、攻击目标、扫描工具特征(如Nmap指纹)及攻击手法。实践六对蜜罐抓包进行解码,还原了攻击者利用Unicode漏洞和MDAC RDS漏洞的攻击路径,并成功提取到C:\boot.ini文件内容。实践七防守方利用Wireshark逆向追踪,还原了攻击者的IP、攻击时间戳、Samba命令注入的Shellcode载荷以及执行的idwhoami等具体命令。实践八通过分析蜜罐日志,统计出120个攻击源IP及漏洞利用的端口分布。通过这些实验,掌握了利用ELK思想(或Wireshark统计)进行威胁狩猎,并制定IP封禁、端口屏蔽等防御策略的能力

3.8 加密解密技术

实验涉及多层加解密技术的识别与破解。实践八中利用IDA Pro提取到的恶意程序字符串,涉及到哈希算法(MD5)的比对识别。实践十中防CSRF的Token机制本质上是基于哈希或对称加密生成的不可预测值。实践十一的网页木马分析是重点:恶意入口start.html中的JavaScript代码使用了XXTEA加密算法结合Base64编码进行多层嵌套混淆,分析人员必须逐层手动解密才能还原出最终的漏洞利用代码(如调用Adodb.Stream对象)。这一过程要求逆向人员具备敏锐的算法识别能力,能将密文还原为明文JavaScript,从而看清攻击链条。此外,HTTPS流量分析(实践三)也涉及SSL/TLS握手与证书验证原理

3.9 信息系统运行维护

实践一利用VMware Workstation搭建包含攻击机(BackTrack 5)、靶机(Metasploitable/Windows 2K)和蜜网网关的复杂网络拓扑,要求熟练配置虚拟网卡(VMnet)、IP地址及路由隔离,这是运维的基础环境构建能力。实践五在Linux环境下熟练使用iptables命令进行四表五链的规则增删(-A INPUT -p icmp -j DROP),以及Snort入侵检测系统的配置文件(snort.conf)调优。实践七中通过Metasploit获取靶机root Shell后,需运用Linux基础命令(lscatps)进行信息搜集与痕迹清理。整个实验过程还隐含了对Linux系统服务(如Samba、Telnet)的启动/关闭、端口监听状态查看(netstat -ant)等日常运维技能的熟练掌握

3.10 网络协议分析

这是整个课程体系中分量最重的模块。实践三利用Wireshark和tcpdump深入解析TCP/IP协议栈,通过追踪TCP流还原Telnet明文传输的用户名密码,直观体现TCP面向连接但无加密的特性。实践四专项攻击TCP/IP协议缺陷:ARP欺骗(伪造ARP应答篡改MAC-IP映射)、ICMP重定向(篡改路由表)、SYN Flood(利用TCP三次握手队列耗尽资源)、TCP RST攻击(伪造重置报文中断连接)以及TCP会话劫持(预测序列号注入数据)。实践六的取证分析中,通过Wireshark解码SMB协议NETBIOS数据包,还原Windows网络邻居的文件访问行为。这些实践彻底摸清了从链路层(ARP)到网络层(ICMP/IP)再到传输层(TCP/UDP)及应用层(HTTP/Telnet/SMB)的完整协议栈攻击面

3.11 数据库

实践十直接针对MySQL数据库进行SQL注入攻击。在登录场景中,构造SELECT * FROM users WHERE username='Admin'#' AND password='',利用注释符#截断后续密码校验逻辑。在资料更新场景中,利用UPDATE users SET nickname='inject', SSN='xxx' WHERE name='Admin'进行数据篡改。实验要求熟悉SQL语句的基本结构(SELECT、UPDATE、WHERE子句),理解数据库中的注释符(#--)和引号闭合规则。修复方案中要求改用参数化查询(PreparedStatement),这需要理解数据库预编译机制与SQL语句执行流程的区别。通过该实验,牢固掌握了针对数据库的渗透手法与安全加固措施

3.12 法律(三法两条例)

实践一开篇即强调网络攻防实验必须遵守法律法规与黑客道德,所有攻击操作必须在自行搭建的隔离虚拟环境中进行,严禁对真实公网目标实施。这直接对应《网络安全法》中关于“不得从事非法侵入他人网络、干扰他人网络正常功能”的规定。实验中使用Metasploit攻击存在漏洞的靶机,涉及对操作系统漏洞的利用,警示运维人员需遵守《数据安全法》保障数据处理活动的安全。实验八中对恶意代码的分析涉及用户数据的提取,关联《个人信息保护法》关于个人信息处理的合规要求。此外,实验中的靶机(如Windows 2000 Server)模拟了关键业务系统,其防护需遵守《关键信息基础设施安全保护条例》和《网络数据安全管理条例》(2025年施行),强调了对关键基础设施进行安全检测必须经过合法授权

3.13 基础(计算机组成、OS、计算机网络、数据结构)

整个课程根植于扎实的计算机基础。计算机组成原理方面,实践九的栈溢出涉及内存地址布局(栈帧结构、EBP/ESP寄存器、返回地址压栈出栈机制),理解数据在内存中的小端序存储方式(如\x7d\x84\x04\x08)。操作系统方面,实践六区分了Windows的用户态/内核态权限(SYSTEM权限),实践七熟悉Linux的root用户权限机制,实践一利用虚拟化技术实现硬件资源的逻辑隔离。计算机网络方面,实践一构建包含攻击网段和靶机网段的VLAN逻辑拓扑,实践四详细阐述了TCP状态机(SYN_SENT、SYN_RECV、ESTABLISHED)在攻击中的状态变化。数据结构方面,构造Payload时涉及数组越界(缓冲区溢出本质是对数组边界的破坏)、链表(半连接队列)等底层概念。这些基础知识是理解高级攻防内在原理的基石

4.课堂的收获与不足

课程最大的价值在于让抽象的网络协议和系统漏洞变得“触手可及”。比如,在实践四中,亲手构造SYN Flood耗尽靶机资源、伪造RST包中断连接,才能真正理解协议无状态设计的脆弱性
我熟练掌握了Wireshark(追踪TCP流、筛选HTTP/SMB协议)、Metasploit(加载exploit、配置payload、获取Meterpreter会话)、IDA Pro(静态反汇编提取字符串)等工具。实践三对listen.cap的离线分析、实践八对僵尸网络规模的统计,教会了我如何从海量数据包中抽丝剥茧,强化了流量取证与溯源分析能力。
但是我的不足之处仍有不少。比如:我在实践中使用工具一键化完成多,底层手动实现偏少,导致我对底层原理了解不深;Web安全深度不足,在实验十中仅完成了涉及基础的SQL注入(' or 1=1#)和反射型/存储型XSS,对于更新、更复杂的注入方式几乎没有涉及

5.参考文献

posted @ 2026-06-17 15:14  rtgdzfgsrhtbzf  阅读(8)  评论(0)    收藏  举报