二、RDAT样本关联分析
2020年4月,Unit42观察到了一起涉及到一家中东电信公司数据泄露的攻击活动,在此次攻击活动中他们发现了用于窃取密钥的自定义Mimikatz工具、用于创建SSH隧道的Bitvise客户端、PowerShell下载器以及他们长期跟踪的RDAT后门程序。随后他们使用收集到的RDAT 样本关联到了OilRig组织曾使用的ISMDOOR工具,再结合他们之前发现RDAT曾在OilRig相关的webshell中使用过以及RDAT与OilRig相关样本之间的代码相似性和战术相似性,Unit42判断RDAT为OilRig组织长期使用的后门工具。
三、使用Exchange Web Services进行C2通信
通过对样本进行分析,研究人员发现RDAT使用了Exchange本地服务器的API发送电子邮件进行C2 通信,其中用于发送和接收邮件的邮箱地址被硬编码在了程序中:koko@acrlee[.]com和h76y@acrlee[.]com。为了从受害主机发送邮件,RDAT会尝试登录与受害主机账号相关联的电子邮件账户,而只要WINHTTP_OPTION_AUTOLOGON_POLICY的字段设置为WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW(默认设置为此值),Windows就会尝试使用已登录的微软账号登录到Exchange。
成功登录邮箱账户后RDAT便开始与控制邮箱进行邮件通信,主要做的是持续接收并处理来自控制邮箱的指令。为了分析它主要的工作步骤,研究人员对RDAT的通信流量进行了抓取。
首次执行时会为登录的邮箱账户创建一条垃圾邮件过滤规则,在此规则下来自控制端的邮件都会被自动移动到垃圾邮件文件夹。
下图所示的是RDAT首次运行时的第一条请求,可以看出它使用SOAP协议与Exchange 服务器进行交互。红框中所示的是该条请求会创建一条名为“ExchangeRule”的收件箱规则,该条规则具体的内容是将从蓝色框中所示的地址收到的邮件移动到垃圾邮件文件夹中。
查找到符合规则的邮件后RDAT会使用相应的邮件ID获取到邮件内容,并使用其中包含的附件地址,将BMP图像保存到临时文件夹中,然后发送SOAP请求删除已经获取到的邮件。
最后RDAT会从图像中提取出隐藏的控制命令并执行,具体步骤将在下个章节进行详细介绍。
为了向控制端返回命令执行结果或窃取的数据,RDAT会向控制邮箱发送邮件,下图所示的是RDAT创建的邮件截图,可以看出其中包含了一个bmp图像附件。为了分析邮件的发送步骤,研究人员同样对RDAT的通信流量进行了抓取。
下图所示的是RDAT发送邮件的第一个请求,从图中标出的信息可以看出,该请求用来创建一封收件人为控制邮箱的空白草稿邮件。
四、使用图像隐写术隐藏数据
由于不同系统版本中获取到的图片分辨率不同,RDAT首先会将其进行等比例的缩放到合适的尺寸。因为有时一张图片不足以隐藏需要发送的数据,所以确定了图像的高度、宽度和颜色深度后,RDAT会计算发送所有数据所需的图片数目:(数据长度)/(宽度*(高度-1))。至于为什么要这么计算,需要了解隐写算法后才能明白。
为了说明RDAT进行图像隐写的方式,需要深入的了解BMP文件格式。BMP 文件包括文件头和用于存储图像中每个像素的红色、绿色和蓝色颜色值的数组。颜色值数组中每个颜色值的格式因颜色深度而异,24 位 BMP 图像使用 3 字节表示一个像素,而 32 位图像则需要使用 4 个字节。基本的图像隐写方式就是将要隐藏的数据分成一个个bit,然后将每个bit保存在每个像素字节中的最低位中。由于对于每个像素字节来说最多只修改了最低位的值,因此修改后的图片与原图基本观察不出任何区别,从而达到了隐藏数据的目的。如下图所示,左边为原始图像,右边为隐藏了信息的图片,可以看出二者看起来没有任何区别。
RDAT的隐写方式与之类似,但在处理方式上有所不同。RDAT可以同时支持对 24 位和 32 位图像进行隐写,因此在隐藏信息前RDAT会先检查"guest.bmp"图像的颜色深度为 24 位还是 32 位深度,这决定了隐藏数据时所需跨越的字节数目。例如,如 Windows 7 中的"guest.bmp" 是24 位 BMP 图像,图像中每个像素有三个字节,表示该像素的红色、绿色和蓝色。使用该图像隐藏数据,RDAT会在这三个字节中保存数据字节的 8个bit(与普通隐写方式每个字节保存1 bit不同),第一个字节中保存2 bit其余两个字节中保存3 bit。
以示例数据“8,54351-1616479009,0”为例,RDAT首先会对其进行base64编码为,再在后面加上“#”表示数据结束得到最终要隐写到图片中的数据:
“OCw1NDM1MS0xNjE2NDc5MDA5LDA=#”。
数据位0和1隐藏在第一个像素字节的第1 和 0位中。
数据位2、3和4隐藏在第二个像素字节的第 2、1 和 0位中。
数据位5、6和7隐藏在第三个像素字节的第 2、1 和 0位中。
使用上面所述的方法,RDAT首先会从"guest.bmp"图像读取第一个像素,具体字节为 0xe4 、0xdf 和 0xb9,并使用 01001111进行替换便得到隐写结果:
将0xe4中的2、1和0位替换为010,得到0xe2。
将0xdf内的位2、1和0位替换为110,得到0xde。
将0xb9 中的位1和0位替换为11,得到0xbb。
下图显示了具体的替换方式,以及替换得到的最终结果。
当无法登录到邮箱账户时,RDAT仍然可以使用HTTP 和 DNS 隧道作为 C2通道,这点和unit42之前发现的RDAT样本功能一致。其中HTTP C2 通道使用 HTTP POST 请求将数据传输到C2 服务器,分析的样本中包含了以下两个域名作为C2服务器:
allsecpackupdater[.]com
tacsent[.]com
其中allsecpackupdater[.]com域名曾在2017年被ClearSky发现其与OilRig 组织相关联,并且在 Greenbug 的 ISMDOOR 工具中也曾出现。
POST请求在HTTP头中的"From"字段中传递了受感染主机的唯一标识符,该字段同时也作为数据加解密使用的AES密钥,POST请求体中传递的数据则是AES加密后数据的Base64形式。
DNS 隧道则使用二级子域名作为AES密钥,使用三级子域名传递数据。如P9rktzsuki5rvadzwsr-a6uvykeqj-azhvlzufgs1tdq-.fn26.tacse nt[.]Com,其中传递的数据是AES加密后进行base64编码的结果,由于base64中存在域名中不允许使用的字符,所以传递前需要首先对相应字符进行替换:=替换为-,/替换为_,+替换为-a。
命令结构 | 响应结构 | 描述 |
0, | 待机 | |
1,<task number>,<base64 encoded command to execute> | 2,<16-char system identifier>,<task number>,<base64 encoded results>,<offset in data>,<total data length> | 使用"cmd.exe/c"执行命令 |
2,<task number>,<cleartext filename> | 3,<16-char system identifier>,<task number>,<base64 encoded file contents>,<offset in data>,<total data length> | 从受害主机上传指定的文件 |
3,<task number>,<filename>,<file size> | 4,<16-char system identifier>,<task number>,<offset in data>,<random number> | 将文件从 C2下载到名为%TEMP%tmp<随机数>的临时文件。 |
5,<task number> | 6,<16-char system identifier>,<task number>,<base64 encoded screenshot>,<unk, size?> | 截屏保存为jpeg格式,并编码为base64 |
6,<task number> | 7,<16-char system identifier>,<task number>,”<EOF>” | 终止所有的RDAT 进程 |
7,<task number> | 7,<16-char system identifier>,<task number>,”<EOF>” | 终止所有的RDAT 进程,并删除所有遗留的文件 |
OilRig 组织至少已经使用了三年的RDAT后门对中东的一些国家进行攻击,最近的已知活动是发生在 2020 年 4 月的一起针对一家电信组织的定向攻击。在三年中该工具不断更新迭代,功能不断完善隐蔽性越来越强。其中大多数的样本都使用了 HTTP 和 DNS 隧道作为C2通道,但最近Unit42的研究人员发现他们开始使用Exchange服务发送和接收电子邮件进行C2通信,同时使用图像附件隐写要传递的数据。这种新型C2通道与隐写术相结合的运用,显示了OilRig灵活的攻击策略和高超的技术手段。
4ea6da6b35c4cdc6043c3b93bd6b61ea225fd5e1ec072330cb746104d0b0a4ec – RDAT backdoor
e53cc5e62ba15e43877ca2fc1bee16061b4468545d5cc1515cb38000e22dd060 – Custom Mimikatz
476b40796be68a5ee349677274e438aeda3817f99ba9832172d81a2c64b0d4ae – Bitvise client
78584dadde1489a5dca0e307318b3d2d49e39eb3987de52e288f9882527078d5 – PowerShell downloader
7395a3ada245df6c8ff1d66fcb54b96ae12961d5fd9b6a57c43a3e7ab83f3cc2
8f943bc5b20517fea08b2d0acc9afe8990703e9d4f7015b98489703ca51da7eb
8120849fbe85179a16882dd1a12a09fdd3ff97e30c3dfe52b43dd2ba7ed33c2a
bcdb63b3520e34992f292bf9a38498f49a9ca045b7b40caab5302c76ca10f035
f42c2b40574dc837b33c1012f7b6f41fcccc5ebf740a2b0af64e2c530418e9e0
fcabb86331cd5e2fa9edb53c4282dfcb16cc3d2cae85aabf1ee3c0c0007e508c
7b5042d3f0e9f077ef2b1a55b5fffab9f07cc856622bf79d56fc752e4dc04b28
ee32bde60d1175709fde6869daf9c63cd3227155e37f06d45a27a2f45818a3dc
de3f1cc2d4aac54fbdebd5bd05c9df59b938eb79bda427ae26dedef4309c55a9
4ea6da6b35c4cdc6043c3b93bd6b61ea225fd5e1ec072330cb746104d0b0a4ec
acb50b02ab0ca846025e7ad6c795a80dc6f61c4426704d0f1dd7e195143f5323
55282007716b2b987a84a790eb1c9867e23ed8b5b89ef1a836cbedaf32982358
ba380e589261781898b1a54c2889f3360db09c61b9155607d7b4d11fcd85bd9d
6322cacf839b9c863f09c8ad9fd0e091501c9ba354730ab4809bb4c076610006
3. RDAT C2服务器域名
rdmsi[.]com
rsshay[.]com
sharjatv[.]com
wwmal[.]com
allsecpackupdater[.]com
tacsent[.]com
acrlee[.]com
kopilkaorukov[.]com
4. 相关基础设施域名
本文为CNTIC编译,不代表本公众号观点,转载请保留出处与链接。
联系信息进入公众号后点击“论坛信息”可见。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...