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

 

一.基础知识

本次实验围绕恶意代码分析与流量取证展开,涉及的核心基础知识如下:

PE文件结构:Windows可执行文件的标准格式,包含节区、导入表、入口点等核心结构,是静态逆向分析的基础。

加壳与脱壳:通过压缩、加密代码段隐藏程序真实逻辑,是恶意代码常用的反分析手段;脱壳则是还原原始代码、开展深度分析的前置步骤。

静态逆向分析:不运行程序,借助IDA等反汇编工具提取字符串、定位核心函数、梳理程序执行逻辑,是恶意代码分析的核心手段。

恶意代码分类:按行为特征可分为病毒、蠕虫、后门木马、僵尸网络等,不同类型的传播机制、攻击目标存在明显差异。

IRC僵尸网络:基于IRC聊天协议实现一对多的批量控制,是早期僵尸网络的主流架构,攻击者通过IRC频道向所有僵尸主机下发指令。

流量取证:从网络数据包中还原攻击链路、识别恶意通信、定位攻击源,是网络攻防中事后溯源的核心方法。

 

二.实验内容

本次实验分为四个核心模块:

1.对RaDa恶意代码样本进行文件类型识别、脱壳处理与字符串提取,定位样本的编写作者信息。

2.使用IDA Pro静态分析crackme1.exe与crackme2.exe,逆向推导正确输入,触发程序成功输出。

3.深度分析RaDa恶意代码样本,从文件摘要、行为目的、反分析技术、分类、检测方法等8个维度完成分析报告。

4.基于蜜罐主机的5天流量数据开展取证分析,梳理IRC僵尸网络通信过程、攻击行为与漏洞利用情况。

 

三.实验过程

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

3.1.1文件格式与加壳识别

使用PEiD工具加载原始样本RaDa.exe,识别文件基础属性与加壳类型。识别结果显示,该样本为32位Windows GUI可执行程序,使用UPX 0.89.6-2.90版本压缩壳进行保护。

识别样本文件格式与加壳信息

 

3.1.2样本脱壳处理

使用超级巡警虚拟机自动脱壳器对原始样本进行脱壳。工具自动识别UPX壳并完成脱壳,生成脱壳后的可执行文件,按要求重命名为20242414_rada_unpacked.exe用于后续分析。

超级巡警完成样本脱壳
 

3.1.3字符串提取与开发者定位

将脱壳后的样本导入IDAPro,通过Shift+F12打开字符串窗口,筛选版权相关字段。最终定位到样本版权信息:Copyright (C) 2004 Raul Siles & David Perez,即为该恶意代码的编写者。

IDA提取样本开发者信息

 

3.2 IDA静态分析crackme程序

3.2.1 crackme1.exe分析

直接双击运行crackme1.exe会快速闪退,通过命令行无参数运行时,程序提示I think you are missing something.,说明程序需通过命令行传入参数。

将样本导入IDA Pro,通过字符串定位到成功提示You know how to speak to programs,Mr.Reverse-Engineer,通过交叉引用反向定位到核心验证函数。分析流程图可知,程序通过strcmp函数将输入参数与固定字符串I know the secret对比,匹配成功则输出成功提示。

在cmd中传入正确参数运行程序,成功触发成功输出。

crackme1核心验证函数流程图
 
crackme1运行成功界面
 

3.2.2 crackme2.exe分析

crackme2整体结构与crackme1类似,但直接传入正确密码仍提示I have an identity problem.。通过IDA分析验证函数发现,程序新增了一层文件名校验,要求程序自身文件名必须为crackmeplease.exe,否则无法进入密码校验环节。

将程序重命名为crackmeplease.exe后,在cmd中传入密码Iknowthesecret运行,成功输出提示We have a little secret:Chocolate。

crackme2核心验证函数流程图
 
crackme2运行成功界面
 

3.3 RaDa恶意代码样本深度分析

3.3.1二进制文件摘要

该样本文件名为RaDa.exe,属于32位Windows PE GUI可执行文件,基于Intel x86架构,连接器版本6.0,入口点地址0000FD20,入口位于JDR1异常节区。样本使用UPX压缩壳保护,可通过计算MD5、SHA256哈希值作为唯一识别指纹,用于同一样本的匹配检测。

