目录

  1. 1. 前言
  2. 2. 简单病毒逆向分析
    1. 2.1. 目标
    2. 2.2. 步骤
      1. 2.2.1. 数据源准备
      2. 2.2.2. 病毒分析
  3. 3. 文件夹木马病毒样本逆向分析
    1. 3.1. 工具
    2. 3.2. 步骤
      1. 3.2.1. 云沙箱分析
      2. 3.2.2. 查壳
      3. 3.2.3. Delphi 分析
      4. 3.2.4. 检测依赖关系
      5. 3.2.5. 火绒剑分析
      6. 3.2.6. IDA静态分析

LOADING

第一次加载文章图片可能会花费较长时间

要不挂个梯子试试?(x

加载过慢请开启缓存 浏览器默认开启

病毒木马样本逆向

2024/12/4 Rev
  |     |   总文章阅读量:

前言

🐎


简单病毒逆向分析

电脑病毒(computer virus),或称电子计算机病毒。是一种在人为或非人为的情况下产生的、在用户不知情或未批准下,能自我复制或运行的电脑程序;电脑病毒往往会影响受感染电脑的正常运作,或是被控制而不自知,电脑正常运作仅盗窃资料、或者被利用做其他用途等用户非自发启动的行为。

目标

  • 针对病毒的简单分析
  • 掌握发现病毒后的各类操作

步骤

数据源准备

  • 病毒文件基本信息:

    文件名:35a7db3cde6c0744dc2146f23f499df8ad527c93
    大小:229 KB (234,496 字节)
    CRC32:7E28EBC8
    MD5:324B6AB5E45E2A106025BE8802D39511
    SHA-1:35A7DB3CDE6C0744DC2146F23F499DF8AD527C93
  • 查壳程序:本次通过 Exeinfo PE 来进行查询,该软件目前内置海量 PEiD 的签名库并整合了近 50 种插件以及更加完整的中文语言包,具备非常强悍的可鉴定多种文件类别的能力,全面兼容包括bmp、.jpg、.mov、.mp4、.vpx、.crx、.skn、.dcu、.obj、.ice、.apk、.TLB、.ddd、.dcu、.pkg、.mkv、.WebM、.iso、.xar、.nup、.vhd、.tar、.gma、.mts、res、tiff、7z、rar 在内的多种文件格式,支持查看加密程序的 PE 信息、编译信息、是否加壳、输入输出表、入口地址、首字节、文件大小、子系统与覆盖等任何可执行程序的多种相关信息,给予用户引导脱壳方法

  • 脱壳工具:XVolkolak 是一个功能强大的通用 shelling 实用程序,带有虚拟机。它旨在帮助用户快速解决各种加密 shell。与其他 shelling 工具不同,它使用虚拟机脱壳技术。避免损坏用户系统,同时使用 XVolkolak,还可以执行 PE 编辑,数据扫描检测和快速 shell 检查操作,支持拖放操作,易于使用

病毒分析

查壳:

image-20241204104144941

有壳,是 MPRESS,同时查看到文件是 PE 文件,使用 XVolkolak 进行脱壳

image-20241204104429569

脱壳完毕后生成一个 .unp 文件,拖入 OD 在入口点处,可以看到各项功能显示正常,说明脱壳成功

image-20241204105705591

通过火绒剑识别病毒行为进行分析,将未脱壳的源文件改为:1.exe

将病毒 exe 拖动到火绒剑窗口当中(需关闭火绒防护)

image-20241211111245535

image-20241211111437251

病毒首先 PROC_exec 打开并创建了一个 conhost.exe 进程,接着在 C:\Program File 新建了 Microsoft DN1 文件

image-20241211111544688

FILE_touch 新建了 images.exe 文件,并启动自释放文件。REG_setval 设置 images.exe 为开机启动项

image-20241211112024954

接着进程 1.exe 结束,执行了 powershell.exe ,然后 images.exe 在 Windows\CurrentVersion\Explorer\ 下新建了一个键值 ADDEJIWOQK,并设置了一个注册表项值 inst

image-20241211113810367

最底下可以看到远程连接的服务器ip和端口

image-20241211114057881


文件夹木马病毒样本逆向分析

工具

Windows 虚拟机

沙箱、Exeinfo PE 等


步骤

云沙箱分析

关闭杀毒软件,在虚拟机中解压病毒,使用在线云沙箱进行文件解析

安恒云沙箱:https://sandbox.dbappsecurity.com.cn

微步云沙箱:https://s.threatbook.com

这里使用安恒云沙箱,首先访问网站,将病毒文件上传至平台

image-20241211172208565

image-20241211172358984

image-20241211172510575

  1. 确认病毒的信息后,我们使用第二个工具。由 Windows 自带的 certutil -hashfile

    certutil -hashfile 是一个在 Windows 操作系统中非常有用的命令行工具,它用于计算文件的哈希值。哈希值是一个固定长度的字符串,它代表了文件内容的数字指纹。即使文件内容发生微小变化,其哈希值也会发生显著变化。这使得哈希值成为验证文件完整性和一致性的理想工具

    certutil -hashfile 文件地址 MD5
    certutil -hashfile 文件地址 SHA1
    certutil -hashfile 文件地址 SHA256

    image-20241211173549416

查壳

基础信息分析完成后,通过 Exeinfo PE 来进行查壳

image-20241211173629109

无壳,用 Delphi 写的

Delphi 分析

通过 DeDe 查看 Delphi 程序窗体属性

image-20241211173931879

image-20241211174048042

通过 DeDe 分析工具我们可以看到,这个病毒程序由五个功能模块组成的,分别为 FromCreate、Timer1Timer、Timer2Timer、Timer3Timer、Timer4Timer,其中 FromCreate 类似于程序的入口函数(main),剩下 4 个是个定时器函数

检测依赖关系

通过 depends 工具来检测依赖关系:

查询 Windows 应用开发文档:https://learn.microsoft.com/zh-cn/windows/apps/

通过 Depends 检测可以发现这个病毒调用了很多注册表操作和文件操作,例如

RegOpenKeyExA()
RegSetValueExA()
WriteFile()
CreateFileA()

image-20241211174802612

火绒剑分析

image-20241211192827482

image-20241211192905935

病毒创建了名为 avb.exe、javasc.exe 的恶意文件,路径如图所示,打开文件路径可以观察到这些恶意文件

image-20241211193115969

image-20241211193246612

继续观察,可以发现大量的注册表操作,avb.exe 写入自启动注册表:

image-20241211193540797

image-20241211193947341

禁用显示隐藏文件和文件夹的选项,以隐藏自身:

image-20241211194120071

IDA静态分析

Delphi 函数参考库:http://docwiki.embarcadero.com/Libraries/Sydney/en/Main_Page

函数入口点

image-20241211204741892

f5反编译

image-20241211205242848

调用 Forms::TApplication 类的 CreateForm 方法,传入 off_450FD0[0] 指向的值、off_44E76C 和 off_4510B0,跟进 off_44E76C 函数:

image-20241211205915941

跟进 word_44E8F3

image-20241211210118657

分析函数:

  • FormCreate:跟进 _TForm1_FormCreate

    image-20241211210345919

    image-20241211210533089

    可以看到这里把 javasc.exe、avb.exe 注册为服务,加入自启动

    跟进 sub_44F3A0

    image-20241211210847675

    应该是写入注册表隐藏文件不可见的代码,跟进这里的 &str_HideFileExt 和 &str_Hidden

    image-20241211211031245

    image-20241211211127718

    于是可以得出结论:

    TForm1_FormCreate 是这个病毒样本的入口函数,病毒的功能起源就是这个函数,功能是将病毒样本放置到系统盘的 Windows 目录下伪装成系统程序,将病毒文件写入到注册表中的开机自启动项里面,以实现每次开机就启动病毒样本

  • Timer1Timer 函数:

    esc 退回到前面的函数页,跟进 _TForm1_Timer1Timer 函数

    image-20241211211631344

    跟进 sub_44EF94

    image-20241211211750291

    跟进 sub_44E9FC

    image-20241211211938021

    跟进 sub_44E980

    image-20241211212035879

    可以看到这里通过 Sysutils::DiskSize 获取磁盘大小来判断磁盘是否存在

    然后回到上一级 sub_44E9FC

    image-20241211212145672

    接下来调用 GetDriveTypeA 判断磁盘类型

    然后退出 sub_44E9FC,进入 sub_44EEBC 函数

    image-20241211212424469

    image-20241211212452460

    先跟进 sub_44EAA4

    image-20241211212655513

    这里的操作主要是文件的遍历

    然后看 sub_44EC88

    image-20241211212800753

    主要是设置文件属性,随后进行了一个对自身的拷贝