lmy12

导航

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

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

1.内容总结

第1次实践:环境搭建

基于《网络攻防实践》第2章及实验内容,撰写学习总结,重点梳理攻防知识点。核心任务是利用VMware和提供的镜像,在个人电脑上搭建含攻击机、靶机、SEED虚拟机及蜜网网关的攻防实验环境。需绘制含IP的拓扑图,图文并茂地详述安装配置全过程,记录问题与解决思路,并测试各机连通性。同时要求说明各主机功能及预装软件,并将过旧的系统和软件更新至较新版本,以适配后续实验。

参考链接:20252821 2025-2026-2 《网络攻防实践》第1周作业

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

本次实验包含五项任务:

  • 对指定网站进行DNS查询,获取域名注册人、IP地址及地理位置;
  • 通过抓包等手段获取好友IP并定位;
  • 使用Nmap扫描靶机,探测IP活跃性、开放端口、操作系统及服务;
  • 使用Nessus扫描靶机,识别端口服务漏洞并分析入侵路径;
  • 通过搜索引擎自查个人网络足迹,评估隐私泄露风险。实验需记录详细操作命令、扫描结果,并结合信息收集与漏洞分析知识,完成网络安全评估报告。

参考链接:20252821 2025-2026-2 《网络攻防实践》第2周作业

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

本次实验包含三项任务:

  • 使用tcpdump嗅探访问www.tianya.cn的流量,统计浏览器访问的Web服务器数量及IP;
  • 使用Wireshark嗅探TELNET登录BBS过程,分析服务器IP/端口、用户名及口令的明文传输机制,演示如何从数据包中提取登录凭证;
  • 对提供的listen.cap抓包文件进行取证分析,识别攻击主机IP、目标IP、扫描工具类型、扫描方法(如SYN扫描)及工作原理,判断蜜罐开放端口和攻击主机操作系统。

参考链接:20252821 2025-2026-2 《网络攻防实践》第3周作业

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

本次实验围绕TCP/IP协议栈中五个核心协议的安全漏洞展开,包括:

  • ARP缓存欺骗攻击:利用ARP协议无状态验证缺陷篡改IP-MAC映射
  • ICMP重定向攻击:伪造路由推送报文篡改目标主机路由表
  • SYN Flood攻击:利用TCP三次握手机制发送大量半连接请求耗尽服务器资源
  • TCP RST攻击:发送伪造的复位报文强制中断已有TCP连接
  • TCP会话劫持攻击:结合嗅探与欺骗技术接管合法TCP会话

实验旨在通过自主构造攻击报文,结合抓包分析验证攻击原理与生效机制,加深对协议安全漏洞的理解。

参考链接:20252821 2025-2026-2 《网络攻防实践》第4周作业

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

本次实验包含三部分内容:

  • 防火墙配置:利用iptables或Windows防火墙实现ICMP过滤与基于IP的访问控制
  • Snort入侵检测:对给定的pcap离线数据包进行入侵检测分析并获取报警日志
  • 蜜网网关规则分析:剖析虚拟攻防环境中蜜网网关的防火墙与IDS/IPS配置机制,理解其攻击数据捕获与控制原理

参考链接:20252821 2025-2026-2 《网络攻防实践》第5周作业

第6次实践:Windows系统攻防

本实验包含三部分内容:

  • 使用Metasploit对Windows Metasploitable靶机的MS08-067漏洞进行远程渗透攻击,获取靶机控制权
  • 对一次成功的NT系统破解攻击进行取证分析,还原攻击者使用的工具、入侵过程、后续操作及防御措施,并判断攻击者是否察觉蜜罐;
  • 进行团队对抗实践,攻方利用Metasploit实施漏洞攻击获取权限,防守方使用Wireshark抓包分析攻击流量,还原攻击过程。

参考链接:20252821 2025-2026-2 《网络攻防实践》第6周作业

第7次实践:Linux系统攻防

本实验包含两部分内容:

  • 使用Metasploit对Linux靶机的Samba服务Usermap_script漏洞进行远程渗透攻击,通过配置exploit/multi/samba/usermap_script模块及远程shell PAYLOAD,获取目标主机访问权限并验证;
  • 攻防对抗实践,攻方利用Metasploit对Metasploitable靶机实施漏洞攻击获取远程控制权并提权至root,防守方使用tcpdump/Wireshark/Snort抓包分析,提取攻击者IP、目标IP/端口、攻击时间、利用漏洞、Shellcode及命令输入信息。

