20242302-实验四-网络系统攻防技术

20242302 2026-2027-1 《网络与系统攻防技术》实验四实验报告

1.基础知识

  • PE文件:Windows可执行文件格式,包含文件头、节区、导入表等,恶意代码常通过加壳保护代码,压缩、加密原始程序,增加逆向难度。
  • 静态分析:不运行程序,通过文件识别、字符串提取、反汇编、反编译等手段分析程序逻辑,Ghidra、IDA为常用逆向工具。
  • 字符串比对校验:crackme类程序常用strcmp函数对比输入字符串,通过条件跳转分支区分成功与失败输出。
  • IRC协议:互联网中继聊天协议,基于TCP,默认端口6667,早期僵尸网络常利用IRC作为C2控制通道,通过JOIN指令加入控制频道。
  • 僵尸网络:被恶意程序控制的肉鸡集群,攻击者可下发指令,典型攻击方式包含缓冲区溢出漏洞利用。
  • 缓冲区溢出漏洞:程序对输入长度校验不足,攻击者构造恶意载荷覆盖内存,执行shellcode获取权限。
  • 流量取证:基于pcap流量包,使用Wireshark/tshark提取通信IP、端口、协议、攻击行为,还原攻击链路。

2.实验内容

本次实验包含4个部分: (1)对RaDa恶意代码样本进行文件类型识别、脱壳尝试、字符串提取,识别样本基础信息,查找样本编写作者相关线索; (2)使用Ghidra静态逆向crackme1.exe、crackme2.exe,寻找满足条件的输入参数,触发程序成功输出; (3)深度分析RaDa恶意样本,回答样本摘要、程序目的、功能特性、反分析技术、样本分类、同类工具、作者溯源、恶意软件检测方法等问题; (4)蜜罐流量取证分析,分析IRC僵尸网络pcap流量包,回答IRC协议、僵尸网络定义、通信服务器、攻击主机、攻击IP、漏洞利用、攻击结果等取证问题。

(1)恶意代码文件类型标识、脱壳与字符串提取

对rada恶意代码样本,进行文件格式识别、脱壳与字符串提取,获取相关信息:

  • 使用文件识别工具,识别RaDa为32位Windows PE可执行程序,使用篡改校验头的UPX壳保护;
  • 计划使用超级巡警脱壳机脱壳,但实验环境为Kali Linux,无Windows环境,无法使用该工具;使用upx -d脱壳失败,提示文件被修改保护;
  • 使用strings工具提取壳内可见字符串,仅获取VB6运行库相关函数,C2、注册表等敏感字符串被壳加密;结合Honeynet公开资料,该样本作者为Rada。

实验四-图1

实验四-图2

实验四-图3

实验四-图4

(2)IDA/Ghidra静态分析crackme1.exe与crackme2.exe

  • 使用Ghidra载入两个程序,静态分析main函数中的校验逻辑:
  • crackme1:程序读取命令行第一个参数argv[1],调用strcmp和I know the secret对比,匹配成功则输出成功信息;正确输入:I know the secret
  • crackme2:程序读取命令行第一个参数argv[1],调用strcmp和crackmeplease.exe对比,匹配成功则输出成功信息;正确输入:crackmeplease.exe

(3)RaDa恶意代码深度分析

  • 二进制摘要:RaDa是Visual Basic 6编写的32位Windows PE远控木马,UPX壳(校验头被篡改),属于Honeynet Scan of the Month 32经典样本;可通过文件哈希、文件名、落地路径作为识别标记。
  • 程序目的:作为RAT远程控制木马,接入C2服务器接收攻击者指令,实现对受害主机的远程控制。
  • 特性:文件落地持久化、HTTP C2通信、远程命令执行、文件上传下载、内网扫描、DDoS攻击、收集本机MAC地址。
  • 反分析技术:UPX加壳保护;内置反虚拟机检测,识别VMware特征MAC地址(00:0C:29、00:05:69、00:50:56),检测到虚拟机时抑制恶意行为。
  • 分类:远程控制木马(RAT)。理由:木马不会自我复制传播,依靠社会工程等方式投放,等待C2指令控制主机,不属于病毒、蠕虫。
  • 相似工具:SubSeven、Back Orifice(BO)、Poison Ivy,都是早期经典Windows远控木马。
  • 作者溯源:可以调查开发作者;限定条件:获取样本原始未加壳版本、通信日志、开发者留下的特征标记、历史论坛发帖记录、威胁情报平台溯源数据。

