导语:FireEye今年一直在跟踪一项针对涉及Click2Gov本地部署的Web支付门户网站的攻击活动。通过取证分析了受攻击系统并恢复了与此行动相关的恶意软件,从而深入了解了这一新攻击者的能力。
FireEye今年一直在跟踪一项针对涉及Click2Gov本地部署的Web支付门户网站的攻击活动。 Click2Gov是Superion开发的基于Web、互动的自助式账单支付软件解决方案。它包括各种模块,允许用户支付与各种当地政府服务相关的账单,如公用事业,建筑许可和营业执照。2017年10月,Superion发布声明,确认可疑行动影响了少数客户。在2018年6月中旬,多个媒体报道涉及到至少七个可能受此行动影响的Click2Gov客户。自2018年6月以来,通过公开报道中确认了其他受害者。对这些机构的审查证实了与Click2Gov被感染相关。
在2018年6月15日,Superion发布了一份声明,描述了他们向受影响客户推送的主动通知,与第三方取证公司(非Mandiant)合作,以及为Click2Gov软件和相关第三方组件部署补丁。 Superion随后得出结论,没有证据表明使用Click2Gov在托管或安全的内部网络上使用推荐的补丁和配置进行付款是不安全的。
Mandiant取证分析了受攻击系统并恢复了与此行动相关的恶意软件,从而深入了解了这一新攻击者的能力。截至本文发布之前,根据VirusTotal的确反馈,所讨论的恶意软件家族的防病毒解决方案检测率非常低。
一、攻击简述
该行动的第一阶段通常始于攻击者上传SJavaWebManage webshell以便在与受感染的Click2Gov网络服务器的交互。通过与webshell的交互,攻击者在Click2Gov配置文件中启用了调试模式,导致应用程序将支付卡信息写入纯文本日志文件。然后,攻击者将一个FireEye称为FIREALARM的工具上传到Web服务器,解析这些日志文件,获取支付卡信息,并删除所有不包含错误消息的日志条目。此外,攻击者使用另一个工具SPOTLIGHT拦截来自HTTP的支付卡信息。本博文的其余部分将详细介绍攻击者的策略,技术和程序(TTP)。
二、SJavaWebManage Webshell
目前尚不清楚攻击者是如何攻破Click2Gov网络服务器的,但他们可能采用针对Oracle Web Logic的攻击,如CVE-2017-3248,CVE-2017-3506或CVE-2017-10271,这些漏洞利用能提供上传任意文件或实现远程访问的功能。成功利用此漏洞后,攻击者上传了一个公开可用的JavaServer Pages(JSP)webshell SJavaWebManage的变体,用来维护Web服务器上的持久性。SJavaWebManage需要身份验证才能访问四个特定页面,如图1所示,并将在Tomcat服务的上下文中执行命令,默认情况下为本地系统帐户。
图1: SJavaWebManage 界面
· EnvsInfo:显示有关Java,Tomcat版本以及与环境有关的其他信息。
· FileManager:提供浏览,上传,下载(原始或压缩),编辑,删除和无痕访问文件的功能。
· CMDS:使用cmd.exe执行命令(如果在非Windows系统上,则执行 /bin/sh)并返回响应。
· DBManage:通过连接、显示数据库元数据和执行SQL命令来与数据库进行交互。
公开可用的webshell和此变体之间的差异包括更改已被检测到的变量名,中文字符更改成英语,删除了对SjavaWebManage的引用,移除用于处理webshell更新的代码。此外,在行动调查期间识别的变体具备在服务器上操纵文件时间戳的能力,公共版本中不存在此功能。SJavaWebManage webshell为攻击者提供了友好的界面,可以轻松地与受感染的主机进行交互和操作。
然后,在编辑Click2Gov XML配置文件后,攻击者将使用SJavaWebManage CMDS页面以DEBUG模式重新启动模块。启用DEBUG日志记录选项后,Click2Gov模块会使用约定命名Click2GovCX.logYYYY-MM-DD将明文支付卡数据记录到Click2Gov日志文件中。
三、FIREALARM
使用webshell中的交互式命令,攻击者上传并执行数据挖掘程序FIREALARM(FireEye命名),它通过解析Click2Gov日志文件获取支付卡数据,将数据格式化并打印到控制台。
FIREALARM是一个用C/C ++编写的命令行工具,它接受三个数字作为参数;年,月和日,例如在命令行中表示为:evil.exe 2018 09 01。在此示例中,FIREALARM将尝试打开并解析从2018-09-01开始直到当天的日志。如果日志文件存在,FIREALARM会复制MAC(修改,访问,创建),随后将相应的文件恢复为原始时间。然后逐行读取每个日志文件并进行解析。FIREALARM在每一行中搜索以下内容并解析数据:
· medium.accountNumber
· medium.cvv2
· medium.expirationDate.year
· medium.expirationDate.month
· medium.firstName
· medium.lastName
· medium.middleInitial
· medium.contact.address1
· medium.contact.address2
· medium.contact.city
· medium.contact.state
· medium.contact.zip.code
此数据被格式化并打印到控制台。恶意软件还会搜索包含文本ERROR的行。如果找到此字符串,该程序会将内容存储在名为%WINDIR%\temp\THN1080.tmp的临时文件中。搜索完Click2GovCX日志文件的每一行后,复制临时文件THN1080.tmp替换相应的Click2GovCX日志文件,并将时间戳替换为原始的时间戳。结果是FIREALARM将支付卡信息打印到控制台并从每个Click2GovCX日志文件中删除支付卡数据,只留下错误消息。最后,删除THN1080.tmp临时文件。该过程如图2所示。
图2: FIREALARM 工作流程
1. Attacker遍历Tor或其他代理并对SjavaWebManage进行身份验证。
2. Attacker通过webshell启动cmd。
3. Attacker使用参数运行FIREALARM。
4. FIREALARM验证并检索日志文件,复制MAC时间,解析并将支付卡数据打印到控制台,将错误消息复制到THN1080.tmp,覆盖原始日志文件并修改时间戳。
5. 删除THN1080.tmp。
四、SPOTLIGHT
之后,在攻击者访问受感染系统期间,攻击者使用webshell上传网络嗅探器SPOTLIGHT(FireEye命名)。此工具为攻击者提供了更好的持久性和持续收集支付卡数据的能力,确保管理员删除Click2GovCX日志文件时也不会丢失已挖掘的数据。SPOTLIGHT也是用C / C ++编写的,可以通过命令行参数安装或作为服务运行。作为服务运行时,其任务包括确保两个JSP文件存在,以及监视和记录特定HTTP POST请求内容的网络流量。
SPOTLIGHT接受两个命令行参数:
· gplcsvc.exe-i 创建名为gplcsvc的新服务,显示名称为Group Policy Service
· gplcsvc.exe-u停止并删除名为gplcsvc的服务
安装后,SPOTLIGHT将每隔一小时监控受感染主机上的两个路径:
1. C:\bea\c2gdomain\applications\Click2GovCX\scripts\validator.jsp
2. C:\bea\c2gdomain\applications\ePortalLocalService\axis2-web\RightFrame.jsp
如果任一文件不存在,恶意软件使用Base64对嵌入的SJavaWebManage webshell进行解码,并将同一文件写入任一路径。这与攻击者在初始攻击期间安装的Webhell相同。
此外,SPOTLIGHT启动套接字监听器,检查端口80和7101上的IPv4 TCP流量。根据Superion安装核对表,TCP端口7101用于从内部网络到Click2Gov Web服务器的应用程序解析。只要连接内容不以GET /开头,恶意软件就开始保存接收到的数据包。恶意软件持续将数据包内容保存到内部缓冲区,直到出现以下两种情况之一:缓冲区超过102399或数据包内容以字符串POST / OnePoint / services / OnePointService开头。如果出现这两种情况之一,则在内部缓冲区数据中搜索以下标签:
· <op:AccountNum>
· <op:CSC>
· <op:ExpDate>
· <op:FirstName>
· <op:LastName>
· <op:MInitial>
· <op:Street1>
· <op:Street2>
· <op:City>
· <op:State>
· <op:PostalCode>
标签之间的内容被提取并格式化,使用`|`作分隔符。然后对格式化的数据进行Base64编码并将其附加到硬编码文件路径的日志文件中:c:\windows\temp\opt.log。然后,攻击者使用SJavaWebManage来传输包含支付卡数据的Base64编码的日志文件。FireEye未发现对受感染主机的SSL配置的任何操纵或者将SSL流量重定向到未加密的端口。该过程如图3所示。
图 3: SPOTLIGHT 工作流程
1. SPOTLIGHT每小时验证webshell文件,如果缺少则写入SJavaWebManage。
2. SPOTLIGHT检查端口80或7101上的IPv4 TCP流量,从而保存接收到的数据包。
3. 用户访问Click2Gov模块进行付款。
4. SPOTLIGHT解析包含支付卡数据的数据包,Base64编码并写入opt.log。
5. Attacker遍历Tor或其他代理并对SJavaWebManage进行身份验证并启动文件管理器。
6. 攻击者传输opt.log文件。
五、溯源
根据掌握的信息,攻击者不会与FireEye当前跟踪的任何具有财务动机的威胁组织保持一致。攻击者对Click2Gov主机要求,日志处理详细信息,支付卡字段和内部通信协议的理解证明了他们对Click2Gov应用程序有着深入研究。鉴于地下论坛和市场的运作方式,工具开发可能已经与第三方签订合同,并且获取可远程访问受感染系统的实体可能将其出售给另一个实体。关于这个攻击者还有很多东西需要研究。
当然攻击也可能由一个人进行,但FireEye确信参与此行动的基础必须具备以下必要技能:
· 能够找到Click2Gov并识别可利用的漏洞。
· 能够制作或重用漏洞利用以渗透目标组织的网络环境。
· 基本的JSP编程技巧。
· 先进的Click2Gov支付流程和软件知识,足以开发中等复杂的恶意软件。
· 熟练的C / C ++编程技巧。
· 运营安全的意识。
· 能够将被盗的支付卡信息货币化。
六、总结
除了规范的补丁管理程序之外,FireEye还建议机构考虑实施文件完整性监控解决方案,监控在电子商务Web服务器上生成动态内容的静态内容和代码,阻止意外修改。另一个最佳做法是确保任何Web服务帐户运行特权最小化。
虽然在攻击生命周期中观察到的TTP与FireEye跟踪的其他经济动机攻击组织一致,但是这个攻击者在制作利用Click2Gov方面表现出了独创性,取得了一定的成功。尽管可能以新的形式发生,但FireEye预计这个威胁行为者将继续进行互动和经济动机的攻击。
IoC(MD5)
SJavaWebManage
· 91eaca79943c972cb2ca7ee0e462922c
· 80f8a487314a9573ab7f9cb232ab1642
· cc155b8cd261a6ed33f264e710ce300e (公开版本)
FIREALARM
· e2c2d8bad36ac3e446797c485ce8b394
SPOTLIGHT
· d70068de37d39a7a01699c99cdb7fa2b
· 1300d1f87b73d953e20e25fdf8373c85
· 3bca4c659138e769157f49942824b61f