U盘病毒分析

一、u 盘感染病毒的行为分析
1、程序获取注册表值(部分获取命令以及修改注册表流程如下)
获取 TSAppCompat 目的是识别在应用程序模式下运行服务的服务器。在开机自启动时获取服务器以及微软为防止 DLL 劫持漏洞的产生所设置的SafeDllSearchMode 的值。
a010ccc90bfe40de9141d4fb56953dae.png
transparentEnable,获取服务器组关于 NAT 功能的设置
22b5f1b62df6453cb87eb961f75658f6.png
DisableMetaFiles,用来禁用原文件处理(为 1 时有效)
7409a2f4d21140d4a3389f4b8573db03.png
AppInit_Dlls,任何使用 user32.dll 的文件都会读取这个地方
a30f42ae713e4c90a6a9d8fb85ef6de4.png
TSUserEnabled,是否允许远程使用
6ff40c1cabb1458297840e773fd62673.png
修改的注册表项设置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\msfsa 的值可以实现指定 exe 文件自启动(=”GHD.EXE”)
1a2718809ca146d9809882b3a42d51e5.png
2、文件操作
可以观察到系统截获 avb.exe,向其写入了数据并修改了数据,自此猜测avb.exe 才是实时感染的程序。
截获:
03375aa2705841ee9e49bd939a638696.png
修改 avb 数据
8bc00cd767fb4425aec45244826122fd.png
同时也修改了 javasc
d40c672193224e40aa03b7ba3e66c4ba.png
二、IDA分析
1、加壳检查
利用PEID进行壳检查
检测结果如下:
821a06ec68974c56a90cb8d2f5e8b912.png
说明为 Delphi 语言编写,无壳。
使用 Delphi Decompiler 分析。有五个响应过程:
5ba715cdf6034f26834d8702445d1b00.png
接下来开始分析这五个响应过程
2、IDA 分析 FormCreate
使用 IDA 打开,发现调用了 5 个函数
ebcad4f6490847bba201ffb84e103583.png
从 IDA 给出的函数名可知,第一个函数是初始化 exe 文件,第四个函数为系统运行 Run 函数进入消息响应循环,第四个函数是退出程序 Halt0 函数。第三个函数 CreateForm 创建 Form。
在 IDA 中使用快捷键 alt+t,查找字符串“avb.exe”
根据查找到的位置,定位到_TForm1_FormCreate 函数
07c5d186584749bc947b7a0f00a0abb2.png
此函数内部调用了ParamStr(0) 函数获取进程名称等信息,再调用ExtraFileName()函数提取出文件名称,与“javasc.exe”统一转成大写之后进行字符串比较。
62d319295cb844f49ceb2f026895c003.png
1b0636c592db4ae294eb25da6abbf774.png

c61254f05767494f97b528d027711390.png
如果进程名不是 javasc.exe,则转到
4de33adcc602447dae02a17a638c1dfa.png
此模块会复制进程并重新命名为 sdafdf.exe 文件存储在 C:\\windows 下。结束后调用 shellexecute 函数运行此 sdafdf.exe,之后便调用 halt0()退出。
如果进程是 javasc.exe 那么,跳转模块如下:
3b2756a2ec964140b6f2c4302c8ed50e.png
此模块首先会获取文件所在路径,获取文件名称后,将当前路径与文件名称进程拼接得到完整的路径信息,比较当前目录与自己同名的文件夹是否存在,如果存在:
9e635e94b9bf406cb42668fc0b3884c9.png
3a4258cc15b143bd9f46d053603bc2c0.png
最终会调用 ShellExecute 对打开文件夹。无论与自己同名的文件夹是否存在,接下来都会判断 C:\windows\avb.exe是否存。如果存在,进入(1),不存在则进入(2)
(1)修改注册表(sub_44F3A0)。sub_44F3A0 函数如下:
0ab58f5984604c169a3e04bf9aa0bd95.png
注册表项如下:
933ec34c29194d73857e7c4f2f67a7d8.png
sub_44F3A0 函数功能为:修改注册表不显示隐藏文件,并且修改文件夹选项也没用,删除文件夹选项中的隐藏已知文件类型的扩展名选项,删除这个键。之后创建拷贝 C:\windows\system32\javasc.exe,并在 sub_44E5CC 中将 javasc.exe注册为服务。然后又拷贝C:\windows\avb.exe