参考链接:20252821 2025-2026-2 《网络攻防实践》第7周作业

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

本实验包含恶意代码逆向分析、Crackme程序破解及僵尸网络流量分析三大任务。

  • 任务一:对rada恶意代码样本进行文件类型识别、脱壳与字符串提取,查找其编写作者;
  • 任务二:使用IDA Pro动态/静态分析crackme1.execrackme2.exe,寻找正确输入以输出成功信息;
  • 分析实践一:对rada样本进行深度分析,包括摘要信息、功能目的、特性、反逆向技术、分类及作者溯源;
  • 分析实践二:分析蜜罐主机5天网络日志,回答IRC协议、僵尸网络机制、通信服务器、攻击来源、利用漏洞及攻击成功方式等问题。

参考链接:20252821 2025-2026-2 《网络攻防实践》第8周作业

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

本次实验针对包含正常回显函数foo和隐藏getShell函数的pwn1可执行文件
通过三种方法触发getShell获取Shell

  • 手工修改可执行文件机器码,改变程序执行流程跳转至getShell
  • 利用foo函数缓冲区溢出漏洞,构造恶意输入覆盖返回地址触发getShell
  • 注入自制Shellcode并运行。实验要求掌握NOP/JNE/JE/JMP/CMP等汇编指令机器码、反汇编与十六进制编辑技能,能正确修改机器指令和构造BOF攻击payload

参考链接:20252821 2025-2026-2 《网络攻防实践》第9周作业

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

本实验包含SQL注入攻击与防御、XSS跨站脚本攻击两大任务。

  • 任务一:在SEEDSQLInjection.com上熟悉SQL查询,利用SELECT语句漏洞在不知密码情况下登录Web应用,通过UPDATE语句实施注入攻击修改数据,并进行修复加固。
  • 任务二:在Elgg社交平台上实施XSS攻击,包括弹窗显示警报、窃取用户Cookie、自动添加好友、修改受害者资料,编写XSS蠕虫实现自我传播,最终实现防御对抗。实验需完整记录攻击载荷构造、操作步骤及修复方案。

参考链接:20252821 2025-2026-2 《网络攻防实践》第10周作业

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

本实验包含三部分:

  • 使用Metasploit的MS06-014模块对Windows靶机进行浏览器渗透攻击,构造恶意网页木马脚本,获取远程Shell会话并执行命令
  • 网页木马取证分析,通过start.html逐层解密获取new09.htm及后续文件,对解密地址进行MD5散列后下载对应文件,重复解密网页/脚本文件直至二进制程序,进行静态反汇编或动态调试完成全部分析
  • 攻防对抗实践,攻击方构造至少两个浏览器漏洞的渗透代码并混淆后通过邮件发送,防守方提取挂马链接、解混淆分析,还原渗透代码原始形态并识别攻击目标与漏洞类型。

参考链接:20252821 2025-2026-2 《网络攻防实践》第11周作业

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

我认为我做的最好的一次且最喜欢的是第3次实践:网络嗅探与协议分析

参考链接:20252821 2025-2026-2 《网络攻防实践》第3周作业

我认为这次做得最好,核心在于从认识工具到会使用工具进行实操
前两个实验更多是了解实验环境和实验所用工具,但第三个“取证分析”是真正的上手操作,面对一个陌生的pcap文件,没有标准答案。
我做得最好的地方在于没有止步于找出IP和端口,而是做了两件事:

  1. 关联分析:我把攻击者的扫描日志(SYN包)和蜜罐的响应日志(SYN+ACK包)做了时间戳对齐,不仅找到了开放端口,还还原了攻击者的扫描时序。这种行为模式让我确认了这不是自动化蠕虫,而是人为的交互式探测。
  2. 工具指纹的交叉验证:判断扫描工具时,我没有仅凭SYN扫描这一个特征。我提取了数据包中TCP窗口大小、TTL值、IP头部ID字段的递增规律,这些指纹综合指向Nmap的默认配置。这种多维度的判断方式,让结论更有说服力。

这两点让我感觉自己不再只是当成作业去完成,而是真正在用网络攻防的思维处理问题。

最喜欢这个实验,原因有几个。

  1. 首先前两个实验像是在实验室里做解剖,标本是死的,步骤是预设的。但第三个实验像在看一场已经发生的攻击事件——数据包就是犯罪现场的痕迹。从海量噪声中找出攻击者的脚印,判断他用了什么工具、什么策略、下一站要打哪里,这种体验很上瘾。
  2. 其次这个实验用一种事后复盘的方式,让我切身理解了安全基线中最小暴露面和强制加密不是教条,而是血的教训换来的最佳实践。
  3. 最后在分析日志时,我发现自己会不自觉地站在攻击者的角度去推演:如果我是他,扫到这个端口我会怎么利用?这种换位思考让我对攻防的理解从只进行防御变成了攻防兼备。要防得好,就得先想得到攻击者会怎么走。这种认知转变,是这个实验给我的最大收获。

所以总结起来:做得最好,是因为我做出了超出步骤要求的分析深度;最喜欢,是因为它让我从机械完成作业变成了思考其本质。

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

3.1 第1次实践:环境搭建

(1)虚拟机网络模式(三种虚拟交换机原理)

模式 涉及技术/原理 通俗解释
NAT(网络地址转换) 网络地址转换(NAT) + 虚拟DHCP服务器 虚拟机通过宿主机做“代理”上网,外部网络看不到虚拟机,只能看到宿主机。虚拟机使用虚拟私有IP段(如192.168.xx),宿主机充当路由器完成IP地址转换。
桥接(Bridge) 虚拟网桥(Bridge) 虚拟机直接“插”到宿主机所在的物理网络上,相当于局域网中的独立设备,与宿主机平级,拥有独立的局域网IP(由路由器分配)。
仅主机(Host-Only) 虚拟网卡 + 私有虚拟网络 所有虚拟机与宿主机组成一个隔离的内部私有局域网,与外部物理网络完全断开,只在本机内部互通,无法访问互联网。

(2)确保互通需配置的关键技术点
IP分配方式:

  • 静态IP:手动分配固定IP,确保不冲突。
  • DHCP:虚拟机自动获取IP(由虚拟DHCP服务器提供),但需注意DHCP地址池范围,避免跨网段。

防火墙规则:虚拟机或宿主机防火墙需放行对应流量(如ICMP、特定端口),否则即使IP在同一网段也无法通信。

路由表:若跨网段通信,需配置网关和路由条目,否则数据包无法转发。

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

(1)DNS查询

项目 说明
涉及技术 DNS
核心原理 DNS采用分布式分层数据库结构,通过递归或迭代查询方式,将人类易记的域名(如 www.baidu.com )转换为机器识别的IP地址(如 110.242.68.66)。查询过程依次经过本地缓存 → 根DNS服务器 → 顶级域DNS服务器 → 权威DNS服务器。
常用工具 nslookup(交互式/非交互式查询)、dig(返回详细DNS记录,如A/AAAA/MX/CNAME)、host
安全意义 攻击者通过DNS查询可获取目标网络拓扑信息(如子域名枚举),防御方可通过DNS监控发现恶意域名通信(DNS隧道、C2通信)。

(2)WHOIS查询

  • 涉及技术:WHOIS协议(RFC 3912)
  • 核心原理:WHOIS是一种基于TCP的查询/响应协议(默认端口43),向WHOIS服务器发送查询请求,获取域名或IP地址的注册信息,包括注册人、注册商、创建/过期时间、联系邮箱/电话、DNS服务器等。ICANN要求所有域名注册商提供WHOIS服务。
  • 隐私保护:受GDPR(通用数据保护条例) 影响,多数注册商隐藏了个人注册信息,显示为代理/隐私保护服务。
  • 安全意义:攻击者利用WHOIS进行社会工程学攻击(获取管理员邮箱发钓鱼邮件)、域名劫持(查找注册商漏洞);防御方可通过WHOIS追踪恶意域名注册人、识别钓鱼网站。