样本基础信息汇总

 

3.3.2样本的核心目的

该样本是一款远程控制后门木马,核心目的是在受害主机建立持久化的远程访问通道,具体行为包括:

1.通过修改注册表开机启动项实现持久化驻留;

2.内置多个HTTP协议的C&C服务器地址,与控制端通信并接收指令;

3.调用WScript.Shell执行系统命令、操作文件与注册表,实现攻击者的远程控制需求。

样本恶意功能特征字符串

 

3.3.3样本的特性

1.保护特性:使用UPX压缩壳压缩代码与数据,干扰静态反汇编,提升分析门槛;

2.开发特性:由VB语言编写,依赖VB运行库函数;

3.功能特性:具备HTTP网络通信、注册表读写、脚本执行、文件管理等完整远程控制能力;

4.持久化特性:通过写入注册表Run启动项实现开机自启,并在系统盘创建专属目录存放自身文件。

 

3.3.4反分析技术

样本最核心的反逆向技术是UPX压缩壳:通过压缩原始代码段、修改入口点,直接静态反汇编无法得到有效代码,增加逆向分析的成本。该样本属于入门级教学样本,未使用反调试、花指令、虚拟机保护等高级反分析技术。

 

3.3.5样本分类与理由

该样本属于后门/远程控制木马(Backdoor/RAT)。

理由:该样本不具备感染其他可执行文件的能力,不符合病毒定义;不具备主动扫描漏洞、自我扩散传播的能力,不符合蠕虫定义;其核心功能是在受害主机留设隐蔽的远程访问入口,接收攻击者指令执行系统操作,完全符合后门木马的特征。

 

3.3.6同类相似功能工具

同类经典远程控制工具包括:冰河(Glacier)、灰鸽子、BO2K(BackOrifice2000)、SubSeven、NetCat(后门场景),均具备远程命令执行、文件管理、系统控制的核心能力。

 

3.3.7开发者追踪分析

本样本可以直接定位开发者,脱壳后可直接从字符串中提取版权标识,确认开发者为Raul Siles与David Perez。

通用场景下追踪恶意代码开发者存在限定条件:一是样本需先脱壳还原明文代码;二是开发者在程序中留存了身份标识;对于无标识的恶意代码,需要结合威胁情报、网络日志、服务器注册信息开展司法级溯源,普通分析场景无法完成。

 

3.3.8恶意软件检测方法

1.特征码检测:提取样本独有的二进制片段、字符串作为特征码存入病毒库,扫描时匹配特征即判定为恶意。准确率高、误报低,但无法检测未知变种。

2.哈希值检测:计算样本的MD5、SHA256哈希值建立恶意库,文件哈希匹配即判定为恶意。实现简单,但文件修改单个字节就会失效,无法检测变种。

3.启发式检测:基于文件结构、指令序列、API组合等特征加权评分,超过阈值即判定为可疑。可检测未知恶意代码,存在一定误报率。

4.沙箱动态检测:在隔离虚拟环境中运行样本,监控文件、注册表、进程、网络全维度行为,综合判定是否恶意。可还原完整恶意行为,但资源消耗大,高级恶意代码可识别沙箱并隐藏行为。

5.网络流量检测:监控主机外联行为,识别恶意C&C通信、异常端口连接、DDoS流量等特征。不受文件加壳影响,适合内网失陷检测,加密通信会提升检测难度。

 

3.4 僵尸网络流量取证分析

3.4.1 IRC相关问题

IRC是一种基于文本的实时网络聊天协议,支持多用户、多频道即时交流,常被僵尸网络用作命令控制信道。

客户端加入IRC网络时,核心发送NICK(设置昵称)和USER(注册用户信息)两条消息完成身份注册。IRC默认使用TCP6667端口(明文传输),加密场景常用6697端口,也可自定义其他高位端口。

 

3.4.2 僵尸网络相关问题

僵尸网络是攻击者通过控制服务器集中管控大量被感染设备(僵尸主机)形成的网络。僵尸网络通常用于:发动DDoS拒绝服务攻击、发送垃圾邮件、窃取用户数据、挖矿牟利、作为攻击跳板、批量传播恶意代码。

 

