样本sha1: 21766239b79ece18b15a03f4517f3be6ed9c07ed
今天工作时遇到一个样本,很小,只有4096字节,拖到虚拟机里运行直接退出了,但是在VT里查可以看到很多报毒
ESET报了a variant of Win32/MBRlock.BF,看来应该是会改MBR的,但是不知道为什么没有执行成功,而且文件这么小,IDA里打开看了一下也没有明显特征。最后出于谨慎在另一台有反反虚拟机功能的win7虚拟机里执行了一下,没想到竟然真的可以改MBR,而且设置了自动关机和开机自动运行。
于是我认为这个样本可以反虚拟机,而且文件那么小,所以很好奇是怎么写的,决定分析一下。
程序一开始从0x404000
和0x404004
获得了两个数字,然后调用了位于0x4020B5
的函数
进入函数0x4020B5
。
这个函数首先调用了函数0x402002
:
这是一个解码(或者叫编码?)函数,对位于参数1位置,长度为参数2的字节序列进行了异或编码。这次调用对位于0x405000
,长度为16字节的序列进行了按位取反的解码,解码后的结果:
所以0x4020B5
应该是要检查调试器,继续往下看:
调用了存储在0x401000
,即0x40201D
位置的函数,这个函数实际上是在调用VirtualProtect
函数,设置目标地址为可读可写可执行:
设置了可执行权限之后,程序调用了位于0x405000
位置的代码,即检查调试器的代码。
正常来说,由于在用调试器调试,IsDebuggerPresent
的返回值应该是1,但是因为我这里使用了插件,所以返回值是0。如果返回值是1,可以手动修改为0。
之后会根据返回值判断执行流程,如果检查存在调试器,流程会跳转到程序开始处,相当于进入了一个无限循环:
之后程序调用了存储了0x401004
,即0x40203A
位置的函数,这个函数也是在调用VirtualProtect
函数,只不过修改的权限不同,设置的是可读可写,也就是取消了可执行权限:
最后程序在此对0x405000处16字节的序列进行了按位取反的编码,相当于恢复了之前的数值。
最后看一下这个函数的结构:
由于这个程序并不是很大,有了上面对几个函数的分析,现在已经可以看一下这个程序的整体流程了:
从上图可以看出,这个程序分成四个部分,第一部分就是我们上面分析的检查调试器的部分,第二部分对位于0x405010
,长度为0x4C
字节序列进行了按位取反的解码并执行,第三部分对位于0x4050BC
,长度为0xFE
字节序列进行了按位取反的编码并执行,最后一部分是退出程序。除了最后一部分之外,其他三部份的流程都是一样的:修改权限→解码→执行→恢复编码→恢复权限 。
所以接下来要做的,就是对第二、三部分解码后的代码进行分析。
以下是调试得到的第二部分解码后的代码:
代码很简单,已经进行了必要的注释,可以看到这段代码用于设置开机自启。
以下是调试得到的第三部分解码后的代码,其中省略了垃圾代码,这个程序通过这些垃圾代码对分析进行了干扰,如果不省略,call指令会跳转到指令的中间,但是并不复杂。
首先调用CreateFileW
,得到PhysicalDrive0
的句柄,即MBR的位置
然后解密获得MBR写入数据,调用WriteFile写入MBR:
最后执行shutdown,关机
先看一下修改MBR之后的开机界面:
写入MBR的数据见附件,这个文件我是通过PE工具里面的Bootice引导扇区管理提取出来的。
将文件导入IDA之后发现,这个代码是在是有点简单,一开始是打印字符串,就是上面开机画面中的字符串:
之后直接陷入了无限循环:
打印的字符串也可以看到:
所以这个程序是一个骗人的锁机病毒,到目前为止分析的都很顺利,可是我以为的反虚拟机呢?一开始就是以为有这个功能才决定分析一下这个小程序的,结果发现并没有这个功能,U•ェ•*U~
既然发现程序没有反虚拟机的功能,我就想弄清楚为什么在另一台虚拟机上程序没有执行成功,于是在该台虚拟机上调试之。
前面的流程都是一样的,一直到达了0x4050F8
,程序调用CreateFileW
,试图打开PhysicalDrive0,结果失败了。
于是我写了一段代码测试了一下失败原因:
得到结果:
万万没想到!由于我的虚拟机为了方便测试病毒都是打了快照的,所以确实可能出现打快照的时机出现问题,导致PhysicalDrive0被占用。
最后重启了虚拟机,发现程序果然可以正常执行了,(lll¬ω¬)
分析下来这个样本还是蛮简单的,文件很小,结构规整,使用了简单的反调试、编码以及花指令技巧。值得注意的是,程序在解码的指令执行完毕之后,还会再次对其进行编码,这一行为也提高了分析的难度,很难从内存中提取出有效内容。
我又重新给虚拟机打了一个干净的快照……
_________________________________________________________________________________
|Bkav | W32.AIDetectVM.malware1|
|Elastic | malicious (high confidence)|
|MicroWorld
-
eScan | Trojan.GenericKD.
42989135
|
|ALYac | Trojan.GenericKD.
42989135
|
|VIPRE | Trojan.Win32.Generic!BT|
|Sangfor | Malware|
|K7AntiVirus | Trojan (
0056483b1
)|
|BitDefender | Trojan.GenericKD.
42989135
|
|K7GW | Trojan (
0056483b1
)|
|Cybereason | malicious.
9b79ec
|
|BitDefenderTheta | Gen:NN.ZexaF.
34152.auW
@ay!
9nhc
|
|Cyren | W32
/
Trojan.ETUW
-
3889
|
|Symantec | ML.Attribute.HighConfidence|
|APEX | Malicious|
|Paloalto | generic.ml|
|Kaspersky | HEUR:Trojan.Win32.Generic|
|Alibaba | Trojan:Win32
/
MBRlock.df6e613f|
|NANO
-
Antivirus | Trojan.Win32.KillMBR.hjmtoj|
|AegisLab | Trojan.Win32.Generic.
4
!c|
|Tencent | Win32.Trojan.Generic.Ednp|
|Ad
-
Aware | Trojan.GenericKD.
42989135
|
|F
-
Secure | Trojan.TR
/
Ransom.MBRlock.rcdja|
|DrWeb | Trojan.KillMBR.
24847
|
|Zillya | Trojan.MBRlock.Win32.
591
|
|Invincea | heuristic|
|FireEye | Generic.mg.f1ddcdfec9784f92|
|Sophos | Troj
/
KillMBR
-
V|
|Jiangmin | Trojan.Generic.erchp|
|Avira | TR
/
Ransom.MBRlock.rcdja|
|Fortinet | W32
/
Generic.BF!tr.ransom|
|Antiy
-
AVL | Trojan
/
Win32.Wacatac|
|Arcabit | Trojan.Generic.D28FF64F|
|ViRobot | Trojan.Win32.Z.Wacatac.
4096.Q
|
|Microsoft | Trojan:Win32
/
Occamy.C50|
|AhnLab
-
V3 | Malware
/
Win32.Generic.C4087080|
|McAfee | RDN
/
Ransom|
|
MAX
| malware (ai score
=
83
)|
|VBA32 | Trojan.Occamy|
|Panda | Trj
/
GdSda.A|
|ESET
-
NOD32 | a variant of Win32
/
MBRlock.BF|
|Rising | Trojan.MBRlock!
8.751
(CLOUD)|
|Yandex | Trojan.MBRlock!fGxkbNwgCDw|
|SentinelOne | DFI
-
Malicious PE|
|eGambit | Unsafe.AI_Score_99
%
|
|GData | Trojan.GenericKD.
42989135
|
|AVG | Win32:TrojanX
-
gen [Trj]|
|Avast | Win32:TrojanX
-
gen [Trj]|
|CrowdStrike | win
/
malicious_confidence_80
%
(W)|
|Qihoo
-
360
| Generic
/
HEUR
/
QVM20.
1.8F85
.Malware.Gen|
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
_________________________________________________________________________________
|Bkav | W32.AIDetectVM.malware1|
|Elastic | malicious (high confidence)|
|MicroWorld
-
eScan | Trojan.GenericKD.
42989135
|
|ALYac | Trojan.GenericKD.
42989135
|
|VIPRE | Trojan.Win32.Generic!BT|
|Sangfor | Malware|
|K7AntiVirus | Trojan (
0056483b1
)|
|BitDefender | Trojan.GenericKD.
42989135
|
|K7GW | Trojan (
0056483b1
)|
|Cybereason | malicious.
9b79ec
|
|BitDefenderTheta | Gen:NN.ZexaF.
34152.auW
@ay!
9nhc
|
|Cyren | W32
/
Trojan.ETUW
-
3889
|
|Symantec | ML.Attribute.HighConfidence|
|APEX | Malicious|
|Paloalto | generic.ml|
|Kaspersky | HEUR:Trojan.Win32.Generic|
|Alibaba | Trojan:Win32
/
MBRlock.df6e613f|
|NANO
-
Antivirus | Trojan.Win32.KillMBR.hjmtoj|
|AegisLab | Trojan.Win32.Generic.
4
!c|
|Tencent | Win32.Trojan.Generic.Ednp|
|Ad
-
Aware | Trojan.GenericKD.
42989135
|
|F
-
Secure | Trojan.TR
/
Ransom.MBRlock.rcdja|
|DrWeb | Trojan.KillMBR.
24847
|
|Zillya | Trojan.MBRlock.Win32.
591
|
|Invincea | heuristic|
|FireEye | Generic.mg.f1ddcdfec9784f92|
|Sophos | Troj
/
KillMBR
-
V|
|Jiangmin | Trojan.Generic.erchp|
|Avira | TR
/
Ransom.MBRlock.rcdja|
|Fortinet | W32
/
Generic.BF!tr.ransom|
|Antiy
-
AVL | Trojan
/
Win32.Wacatac|
|Arcabit | Trojan.Generic.D28FF64F|
|ViRobot | Trojan.Win32.Z.Wacatac.
4096.Q
|
|Microsoft | Trojan:Win32
/
Occamy.C50|
|AhnLab
-
V3 | Malware
/
Win32.Generic.C4087080|
|McAfee | RDN
/
Ransom|
|
MAX
| malware (ai score
=
83
)|
|VBA32 | Trojan.Occamy|
|Panda | Trj
/
GdSda.A|
|ESET
-
NOD32 | a variant of Win32
/
MBRlock.BF|
|Rising | Trojan.MBRlock!
8.751
(CLOUD)|
|Yandex | Trojan.MBRlock!fGxkbNwgCDw|
|SentinelOne | DFI
-
Malicious PE|
|eGambit | Unsafe.AI_Score_99
%
|
|GData | Trojan.GenericKD.
42989135
|
|AVG | Win32:TrojanX
-
gen [Trj]|
|Avast | Win32:TrojanX
-
gen [Trj]|
|CrowdStrike | win
/
malicious_confidence_80
%
(W)|
|Qihoo
-
360
| Generic
/
HEUR
/
QVM20.
1.8F85
.Malware.Gen|
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2022-2-2 17:00
被kanxue编辑
,原因:
上传的附件: