社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 780阅读
  • 2回复

[分享]Gootkit木马:使用AZORult工具揭开隐藏的链接

楼层直达
z3960 
级别: 茶馆馆主
发帖
770593
飞翔币
207694
威望
215657
飞扬币
2511651
信誉值
8



介绍


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

技术分析



步骤一—附加的Javascript信息


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

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

它联系两个不同的服务器,googodsgld.]com和driverconnectsearch.] info。 这种JavaScript stager拥有最重要的一个功能:它可以下载许多可执行代码并执行攻击者想要进行的各种操作。
这种模式和代码本身的简单性类似于Brushaloader攻击(一种用VBScript编写并以类似方式与远程基础架构进行联系的dropper/stager工具)。 我们可以假设恶意软件编写者可能已经模拟了Brushaloader的功能,创建了一种利用相同机制的自定义软件版本。


在第一次尝试与googodsgld [.] com联系之后,脚本与另一个目标进行通信,并检索在driverconnectsearch [.] info中返回的可执行javascript代码块中编码的Cabinet Archive信息。 然后将其存储在“%APPDATA%LocalTemp”中。
如上图所示,编码的payload字符串的第一个字符是“TVNDRg”,它转换为“MSCF”:Microsoft Cabinet压缩文件格式的标准头。


步骤二—内核机制


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

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

示例文件实际上不仅只是进行下载操作。 这是本文的重点之一:它还与AZORult C2主机“ssl.] admin] itybuy.]it建立了沟通渠道。
我们已经知道其通信模式并且与服务器交换的网络分组确认了识别模式,之后动态分析还示出了此威胁的行为情况。
如下图所示,“%APPDATA%LocalTemp”路径中的书写文件与Unit42研究组描述的AZORult分析非常匹配。


在动态分析期间,RuntimeBroker5.exe示例从C2服务器收到一种配置文件。 我们从正在运行的恶意软件中提取它并对其进行解码:firefox.exeSOFTWAREWow6432NodeMozillaMozilla FirefoxSOFTWAREMozillaMozilla FirefoxSOFTWAREClientsStartMenuInternetFIREFOX.EXEshellopencommandSOFTWAREMicrosoftWindowsCurrentVersionApp Pathsfirefox.exe%appdata%MozillaFirefoxProfilesMozillaFireFoxCurrentVersionInstall_Directorynss3.dllthunderbird.exeSOFTWAREWow6432NodeMozillaMozilla ThunderbirdSOFTWAREMozillaMozilla ThunderbirdSOFTWAREClassesThunderbirdEMLDefaultIcon%appdata%ThunderbirdProfilesThunderBirdSELECT host, path, isSecure, expiry, name, value FROM moz_cookiesSELECT fieldname, value FROM moz_formhistoryNSS_InitPK11_GetInternalKeySlotPK11_AuthenticatePK11SDR_DecryptNSS_ShutdownPK11_FreeSlotlogins.jsonloginshostnametimesUsedencryptedUsernameencryptedPasswordcookies.sqliteformhistory.sqlite%LOCALAPPDATA%GoogleChromeUser Data%LOCALAPPDATA%GoogleChrome SxSUser Data%LOCALAPPDATA%XpomUser Data%LOCALAPPDATA%YandexYandexBrowserUser Data%LOCALAPPDATA%ComodoDragonUser Data%LOCALAPPDATA%AmigoUser Data%LOCALAPPDATA%OrbitumUser Data%LOCALAPPDATA%BromiumUser Data%LOCALAPPDATA%ChromiumUser Data%LOCALAPPDATA%NichromeUser Data%LOCALAPPDATA%RockMeltUser Data%LOCALAPPDATA%360BrowserBrowserUser Data%LOCALAPPDATA%VivaldiUser Data%APPDATA%Opera Software%LOCALAPPDATA%Go!User Data%LOCALAPPDATA%SputnikSputnikUser Data%LOCALAPPDATA%KometaUser Data%LOCALAPPDATA%uCozMediaUranUser Data%LOCALAPPDATA%QIP SurfUser Data%LOCALAPPDATA%Epic Privacy BrowserUser Data%APPDATA%brave%LOCALAPPDATA%CocCocBrowserUser Data%LOCALAPPDATA%CentBrowserUser Data%LOCALAPPDATA%7Star7StarUser Data%LOCALAPPDATA%Elements BrowserUser Data%LOCALAPPDATA%TorBroProfile%LOCALAPPDATA%SuhbaUser Data%LOCALAPPDATA%Safer TechnologiesSecure BrowserUser Data%LOCALAPPDATA%RafotechMustangUser Data%LOCALAPPDATA%SuperbirdUser Data%LOCALAPPDATA%ChedotUser Data%LOCALAPPDATA%TorchUser DataGoogleChromeGoogleChrome64InternetMailRuYandexBrowserComodoDragonAmigoOrbitumBromiumChromiumNichromeRockMelt360BrowserVivaldiOperaGoBrowserSputnikKometaUranQIPSurfEpicBraveCocCocCentBrowser7StarElementsBrowserTorBroSuhbaSaferBrowserMustangSuperbirdChedotTorchLogin DataWeb DataSELECT origin_url, username_value, password_value FROM loginsSELECT host_key, name, encrypted_value, value, path, secure, (expires_utc/1000000)-11644473600 FROM cookiesSELECT host_key, name, name, value, path, secure, expires_utc FROM cookiesSELECT name, value FROM autofillSELECT name_on_card, expiration_month, expiration_year, card_number_encrypted value FROM credit_cards%APPDATA%MicrosoftWindowsCookies%APPDATA%MicrosoftWindowsCookiesLow%LOCALAPPDATA%MicrosoftWindowsINetCache%LOCALAPPDATA%PackagesMicrosoft.MicrosoftEdge_8wekyb3d8bbweACINetCookies%LOCALAPPDATA%PackagesMicrosoft.MicrosoftEdge_8wekyb3d8bbweAC#!001MicrosoftEdgeCookies%LOCALAPPDATA%PackagesMicrosoft.MicrosoftEdge_8wekyb3d8bbweAC#!002MicrosoftEdgeCookies%LOCALAPPDATA%PackagesMicrosoft.MicrosoftEdge_8wekyb3d8bbweACMicrosoftEdgeCookiesInternetExplorerInternetExplorerLowInternetExplorerINetCacheMicrosoftEdge_AC_INetCookiesMicrosoftEdge_AC_001MicrosoftEdge_AC_002MicrosoftEdge_ACSoftwareMicrosoftInternet ExplorerSoftwareMicrosoftInternet ExplorerIntelliFormsStorage2SoftwareMicrosoftWindows NTCurrentVersionWindows Messaging SubsystemProfilesOutlookSoftwareMicrosoftOffice15.0OutlookProfilesOutlookSoftwareMicrosoftOffice16.0OutlookProfilesOutlookPOP3IMAPSMTPHTTP%appdata%WaterfoxProfilesWaterfox%appdata%ComodoIceDragonProfilesIceDragon%appdata%8pecxstudiosCyberfoxProfilesCyberfoxsqlite3_opensqlite3_closesqlite3_prepare_v2sqlite3_stepsqlite3_column_textsqlite3_column_bytessqlite3_finalize%APPDATA%filezillarecentservers.xml<RecentServers></RecentServers><Server></Server><Host></Host><Port></Port><User></User><Pass></Pass><Pass encoding="base64">FileZillaole32.dllCLSIDFromString{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}{3CCD5499-87A8-4B10-A215-608888DD3B55}vaultcli.dllVaultOpenVaultVaultEnumerateItemsVaultGetItemMicrosoftEdgeBrowsersAutoCompleteCookieList.txtSELECT host_key, name, encrypted_value, value, path, is_secure, (expires_utc/1000000)-11644473600 FROM cookies%appdata%Moonchild ProductionsPale MoonProfilesPaleMoon%appdata%Electrumwallets\Electrum%appdata%Electrum-LTCwallets\Electrum-LTC%appdata%ElectrumGwallets\ElectrumG%appdata%Electrum-btcpwallets\Electrum-btcp%APPDATA%Ethereumkeystore\Ethereum%APPDATA%Exodus\ExodusExodus Eden*.json,*.seco%APPDATA%JaxxLocal Storage\JaxxLocal Storage%APPDATA%MultiBitHD\MultiBitHDmbhd.wallet.aes,mbhd.checkpoints,mbhd.spvchain,mbhd.yaml.walletwallets.walletwallet.datwalletswallet.datelectrum.datwalletselectrum.datSoftwaremonero-projectmonero-corewallet_pathBitcoinBitcoin-QtBitcoinGoldBitcoinGold-QtBitCoreBitCore-QtLitecoinLitecoin-QtBitcoinABCBitcoinABC-Qt%APPDATA%Exodus Eden%Appdata%Psi+profiles%Appdata%Psiprofiles<roster-cache></roster-cache><jid type="QString"><password type="QString"></password>
浏览器Cookie和CryptoWallets的多次引用确认最初隐藏在cabilet存档中的“RuntimeBroker5.exe”示例是AZORult的变化版本。