3.4.3 蜜罐主机通信的IRC服务器

蜜罐主机172.16.134.191共与4台IRC服务器进行了通信,IP地址分别为:209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10。

流量会话统计概览

 

3.4.4 访问服务器的僵尸主机数量

以209.196.44.172为服务器的僵尸网络,观测时段内共有3461台不同的僵尸主机接入,通过提取IRC频道内的昵称列表并去重统计得到该结果。

 

3.4.5 攻击蜜罐主机的IP地址

共有165个不同IP对蜜罐主机发起了扫描与攻击,覆盖多个地址段,典型攻击源包括24.197.194.106、195.36.247.77、210.22.204.101、61.111.101.78等。

 

3.4.6 攻击者尝试的安全漏洞

攻击者针对多个端口尝试了不同类型的漏洞攻击:

135端口:Windows RPC服务漏洞探测

139/445端口:SMB文件共享漏洞攻击,尝试获取共享权限、远程执行代码

25端口:SMTP邮件服务漏洞探测

80端口:Web服务缓冲区溢出、目录遍历攻击

4899端口:Radmin远程控制软件漏洞利用

137端口:NetBIOS名称服务扫描,用于主机信息探测

 

3.4.7 成功的攻击与原理

445端口SMB漏洞利用:攻击者通过SMB协议完成NTLM认证,成功访问目标共享资源,执行了文件删除操作(删除System32目录下的PSEXESVC.EXE),说明已获取主机管理员权限,属于SMB远程代码执行漏洞利用。

4899端口远程控制漏洞利用:攻击者与4899端口建立稳定TCP连接,持续传输数据,并通过目录遍历漏洞调用系统cmd.exe执行命令,成功控制目标主机。

80端口Web缓冲区溢出攻击:攻击者向80端口Web服务发送超长字符串的溢出载荷,服务器正常接收并处理请求,未返回报错,说明缓冲区溢出攻击生效,攻击者获得了服务器控制权限。

IRC控制信道TCP流内容

 

四、问题及解决方案

问题1:原始RaDa.exe样本被Windows Defender自动删除,找不到原始文件

解决方案:打开Windows安全中心的保护历史记录,从隔离区还原该文件,并将整个实验文件夹添加到杀毒软件排除项中,避免后续文件被误删。

 

问题2:crackme程序双击后闪退,无法正常交互

解决方案:该类程序为命令行参数型程序,不支持双击后输入。打开cmd命令提示符,切换到样本目录后,以“程序名参数”的格式运行,即可正常传入输入并查看结果。

 

问题3:IDA中按X键无法调出交叉引用,底部报错

解决方案:该问题是因为当前窗口焦点在十六进制视图或字符串窗口,X键仅在反汇编视图(IDAView-A)中生效。点击切换到反汇编视图,将光标定位到目标字符串行后再按X,即可正常调出交叉引用。

 

五、学习感悟、思考

本次实验完整走完了恶意代码分析的全流程,从基础的文件识别、脱壳,到静态逆向破解crackme,再到深度分析恶意样本的行为特征,最后通过流量取证还原僵尸网络攻击过程,让我对恶意代码攻防有了更直观、立体的理解。

实验过程中也踩了不少工具使用的细节坑,比如IDA快捷键的窗口焦点问题、命令行程序的运行环境差异,这些都是只看课本学不到的实操经验。同时也体会到,恶意代码分析不仅需要逆向代码的功底,还需要对系统机制、网络协议有综合的理解。

另外通过僵尸网络的流量分析,我也感受到了真实网络攻防的对抗性——攻击者会通过各种手段隐藏踪迹,防守方需要从海量流量里还原攻击链路。后续我还需要加强逆向分析的练习,提升静态代码阅读和漏洞分析的能力,把基础打扎实。

 

参考资料

[1] 李承远.《逆向工程核心原理》.人民邮电出版社

[2] Hex-Rays.IDA Pro官方技术文档.https://hex-rays.com/documentation/

[3] 国家计算机网络应急技术处理协调中心。僵尸网络威胁检测与处置技术指引