五种检测方法:

  • 基于特征码检测:提取木马独有二进制特征,杀毒软件匹配特征,优点速度快,缺点加壳变种容易绕过;
  • 基于哈希值检测:计算文件MD5/SHA256,和威胁情报库黑名单比对,适合已知固定样本;
  • 基于行为检测:监控主机文件、注册表、网络行为,发现创建自启动项、连接陌生C2地址等恶意行为;
  • 基于沙箱动态检测:在隔离沙箱运行样本,观察运行时动作,适合加壳、无特征的新变种;
  • 基于网络IOC检测:防火墙、流量设备拦截样本C2地址、域名,阻断木马通信链路。

(4)取证分析实践(Windows 2000蜜罐僵尸网络流量)

  • IRC是互联网中继聊天(Internet Relay Chat),是基于文本的实时通信协议;客户端加入频道发送JOIN #频道名;常用TCP端口:6667(明文)、6697(SSL加密)。
  • 僵尸网络是大量被恶意程序入侵、受控的肉鸡主机集群;用途:DDoS攻击、垃圾邮件发送、窃取信息、恶意代码分发、代理攻击。
  • 蜜罐172.16.134.191通信的IRC服务器:66.244.195.90、216.127.72.204。
  • 访问209.196.44.172僵尸网络的不同主机数量:31台。
  • 攻击蜜罐主机的IP:218.248.27.126、211.136.108.127。
  • 攻击者尝试利用漏洞:MS03-026 RPC DCOM缓冲区溢出漏洞、MS03-007 WebDAV漏洞。
  • MS03-026 RPC DCOM攻击成功;攻击者发送特制恶意数据包触发缓冲区溢出,执行shellcode,在蜜罐部署IRC僵尸客户端,接入僵尸网络接收控制指令。

实验四-图5

实验四-图6

实验四-图7

实验四-图8

实验四-图9

实验四-图10

3.实验过程

实验四-图11

实验四-图12

实验四-图13

  • RaDa样本分析:使用file识别样本为32位Windows PE程序,尝试upx -d脱壳,因样本修改UPX校验头脱壳失败;执行strings提取可见字符串,得到VB运行库相关函数;查阅Honeynet官方SotM32报告,整理样本摘要、功能、反分析手段、IOC、检测方案。
  • Crackme逆向:打开Ghidra,新建项目,依次导入crackme1.exe、crackme2.exe,执行Analysis -> Auto Analyze自动分析;定位main函数,查看反编译伪代码,找到strcmp比对逻辑,确定两个程序的正确命令行参数。受环境限制无wine,不运行exe,依靠静态逆向结果得到答案。
  • 流量取证:使用Wireshark加载蜜罐pcap流量包,筛选IRC协议流量,提取通信服务器IP、攻击源IP、客户端数量,识别漏洞利用流量,确认RPC DCOM溢出攻击成功。

4.问题及解决方案

  • 问题1:RaDa样本使用upx自动脱壳失败,报错CantUnpackException: file is modified/hacked/protected,缺少Windows环境下超级巡警脱壳工具。
  • 问题1解决方案:如实记录脱壳失败现象,查阅Honeynet官方SotM32样本公开分析报告,基于权威资料完成静态分析,报告中注明环境限制。
  • 问题2:Ghidra导入程序后Decompiler窗口显示No Function,看不到伪代码。
  • 问题2解决方案:导入文件后执行Analysis -> Auto Analyze,等待自动分析完成,符号树加载出函数后,双击main函数即可查看反编译C代码。
  • 问题3:Kali中没有wine,无法运行exe验证crackme输入结果。
  • 问题3解决方案:本次为静态分析实验,不需要运行程序,直接根据Ghidra反编译逻辑得出正确输入参数,在报告中写明静态分析结论。

5.学习感悟、思考等

本次实验系统学习了恶意代码静态分析、简单二进制逆向、流量取证的基础思路。静态分析无需运行恶意程序,安全性更高,但加壳、混淆技术会隐藏大量关键信息,增加逆向难度。通过对crackme的逆向,我理解了密码校验的底层逻辑,字符串比较、条件跳转是入门逆向最典型的模式。 IRC僵尸网络取证让我认识到早期恶意程序常借用通用通信协议构建控制通道,网络流量记录是追溯攻击行为的核心证据。缓冲区溢出这类经典高危漏洞,根源在于缺少严格的输入边界校验,做好输入校验是基础安全防护手段。 攻防技术具有两面性,本次所有操作均在授权实验环境下完成,仅用于原理学习。后续我会持续巩固逆向、流量分析能力,同时严守网络安全相关法律法规,不进行任何未授权的攻击、逆向活动。

参考资料

  • 《恶意代码分析实战》
  • Ghidra官方文档
  • Honeynet Scan of the Month 32 官方分析报告
  • Wireshark流量取证技术文档
posted @ 2026-11-07 16:31  叶梓珂  阅读(8)  评论(0)    收藏  举报