Featured image of post U盘病毒

U盘病毒

U盘感染病毒分析

  1. u盘感染病毒的行为分析。

1、程序获取注册表值(部分获取命令以及修改注册表流程如下)

获取TSAppCompat 目的是识别在应用程序模式下运行服务的服务器。
在开机自启动时获取服务器以及微软为防止DLL 劫持漏洞的产生所设置的
SafeDllSearchMode 的值。

transparentEnable,获取服务器组关于NAT 功能的设置

DisableMetaFiles,用来禁用原文件处理(为1 时有效)

AppInit_Dlls,任何使用user32.dll 的文件都会读取这个地方

TSUserEnabled,是否允许远程使用

修改的注册表项设置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\msfsa 的值可以实现指定exe 文件自启动(=”GHD.EXE”)

设置原文件不能被修改

2、文件操作:

可以观察到系统截获avb.exe,向其写入了数据并修改了数据,自此猜测avb.exe 才是实时感染的程序。

截获:

文本 描述已自动生成

修改avb数据

同时也修改了 javasc

文本 描述已自动生成

  1. IDA分析函数

1、加壳检查

利用 PEID进行壳检查

检测结果如下:

图形用户界面, 文本 描述已自动生成

说明为 Delphi 语言编写,无壳。

2、IDA分析函数

使用IDA打开,发现调用了 5 个函数

图形用户界面, 文本, 应用程序, 电子邮件 描述已自动生成

从IDA给出的函数名可知,第一个函数是初始化exe文件,第四个函数为系统运行 Run 函数,第四个函数是退出程序 Halt0函数。第二和第三个函数从名称还不能看出来什么。

在IDA中使用快捷键alt+t,查找字符串“avb.exe”:

图形用户界面, 文本, 应用程序 描述已自动生成

根据查找到的位置,定位到_TForm1_FormCreate函数:

e表格 描述已自动生成

接下来分析该函数的功能。

此函数内部调用了 ParamStr(int)函数获取进程名称等信息,再调用 ExtraFileName()函数提取出文件名称,统一转成大写之后,与“javasc.exe”进行字符串比较。

e图片包含 文本 描述已自动生成

文本 低可信度描述已自动生成

图形用户界面, 文本, 应用程序 描述已自动生成

如果进程名不是 javasc.exe,如果不是则转到:

图形用户界面, 文本, 应用程序 描述已自动生成

此模块会复制进程并重新命名为 sdafdf.exe 文件存储在 C:\\windows 下。结束后调用shellexecute 函数运行此程序。

如果进程是 javasc.exe 那么,跳转模块如下:

图形用户界面, 文本, 应用程序, 电子邮件 描述已自动生成

此模块首先会获取文件所在路径,获取文件名称后,将当前路径与文件名称进程拼接得到完整的路径信息,比较当前目录下存在javasc.exe 文件(DirectoryExists),如果存在:

图形用户界面, 文本 描述已自动生成

最终会调用 ShellExecute 对文件夹进行展开。

接下来就是判断 avb.exe 是否存在,如果不存在:

文本 描述已自动生成

文本 描述已自动生成

其中,sub_44F3A0函数的功能是修改注册表:

文本 中度可信度描述已自动生成

之后复制 javasc.exe 文件以及 avb.exe 文件,在注册表中注册服务并向注册表中写入信息。

接下来仍是判断进程名称是否为 avb.exe 如果是,那么复制 mscb.exe 文件,调用并执行后正常退出函数。如果不是则直接退出 _TForm1_FormCreate函数。

图形用户界面 低可信度描述已自动生成

图片包含 图形用户界面 描述已自动生成

总结:此函数主要目的是将文件复制到系统目录下执行并修改注册表值

三、分析响应过程(IDA分析)

在IDA 中左边栏搜索关键字“timer”,获得四个响应过程

表格 描述已自动生成

  1. 应_TForm1_Timer1Timer

    文本 描述已自动生成

1.1进入函数sub_44EF94()分析函数功能

图形用户界面, 文本, 应用程序, 电子邮件 描述已自动生成

1.2进入函数sub_44E9FC(&v12,a1)分析函数功能

如下图的while循环中可以看到此函数的作用是遍历目录文件

文本 描述已自动生成

1.3进入函数sub_44EEBC(v11)分析函数功能

图形用户界面, 文本, 应用程序 描述已自动生成

1.4进入函数sub_44EAA4(v10,(int)&v11)分析函数功能

如下图先通过FindFirst找到第一个无效文件,并记录其创建时间FatTime,然后根据创建时间找到所有此创建时间下的文件。

图形用户界面, 文本, 应用程序 中度可信度描述已自动生成

1.5进入函数sub_44EC88((int)v12, v9)分析函数功能

此函数在循环中通过CopyFileA函数拷贝病毒文件

文本 描述已自动生成

则第一个响应过程是先通过遍历目录下文件,然后找到无效文件,并复制病毒。

2. 响应_TForm1_Timer2Timer

图形用户界面, 文本, 应用程序, 电子邮件 描述已自动生成

v15为获取的系统时间的day,判断若系统时间大于2009,且日期为1、10、21、29则触发感染事件。

3. 响应_TForm1_Timer3Timer

图形用户界面, 文本, 应用程序, Word 描述已自动生成

进入函数sub_44F3A0(v2,v3,v4)分析函数功能

如下图,可以看到其主要功能为修改注册表

文本 描述已自动生成

4. 响应_TForm1_Timer3Timer

如下图,步骤1中找到内存中exefile文件并free掉,然后通过ShellExecuteA调用 nasm.exe程序。

文本, 日程表 描述已自动生成

四、杀毒流程

首先删除生成的对应文件。

文本 低可信度描述已自动生成

图片包含 图形用户界面 描述已自动生成

这里是GHO生成了javasc和avb。都需要删除。由于程序对部分文件做了隐藏我们还需要先行修改注册表的值。

图形用户界面, 应用程序 描述已自动生成

图形用户界面, 应用程序, Teams 描述已自动生成

删除自启动劫持注册表项。

文本 描述已自动生成

RunOnce在每次启动的时候都会运行,所以可以做到自启动。

表格 描述已自动生成

删除这个注册表项。

杀毒完成。

Licensed under CC BY-NC-SA 4.0
使用 hugo 构建 🖤 Stack
版权声明:Licensed under CC BY-NC-SA 4.0「署名-非商业性使用-相同方式共享 4.0 国际」