当前位置:网站首页 > 黑客培训 > 正文

RTM银行木马再现北亚,针对石油业发起持续攻击

freebuffreebuf 2019-11-29 359 0

本文来源:奇安信威胁情报中心

概述

近期,奇安信病毒响应中心在日常威胁追踪中发现,一例针对俄罗斯鄂木斯克州,一家与石油相关的公司的攻击活动。攻击入口依旧为邮件,通过向公司公开邮箱中发送诱饵邮件获得攻击入口。攻击目的为植入后门程序以及获取目标机器上的浏览器本地凭证信息。

从样本中字符串分析来看攻击者做了充分的准备,对俄罗斯用户上网习惯较为熟悉,PE样本中列出大量与俄罗斯用户的用户习惯息息相关的字符串,并且多个字符串都与银行相关。从样本分析结果关联发现该木马为RTM家族木马。

 

样本分析

诱饵文件

发送的诱饵邮件内容使用语言为俄文,内容与金额核对有关:

ae01c751-a832-4ac6-97f9-d54cb04d8bfa.png

内容翻译如下:

84d85b9b-462b-4f34-85cb-2b3d73a82149.png

邮件中有一个名称为Сверка за сегодня的压缩文件,中文翻译名称为”今日核对”,压缩文件解压之后里面附带一个可执行文件,该文件为一个下载器:

51d73e89-734a-4190-b5b9-3bbd0156f65b.png

邮件发送人是俄罗斯罗斯可莫能源公司(Roskommunenergo),发件人为Елена Куликова pts@rcen-nt.ru

收件人邮箱为” info@oms.transneft.ru”,该邮箱是俄罗斯鄂木斯克州一家与石油相关的公司:

617b1ef9-fc93-4217-9ba9-ee8889320dea.png

 

Loader分析

名称Сверка за  сегодня.exe
MD5CDA842C3115A**D25B89360E547DD79B

 

该EXE在main函数中插入了一些无功能的代码,实际功能是保存在.text段中的ShellCode:

e6d202d5-39d6-45a0-9862-549f91fbe687.png

ShellCode中申请空间,并解密保存在PE中的数据,随后调用第二段ShellCode:

1627e95b-1c0b-48cc-9762-4ece118fd4fa.png

第二段ShellCode中继续申请空间拷贝PE文件保存的加密数据,并对其解密,解密算法为每四字节异或0x954132AC,得到的数值与自己相减:

ecab13f1-08f7-4e46-94c2-f881e7096f30.png

解密完成为另一个PE文件,即Loader的真正代码功能,由Delphi编写:

3d95f361-27f1-4785-b1d3-7a5d7d7a62b9.png

 

Delphi PayLoad分析

启动之后会检测当前进程的参数个数,如果无参则会指定参数并重新创建进程:

dac9a21d-4dde-4066-aef5-8ce63ca5dcf0.png

获取IE浏览器的缓存数据:

30c01cc3-2037-411d-81cf-28112b5440b1.png

获取缓存数据之后会先检查头四个字节是不是”http”,如果是则继续与PE中硬编码的字符串比较,来看是不是攻击者感兴趣的数据:

4cdaeb6c-c81a-4851-8c8c-79f9abc4644c.png

字符串列表,列表中字符串与银行有关:

bc.rshb
i.vtb.ru
bsi.dll?
online.payment.ru
/ic/login.zhtml
bankline.ru
/servlets/ibc
faktura.ru
/iclient/
ibank2
elba.raiffeisen
elbrus.raiffeisen
handybank.
wupos.westernunion
bco.vtb24
bo.vtb24
dbo.vtb.
online.sberbank.
minbank.ru
e-plat.mdmbank
link.alfabank
click.alfabank
ib.avangard
ibc.vuzbank
ibc.ubrr
my.modulbank
online.centrinvest
cb.mtsbank
vbo.mkb
i.bspb.ru
/vpnkeylocal
sci.interkassa
ibank.mmbank.
blockchain.info
cb.asb.by
bps-sberbank.by
dbo2.bveb.by
ibank.bsb.by
corporate.bgpb.by
ibank.alfa-bank.by
ibank.belinvestbank.by
ib2.ideabank.by
client.paritetbank.by
ibank.priorbank.by
client.mybank.by
online.stbank.by
client.belapb.by

 

随后获取缓存文件路径,拼接要访问的文件路径来拼接出Chrome浏览器的缓存文件:

路径一共2个,分别是” Google\Chrome\User Data\Profile2\History”和”Google\Chrome\User Data\Default\History”。

a8b73888-b734-4ac4-973a-016443ac1978.png

获取文件属性:

253c1725-bf5a-4439-8484-b5194ba6ca61.png

将Chrome的历史文件拷贝到Temp目录下:

e3b09910-3979-4e5b-a95b-76e3ca28eb87.png

通过FileMapping的方式将Chrome文件的历史记录映射到当前进程的内存中:

 38e8fa69-747b-443f-b193-ea1a2655987a.png

映射之后会循环递增,通过与0x70747468比较来定位文件中“http”字符串的位置,直到找到跟URL相关的数据,至此重复之前获取IE历史记录的步骤:

