译者:知道创宇404实验室翻译组
原文链接:https://seguranca-informatica.pt/threat-analysis-the-emergent-ursa-trojan-impacts-many-countries-using-a-sophisticated-loader/#.X2LUXWgzbIV
2020年6月以来,新一波URSA木马程序(ESET称之为mispadu恶意软件)已影响到多个国家的用户,包括玻利维亚、智利、墨西哥、阿根廷、厄瓜多尔、秘鲁、哥伦比亚、巴拉圭、哥斯达黎加、巴西、西班牙、意大利和葡萄牙。此软件是恶意木马,当安装在受害者的设备上时,它从浏览器和流行软件(如FTP和电子邮件服务)收集密码,并执行银行浏览器覆盖,以诱使受害者介绍银行凭证,这些流程由攻击者在后台逐步执行。
下表1显示了2020年6月至9月中旬全球感染数量的地理分布。
从一些C2s获得的数据可以看出,从2020年6月到9月中旬,共有3379名用户受到该威胁的影响。墨西哥共有1977例,是受感染人数最多的国家,其次是西班牙631例,葡萄牙514例,智利331例。
实际感染的数量可能要比上面高得多,因为这些指标只与文章末尾部分C2s中存在的数据有关。
URSA恶意软件是一种相对较新的木马程序,旨在窃取受害者机器的凭证,并在受害者访问其家庭银行门户网站时创建银行覆盖窗口。URSA通过社会工程模式传播,即网络钓鱼/恶意欺诈活动。在葡萄牙,这种威胁已经在野外传播,并冒充了四个受欢迎的组织,即沃达丰、EDP(葡萄牙能源公司)、MEO(Serviços de Comunicaões e Multimédia,S.A)和Polícia Judicíaria——葡萄牙负责刑事调查的警察组织之一。
电子邮件通常是通过过期发票诱使受害者下载恶意文件(从互联网下载的.zip文件)来进行影响用户的。这些电子邮件通常在每个月底和月初之间发送。
乍一看,通过电子邮件诈骗犯罪分子发送的恶意URL下载的文件是一个zip文件,里面有一个MSI(微软安装程序)。通过分析MSI文件,可以观察到另一个文件在内部可用,并且可能在MSI执行时被删除。名为px3q8x.vbs的文件是一个VBscript文件,负责加载和执行下一个阶段。有趣的是,这个文件有一个低检测率绕过。
威胁名称:554S2000A2S144D1S4111D.zip
MD5:2d2f3500836ed60303103bafac6357a3
威胁名称:554S2000A2S144D1S4111D.msi
MD5:3be539aa8d421d09cef27723a98d2d83
威胁名称:px3q8x.vbs (initial payload – VBScript)
MD5: a4f066196b1009c42c1dea74f857180d
在本文中,我们可以看到URSA木马有两个加载程序。首先是VBScript加载程序,然后是几轮模糊处理和兔子洞。最后VBScript负责启动和删除磁盘上的文件,并执行AutoIt加载程序/注入器。该二进制文件通过进程注入技术将一些DLL注入内存,包括与银行覆盖窗口相关的Delphi二进制文件,以及与C2服务器建立所有通信的DLL。
下图显示了URSA木马程序工作原理的高级图表。
在提取VBscript加载程序之后,我们发现它非常混乱,如图4所示。
几轮之后,我们得到了一个更可读的版本。注意,一些与无用代码相关的部分被删除了。具体来说,VBscript分为两部分。第一部分是Installer对象的方法,该方法返回一个新的记录对象,其中包含请求的字段数(下面突出显示的代码)。
第二部分是下一个有效载荷编码的代码。然后执行该有效载荷,并负责解码另一个有效载荷(图5–步骤5中的第二个有效载荷)。
这个新的有效载荷(在去除代码并重命名一些函数和变量之后)是另一个VBScript,最后一个有效载荷从C2服务器请求下一个阶段。
最后,我们得到了c2ip地址(191.235.99.]13)和本阶段来自C2服务器的最终有效负载。
威胁名称:最终有效载荷(VBScript)
MD5:bda287c97d9373052f347ac0ccedfdf8
在经历了几次兔子洞之后,我们终于从C2服务器上完全除掉了URSA VBScript加载程序。只需对恶意软件配置进行加密,C2服务器和特洛伊木马客户端之间的所有通信都是使用相同的算法执行的,即使是在这个恶意软件的最后阶段——一个Delphi PE文件,负责创建银行覆盖窗口,从受害者的机器收集凭证,并将所有数据发送到C2在线。
从图9中,我们可以观察到以下内容:
如前所述,恶意软件和C2服务器之间的所有通信都是加密的。为了解密恶意软件通信,我们可以使用GitHub上的下一个脚本。
通过执行脚本,可以解密恶意软件配置,如下所示。
变量“#wp#”是在恶意软件执行期间发送受害者信息的最终C2端点。同时,还发现了几种寄主重复。这是一个潜在的C2,当一个新的受害者受到影响时会通知攻击者。尽管如此,下一阶段的恶意软件是从IP地址(191.235.99.]13)下载的,如上所述。
在VBScript代码分析过程中,发现了一些函数:
Function GetWmiPropertyValue(strNameSpace, strClassName, strPropertyName) function crypt(cText, cCod) function decrypt(cText, cCod) Function UnZip(ZipFile, ExtractTo) Function StringGetURL(sUrl) Function BinaryGetURL(strURL) Function StringGetURL(strURL) Function SaveBinaryData(arrByteArray, strFileName) Sub writeBinary(bstr, path) Function makeArray(n) ' Small utility function Function TrocaEntry(strFileName1, strFileName, sSenhaVelha, sSenhaNova) function cr1pt(x, c)
一般来说,下一个恶意软件阶段分几个部分从C2服务器检索,然后动态构建。这些文件在恶意软件执行期间被加密和解密。接下来,在这个过程中生成一个最终的PE文件。下面介绍一些有趣的函数。值得注意的是,用于下载文件的用户代理是:“strusagentstring=“binary-getter/1.0””。
在受害者启动下一个阶段后,对其进行初步验证,然后将检索操作系统(OS)版本,如果是虚拟环境,则脚本将终止其执行。按照这个逻辑,最终的有效载荷就不会从C2上加载和下载,这使得它至少不会被防病毒引擎标记。
接下来,脚本验证受害者设备是否位于攻击者定义的目标位置,即:
如果受害者的计算机以不同于硬编码的语言ID执行,或者计算机名等于“JOHN-PC”,则感染过程停止。将计算机名改为“JOHN-PC”是避免URSA感染的潜在杀手锏。
此时,下一阶段从C2服务器下载。这些文件存储在C:\Users\Public文件夹(tmp文件)中,然后移动到在C:\驱动器上创建的随机文件夹中。此文件夹的名称基于计算机名。
在此过程中,还下载了另外两个dll。一个是SSL的DLL,另一个是SQLite3的DLL。它们可能是恶意软件中打包的依赖项,如果目标计算机上没有安装这些DLL/资源,则可以避免失败。我们将观察到最终的二进制文件——ursadelphi——里面有两个工具并打包了。这些工具是在凭证获取过程中使用的合法软件。
在这个复杂的过程之后,最后的文件被移到C:\“artibrary_name”文件夹中。
接下来,执行另一个加载器/注入器,AutoIT文件。它负责将最终有效负载(包含木马代码和恶意进程的Delphi文件)加载到内存中。
Ursa木马程序–AutoIT loader/injector
威胁名称:n11ai.exe
MD5:c56b5f0201a3b3de53e561fe76912bfd
威胁名称:n111.11n
MD5:7396051fd6575180166d66ddf0a9295b
威胁名称:winx86.dll
MD5:87f9e5a6318ac1ec5ee05aa94a919d7a
威胁名称:libeay32.dll
MD5:f3e6c0d52bab27289db2a70e4aab628c
威胁名称:n11
MD5:71fdf07084a741b553b97b0d0815fa0e
AutoIT二进制文件受保护,可以使用GitHub上的以下脚本进行反编译。该脚本是myAut2Exe的一个构建版本,它是在2.12版本的基础上修改而来的。
如前所述,为了执行进程注入技术,从kernel32.dll导入了一些调用。
LOCAL $KERNELHANDLE=DLLCALL($_MDKERNEL32DLL,"ptr","LoadLibrary","str","kernel32.dll") $_MFHOOKBAK=DLLSTRUCTCREATE("ubyte[7]") DLLCALL($_MDKERNEL32DLL,"int","WriteProcessMemory","ptr",-1,"ptr",DLLSTRUCTGETPTR($_MFHOOKBAK),"ptr",$_MFHOOKPTR,"uint",7,"uint*",0) DLLCALL($_MDKERNEL32DLL,"int","WriteProcessMemory","ptr",-1,"ptr",$_MFHOOKPTR,"byte*",184,"uint",1,"uint*",0) DLLCALL($_MDKERNEL32DLL,"int","WriteProcessMemory","ptr",-1,"ptr",$_MFHOOKPTR+5,"ushort*",57599,"uint",2,"uint*",0)
具体来说,文件n111.11n是导入的dll之一–Delphi PE文件。根据传递的参数注入所有DLL文件。这些命令在图17中VBScript加载程序的末尾执行。
"C:\o0t\n11ai.exe" n11 @ "C:\o0t\n11ai.exe.exe" n11 ##1 "C:\o0t\n11ai.exe.exe" /stext "WWy1" "C:\o0t\n11ai.exe.exe" n11 ##3 "C:\o0t\n11ai.exe.exe" /stext "WWy0"
在细节上,这个自动装载机按部件加载恶意软件,即:
另一方面,这两个dll似乎引用SSL和SQLite3,它们可能是执行delphipe文件(winx86.dll和libeay32.dll)中可用工具的依赖项。
挖掘URSA的最后阶段(Delphi木马)
威胁名称:36f0000.rec.dll (extracted from memory)
MD5:309335fe1e4f27029a8ec6087e0de1f4
最后一个阶段是一个Delphi二进制文件,负责执行浏览器覆盖来控制和窃取受害者访问其家庭银行门户网站的数据。这里观察到的活动和代码相似性与在葡萄牙和拉丁美洲运行的其他经过分析和流行的木马非常接近,例如Grandoreiro和Lampion[1,2]。根据ESET的分析,最终的有效载荷是Mispadu,一种雄心勃勃的拉丁美洲银行业木马,它将攻击面扩展到web浏览器。
Delphi二进制文件中还有两个合法的工具。这些工具用于收集存储在受害者设备上的凭据。
这些工具在最后阶段开始时执行,数据存储在下面突出显示的标记“F1”和“F2”之间。
具体来说,这些工具是合法的,来自Nir-Sofer。第一个是在内存中启动WebBrowserPassView,用于从流行的web浏览器中过滤凭证。另一方面,Mail PassView用于从多个位置收集数据。
在快结束时,数据被发送到C2服务器。
木马同时监听和监视受害者访问的窗口和网站(它将焦点窗口放在web浏览器上)。访问目标银行门户时,将根据访问的银行门户在合法的web浏览器窗口上创建覆盖窗口。 简而言之,下一个数字显示了一些目标银行被URSA木马攻击者“操纵”情况。
完整的列表可以在下面找到。
.text:039E67D0 00000010 unicode BMSC_BO .text:039E67EC 0000001C unicode BANCOUNION_BO .text:039E6814 0000000E unicode BNB_BO .text:039E6830 00000010 unicode BISA_BO .text:039E684C 0000000E unicode BCP_BO .text:039E6868 00000014 unicode FASSIL_BO .text:039E6888 00000018 unicode BANCOFIE_BO .text:039E68AC 00000018 unicode BANCOSOL_BO .text:039E68D0 0000000C unicode BG_BO .text:039E68E8 00000014 unicode BANECO_BO .text:039E6908 0000001A unicode CORPBANCA_CH .text:039E6930 00000010 unicode BBCA_CH .text:039E694C 00000024 unicode BANCOFALABELLA_CH .text:039E697C 00000020 unicode BANCOEDWARDS_CH .text:039E69A8 0000001E unicode BANCORIPLEY_CH .text:039E69D4 00000018 unicode TBANCWLS_CH .text:039E69F8 00000014 unicode BANEFE_CH .text:039E6A18 0000001C unicode SCOTIABANK_CH .text:039E6A40 00000010 unicode BICE_CH .text:039E6A5C 0000001C unicode BANCOINTER_CH .text:039E6A84 00000024 unicode BANCOCONSORCIO_CH .text:039E6AB4 00000010 unicode BITCOIN .text:039E6AD0 0000000E unicode PAYPAL .text:039E6AEC 00000014 unicode BANKIA_ES .text:039E6B0C 00000018 unicode SABADELL_ES .text:039E6B30 0000001A unicode BANKINTER_ES .text:039E6B58 00000018 unicode IBERCAJA_ES .text:039E6B7C 0000001A unicode LIBERBANK_ES .text:039E6BA4 00000014 unicode ABANCA_ES .text:039E6BC4 0000001C unicode KUTXABANCA_ES .text:039E6BEC 00000016 unicode UNICAJA_ES .text:039E6C10 00000012 unicode GERAL_PT .text:039E6C30 0000000E unicode BPI_PT .text:039E6C4C 0000001A unicode NOVOBANCO_PT .text:039E6C74 0000000E unicode BCP_PT .text:039E6C90 0000000E unicode CGD_PT .text:039E6CAC 00000014 unicode ACTIVO_PT .text:039E6CCC 00000018 unicode MONTEPIO_PT .text:039E6CF0 0000001C unicode CREDITOAGR_PT .text:039E6D18 0000000E unicode BPM_IT .text:039E6D34 00000010 unicode BPER_IT .text:039E6D50 00000016 unicode UNICRED_IT .text:039E6D74 00000018 unicode SAMPAOLO_IT .text:039E6D98 0000000E unicode BNL_IT .text:039E6DB4 00000018 unicode BANCAMPS_IT .text:039E6DD8 0000001A unicode SANTANDER_CH .text:039E6E00 0000001A unicode SANTANDER_ES .text:039E6E28 00000010 unicode BBVA_ES .text:039E6E44 0000001A unicode CAIXABANK_ES .text:039E6E6C 0000001A unicode SANTANDER_PT .text:039E6E94 00000010 unicode BBVA_MX .text:039E6EB0 00000014 unicode AZTECA_MX .text:039E6ED0 00000016 unicode BANAMEX_MX .text:039E6EF4 00000016 unicode BANORTE_MX .text:039E6F18 00000012 unicode SANTA_MX .text:039E6F38 00000010 unicode HSBC_MX .text:039E6F54 00000014 unicode SCOTIA_MX .text:039EA11C 0000000A unicode bbva .text:039EA134 0000000A unicode xico .text:039EA15C 00000008 unicode 99_ .text:039EA170 00000006 unicode 99 .text:039EA184 0000000A unicode BBVA .text:039EA1AC 0000000C unicode banco .text:039EA1C4 0000000E unicode azteca .text:039EA1E0 0000001A unicode Banco Azteca .text:039EA208 0000001C unicode banconacional .text:039EA230 00000010 unicode agrcola .text:039EA24C 00000032 unicode Banco Nacional de México .text:039EA28C 00000010 unicode banorte .text:039EA2A8 00000010 unicode Banorte .text:039EA2C4 00000014 unicode santander .text:039EA2E4 0000001E unicode bancadeempresa .text:039EA310 0000000C unicode mxico .text:039EA328 00000012 unicode gobierno .text:039EA348 0000000A unicode pyme .text:039EA360 00000020 unicode Banco Santander .text:039EA38C 00000014 unicode caixabank .text:039EA3AC 00000008 unicode bpi .text:039EA3C0 00000014 unicode CaixaBank .text:039EA3E0 00000016 unicode scotiabank .text:039EA404 0000000E unicode Scotia .text:039EA420 0000000A unicode hsbc .text:039EA438 0000000A unicode HSBC .text:039EA450 0000000A unicode solu .text:039EA468 00000010 unicode advance .text:039EA484 00000012 unicode investor .text:039EA4A4 00000012 unicode Santader .text:039EA4C4 00000016 unicode blockchain .text:039EA4E8 00000010 unicode bitcoin .text:039EA504 00000010 unicode binance .text:039EA520 00000012 unicode coinbase .text:039EA540 0000000E unicode kraken .text:039EA55C 0000000E unicode crypto .text:039EA578 00000012 unicode primebit .text:039EA598 0000000C unicode bitso .text:039EA5B0 0000000E unicode paypal .text:039EA5CC 0000000E unicode bankia .text:039EA5E8 0000001C unicode bancosabadell .text:039EA610 00000014 unicode bankinter .text:039EA630 00000012 unicode ibercaja .text:039EA650 00000014 unicode liberbank .text:039EA670 0000000E unicode abanca .text:039EA68C 00000014 unicode kutxabank .text:039EA6AC 0000001A unicode unicajabanco .text:039EA6D4 00000012 unicode bancobpi .text:039EA6F4 00000014 unicode novobanco .text:039EA714 0000001C unicode millenniumbcp .text:039EA73C 0000001A unicode caixadirecta .text:039EA764 00000016 unicode activobank .text:039EA788 00000012 unicode montepio .text:039EA7A8 00000014 unicode crditoagr .text:039EA7C8 0000002C unicode bancapopolaredemilano .text:039EA800 00000012 unicode bancobpm .text:039EA820 0000000A unicode bper .text:039EA838 00000014 unicode unicredit .text:039EA858 00000010 unicode banking .text:039EA874 00000028 unicode bancaintesasanpaolo .text:039EA8A8 00000008 unicode bnl .text:039EA8BC 0000000C unicode banca .text:039EA8D4 00000012 unicode bancamps
在恶意软件分析过程中,我们得到了一些有趣的覆盖窗口。更多的细节和完整的图片在文章的最后展示。
当恶意软件检测到受害者访问了一个目标银行门户时,就会建立到恶意软件运营商(C2服务器)的套接字连接。攻击者控制着每一步,在后台门户中一步一步地请求特定数据。图26显示了恶意软件中硬编码的一些命令。
在恶意软件执行期间,受害者的数据被发送到C2。在我们的分析过程中,我们有可能收集到在这波浪潮(6月至9月中旬)中受影响的受害者人数的信息,以及从受害者设备中过滤出的所有数据。
有趣的是,至少在收集凭证的阶段,这个恶意软件逃避了AV检测。我们可以在图28中看到,许多受影响的计算机正在运行流行的防病毒软件,并受到这种威胁的感染。所有的数据都存储在另一侧的服务器上。文件以id语言(Portugal – 2070)开头,后跟计算机名、木马编译id,最后是C2数据库中的受害者id。
本文中最初提到的地理地图是基于以下可用的C2s,并基于在那里发现的可用感染的数量。
---- Phishing URLs Portugal #0xSI_f33d --- hxxps://medeiros-boatworks.]com/wp-content/!/https:/my.vodafone.pt/?client=xxx hxxps://publichealth.msu.ac.]th/eng/wp-content/languages/--/my.vodafone.pt/?client=xxx hxxps://kresna.co.]id/sarikresnakimia/wp-content/!/www.edp.pt/?client=xxx hxxps://robyn-plombier-chauffagiste.fr/wp-admin/css/--/https:/www.policiajudiciaria.pt/?cliente=xxxx ---- URLS ----- hxxp://191.235.99.]13/lp1a.php hxxp://191.235.99.]13/m/
191.235.99.]13(ZoomEye搜索结果)
52.91.227.]152(ZoomEye搜索结果)
87.98.137.]173(ZoomEye搜索结果)
144.217.32.]24(ZoomEye搜索结果)
51.81.104.]17(ZoomEye搜索结果)
104.44.143.]28(ZoomEye搜索结果)
51.143.39.]80(ZoomEye搜索结果)
45.132.242.]89(ZoomEye搜索结果)
13.58.123.]122(ZoomEye搜索结果)
51.222.39.]127(ZoomEye搜索结果)
66.70.237.]175(ZoomEye搜索结果)
54.233.78.]131(ZoomEye搜索结果)
51.222.39.]128(ZoomEye搜索结果)
54.39.33.]188(ZoomEye搜索结果)
554S2000A2S144D1S4111D.msi:
https://www.virustotal.com/gui/file/23892054f9494f0ee6f4aa8749ab3ee6ac13741a0455e189596edfcdf96416b3/details
px3q8x.vbs initial VBScript:
https://www.virustotal.com/gui/file/d1fb8a5061fc40291cc02cec0f1c2d13168b17d22ffcabea62816e14ed58e925/
final payload (VBScript):
https://www.virustotal.com/gui/file/5b91c8acffe1980653718a493e24bde7211ee825ea2947df54c03e9733d61a70/details
n11ai.exe (AutoIt loader/injector):
https://www.virustotal.com/gui/file/237d1bca6e056df5bb16a1216a434634109478f882d3b1d58344c801d184f95d/details
6f0000.dll (Delphi trojan):
https://www.virustotal.com/gui/file/93488eab403fafb3d8e10d38c80f0af745e3fa4cf26228acff24d35a149f6269/detection
Samples MalwareBazaar:
https://bazaar.abuse.ch/browse/tag/URSA%20trojan/
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1338/