吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11001|回复: 5
收起左侧

[转载] 【转帖】Gootkit木马:使用AZORult工具揭开隐藏的链接

  [复制链接]
默小白 发表于 2019-2-27 09:19
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!

转自:https://xz.aliyun.com/t/4103

介绍

在最近几天,一场声势浩大的网络攻击袭击了意大利的一些组织。正如N020219的公告所示,攻击者尝试伪造Express Courier合法通信来进行攻击。然而在分析Cybaze-Yoroi ZLAB的同时,我们的分析人员偶然间发现了AZORult工具包Gootkit木马payload之间的某些联系。

技术分析

步骤一—附加的Javascript信息

大多数攻击尝试均是由特定的电子邮件附件开始。其附件中包含隐秘JavaScript代码的压缩存档,而此压缩文档能够在攻击的初始阶段绕过防病毒的检测。

img

这个JS文件是一个被模糊过的dropper工具,其目的是“安全”的远程位置下载另一个组件:

img

它联系两个不同的服务器,googodsgld.]comdriverconnectsearch.] info。 这种JavaScript stager拥有最重要的一个功能:它可以下载许多可执行代码并执行攻击者想要进行的各种操作。

这种模式和代码本身的简单性类似于Brushaloader攻击(一种用VBScript编写并以类似方式与远程基础架构进行联系的dropper/stager工具)。 我们可以假设恶意软件编写者可能已经模拟了Brushaloader的功能,创建了一种利用相同机制的自定义软件版本。

img

img

在第一次尝试与googodsgld [.] com联系之后,脚本与另一个目标进行通信,并检索在driverconnectsearch [.] info中返回的可执行javascript代码块中编码的Cabinet Archive信息。 然后将其存储在“%APPDATA%\Local\Temp\”中。

如上图所示,编码的payload字符串的第一个字符是“TVNDRg”,它转换为“MSCF”:Microsoft Cabinet压缩文件格式的标准头。

img

步骤二—内核机制

实际上,这个.CAB存档只是PE32可执行文件的shell部分:

img

执行RuntimeBroker5.exe示例后我们发现它的功能与另一个dropper工具十分相似:它们均从远程服务器“hairpd [.] com”下载另外两个组件。

img

示例文件实际上不仅只是进行下载操作。 这是本文的重点之一:它还与AZORult C2主机“ssl.] admin] itybuy.]it建立了沟通渠道。

我们已经知道其通信模式并且与服务器交换的网络分组确认了识别模式,之后动态分析还示出了此威胁的行为情况。

如下图所示,“%APPDATA%\Local\Temp\”路径中的书写文件与Unit42研究组描述的AZORult分析非常匹配。

img

img

在动态分析期间,RuntimeBroker5.exe示例从C2服务器收到一种配置文件。 我们从正在运行的恶意软件中提取它并对其进行解码:

firefox.exe
SOFTWARE\Wow6432Node\Mozilla\Mozilla Firefox\
SOFTWARE\Mozilla\Mozilla Firefox
SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\shell\open\command
SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe
%appdata%\Mozilla\Firefox\Profiles\
MozillaFireFox
CurrentVersion
Install_Directory
nss3.dll
thunderbird.exe
SOFTWARE\Wow6432Node\Mozilla\Mozilla Thunderbird\
SOFTWARE\Mozilla\Mozilla Thunderbird
SOFTWARE\Classes\ThunderbirdEML\DefaultIcon
%appdata%\Thunderbird\Profiles\
ThunderBird
SELECT host, path, isSecure, expiry, name, value FROM moz_cookies
SELECT fieldname, value FROM moz_formhistory
NSS_Init
PK11_GetInternalKeySlot
PK11_Authenticate
PK11SDR_Decrypt
NSS_Shutdown
PK11_FreeSlot
logins.json
logins
hostname
timesUsed
encryptedUsername
encryptedPassword
cookies.sqlite
formhistory.sqlite
%LOCALAPPDATA%\Google\Chrome\User Data\
%LOCALAPPDATA%\Google\Chrome SxS\User Data\
%LOCALAPPDATA%\Xpom\User Data\
%LOCALAPPDATA%\Yandex\YandexBrowser\User Data\
%LOCALAPPDATA%\Comodo\Dragon\User Data\
%LOCALAPPDATA%\Amigo\User Data\
%LOCALAPPDATA%\Orbitum\User Data\
%LOCALAPPDATA%\Bromium\User Data\
%LOCALAPPDATA%\Chromium\User Data\
%LOCALAPPDATA%\Nichrome\User Data\
%LOCALAPPDATA%\RockMelt\User Data\
%LOCALAPPDATA%\360Browser\Browser\User Data\
%LOCALAPPDATA%\Vivaldi\User Data\
%APPDATA%\Opera Software\
%LOCALAPPDATA%\Go!\User Data\
%LOCALAPPDATA%\Sputnik\Sputnik\User Data\
%LOCALAPPDATA%\Kometa\User Data\
%LOCALAPPDATA%\uCozMedia\Uran\User Data\
%LOCALAPPDATA%\QIP Surf\User Data\
%LOCALAPPDATA%\Epic Privacy Browser\User Data\
%APPDATA%\brave\
%LOCALAPPDATA%\CocCoc\Browser\User Data\
%LOCALAPPDATA%\CentBrowser\User Data\
%LOCALAPPDATA%\7Star\7Star\User Data\
%LOCALAPPDATA%\Elements Browser\User Data\
%LOCALAPPDATA%\TorBro\Profile\
%LOCALAPPDATA%\Suhba\User Data\
%LOCALAPPDATA%\Safer Technologies\Secure Browser\User Data\
%LOCALAPPDATA%\Rafotech\Mustang\User Data\
%LOCALAPPDATA%\Superbird\User Data\
%LOCALAPPDATA%\Chedot\User Data\
%LOCALAPPDATA%\Torch\User Data\
GoogleChrome
GoogleChrome64
InternetMailRu
YandexBrowser
ComodoDragon
Amigo
Orbitum
Bromium
Chromium
Nichrome
RockMelt
360Browser
Vivaldi
Opera
GoBrowser
Sputnik
Kometa
Uran
QIPSurf
Epic
Brave
CocCoc
CentBrowser
7Star
ElementsBrowser
TorBro
Suhba
SaferBrowser
Mustang
Superbird
Chedot
Torch
Login Data
Web Data
SELECT origin_url, username_value, password_value FROM logins
SELECT host_key, name, encrypted_value, value, path, secure, (expires_utc/1000000)-11644473600 FROM cookies
SELECT host_key, name, name, value, path, secure, expires_utc FROM cookies
SELECT name, value FROM autofill
SELECT name_on_card, expiration_month, expiration_year, card_number_encrypted value FROM credit_cards
%APPDATA%\Microsoft\Windows\Cookies\
%APPDATA%\Microsoft\Windows\Cookies\Low\
%LOCALAPPDATA%\Microsoft\Windows\INetCache\
%LOCALAPPDATA%\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\INetCookies\
%LOCALAPPDATA%\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!001\MicrosoftEdge\Cookies\
%LOCALAPPDATA%\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!002\MicrosoftEdge\Cookies\
%LOCALAPPDATA%\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\Cookies\
InternetExplorer
InternetExplorerLow
InternetExplorerINetCache
MicrosoftEdge_AC_INetCookies
MicrosoftEdge_AC_001
MicrosoftEdge_AC_002
MicrosoftEdge_AC
Software\Microsoft\Internet Explorer
Software\Microsoft\Internet Explorer\IntelliForms\Storage2
Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook
Software\Microsoft\Office\15.0\Outlook\Profiles\Outlook
Software\Microsoft\Office\16.0\Outlook\Profiles\Outlook
POP3
IMAP
SMTP
HTTP
%appdata%\Waterfox\Profiles\
Waterfox
%appdata%\Comodo\IceDragon\Profiles\
IceDragon
%appdata%\8pecxstudios\Cyberfox\Profiles\
Cyberfox
sqlite3_open
sqlite3_close
sqlite3_prepare_v2
sqlite3_step
sqlite3_column_text
sqlite3_column_bytes
sqlite3_finalize
%APPDATA%\filezilla\recentservers.xml
<RecentServers>
</RecentServers>
<Server>
</Server>
<Host>
</Host>
<Port>
</Port>
<User>
</User>
<Pass>
</Pass>
<Pass encoding="base64">
FileZilla
ole32.dll
CLSIDFromString
{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}
{3CCD5499-87A8-4B10-A215-608888DD3B55}
vaultcli.dll
VaultOpenVault
VaultEnumerateItems
VaultGetItem
MicrosoftEdge
Browsers\AutoComplete
CookieList.txt
SELECT host_key, name, encrypted_value, value, path, is_secure, (expires_utc/1000000)-11644473600 FROM cookies
%appdata%\Moonchild Productions\Pale Moon\Profiles\
PaleMoon
%appdata%\Electrum\wallets\
\Electrum
%appdata%\Electrum-LTC\wallets\
\Electrum-LTC
%appdata%\ElectrumG\wallets\
\ElectrumG
%appdata%\Electrum-btcp\wallets\
\Electrum-btcp
%APPDATA%\Ethereum\keystore\
\Ethereum
%APPDATA%\Exodus\
\Exodus
\Exodus Eden
*.json,*.seco
%APPDATA%\Jaxx\Local Storage\
\Jaxx\Local Storage\
%APPDATA%\MultiBitHD\
\MultiBitHD
mbhd.wallet.aes,mbhd.checkpoints,mbhd.spvchain,mbhd.yaml
.wallet
wallets\.wallet
wallet.dat
wallets\wallet.dat
electrum.dat
wallets\electrum.dat
Software\monero-project\monero-core
wallet_path
Bitcoin\Bitcoin-Qt
BitcoinGold\BitcoinGold-Qt
BitCore\BitCore-Qt
Litecoin\Litecoin-Qt
BitcoinABC\BitcoinABC-Qt
%APPDATA%\Exodus Eden\
%Appdata%\Psi+\profiles\
%Appdata%\Psi\profiles\
<roster-cache>
</roster-cache>
<jid type="QString">
<password type="QString">
</password>