(3)Nmap(网络映射器)

  • 涉及技术:TCP/IP协议栈指纹识别 + 端口扫描技术
  • 核心原理:Nmap通过构造并发送特定数据包(如SYN、ACK、FIN、ICMP等),根据目标主机的响应行为(响应包标志位、TTL值、窗口大小等)推断:①主机是否在线(ping探测);②端口状态(开放/关闭/过滤);③服务类型及版本(通过服务指纹库匹配);④操作系统类型和版本(通过TCP/IP协议栈实现差异进行指纹匹配)。
  • 常用扫描技术:-sT TCP全连接扫描(三次握手完整)、-sS SYN半开扫描(不建立完整连接,隐蔽性强)、-sU UDP扫描、-O 操作系统识别、-sV 服务版本探测、-A 综合扫描
  • 安全意义:攻击者用于信息收集(寻找攻击入口);防御方用于安全审计(检查自身暴露的端口和服务)。

(4)Nessus(漏洞扫描器)

  • 涉及技术:漏洞数据库匹配 + 插件化扫描架构
  • 核心原理:Nessus通过插件(Plugins) 机制,内置数万个已知安全漏洞检测脚本(基于CVE(公共漏洞披露)、OVAL(开放漏洞评估语言) 等标准)。扫描时,Nessus向目标端口发送探测数据包,分析响应结果,与漏洞特征库进行比对,判定目标是否存在漏洞,并输出漏洞等级、影响范围、修复建议。
  • 工作流程:端口扫描(发现开放端口)→ 服务识别(确定端口上运行的服务/版本)→ 漏洞匹配(查找该服务/版本已知CVE漏洞)→ 验证(可选,发送特定payload确认漏洞是否存在)
  • 安全意义:防御方用于定期安全评估和合规检查;攻击者则利用Nessus进行弱点侦察,发现可被利用的漏洞后实施渗透。

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

(1)基本概念
tcpdump和Wireshark都是网络数据包嗅探工具,用于捕获网络中传输的原始数据帧,并将其解析为可读的协议结构。

  • tcpdump:命令行工具,轻量、高效,适合在无图形界面的服务器上使用,支持复杂的过滤表达式(基于BPF语法)。
  • Wireshark:图形化工具,功能更强大,提供丰富的协议解析(支持数千种协议)、流追踪(Follow TCP Stream)、统计分析等功能,适合详细分析。

(2) 抓包原理

  • 抓包工具依赖于混杂模式(Promiscuous Mode)网卡——正常模式下网卡只接收目的地址为自己的数据帧,混杂模式下网卡接收经过它的所有数据帧(无论目的MAC是否为自己)。
  • 在交换式网络环境中(使用交换机而非集线器),单台主机只能收到发往自己的单播流量和广播流量,无法看到其他主机的通信。若要实现全局嗅探,需结合ARP欺骗或端口镜像(SPAN) 等技术将流量引至攻击机。

(3)抓包内容分析

  • 协议解析:抓包工具根据数据链路层类型(Ethernet II)识别出帧头,再根据帧中Type字段识别网络层协议(IPv4/IPv6),接着根据IP头中Protocol字段识别传输层协议(TCP/UDP/ICMP),最后解析应用层协议(HTTP/FTP/TELNET/DNS等)。
  • TELNET明文传输:TELNET协议在传输层使用TCP 23端口,数据内容完全以明文形式传输(不加密)。用户输入的用户名、密码、键盘操作序列全部以ASCII码形式出现在数据包中。使用Wireshark的"Follow TCP Stream"功能可直接还原整个会话的明文内容,用户名和密码暴露无遗。

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

(1)ARP欺骗

  • 涉及技术:ARP协议(地址解析协议)
  • 核心原理:ARP协议用于将IP地址解析为MAC地址,以便在同一子网内进行二层通信。其设计缺陷在于无状态验证——主机收到AR**P响应包后,无论是否主动发起过ARP请求,都会无条件信任并立即更新本地ARP缓存表。
  • 攻击机制**:攻击机向目标主机发送伪造的ARP响应包,将网关IP地址(或其他目标IP)映射为自己的MAC地址。目标主机收到后更新ARP缓存,后续发往该IP的所有流量实际被发送到攻击机,从而实现中间人攻击(MITM)——攻击机可嗅探、篡改或阻断流量。

