破译在Emotet、Qbot和Dridex中应用的加密器

访客3年前黑客工具703

加密器是一类手机软件,能够加密、搞混和控制恶意程序,使其更无法被安全性程序流程检验到。Zscaler ThreatLabZ科学研究工作组发觉,Emotet、Qbot和Dridex在最近主题活动上都应用了一种普遍的加密器,该加密器也一样能在一些Ursnif和BitPaymer的主题活动中检验到。Emotet和Dridex可以生存这般时间的缘故之一,便是他们会根据应用各种各样的加密器来躲避检验,加密器会将初始二进制文件封裝在內部,使对其的检验和剖析越来越更加繁杂。

Emotet是一种模块化设计恶意程序,关键作用是做为金融机构木马病毒的下载工具或dropper。过去的四年里Emotet一直很活跃性,它也是上年最时兴的恶意程序系列产品之一。Dridex是一种源于Zeus Trojan大家族的金融机构木马病毒,即便 在2015年被FBI捣毁以后也迄今能见到它在野外活跃性的足迹。Qbot则能远程登录受害人的系统软件,盗取信息内容,并将以上传入 *** 攻击的虚拟服务器。近期检验数据显示,Emotet的合理负荷url偏向了Qbot恶意程序,Emotet最近应用的加密器大家将在下文论述。

此加密器为恶意程序的关键二进制文件出示了双层维护。在文中中,大家将详细描述这种加密二进制文件的属性是如何使其适用各种各样转变的。这种属性能够不在实行二进制文件的状况下被静态数据认证,并用以撰写解密器。下面的图中展现了Emotet的关键二进制文件在加密器的搞混和加密包裝层中的封裝全过程。

0.关键二进制文件

1.编码根据转换命令和更换自动跳转命令的 *** 开展搞混

2.搞混的二进制文件被加密,并额外在加载器二进制文件的结尾

3.加载器二进制文件的文档两端对齐 *** 打乱

4.加密加载器的二进制文件

5.最终对加密后的加载器二进制文件的散列块开展二进制封裝

图1.加密的每个阶段

大家的总体目标是根据反向所述的各阶段进而得到 恶意程序的关键二进制文件。除此之外,关键二进制文件应以单独可载入/可实行的,而且IOC应便于获取。大家将从阶段5逐渐,叙述二进制文件的一些研讨式属性,根据这种属性破译该阶段,并不断追溯到阶段0。在大家的剖析中,大家发觉这种研讨式属性适用全部二进制文件的转变状况。

阶段5

阶段5的二进制文件是Emotet可执行程序,它根据MalSpams中的故意连接或MS Office文本文档中的故意宏开展免费下载。我们在阶段5的总体目标是进到阶段4以得到 加密的自定加载器的二进制文件。如同图1中常展现的那般,此阶段的二进制文件是加密的加载器二进制文件的散列块,大家必须发觉这种块并按恰当的次序拼装他们。在探讨怎样保证这一点以前,大家先看一下好多个实例——这种块是怎样遍布在二进制文件中的。鲜红色标明一部分为文档块。

图2.文档块方式实例

在上面的事例中,我们可以见到这种文档块并不一直在固定不动的部位,由于他们的尺寸不一致,并且块的次序也不一样。因而,之一个挑戰是寻找这种块并按恰当的排列顺序他们。喜讯是,我们知道加密器还必须对数据信息块开展排列,并将数据信息块详细地址和尺寸储存在一个表格中,这一表称之为“块描述符表”。噩耗是,这一表不可以在二进制文件中可预测分析的部位寻找,并且表的构造在二进制文件的转变中也并不是稳定的。下边是这一表结构的一些组合。块描述符表大部分是块描述符条目地组成。

struct ChunkDescriptorEntry[n]ChunkDescriptorTable; // n==number of chunks

图3.数据信息块描述符表结构实例

在所述构造中,“chunkAddressDword”包括块的虚拟注册地址。块的尺寸能够根据“firstDword”和“secondDword”上的下述实际操作之一得到 ,该实际操作在全部块描述符内容上都是不会改变的。

