zoukankan      html  css  js  c++  java
  • 恶意代码分析实践

    一、实验选题背景:

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

    二、实验操作

    0X01 确认文件完整性

    image

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

    确认文件格式

    image

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

    image

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

    0X02 目标运行测试

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

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

    image

    image

    image

    注册表行为:

    image

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

    创建键值:HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun

    设置键值:HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunRaDa 添加路径:C:RaDainRaDaRaDa.exe(此意为将路径C:RaDainRaDaRaDa.exe的RaDa.exe文件添加到系统自启动中)

    关闭键值:HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun

    文件系统行为:

    image

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

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

    在C盘创建文件夹RaDa。

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

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

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

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

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

    创建路径C:RaDain。(创建成功)

    查询路径:C:RaDainRaDa.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知之甚少,就不做进一步分析了。

     

     

  • 相关阅读:
    usb_submit_urb
    xilinx uboot网卡驱动分析
    kernel: swapper: page allocation failure. order:1, mode:0x20
    Linux格式化硬盘 常用命令小记
    spring3:对JDBC的支持 之 JDBC模板类
    spring3: AOP 之代理机制
    spring3: AOP 之切面实例化模型 ——跟我学spring3
    spring3: AOP 之 通知顺序
    spring3: AOP 之 通知参数
    spring3: 切面及通知实例 Aspectj的aop
  • 原文地址:https://www.cnblogs.com/ghost00011011/p/8996610.html
Copyright © 2011-2022 走看看