(2)ICMP重定向攻击

  • 涉及技术:ICMP协议(互联网控制报文协议)
  • 核心原理:ICMP重定向报文是路由器用于告知主机“通往某目标有更优路径”的辅助功能。主机收到后会自动更新路由表,后续发往该目标的数据包走新指定的路由。
  • 攻击机制:攻击机伪造ICMP重定向报文(类型5),冒充网关向目标主机推送虚假的“更优路由”,将流量指向攻击机自身或任意指定IP。目标主机路由表被篡改后,后续通信被劫持,实现流量截获或中间人攻击。

(3)SYN Flood攻击

  • 涉及技术:TCP三次握手机制
  • 核心原理:TCP建立连接需完成三次握手:客户端发SYN → 服务器回复SYN+ACK → 客户端回复ACK完成连接。服务器在收到SYN后、收到ACK前,会为半连接分配资源并进入SYN_RECV状态,等待确认。
  • 攻击机制:攻击机发送大量伪造源IP的SYN请求,服务器回复SYN+ACK后永远等不到最终的ACK,半连接资源持续积压直至耗尽。服务器无法再处理合法连接请求,达到拒绝服务(DoS) 效果。

(4)TCP RST攻击

  • 涉及技术:TCP协议的RESET报文(复位标志位)
  • 核心原理:TCP头部中的RST(Reset)标志位用于在异常情况下强制中断连接。任何一方发送RST包,对方收到后立即终止连接并释放资源,无需经过正常的四次挥手。
  • 攻击机制:攻击机通过嗅探获取合法TCP连接的序列号和端口信息,伪造RST数据包发送给通信双方(或其中一方),使合法连接被强制中断。常用于切断目标主机的关键会话(如阻断SSH连接、终止数据传输)。