04e27c82-2c6b-4146-8ed5-e4da769b07d1.png

以及获取FireFox的历史记录:

3527942c-6294-4b5d-a7c7-443c08eeda84.png

浏览器历史记录获取完成之后会遍历文件,查找是否存在特定文件:

ce5612b2-e6dd-486c-8cbb-8af7a543f1a4.png

b988f66c-85d3-4ff9-956d-5525d359ab35.png

文件名列表如下:

wclnt.exe
cbmain.exe
bssax.ocx
ibank.odb
client.jks
intpro.exe
cbsmain.dll
sbgclient.exe
1cv8.exe
1cv8c.exe
1cv8s.exe
1cv7.exe
1cv71.exe
1cv7s.exe
winpost.exe
clbank.exe
qiwicasbier.exe
iscc.exe
webmoney.exe
wallet.dat
ifobsclient.exe
transaq.exe
maratl.exe
_ftcgpk.exe
ip_client.exe
el_cli.exe
bbclient.exe
scdbo_.t.exe
obcryptoapp.exe

 

在获取了IE、Chrome、FireFox以及枚举完文件之后会链接服务器通过Http协议Get数据,从服务器获取插件的逻辑有2种。

一种方式是下载一个PE文件在内存中加载PE执行:

请求数据:

23d58ea5-9eab-4ecb-9df3-bd1883b11642.png

数据请求完成之后解密,参数分别为Buff以及长度:

e9bc8eac-f18e-4963-a1aa-a6bde2d157e6.png

解密完成之后是一个PE文件:

ff47ee04-ac42-4569-88fa-25d2971bf153.png

解密算法如下:

da630***-3432-4fa2-88e0-a1e9aa08a7a2.png

随后申请空间,修改内存属性之后获取PE文件的导出函数”start”并调用:

568ff9f4-145e-4fb8-9a13-56d3c186aa29.png

另一种是在获取完浏览器缓存之后请求一个DLL,并保存在Temp目录下,通过RunDll32执行。

879eeff3-4dbf-42a9-a027-7230579ca3fb.png

进程创完成之后给服务器发通知包:

b5d4186b-10b3-480b-98d7-932cdcc57250.png

 

PayLoad Rundll32执行的DLL分析

      

该DLL OEP中插入了大量的Push Retn来修改程序EIP:

864c91e0-36c6-47d1-bc4c-45a1b251b95a.png

最终会跳到主要功能代码中,随后调用ViritualAlloc申请空间将PE文件中保存的加密数据拷贝到申请的空间:

3a88d2d0-77a9-4f61-96cc-6bddf021859a.png

随后循环解密,解密算法如下:

e16ae877-1ae3-4255-8d2e-17985f862d00.png

最终在内存中释放出另一个PE文件,找到该DLL的导出函数GetClassObject并传参调用。

ff8ecd96-33e5-4412-88db-6fa952e20cfe.png

该DLL调用的多个API都是动态调用,在调用之前通过GetProcAddress获取函数地址保存在全局变量中:

052cbba3-9895-49a7-afe4-25c7da73da67.png

获取当前进程的SID信息来判断当前进程的权限等级:

693a4f5f-a4c3-4afa-a574-cd095dfef7aa.png

判断逻辑是如果返回值大于等于0x2000即大于等于SECURITY_MANDATORY_MEDIUM_RID:

1c785b64-89c0-46ca-8230-9477855107a6.png

获取ProgramData的路径并拼接出一个新的文件夹路径,通过GetFileAttributesW返回值判断文件夹是否存在,如果不存在则调用CreateDirectoryW创建该文件夹,用以将Temp下的文件拷贝一份到指定目录下:

e49be2d8-9b3d-46b8-9d62-5b97f30f4604.png

创建文件夹之后读取当前自身文件:

956741aa-387e-4360-a8f9-c859239c6e46.png


随后创建文件,将当前进程文件拷贝到ProgramData路径下:

275f6d33-6b47-4a87-ad49-2949402490da.png

还会判断当前进程名称是不是Rundll32.exe:

01906fad-cc92-417b-a4cc-73818bd75102.png

通过计划任务达到持久性攻击的目的:

e3229c1c-c5d8-40da-bbfc-c26000ec4307.png

该程序附带多个后门功能,通过InternetReadFile从服务器读取的数据来解析控制码从而执行不同的流程:

设置键盘钩子:

c6cdf50f-5c2e-4e65-853b-9a244f6a8a8b.png

会通过DDE系列函数循环读取Figure类型窗口的信息:

bcf08f0f-d77d-44ca-9e71-da0f28f3784d.png

窗口列表如下:

SunAwtFrame
SunAwtDialog
TLoginWindow
fmISClient
TfmISClient
TInitialform
TSYSCustomForm
ДБО  BS-Client
Райффайзенбанк - система ELBRUS.erConfigurationWhere IPEnabled = True
ЗАО  "Инверсия"
“E-Plat”
ALBO
Альфа-Клик.n
АвангардИнтернет-банк
АО  "ВУЗ-банк"
ПАО КБ  "УБРиР".ет-банк
Модульбанк  - Личный кабинет
SberbankBusiness  Online
МКБ  Интернет-банк.Online
МИнБанкБизнес Online

 