1. unsigned int chunkSize=firstDword secondDword

2. unsigned int chunkSize=firstDword ^ secondDword

3. unsigned int chunkSize=secondDword - firstDword

块描述符表的研讨式属性:

1. 0 5 out of 8.

6. 块不包含持续的4个0。

下边是搜索块方式的伪代码。涵数“FindChunkEntry”回到块的偏移和从块偏移逐渐的firstDword、chunkAddressDword的间距。假如对涵数的三个持续启用的返回值和三个回到偏移中间的长短相同,那麼能够分析全部数组来形成块详细地址和块尺寸的关系数组。

(offset1, m1, n1)=FindChunkEntry(filedata, fileSize)

(offset2, m2, n2)=FindChunkEntry(filedata offset1, fileSize)

(offset3, m3, n3)=FindChunkEntry(filedata offset2, fileSize)

If (offset2 - offset1)==(offset3 – offset2)

// found the FindChunkEntry array

FindChunkEntry(filedata, fileSize)

p=0

while p > fileSize

firstDword=filedata[p]

q=p

while q

如今拥有块详细地址和块尺寸的关系数组,我们可以组成这种块来得到 加密的加载器二进制文件,因此我们可以进到第四阶段。

阶段4

在大家的剖析中,大家观查到该加载器二进制文件(PE exe)的加密 *** ,是根据在循环系统中应用密匙数组开展最简单的字节到字节数(byte-to-byte)的加上开展的。在这里加密数据信息中,二进制文件不用以零偏移出現。在第四阶段,大家的总体目标是寻找PE文档在加密数据信息和破译密匙中的偏移。更先,大家将寻找破译密匙,它能够强制性根据加密数据信息来搜索PE文档的起止偏移。破译全过程出現在第5阶段二进制文件中,但并不是在可预测分析的部位。大家将从加密的数据信息自身计算出破译密匙。

相关文章

华为里面的黑客(华为手机被黑客入侵的表现)

华为里面的黑客(华为手机被黑客入侵的表现)

本文导读目录: 1、华为荣耀手机如果有黑客入侵,恢复出厂可以让他不入侵了吗? 2、华为手机左上角突然出现了一个白点,就在“中国”的旁边,过了一会就没有了,这种情况有可能是黑客吗? 3、华为手机...

今日头条发文章不推荐了,一招教你解决

今日头条发文章不推荐了,一招教你解决

我们头条号作者通过今日头条发布文章,有时候会发现我们大部分的文章都是显示的“已推荐”,但也有一部分为什么会显示“已发表”呢?很多同学搞不懂到底是什么原因。 这里,来给大家解释一下,为什么头条号文章发...

黑客隐藏自己ip难吗(攻击别人电脑如何隐藏自己IP)

黑客隐藏自己ip难吗(攻击别人电脑如何隐藏自己IP)

本文目录一览: 1、怎样才能隐藏自己的IP地址 让别人找不到?或者是不会轻易找到? 2、黑客如何隐藏自己的IP? 3、是不是黑客如果用台式机是不是要隐藏自己的真ip地址? 4、黑客是怎样隐...

空头支票什么意思?银行如何处理空头支票

空头支票是什么意思? 空头支票是指支票持有人请求付款时,出票人在付款人处实有的可供合法支配的存款不足以支付票据金额的支票。 开空头支票犯法吗? 票据法规定支票出票人所签发的支票金额不得超过其在付...

pmc工作职责(pmc工作职责有哪些)

pmc工作职责(pmc工作职责有哪些) PMC代表Product Material Control的缩写形式,意思为生产及物料控制。通常它分为两个部分: PC:生产控制或生产管制(台、日资公司俗称...

新疆干果店加盟店费用是多少?合理吗?

新疆干果店加盟店费用是多少?合理吗?

许多加盟商在选择加盟项目标时候,首先城市去看看这个加盟项目标用度问题。固然说如今市场上,新疆干果店加盟项目标成长很是的不错,许多加盟商都想要加盟到这个项目中来,可是呢,各人也同时都对新疆干果店加盟项目...