浏览器CookieCryptoWallets的多次引用确认最初隐藏在cabilet存档中的“RuntimeBroker5.exe”示例是AZORult的变化版本。

步骤三—payload信息

AZORult的样本是从hairpd [.] com处下载的可执行的PE32

img

img

“sputik.exe”使用一组规避技术来避免进程被监视,例如调用“UuidCreateSequential”API来检测虚拟机的MAC地址使用情况,但这种技术可以通过欺骗来轻松绕过网卡检测。

img

绕过所有逃避技术揭示了payload的本质:Gootkit进行恶意代码植入操作。

img

通过检测植入代码的执行情况,我们提取恶意软件的部分JavaScript代码。 Gootkit代码计算了嵌入到PE文件中的NodeJS技术之上编写的几个模块,揭示了植入代码的一部分情况。

img

在过去几年中,Gootkit源代码已在网上泄露,部分内容也可在Github平台上获得。 通过这种方式,我们可以比对提取的代码段与之前泄露的已知恶意软件版本之间的差异。

img

我们发现代码之间有很多相似之处,它们可以完全兼容。 例如,私钥和证书已被修改,表明恶意软件作者选择了更强的密钥。

img

结论

在此次对意大利组织和用户的攻击事件进行分析后,我们发现了用于监视和检测InfoSec社区和CERT-Yoroi之间的联系,并揭示了连接此特定AZORult实例和Gootkit木马的隐藏链接。

此外,该分析还发现了网络犯罪分子所使用技术是如何演变的,并且展示了如何使用高级语言(在这种情况下为JavaScript)来帮助攻击者。

Iocs

  • Dropurl:
    hairpd[.com/stat/stella.exe
    hairpd[.com/stat/sputik.exe
    ivanzakharov91[.example[.com
    googodsgld[.com
    185.154.21[.208
    driverconnectsearch.info
    host.colocrossing.com
    192.3.179[.203
    Components:
    RuntimeBroker5.exe 2274174ed24425f41362aa207168b491e6fb55cab208116070f91c049946097a
    stella.exe
    6f51bf05c9fa30f3c7b6b581d4bbf0194d1725120b242972ca95c6ecc7eb79bc
  • sputik a75b318eb2ae6678fd15f252d6b33919203262eb59e08ac32928f8bad54ca612
  • C2 (AZORult)

ssl[.admin[.itybuy[.it

  • C2 (gootkit):

avant-garde[.host
kinzhal[.online

  • Hash:
    2274174ed24425f41362aa207168b491e6fb55cab208116070f91c049946097a
    6f51bf05c9fa30f3c7b6b581d4bbf0194d1725120b242972ca95c6ecc7eb79bc
    a75b318eb2ae6678fd15f252d6b33919203262eb59e08ac32928f8bad54ca612
    12791e14ba82d36d434e7c7c0b81c7975ce802a430724f134b7e0cce5a7bb185

Tara规则

rule Gootkit_11_02_2019{

    meta:
    description = "Yara Rule for Gootkit"
    author = "Cybaze Zlab_Yoroi"
    last_updated = "2019_02_11"
    tlp = "white"
    category = "informational"

    strings:
             $a = {4D 5A}
         $b1 = {2D EE 9D 00 04 29 76 EC 00 00 F9}
         $c1 = {E6 C5 1F 2A 04 5A C8}
         $d1 = "LoadCursorW"
             $b2 = {75 0E E8 84 8D FF FF 83 CF FF C7}
             $c2 = {B9 C7 25 E7 00 5A 00 00 BA}
             $d2 = "GetCurrentPosition"

    condition:
             $a and (($b1 and $c1 and $d1) or ($b2 and $c2 and $d2))
}

rule Azorult_11_02_2019{

    meta:
    description = "Yara Rule for Azorult"
    author = "Cybaze Zlab_Yoroi"
    last_updated = "2019_02_11"
    tlp = "white"
    category = "informational"

    strings:
         $a = "MZ"
         $b = {44 00 02 00 00 00 6A 04 58 6B C0 00 8B 0D}
             $c = {00 00 8B 45 0C 8B 55 F8 39 50 0C 74 10 68}
             $d = {41 00 FF D6 8B D8 89 5D D4 85 DB 74 74 FF 35}

    condition:
             all of them
}
本文为翻译文章,原文:https://blog.yoroi.company/research/gootkit-unveiling-the-hidden-link-with-azorult/

免费评分

参与人数 3吾爱币 +2 热心值 +2 收起 理由
willJ + 1 + 1 鼓励转贴优秀软件安全工具和文档!
lookerJ + 1 热心回复!
liphily + 1 完全没看懂

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xQQ 发表于 2019-2-27 09:44
这个很好,分析机制和原理,这才是学习的榜样
秋酩山人 发表于 2019-2-27 09:53
年迈且小哥哥 发表于 2019-2-27 14:08
hackusa 发表于 2019-2-27 15:46
好的,学习了
西元世纪爱 发表于 2019-2-28 09:45
受教了,感谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表