20232403 2024-2025-1 《网络与系统攻防技术》实验四实验报告
20232403 2025-2026-1 《网络与系统攻防技术》实验四实验报告
1.实验内容
总结一下本周学习内容,不要复制粘贴
2.实验过程
2.1恶意代码文件类型标识、脱壳与字符串提取
file一下查看文件格式和运行平台

结果为RaDa.exe: PE32 executable (GUI) Intel 80386, for MS Windows, 3 sections
通过这个反馈可以获取以下信息:
文件格式:PE32,这表明该文件是32位Windows可执行文件。
运行平台:for MS Windows,也就是Windows。
特性:(GUI),这是图形用户界面程序。
结构:3 sections,该文件只有3个节区。数量算很少的,这也一定程度能反映该文件被加壳,通常未加壳的PE文件会有更多的节区。
用PEID.exe分析RaDa.exe,结果如下:

加壳工具为UPX,且作者是Markus&Laszlo。
使用超级巡警脱壳机,对rada恶意代码样本进行脱壳处理:

得到RaDa_unpacked.exe
使用字符串提取工具,将脱壳处理的文件提取字符并grep分析,找到文件签名

可以看到明确的签名,作者为Raul Siles和David Perez。
2.2使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。
2.2.1IDA静态分析crackme1.exe
F5反汇编一下,结果如下:

伪代码逻辑十分清晰,我们来分析一下,
程序检查命令行参数argc的数量,
如果参数数量不等于2,则输出:"I think you are missing something."
如果参数数量等于2,则继续检查第二个参数argv[1]的内容。
程序使用strcmp函数比较第二个参数与字符串"I know the secret":
如果匹配,则输出成功信息:"You know how to speak to programs, Mr. Reverse-Engineer"
如果不匹配,则输出:"Pardon? What did you say?"
也就是说,我们只需要使argv有两个参数,且第二个参数为"I know the secret"即可得到正确结果。
值得注意的是,argv的第一个参数为程序名本身,所以我们需要提供的只有第二个参数

输入错误数据,结果符合刚刚的分析过程。

2.2.2IDA静态分析crackme2.exe
接下来静态分析crackme2.exe

注意到这样一句伪代码!strcmp(*argv, "crackmeplease.exe")
前文提到,argv的第一个参数为程序名本身,那么这句话的含义大致就是检查该文件的文件名是否为crackmeplease.exe,
也就是说,程序要求该可执行文件必须命名为crackmeplease.exe
然后!strcmp(argv[1], "I know the secret")
和crackme1一样检查参数内容是否为 "I know the secret"
那么结果很明确了,需要将文件名重命名为crackmeplease.exe,然后输入参数"I know the secret"即可

哟,结果不对,为什么呢,乱试了一通,最后想到可能程序只比对了 "crackmeplease.exe",而我输入的是实际是路径,所以换到cmd重新做一遍

虽然解决了,但是还是有一个小疑问,为什么刚刚crackme1.exe没有这样的问题?
这是因为crackme1只检查参数数量和参数内容,而没有检查程序名称。
2.3分析恶意代码样本rada,并撰写报告
2.3.1提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息。

基础文件信息
文件名: RaDa.exe
文件类型: PE32 executable (GUI) Intel 80386, for MS Windows
MD5: caaa6985a43225a0b3add54f44a0d4c7
SHA1: 4164423ece62c5c4c287f8c2003b84e4e3a6cfda
SHA256: 13c2379e9d9f679396e21a3391804cc834892f25691381b6d078d07b56d38f90
这些哈希值是文件的数字指纹,全球唯一,是可靠的识别依据,可以帮助识别同一样本。
2.3.2找出并解释这个二进制文件的目的。

在反汇编中找到如下一行关键信息
JDR0:004023A4 text "UTF-16LE", 'http://10.10.10.10/RaDa',0
http://10.10.10.10/RaD是一个很可疑的网站,继续寻找相关信息

在sub_404FB0函数中有一行关键信息
JDR0:00404FE1 mov edx, offset aHttp10101010Ra ; "http://10.10.10.10/RaDa"
这是C&C服务器配置,其中10.10.10.10是一个私有IP地址,很可能为攻击者控制的服务器地址。
因此这段代码的目的很可能是建立HTTP通信通道。基本上可以确定RaDa是一个HTTP后门程序。
2.3.3识别并说明这个二进制文件所具有的不同特性。
该二进制文件是一个使用VBA编写并经过UPX加壳的HTTP后门程序。它通过C&C服务器地址和http://10.10.10.10/RaDa进行通信。是一个Windows远程控制工具。
2.3.4识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术。
该二进制文件主要采用UPX加壳技术来混淆原始代码。同时使用HTTP协议进行通信,伪装成正常网络流量。
2.3.5对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由。
我认为该恶意代码样本是后门。因为它不具备自我复制和主动传播的特性,不属于病毒或蠕虫,且主要功能是为攻击者提供一个隐蔽的远程控制通道,使其能够对目标主机进行操作,这是一个后门程序。
2.3.6给出过去已有的具有相似功能的其他工具。
netcat、BO、冰河、灰鸽子
2.3.7可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以,在前面的操作中我们已经找出作者为Raul Siles和David Perez。
3.问题及解决方案
- 问题1:静态分析crackme2时实际结果与预期不符
- 问题1解决方案:祥见2.2.2
- 问题2:在分析rada时,发现有一大块分区无法分析
![image]()
![image]()
- 问题2解决方案:经过思考,意识到这是加壳的结果,应该先脱壳再分析,解决问题的同时感受到了加壳的作用。
4.学习感悟、思考等
xxx xxx



浙公网安备 33010602011771号