d9ceba60ac004f68b3229ac75e457b34.png
接下来再次修改注册表,将 avb.exe 加入注册表 Runonce 中,之后退出
56ef96b3c63f4ecd8041b3bbdd5d9297.png
(2)首先创建拷贝自身 C:\windows\avb.exe,这里和上面拷贝方法相同。
c6b89520d1634c2b94453463370c546a.png
然后创建拷贝自身 C:\windows\system32\javasc.exe,并在 sub_44E5CC 中将javasc.exe 注册为服务,接下来再次修改注册表,将 avb.exe 加入注册表 Runonce中。
11260226ebe0495a83b03d18b485b531.png
接下来又比较进程名是不是 C:\windows\avb.exe,如果是则创建拷贝自身 C:\windows\mscb.exe,并执行,之后调用 halt0()退出
6b1176c84a4444d3befe43dbf5650380.png
如果不是 C:\windows\avb.exe,则程序调用 halt0()退出
三、IDA 分析 Timer
分析响应过程(IDA分析)在IDA 中左边栏搜索关键字“timer”,获得四个响应过程
1bc14d952de34b489150133cbc8320d0.png
1. 响应_TForm1_Timer1Timer
2f8df062bde6463f973876c3545dd13a.png
进入函数sub_44EF94()分析函数功能
07ea1d244bbb4161811ef4e745381b51.png

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

如下图的while循环中可知此函数的作用是遍历目录文件
dfc39d3e21874cda96b8c207384c7d05.png
1.2 进入函数sub_44EEBC(v11)分析函数功能
f0df8fb46c3449cc83bce178a6e4c818.png

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

如下图所示,函数sub_44EAA4(v10,(int)&v11)先通过FindFirst查找到第一个符合要求的文件,并记录其创建时间FatTime,然后根据创建时间找到所有此创建时间下的所有文件。
70bbaa6be5144f39934c0abd17574f98.png

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

此函数通过循环修改所有通过函数sub_44EAA4(v10,(int)&v11)找到的文件的文件属性,将文件隐藏。通过CopyFileA函数拷贝病毒文件,CopyFileA函数的第二个参数v11为隐藏掉的文件名称,将其病毒文件名设置为v11即隐藏掉的文件名,最后将病毒文件伪装成文件夹。CopyFileA函数的第三个参数v12恒为-1即True,表示若拷贝过去的文件路径下已存在相同文件,则不替换文件。 

ac3e2307b9cb42a388f568efc696637b.png

2. 响应_TForm1_Timer2Timer

v15为获取的系统时间的day,判断若系统时间年份大于2009,且日期day为1、10、21、29则触发感染事件,执行sub_447F078函数。
340daf522f204f638fdb79a5bb100526.png

 3. 响应_TForm1_Timer3Timer

994858b5b594470ca5ca4ef7648c83cf.png

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

如下图所示,发现其主要功能为修改注册表
f356d1bb92204fa3a5246cc88dd48aa8.png

4. 响应_TForm1_Timer3Timer

如下图,步骤1中找到内存中exefile文件并free掉,然后通过ShellExecuteA调用 nasm.exe程序。
bb853a084118462db442ccaf1c160b5c.png
四、杀毒流程
从以上的分析可以知道,该病毒会将自己伪装成文件夹(病毒的图标是个文件夹,实际上是个可执行文件),将除 C 盘以外的所有磁盘的文件夹隐藏,并将自身拷贝过去,并重命名为原文件夹名的名称,同时程序运行过程中会尝试打开与自身同名的文件夹,用户很难发现自己中毒。破坏力最大的是,当样本检测到当前日期为每月的 1 号、10 号、21 号或 29 号时,会将磁盘(C 盘除外)里的所有文件删除。该病毒利用了各种途径让自己存活下来,伪装成文件夹通过 U 盘传播,利用守护进程保证自己难以被杀死,将自己注册为服务,实现了内存常驻。
对此,首先删除生成的对应文件。
5bb2f1e7967f4a83b097f1065587910c.png
这里是 GHO 生成了 javasc 和 avb。都需要删除。由于程序对部分文件做了隐藏我们还需要先行修改注册表的值。
fcd34e43bf0d43f5a5eedb0104806431.png
删除自启动劫持注册表项。
3b1f4f12545e4938b1f72de0feb788e6.png

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

删除这个注册表项。至此,杀毒完成。


【病毒样本获取】由于病毒样本比较特殊,随意传播具有一定危害性,需要病毒样本的请评论区留言或私聊

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ACanary

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值