(5)TCP会话劫持攻击

  • 涉及技术:TCP协议序列号预测 + 中间人攻击
  • 核心原理:TCP协议依靠源IP、源端口、目的IP、目的端口和序列号来唯一标识一个会话。若攻击者能获取或预测合法的序列号,即可伪造数据包插入会话。
  • 攻击机制:攻击机通过ARP欺骗或嗅探截获通信双方的数据包,获取当前会话的序列号和确认号。随后构造伪造数据包(冒充合法通信方)发送给目标,在已有会话中插入恶意指令(如向服务器发送“rm -rf /*”),而通信双方难以察觉异常。

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

(1)iptables是Linux内核自带的包过滤防火墙,通过规则链控制数据包的放行或丢弃。
它包含三条核心链:

  • INPUT链处理进入本机的数据包
  • OUTPUT链处理本机发出的数据包
  • FORWARD链处理经过本机转发的数据包

每条链由多条规则按顺序组成,规则包含匹配条件(如协议类型、源/目的IP、端口号)和执行动作(ACCEPT允许通过、DROP静默丢弃、REJECT拒绝并回复)。
其工作原理是数据包到达链后按规则顺序依次匹配,匹配成功则执行对应动作并停止后续匹配,匹配完所有规则仍未命中则执行链的默认策略。
通过配置INPUT链规则可过滤ICMP请求使主机不响应ping,通过将默认策略设为DROP再添加特定IP的放行规则可实现白名单访问控制。
iptables规则管理命令包括-A(追加)、-D(删除)、-L(列出)、-F(清空)等。

(2)Snort是一款开源的网络入侵检测系统(IDS),由Martin Roesch于1998年创建,现已成为业界最广泛使用的轻量级IDS/IPS工具。它能够实时分析网络流量,通过规则匹配机制识别已知的攻击行为,并生成报警日志。Snort集成了协议解析器、规则引擎和日志输出模块三大核心组件

Snort支持三种工作模式:

  • 嗅探模式:仅读取并解码网络数据包,以可读格式打印到终端显示,类似于tcpdump的功能。
  • 数据包记录模式:将捕获的数据包保存到磁盘,生成pcap格式文件,便于后续离线分析。
  • 入侵检测模式(核心模式):加载规则库,将每个数据包与规则条件进行逐条匹配,匹配成功则执行报警动作(输出日志、发送邮件、记录数据包等)。这是Snort作为IDS的核心工作方式。

3.6 第6次实践:Windows系统攻防

  1. 栈缓冲区溢出:函数在栈上分配固定大小缓冲区,输入超长数据时覆盖返回地址,劫持程序执行流跳转到Shellcode。

  2. Metasploit模块化:将漏洞利用(exploit)与攻击载荷(payload)解耦,反向连接让目标主动连攻击机,绕过防火墙入站限制。

  3. SMB/RPC机制:SMB是Windows文件共享协议(端口445),RPC允许远程调用函数,MS08-067通过SMB管道向RPC服务传递恶意参数触发溢出。

  4. SAM哈希窃取:Windows密码以NTLM哈希存入SAM数据库,pwdump等工具从LSASS内存中提取哈希,再通过字典/彩虹表破解。

  5. 后门持久化:创建隐藏账户(加$结尾)、注册表自启动、计划任务、服务安装等,利用系统自启动机制维持访问。

  6. 蜜罐识别:通过响应延迟偏差、服务指纹差异(TCP窗口/TTL)、诱饵文件等特征判断目标是否为蜜罐。

3.7 第7次实践:Linux系统攻防

  1. Samba服务漏洞利用(CVE-2007-2447)
    Samba的smbd服务在处理用户名映射时存在命令注入漏洞。smbd通过外部脚本/usr/bin/username_map.sh对用户名进行过滤处理,攻击者可在用户名中嵌入Shell元字符(如反引号、分号、管道符等),当脚本执行时会将这些元字符解释为命令并执行,导致远程命令注入。该漏洞影响Samba 3.0.0至3.0.26a版本,攻击者可通过向端口139发送特制请求触发漏洞。

  2. 反向Shell连接
    选择PAYLOAD为反向连接类型(如cmd/unix/reverse_netcat),该载荷使靶机主动向攻击机的指定IP和端口发起TCP连接,攻击机处于监听等待状态。反向连接的优势在于出站流量通常被防火墙放行,而目标机无需开放入站端口,隐蔽性强。

  3. 权限获取与验证
    攻击成功后,Metasploit建立远程Shell会话,通过sessions -i命令进入交互模式。在Shell中使用id命令查看当前用户ID,使用whoami查看用户名。由于Samba服务通常以root权限运行,攻击者获得的往往是root权限,可直接完全控制目标系统。

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

  1. 脱壳技术
    加壳工具通过压缩或加密原始可执行文件,在文件头部添加解压/解密代码(Stub),运行时Stub先执行还原原始代码到内存再跳转执行。脱壳工具(如超级巡警脱壳机)通过动态跟踪或特征匹配识别壳的类型(如UPX、ASPack、Themida),将内存中已还原的原始代码转储为新的可执行文件,去除外壳保护。脱壳是静态逆向分析的前提。

  2. IDA Pro静态/动态分析
    IDA Pro(交互式反汇编器)将二进制机器码转换为汇编指令,生成控制流图和函数调用关系图。静态分析通过反汇编引擎解析PE文件各节区,识别导入函数(如CreateFile、WriteFile、socket等)推断程序行为。动态分析(配合调试器)可在程序运行时设置断点、单步执行、监视寄存器和内存变化,实时跟踪程序执行路径,寻找crackme程序接受特定输入后输出成功信息的逻辑分支。

  3. 反逆向工程技术
    加壳是最基本的反逆向手段,可阻止静态分析。其他技术包括:

    • 反调试(调用IsDebuggerPresent检测调试器,检测到则改变执行路径或退出);
    • 字符串混淆(关键字符串加密存储,运行时动态解密);
    • 花指令(插入无意义的垃圾指令干扰反汇编);
    • 代码自修改(运行时动态解密或修改自身代码);
    • API动态调用(通过LoadLibrary+GetProcAddress在运行时获取API地址,避免导入表暴露)。
  4. 作者溯源条件
    在理想条件下(样本未加壳或已成功脱壳,字符串未混淆或已解密),可通过嵌入的编译信息(用户名、路径、编译时间)、PE资源中的版本信息、特定的代码风格或独特的字符串识别作者。实际约束包括样本是否被混淆、是否使用匿名编译环境、以及是否有足够的公开样本进行指纹对比。

  5. IRC协议
    IRC(Internet Relay Chat,互联网中继聊天)是一种基于TCP的文本通信协议,采用客户端-服务器架构。客户端发送NICK(设置昵称)和USER(设置用户信息)消息完成注册,使用JOIN消息加入指定频道。IRC服务器默认监听TCP 6667端口(标准端口),备用端口包括6660-6669,SSL加密版本使用6697端口。IRC因其实时性、低开销和易用性,成为早期僵尸网络的常用命令与控制(C2)通信协议。僵尸程序作为IRC客户端连接到指定频道,攻击者在频道中广播指令,僵尸程序解析并执行

  6. 僵尸网络
    僵尸网络(Botnet)是由攻击者控制的被感染主机群组成的网络。每台受感染主机称为"僵尸"或"机器人",通过C2服务器接收指令。僵尸网络广泛应用于发起DDoS攻击(多台主机协同发送海量流量瘫痪目标)、垃圾邮件发送(利用大量IP分散发送规避黑名单)、敏感信息窃取(键盘记录、密码抓取)、加密货币挖矿(利用被控主机计算资源)、点击欺诈(模拟用户点击消耗广告商预算)。僵尸网络的规模越大,攻击威力越强,部分僵尸网络可达数十万台主机。

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

(1)汇编指令机器码

  • NOP(No Operation,无操作) 机器码为0x90,执行时CPU不做任何操作,仅消耗一个指令周期并继续执行下一条指令。在漏洞利用中,NOP常被用于构建"NOP滑梯"(NOP Sled),当程序跳转地址落在NOP区域内时,CPU会沿NOP指令"滑行"至后续的Shellcode,提高攻击成功率,避免因跳转地址微小偏差导致失败。

  • JMP(Jump,无条件跳转) 机器码为0xEB(短跳转,偏移量为1字节,跳转范围-128至127字节)或0xE9(近跳转,偏移量为4字节,跳转范围为整个32位地址空间)。JMP指令将程序执行流无条件转移到目标地址,是修改程序流程和构建Shellcode的关键指令。

  • CMP(Compare,比较) 机器码为0x38(比较寄存器与内存)、0x39(比较寄存器与寄存器)、0x3A(比较内存与寄存器)、0x3B(比较寄存器与寄存器,通用形式)、0x3C(比较累加器与立即数)。CMP指令执行两个操作数的减法运算但不保存结果,仅根据结果设置EFLAGS标志寄存器中的ZF(零标志)、SF(符号标志)、CF(进位标志)、OF(溢出标志),为后续条件跳转指令提供判断依据。

  • JE(Jump if Equal,相等则跳转) 机器码为0x74(短跳转)。JE检查ZF标志位,若ZF=1(表示前一次比较结果相等)则跳转到目标地址,否则顺序执行。常用于判断CMP比较结果,实现if条件分支逻辑。

  • JNE(Jump if Not Equal,不相等则跳转) 机器码为0x75(短跳转)。JNE与JE相反,检查ZF标志位,若ZF=0则跳转。JE和JNE配合CMP可实现程序的条件分支控制。

(2)反汇编技术

反汇编是将二进制机器码转换为人类可读的汇编指令的过程。objdump是Linux下常用的反汇编工具,objdump -d pwn1可反汇编可执行文件的所有代码段,显示每条指令的地址、机器码和汇编助记符。反汇编工具通过递归遍历或线性扫描方式解析二进制文件的代码段,识别指令边界。在漏洞分析中,反汇编用于定位关键函数地址、分析程序逻辑和理解漏洞触发机制。

(3)Shellcode注入与执行

  • Shellcode定义 Shellcode是一段精心编写的机器码,通常用于在目标系统上启动一个Shell(如/bin/sh),也可用于执行任意其他功能(如添加用户、反弹连接等)。Shellcode需满足自包含(不依赖外部数据)、位置无关(可在任意地址运行)和无空字节(避免被字符串处理函数截断)等要求。

  • 注入方法 攻击者将Shellcode作为输入数据的一部分提交给存在漏洞的foo函数,Shellcode被写入栈上的缓冲区。同时,Payload构造为"填充数据 + Shellcode所在地址",将返回地址覆盖为缓冲区的起始地址(或缓冲区中Shellcode的起始位置)。当foo函数返回时,程序跳转到Shellcode处执行。

  • 原理详解 该方法是缓冲区溢出利用的高级形式,攻击者不依赖程序中已有的功能函数(如getShell),而是自行注入任意代码执行。关键难点在于精确预测Shellcode在栈上的起始地址(受编译器优化、环境变量等因素影响),为此常结合"NOP滑梯"技术(在Shellcode前填充大量NOP指令)提高命中率。

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

  1. SQL注入原理:Web应用将用户输入直接拼接到SQL查询语句中,攻击者通过构造恶意输入改变SQL语句的逻辑。SELECT注入中,输入admin' OR 1=1--使WHERE条件恒真,绕过密码验证登录系统。UPDATE注入中,在更新字段中注入SQL代码,可篡改数据库内容(如修改工资、权限)。防御核心是使用参数化查询(PreparedStatement),将SQL结构和数据分离,用户输入只作为数据处理不参与逻辑执行。

  2. XSS原理:Web应用未对用户输入进行过滤,攻击者在页面中注入恶意JavaScript代码,其他用户浏览时该代码在浏览器中执行。危害包括弹窗显示、窃取Cookie发送给攻击者、自动加好友、修改受害者资料。XSS蠕虫通过自我复制的JavaScript代码在用户间传播——访问被感染页面时,蠕虫代码将自身注入到受害者的个人资料中,实现传播扩散。对抗XSS需对输出进行HTML实体编码,使特殊字符(如< > & ")显示为文本而非代码。

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

(1)脚本混淆与加密

网页木马使用多层混淆技术隐藏真实攻击代码。
常见混淆方法包括:

  • 字符串拆分与拼接(将关键字拆分为多个部分运行时组合)
  • 字符编码转换(将ASCII字符转为十六进制或Unicode编码表示)
  • 使用eval()函数执行动态生成的代码
  • 自定义异或加密算法(脚本本身包含解密函数,解密后再次调用eval执行)。

每种混淆层的目的都是增加分析人员阅读难度,延长分析时间。

(2)多漏洞组合攻击

攻击方构造一个HTML页面,其中包含多个浏览器的漏洞触发代码。页面通过JavaScript检测浏览器类型(使用navigator.userAgent)和插件版本,动态选择对应的漏洞利用代码进行攻击。常见组合包括针对IE的MS06-014、MS10-002(CSS 0day)、针对Firefox的CVE-2009-0075(JavaScript引擎漏洞)、针对Safari的CVE-2008-0013等。

4.课堂的收获与不足

收获

  1. 理论知识
    通过本课程的学习,我对网络攻防的技术体系有了系统性的认识。基本覆盖了攻防领域的核心知识点。我真正理解了网络安全的真正意义。
  2. 实践操作
    实验环节让我从纸上谈兵走向了动手实操。从最初搭建攻防环境时反复遇到网络不通、IP配置混乱的问题,到后来能熟练使用渗透攻击等技能,再到还原攻击者的每一步操作,动手能力的提升非常明显。这些概念不再停留在书本层面。
  3. 思维方式
    我感觉最大的收获是建立了攻防对抗的思维方式。在分析一个漏洞时,我会去思考:攻击者会如何利用这个漏洞?利用后能达到什么目的?防御方应如何检测这种攻击?让我从以前的一味防守转变成以攻代防的思维方式。让我对网络安全的理解上升了一个层次。

不足

  1. 知识深度仍不够
    课程涉及的实验较多,每个实验只能覆盖到最核心的操作步骤,对于某些技术背后的原理理解还不够深入。
  2. 独立解决问题的能力有待加强
    在实验过程中,每当遇到非预期的报错,我有时会依赖查找ai或询问同学来解决,缺乏独立调试和排错的能力。有些实验虽然完成了操作,但中间出错的环节我并没有完全理解报错信息的含义和最终的解决逻辑。
  3. 防御视角训练不足
    课程实验大多以攻击者视角进行,防守方面的实践较少。虽然接触了防火墙、Snort等防御工具,但仅限于基本配置。对如何进行提前预防、如何制定有效的安全策略等问题,还缺乏系统性的实践。

总结

这个课我在本科阶段从未涉及。刚开始对这门课有些发怵,因为就像一张白纸一样。但随着每节课实验的进行,我逐渐产生了兴趣。其实王老师这种上课方式真的很适合我,繁琐学知识点其实效率很慢,相反,在实操中去运用知识点才会融会贯通。
yysy,这课确实挺好玩的,虽然有时候实验真的做不完且不会做(bushi)。

5.圆满结束!!!

写了好久,王老师手下留情,多给点分。

posted on 2026-07-04 03:47  无敌暴龙战神lmy  阅读(5)  评论(0)    收藏  举报