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

  1. 实验内容
    (1)对恶意代码进行文件类型标识、脱壳与字符串提取

(2)学会使用IDA Pro进行静态或动态分析

(3)对一个自制的恶意代码样本rada进行各方分析

(4)进行取证分析

  1. 实践要求
    掌握对恶意代码进行文件类型标识、脱壳与字符串提取,学会使用静态或动态分析,尝试进行取证分析
  2. 实践内容
    3.1 对恶意代码进行文件类型标识、脱壳与字符串提取
    3.1.1 对RaDa.exe基本检测
    (1)将RaDa.exe传入linux中,在linux中使用命令“file + 文件名”检测该文件的文件类型
    (2)使用命令“strings + 文件名”打印字符串
    image
    (3)在win上使用PEiD工具检测RaDa.exe的信息
    image
    3.2 使用IDA Pro进行静态或动态分析
    3.2.1 对crackme1.exe进行分析,寻找特定输入,使其能够输出成功信息
    (1)将该文件传入linux,使用file命令查看该文件类型
    win中通过命令行运行该程序
    image
    有两种不同的输出,参数数量为1时输出“Pardon? What did you say?”,其他输出“I think you are missing something.”
    (2)使用IDApro打开该程序
    image
    (3)查看整个程序的call flow
    发现函数sub_401280中有strcmp字符串比较函数,以及输出函数,推测可能是通过比较输入是否正确输出对应的提示
    从该函数的开始部分可以看出来,是通过判断参数是否为2,且输入是否正确来进行不同的输出。如果不为2,则输出“I think you are missing something.”;如果是2但是输入错误则输出“Pardon? What did you say?”;如果是2且输入正确则输出“You know how to speak to programs, Mr. Reverse-Engineer”
    重新运行程序并正确输入后,输出正确提示!
    image
    3.2.2 对crackme2.exe进行分析,寻找特定输入,使其能够输出成功信息
    1)将该文件传入linux,使用file命令查看该文件类型
    在win中通过命令行运行该程序
    (2)再次使用IDApro打开该程序并进行分析,打开strings windows后,仍然可以看到之前发现的两种输出提示
    分析出:参数总数为 2(含程序名),且第二个参数是 “I know the secret” 时,就会输出成功信息
    image
    image
    执行 .\crackme1.exe "I know the secret",果然输出 “You know how to speak to programs, Mr. Reverse-Engineer”,验证成功。
    image
    3.3 分析自制恶意代码样本rada,并回答问题
    3.3.1 收集分析代码信息
    打开process explorer,运行脱壳后的Rada_unpacked,双击该进程,查看Strings窗口,可以看到如下图的信息。
    image
    分析相关内容
    http://10.10.10.10/RaDa RaDa 恶意代码的C2(命令与控制)服务器地址,为内网 / 测试网段 IP,是恶意代码接收控制指令、上传 / 下载数据的核心通信端点
    RaDa_commands.html C2 服务器端的控制指令页面,用于向受感染主机下发 DDoS 攻击、数据窃取等恶意指令
    cgi-bin、download.cgi、upload.cgi 恶意代码与 C2 服务器的通信接口:
  • download.cgi:从 C2 服务器下载恶意模块 / 更新程序;
  • upload.cgi:向 C2 服务器上传窃取的主机数据;
  • cgi-bin:标准 Web 脚本目录,验证该 C2 为 Web 端控制模式
    C:\RaDa\tmp、C:\RaDa\bin 恶意代码本地存储路径:
  • C:\RaDa\bin:存放核心执行程序RaDa.exe;
  • C:\RaDa\tmp:存储窃取的数据、攻击日志或临时下载模块
    HKLM\Software\Microsoft\Windows\CurrentVersion\Run\RaDa、REG SZ、C:\Rada\bin\RaDa.exe 恶意代码的持久化机制:通过修改系统开机启动项,实现开机自启,确保感染后持续驻留目标主机
    HKLM\Software\VMware, Inc.\VMware Tools\InstallPath 恶意代码的反分析技术:读取该注册表项检测运行环境是否为 VMware 虚拟机,若检测到则规避恶意行为或退出,防止被逆向分析
    Starting DDoS Smurf remote attack... RaDa 的核心恶意行为:发起Smurf 类型 DDoS 攻击(利用 ICMP 协议放大攻击,伪造目标 IP 向广播地址发送请求,导致目标主机被大量响应包淹没)

3.3 相关问题回答
提供二进制文件的摘要(含识别信息):
该样本为 32 位 Windows GUI 可执行程序,基于 Intel x86 架构开发,MD5 校验值为 caaa6985a43225a0b3add54f44a0d4c7,编译于 2004 年 10 月 30 日,作者信息为 Raul Siles && David Perez,原始文件采用 UPX 压缩加壳保护,脱壳后可识别为 Microsoft Visual C++ 6.0 编译产物。

二进制文件的目的:
该程序本质是一款远程控制后门,核心目的是通过在目标主机建立隐蔽的远程访问通道,实现长期潜伏。其可连接预设的 C&C 服务器接收攻击者指令,执行数据窃取、恶意模块下载、系统控制等非法操作,对目标主机的信息安全构成严重威胁。

二进制文件的特性:
抗分析特性:采用 UPX 加壳技术,压缩原始代码以躲避静态分析。
持久化特性:通过修改系统注册表 Run 键,实现开机自启,保障长期驻留。
环境适配特性:自动创建本地专属目录(C:\RaDa\tmp、C:\RaDa\bin),为恶意行为提供支撑。
网络通信特性:硬编码 C&C 服务器地址,基于 HTTP 协议实现指令接收与数据传输。
模块化特性:功能模块拆分明确,支持恶意载荷的动态下载与执行。

防止被分析的技术及应对:
该样本采用的抗分析技术为 UPX 加壳,通过压缩程序代码段、篡改入口点地址等方式,干扰逆向工具对原始代码的解析。应对方案:进行脱壳处理,还原程序原始代码。

恶意代码分类及理由:
属于后门程序。它不能自我复制或主动传播,也不伪装成正常软件,核心就是给攻击者留后门,实现长期未授权访问。

相似功能的其他工具:
PcShare、灰鸽子、冰河这些经典后门工具,还有 msfvenom、Veil 能生成类似功能的恶意样本。

能否调查出开发作者?条件是什么?
可以,这次就找到作者了。条件是:作者没加密或混淆身份信息,文件能成功脱壳,有 IDA Pro 这类静态分析工具。

至少 5 种检测该恶意软件的方法:

特征码检测:提取 MD5 值、UPX 加壳特征这些,和杀毒软件病毒库比对,快但要及时更病毒库。
行为检测:监控它是否改注册表、创建异常目录、连可疑 IP,能检测未知恶意软件但可能误报。
网络流量检测:看主机是否连 10.10.10.10 这个可疑 IP,有没有异常 HTTP 请求,不受加壳影响。
沙箱检测:在隔离环境里运行,看它的行为,准确但费资源、速度慢。
静态代码分析:脱壳后反汇编,看代码逻辑有没有恶意功能,安全但对技术要求高。

posted @ 2025-11-10 18:16  20232428杨凯  阅读(17)  评论(0)    收藏  举报