获取当前系统信息,包括用户名、计算机名、时区、默认语言、Kernel32版本信息、系统版本信息以及当前进程的权限:

0910678a-547b-497c-a9f2-20e67c2548a3.png

随后连接服务器:

d9de8020-dc84-4b7a-b116-2cf82e98601c.png

    该程序功能齐全,是个典型的后门程序:

读取SCARD信息:

63e067cf-68dc-48bc-8a9e-2107f6a47c52.png

读取PCSC设备信息:

ca109511-8bad-41fd-a73e-9a139da3029c.png

保存插件并调用ShellExecute执行:

559ec7e8-8be5-4979-957c-b5604b80158d.png

保存插件为DLL并加载:

2c036b00-dd33-4eb0-8ea8-96c140f78025.png

执行从服务器下载的ShellCode:

77692503-401d-4fe0-a9e8-ab6f25d4b10a.png

注册表读取:

a46b25ef-4afe-4dff-80dc-5f8c1b31b968.png

创建不同Seeion的进程:

3d8eb21c-da41-4279-81f8-49f379530011.png

进程提权:

a99ea145-f7f0-4390-93f0-d327367be58d.png

文件读写操作:

d88103ea-09a9-41f3-a6aa-557d1e22a37c.png

Socket通信:

f24b830a-d435-4c1e-9cc2-a6ad1ef9fe28.png

屏幕截图:

a0666707-b831-4433-b119-829e8401a415.png

       从功能上看该程序功能齐全,包含进程、文件、注册表以及网络通信等功能,还支持后续插件功能扩展,是一个典型的后门程序。

      

 

PayLoad 内存加载的PE分析

 

主要获取Chrome在Temp中保存的数据,该文件是一个SQLite3格式的数据库文件,打开后如下,保存的包括用户登录信息,对应网站的账号密码等:

cbd3f5bd-3ce6-44c5-89de-86a00524a065.png


随后调用SQL语句查询数据库:

9ad0b5e2-7697-4016-bbda-8cb9bf8c3ed7.png

获取kometa软件保存的数据库信息:

74c56967-64e4-41f8-953a-d870905502fe.png

获取orbitum浏览器保存的数据库信息:

b406a205-447d-4b4a-9929-1c30eb365ed4.png

获取Opera浏览器数据库信息:

62277cb2-85e4-4476-acee-d34e7bf6a7b2.png

获取yandex浏览器数据库信息:

3387aa6e-427f-4e74-9ed8-8b394394e44a.png

获取Amigo浏览器数据库信息:

160029e5-753b-4072-a433-022f1ef4d51b.png

获取Firefox浏览器数据库信息:

18780045-db52-4f1c-919a-4b622bf88791.png

获取thunderbird保存的用户信息:

5a783d78-58a7-4c4f-b638-c4c72f17d643.png

获取IE浏览器保存数据:

ed2e2f53-e3b7-4370-b083-ca58410af633.png

通过注册表查询OutLook保存的数据:

83eb1a84-683c-4a6d-a386-2db61c09b069.png

获取incredimail邮箱软件数据:

2df6f5fd-c6d0-4ff9-89a9-3d350e394bda.png

获取WindowsMail数据信息:

4f0af931-5609-43d9-8a5b-a368f5f462bc.png

获取完成之后发送给服务器:

39d0b645-8929-4bd3-8c88-3c8085da1958.png

 

总结

从攻击者手法上来看,攻击者依托诱饵邮件诱导用户执行从而获得攻击入口。样本通过多次内存释放PE,并且关键PayLoad托管在远程服务器上,并支持在内存中执行,增大了分析人员的分析难度。

攻击者利用普通用户不设防心里对攻击目标实施攻击。奇安信病毒响应中心提醒用户谨慎打开未知文档以及邮件,预防此类恶意样本攻击。

       目前奇安信集团全线产品,包括天眼、SOC、态势感知、威胁情报平台,支持对涉及MYEC黑客团伙的攻击活动检测。奇安信天擎终端防护产品内置的EDR检测机制通过恶意代码的行为分析,支持对该组织此类样本的检测和查杀。


 

IOCs

C&C:

85.217.171.43/viewtopic.php?f576=501?f948=636d6d?f783=434d4d2d5043

85.217.171.43/viewtopic.php?f576=0?f948=636d6d?f783=434d4d2d5043

85.217.171.43/g_38472341.php

85.217.171.43/viewtopic.php?f576=501&e=0

185.203.119.111:80

 

MD5:

AA9E518A72D776E4ACE2EB5FA1329899

CDA842C3115A**D25B89360E547DD79B

6697F31EA7E27E8871B729A28FC96F4E

C0B24F70394A71E0B37A834352FA58BA

 

转载请注明来自网盾网络安全培训,本文标题:《RTM银行木马再现北亚,针对石油业发起持续攻击》

标签:RTM银行木石油业

关于我

欢迎关注微信公众号

关于我们

网络安全培训,黑客培训,渗透培训,ctf,攻防

标签列表