2018年11月,Chafer威胁小组针对土耳其政府重新利用他们在2018年早些时候使用的基础设施(Clearsky报道的活动中),特别是域名win10-update [.] com。虽然我们没有见到此攻击的初始交付机制,但我们确实在185.177.59 [.] 70上观察到托管的辅助有效载荷,此IP是该域名在攻击活动时解析的地址。
Unit 42从2016年开始观察到Chafer活动,但Chafer自2015年以来一直活跃。这个新的辅助有效载荷是基于Python的,并使用PyInstaller编译成可执行文件。这是Unit 42识别这些运营者使用的第一个基于Python的有效载荷。我们还发现其代码与OilRig的Clayside VBScript重叠,但此次将Chafer和OilRig作为单独的威胁组织进行跟踪。我们已将此有效载荷命名为MechaFlounder以便跟踪,并在下面详细讨论。
一、针对土耳其政府
我们识别此次Chafer活动基于从IP地址185.177.59 [.] 70下载的恶意可执行文件。目前尚不清楚攻击者如何定位受害者并导致他们下载此文件。
名为“lsass.exe”的文件是通过HTTP请求从win10-update [.] com下载的。 win10-update [.] com域名已在开源中被标注为与Chafer威胁组织相关联的指示符。从此域名下载的lsass.exe文件是以前未报告的基于python的有效载荷,我们命名为MechaFlounder并持续追踪。我们认为Chafer使用MechaFlounder作为辅助有效载荷,并使用第一阶段有效载荷下载,以便在受感染的主机上执行其后续活动。根据我们的遥测技术,在此活动中没有观察到第一阶段的有效载荷。
2018年2月,IP地址134.119.217 [.] 87解析为win10-update [.] com以及可能与Chafer活动相关的其他几个域名。有趣的是,域名turkiyeburslari [.] tk,它镜像了合法的土耳其奖学金政府领域turkieyburslari [.] gov [.] tk,也解析到这个IP。与此IP地址关联的域名包含在附录中,如下面的图1所示。
图1. 与134.119.217[.]87相关联的基础设施
二、MechaFlounder载荷
基于python的有效载荷“lsass.exe”通过HTTP请求从命令和控制(C2)服务器获取到以下URL:
win10-update[.]com/update.php?req=<redacted>&m=d
我们跟踪的这个MechaFlounder有效载荷(SHA256:0282b7705f13f9d9811b722f8d7ef8fef907bee2ef00bf8ec89df5e7d96d81ff)是用Python开发的,并使用PyInstaller工具捆绑为可移植的可执行文件。此辅助有效载荷充当后门,允许操作人员上传和下载文件,以及在受感染系统上运行其他命令和应用程序。
MechaFlounder首先进入一个循环,不断尝试与其C2服务器通信。特洛伊木马使用HTTP将出站信标发送到其C2服务器,该信标包含用户的帐户名和主机名。如图2所示,代码通过将用户名和主机名以及两个字符串之间的两个短划线“ – ”连接来构建URL。然后,代码两次使用上述新字符串创建URL字符串,并在两者之间使用反斜杠“\”字符,并附加字符串“-sample.html”。
图2. 用于构建异常HTTP请求的特洛伊木马代码
在此分析过程中,图2中的代码为其信标生成了异常HTTP请求,如下面的图3所示。有人可能会注意到图3中的GET请求不是以正斜杠“/”字符开头,而是在URL中包含反斜杠字符“\”。这会导致合法的Web服务器(例如我们的测试环境中使用的nginx)以“400 Bad Request”错误消息进行响应。这可能表明,图2中的代码使用httplib模块中的HTTPConnection类来生成异常HTTP信标,威胁行为者创建了一个自定义服务器来处理此C2通信,而不是依赖于标准Web服务器。
此外,图2显示恶意软件作者使用变量名'cmd'来构建用于HTTP方法和路径的字符串,并在字符串的HTTP方法中检查单词'exit'。我们不确定此检查的目的,因为此字符串中的HTTP方法不会出现“exit”,因此永远不会成立。我们认为这可能源自作者忘记删除的之前版本的脚本。
图3. Trojan在测试环境中发出的HTTP请求示例
如果C2服务器接受图3中的信标,它将响应HTML,其中包含用于解析和执行特洛伊木马的命令。特洛伊木马首先使用下面图4中的代码将响应中的HTML转换为文本。图4中的HTML到文本代码可以在Internet上的多个地方获得,但它可能源于Stack Overflow上的一个题为使用Python从HTML文件中提取文本的讨论,恶意软件作者可能从此处获取该代码。
图4. 可能从Stack Overflow讨论中获得的代码
将HTML转换为文本后,特洛伊木马会忽略响应的前10个字符,并将字符串的其余部分视为命令。C2还可以在此命令字符串中提供子字符串“yes”,指示特洛伊木马将命令解码为base16编码的字符串,并移除“yes”子字符串。特洛伊木马将C2提供的命令置于处理程序中,该处理程序确定特洛伊木马将执行的动作。表1显示了特洛伊木马命令处理程序中可用的命令列表以及相应的行为。命令处理程序中的命令为Chafer提供了与远程系统交互的必要功能。
表1. Trojan的命令处理程序中可用的命令
通过分析MechaFlounder在收到“upload”命令时执行的动作,我们更深入的了解了自定义C2服务器应用程序。要将指定文件从受感染系统上传到C2服务器,特洛伊木马程序需要使用mechanize模块中的Browser类将文件提交到C2服务器上的HTML表单。这表明除了能够处理前面提到的异常HTTP GET请求之外,自定义C2服务器应用程序还必须能够:
1. 提供包含表单的HTML以接收上传的文件
2. 处理由机械化模块生成的合法HTTP POST请求
3. 保存使用HTTP POST请求上传的文件
执行命令后,特洛伊木马使用'base64.b16encode'方法对命令的结果或输出消息进行编码。除了'empty'和'terminate'之外,每个命令都有一个输出消息,用于表示命令执行成功和失败。下面的表2显示了与每个命令关联的成功和失败消息。
表2.与命令关联的成功和失败消息
与使用异常HTTP GET请求的初始信标不同,特洛伊木马会使用与初始HTTP信标相同的套接字将编码结果发送到C2服务器。使用相同的套接字和异常的HTTP信标进一步表明威胁行为者可能创建了一个自定义C2服务器来处理这种网络流量。
为了显示这些网络通信,我们修补了特洛伊木马,使之可以发出使用我们测试环境中的HTTP服务器(nginx)支持的合法HTTP GET请求的信标。修补程序涉及更改HTTP请求中的路径,特别是将路径设置为以正斜杠“/”开头,并在URL路径本身中使用正斜杠“/”而不是反向“\”。在测试环境中,我们将字符串“0123456789runtime 5”添加到'rob-rob-virtual-machine'文件夹中的'rob-rob-virtual-machine-service.html'文件中。
当特洛伊木马发出信标时,HTTP服务器会响应“rob-rob-virtual-machine-service.html”文件的内容,该文件有效的向特洛伊木马发出命令。特洛伊木马响应命令'runtime 5',并在base16中编码消息“5 || rob-rob-virtual-machine ** runtime changed to runtime 5”。然后将此发送到C2服务器,而不使用与初始HTTP请求相同的套接字的任何HTTP头。
图5中的TCP会话,显示了从修补的特洛伊木马发送的初始信标,HTTP服务器响应命令,以及特洛伊木马在同一TCP会话中再次响应。
图5.特洛伊木马使用单个TCP会话接收命令并将命令结果发送到C2
三、补充…
在MechaFlounder有效载荷的初始下载URL中看到的“&m = d”参数,出现在与Chafer和OilRig威胁组织相关的许多URL中。在与Oilrig和Chafer相关联的VBScript下载器有效载荷中已经看到此参数。我们还看到Chafer的AutoIT有效载荷生成的URL中使用的此参数。VBScript和AutoIT有效载荷也共享公共变量名和相同的整体功能,这表明在两个威胁组织之间可能存在一些代码共享。下面图6中的彩色框显示了他们之间重叠的代码,左侧为OilRig的VBScript (SHA256: 1b2fee00d28782076178a63e669d2306c37ba0c417708d4dc1f751765c3f94e1) ,右侧为Chafer AutoIT 脚本 (SHA256: 332fab21cb0f2f50774fccf94fc7ae905a21b37fe66010dcef6b71c140bb7fa1)。
不幸的是,我们无法确定OilRig和Chafer之间代码共享的细节。目前,我们无法根据这些代码重叠将两个威胁组织合并在一起。
图6. Oilrig Clayside VBS | Chafer AutoIT
四、总结
自2015年以来,Chafer威胁组织一直很活跃,专注于中东地区的私人和公共部门。Unit 42特别注意到,至少从2016年开始,土耳其政府便成为其目标;然而,这是Unit 42观察到Chafer使用基于Python的有效载荷的第一个实例。这个有效载荷,现在被称为MechaFlounder,是由Chafer使用攻击者自己开发的代码以及在开发社区免费在线提供的代码片段的组合创建而成。MechaFlounder特洛伊木马程序包含足够的功能,供Chafer执行完成目标所需的必要行为,特别是支持文件上传下载以及执行命令功能。
Oilrig的Clayside VBScript和Chafer的AutoIT有效载荷的重叠并不令人惊讶。在很长一段时间内,Oilrig和Chafer在操作上看起来非常相似,并且有可能访问相同的代码或资源以进行有效载荷开发。Unit 42参考了两个威胁组织活动中的各种重叠,并继续分别跟踪。
Palo Alto Networks的客户可通过以下方式抵御此威胁:
· WildFire通过恶意判决检测MechaFlounder
· 命令和控制服务器的域名被标记为恶意
Palo Alto Networks与我们的网络威胁联盟成员分享了我们的调查结果,包括文件样本和IoC指标。CTA成员利用这些情报可以快速部署对客户的保护,并系统地干扰恶意网络参与者。有关网络威胁联盟的更多信息,请访问cyberthreatalliance.org。
附录
MechaFlounder样本
lsass.exe
0282b7705f13f9d9811b722f8d7ef8fef907bee2ef00bf8ec89df5e7d96d81ff
报告中涉及的基础设施
· win10-update[.]com
· 185.177.59[.]70
· 134.119.217[.]87
· win7-update[.]com
· turkiyeburslari[.]tk
· xn--mgbfv9eh74d.com (تلگرام[.]com)
· ytb[.]services
· eseses[.]tk
本文翻译自:https://unit42.paloaltonetworks.com/new-python-based-payload-mechaflounder-used-by-chafer/
翻译作者:TRex 原文地址:https://www.4hou.com/web/16725.html