Rada分析实践

Posted IBESTI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rada分析实践相关的知识,希望对你有一定的参考价值。

一、实验选题背景:

北京大学网络攻防技术与实践课程——Rada分析(北京大学计算机研究所信安中心)

 

二、实验操作

 

0X01 确认文件完整性

image

 

或是在linux 下使用md5sum工具进行计算哈希值。

确认文件格式

image

 

使用命令:strings RaDa.exe | less 查看程序可以打印的字符串

image

 

发现呈现乱码,推测程序加壳。

0X02 目标运行测试

 

注意:目标程序运行测试请勿在工作环境下进行

运行filemon、wireshark、regmon监控工具,然后再执行样本rada.exe,使用上述三个监控工具记录日志并保存。

image

image

image

 

注册表行为:

image

 

以下按照行为顺序叙述目标行为:

创建键值:HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run

设置键值:HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\RaDa 添加路径:C:\\RaDa\\bin\\RaDa\\RaDa.exe(此意为将路径C:\\RaDa\\bin\\RaDa\\RaDa.exe的RaDa.exe文件添加到系统自启动中)

关闭键值:HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run

 

文件系统行为:

image

 

以下按照执行目标行为过程顺序叙述监测行为:

首先查看路径C:\\下是否存在文件夹RaDa\\tmp。(结果是不存在)

在C盘创建文件夹RaDa。

在RaDa文件夹中创建子文件夹tmp。

打开路径C:\\RaDa\\tmp。(测试子文件夹tmp创建是否成功)

查看路径C:\\RaDa下是否存在文件夹bin。(结果是不存在)

创建路径C:\\RaDa\\tmp。(结果是名称冲突,创建失败。原因是上面的操作已经创建了该路径)

创建路径C:\\RaDa。(结果是名称冲突,创建失败。原因是上面的操作已经创建了该路径)

创建路径C:\\RaDa\\bin。(创建成功)

查询路径:C:\\RaDa\\bin\\RaDa.exe (结果是不存在)

在上条的路径下创建该文件,查询属性、文件大小,写入文件。

 

网络行为:

让我分析网络行为?怎么分析?目标程序运行出错,开始我以为是采用的目标程序有问题,我从其它渠道获取目标程序后仍然出错。这作业没法做了。

 

image

image

 

使用查壳工具Exeinfo PE对文件进行扫描,发现该程序使用了upx加壳软件加壳

image

 

下面进行upx的脱壳

首先在upx官网上下载upx脱壳软件,配置环境变量。

 

image

配置成功:

image

 

首先测试下目标文件:

image

尝试使用upx对程序进行自动脱壳,发现脱壳失败:

 

image

采用超级巡警脱壳机进行脱壳,发现脱壳失败,奇了怪了,在超级巡警V1.3中可以脱壳成功,到了V1.5版本中就脱壳失败???什么破玩意:

image

image

 

在实验的最初我使用的是V1.5版本的脱壳机,发现失败后转而尝试手动脱壳:

使用OD载入RaDa.exe,发现:

image

选中“是”,继续调试

F7继续调试,寻找EP,设置断点:

image

 

F7进入函数体内部:

image

使用OD插件OllyDump——>脱壳在当前调试的进程:

image

记下修正值,选择“脱壳”,根据提示另存数据。

image

OD不要关闭,接下来打开Import REC,附加进程选择被调试的进程,然后填入修正后的EP,然后点击“AutoSearch”,接下来“Get Imports”,然后会找到一些函数,然后Fix Dump,目标程序为OD脱壳后的程序,保存就OK了,修正的文件为脱壳后的文件后面加一个下划线。

image

程序载入Stud_PE,尝试将刚保存的文件使用stud_PE进行EP修复:

image

 

使用两个版本的脱壳机测试手工脱壳成果,应该是成功了,下面使用strings工具提取可打印字符来验证下:

image

测试使用超级巡警V1.3脱壳后的程序:

02

03

测试手动脱壳的程序:

04

05

 

 

证明手动脱壳成功。

后续壳的进一步分析,由于对于IDA知之甚少,就不做进一步分析了。

 

 

 

以上是关于Rada分析实践的主要内容,如果未能解决你的问题,请参考以下文章

Rada

Rxjava源码分析&实践实践环节:map操作符功能实现

2020-2021 恶意代码 20181230 实践作业5.2 初步动态分析

Retrofit源码分析&实践Retrofit CallAdapter的引入

Retrofit源码分析&实践Retrofit 多BaseUrl问题解决

Log4j2分析与实践