步骤三—payload信息


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


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

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

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

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

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


结论


在此次对意大利组织和用户的攻击事件进行分析后,我们发现了用于监视和检测InfoSec社区和CERT-Yoroi之间的联系,并揭示了连接此特定AZORult实例和Gootkit木马的隐藏链接。
此外,该分析还发现了网络犯罪分子所使用技术是如何演变的,并且展示了如何使用高级语言(在这种情况下为JavaScript)来帮助攻击者。

Iocs

  • Dropurl:hairpd[.com/stat/stella.exehairpd[.com/stat/sputik.exeivanzakharov91[.example[.comgoogodsgld[.com185.154.21[.208driverconnectsearch.infohost.colocrossing.com192.3.179[.203Components:RuntimeBroker5.exe 2274174ed24425f41362aa207168b491e6fb55cab208116070f91c049946097astella.exe6f51bf05c9fa30f3c7b6b581d4bbf0194d1725120b242972ca95c6ecc7eb79bc
  • sputik a75b318eb2ae6678fd15f252d6b33919203262eb59e08ac32928f8bad54ca612
  • C2 (AZORult)

ssl[.admin[.itybuy[.it
  • C2 (gootkit):

avant-garde[.hostkinzhal[.online
  • Hash:2274174ed24425f41362aa207168b491e6fb55cab208116070f91c049946097a6f51bf05c9fa30f3c7b6b581d4bbf0194d1725120b242972ca95c6ecc7eb79bca75b318eb2ae6678fd15f252d6b33919203262eb59e08ac32928f8bad54ca61212791e14ba82d36d434e7c7c0b81c7975ce802a430724f134b7e0cce5a7bb185


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
关键词: bot 下载 软件 360 安全
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。
级别: 超级版主
发帖
839169
飞翔币
228941
威望
224673
飞扬币
2476217
信誉值
0

只看该作者 1 发表于: 2019-03-03
来看一看了
级别: 超级版主
发帖
839169
飞翔币
228941
威望
224673
飞扬币
2476217
信誉值
0

只看该作者 2 发表于: 2019-03-03
不错,了解了