百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

日本发布来自亚洲某国的APT样本分析

toyiye 2024-06-21 12:32 14 浏览 0 评论

翻译:myswsun

稿费:200RMB(不服你也来投稿啊!)

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

0x00 背景


VXRL联系我们,有关于一个APT钓鱼邮件,其包含了一个指向位于Geocities网站上的一个恶意软件的下载链接。

样本和证据。

因为我们认为它是一个APT攻击,所以我们不能披露所有的邮件内容。

在讨论这个恶意软件之后,很多信息不清楚。我检查了特征检测率,结果没有检测到。没有明确的证据,Geocities就不会做任何事,我决定逆向这个APT。

这里是我分析的一些结果,请用它来移除这个恶意软件。

从URL看,这个恶意软件位于Geocities日本网站上,Geocities不是恶意软件或恶意网站,但是一个免费的博客网站。

账户“vbiayay1”被用于托管真实的恶意样本。

恶意软件的文件内容是一个编码的VBScript脚本。

这是一个惊讶的时刻,我第一次从Geocities.jp中看见这种类型,并且这个文件看起来非常可疑,因此我决定进一步分析。

VBScript是VisualBasic的一个子集,对于使用VB编程和VBA宏编程的人来说这个非常熟悉。然而VBScript被设计用于在浏览器内执行,且只能调用基本的函数(如文件访问和打印)。微软VBScript能在Windows Script Hsost或者PowerShell中执行。

0x01 马拉松式的base64逆向分析


首先,我手动解码了VBScript脚本,得到下面的代码:

这段代码通过创建Windows Script Host VBScript对象并运行PowerShell.exe:

1
powershell.exe -w hidden -ep bypass -Enc etc etc.

继续解码,得到下面的脚本。

再一次得到一个VBScript,这个脚本创建一个web客户端对象,且使用代理设置,并从URL下载执行一个文件。

这将打开一个.doc文档。

然后,通过使用Invoke-Expression命令在Windows PowerShell下执行一个脚本,并从另一个URL下载执行一个.ps1文件。

让我们再深入ps1文件。

还是一个base64编码的代码,它使用Invoke-Expression命令来解码。

看起来很像base64编码,因此我们继续手动解码base64.

上面是解码的代码,但是它是另一个base64编码的代码。

然而,他最终揭示了一些感染代码,真实的payload在这个base64代码中。

这段代码揭示了32位和64位的感染向量,它通过一个假的安全更新服务进程隐藏自己,并使用powershell.exe来执行Invoke-Expression解码的base64代码。

好了,再次回到base64解码。

解码得到两个函数和一段shellcode。

上面的代码很容易理解。它解释了powershell怎么被用来作为一个致命的攻击向量,以便进程注入,并且它都在一个脚本中完成。

0x02 拷贝/粘帖 PowerSploit/CodeExecution PoC


上部分看起来很熟悉,在搜索MalwareMustDie的推特后,发现了PowerSploit/CodeExecution PoC代码。

0x03 Shellcode


这个样本主要的payload是PowerSploit/CodeExection的复制粘帖,shellcode和多层base64编码是这个样本的根本。

为了揭示真实的shellcode,我们已经解码了剩余的base64编码。

1
$Shellcode = [System.Convert]::FromBase64String($Shellcode32)

解码完成后,shellcode头分析如下:

我们可以逆向它,然而需要花费一些时间。

结果看起来像我们需要的,XOR,密钥0xe9和字节长度0x2183

我用这个shellcode创建了一个PE文件。

将这段shellcode保存在.text节中,并调整入口点为shellcode,因此你能作为一个二进制PE文件执行shellcode。这个方法在分析shellcode时很常用。并且在Unix环境中创建PE文件,还免除感染的风险。

通过使用gcc或者nasm,编译PE文件。

因此我们现在能进一步分析代码和恶意行为。

事实证明,样本进行了很多恶意行为操作,shellcode提取受害者的信息并传回C&C服务器。

Payload的详细行为完整成文需要花费很多的时间,在这里我贴出了手稿以展示payload的行为。

0x04 Poison Ivy


Shellcode使用很多系统调用,因此shellcode有点大。

下图是我从列出的DLL调用。

在跟踪分析shellcode的第一个阶段我注意到了这是一个“Poison Ivy”:

如你所见,一个假的userinit.exe进程被创建,且在这个进程中注入恶意代码并执行。受害者将看到一个假的userinit.exe进程在做坏事。这是一个典型的Poison Ivy模式。而且,DLL的组合使用也显示了这种威胁的典型模式。在互斥量名字中时间戳也经常被Poison Ivy使用。

让我们破解更多信息:

你能看到这个userinit.exe创建Plug1.cat文件。它通过socket做更多事,且通过HKEY_LOCAL_MACHINE\SYSTEM\Setup SystemSetupInProgress查询PC信息,稍后我们将看到设置的值。

到了这里,毫无疑问这是一个Poison Ivy。

0x05 C&C和网络流量


因为时间限制,让我们忽略一些小细节,主要关注感兴趣的WS2_32.dll。它包含了socket(),gethostbyname(),和connect()调用。这些揭示了主机名和IP地址,及一些次要信息。

IP地址是韩国的拨号IP地址。

网络/BGP信息:61.97.243.15||4766 | 61.97.243.0/24 | KIXS-AS | KR | kisa.or.kr | KRNIC

因此黑客利用另一个国家作为C&C服务器,我们继续看:

主机名:web.outlooksysm.net

下面是域名的WHOIS信息:

因此我们知道了黑客来自哪里。

只分析代码不够证据,我需要一种安全的方式来执行PE文件,以获得更多的行为分析。这样我就能捕获到C&C流量。

在流量中,发送了我的PC信息

第一个传输的是256字节的数据,看起来很有趣。

因此,通过一些参考发现这256字节的传输流量模式属于Poison Ivy远控。

Poison Ivy,也被称为PIVY,是一个RAT,它是一个后门型恶意程序。很多间谍相关的恶意软件在APT中使用它。

0x06 总结


这个APT活动利用很多变种,来使得受害者下载一个恶意的VBScript,其会下载一个二级的.doc文件并打开它。在这之后它静默执行一个PowerSploit攻击以使用在进程内存中运行的Poison Ivy感染受害者电脑。这是个特别的实例,一个修改版的PowerSploit PoC代码被用在APT攻击中,显示了这种攻击的潜在威胁。

这个APT活动利用Geocities网站的多个帐号,使得进行大规模的APT活动成为可能。这种攻击首先在日本发现,且在和我朋友讨论过后,一些研究者把它命名为“Free Hosting(pivoted)APT PowerSploit Poison Ivy”(FHAPPI)。

0x07 样本


我一直都这么做,我将只分享一些样本的哈希值。

一旦我完成了,我将增加一些VT URLs。

0x08 更新


找到其他的Geocities账户

感谢Syota Shinogi的帮助,他进一步研究发现了另一个Geocities账户。

它使用相同的PowerSploit shellcode和蒙古语的doc文件,可能目标是蒙古相关的。

文件名包含APT信息

URL和攻击活动相关的信息:

这表明了攻击日期,目标ID和一些版本信息。

APT恶意文件的删除过程

在雅虎应急响应组织、JP-CERT/CC和日本其他一些安全机构的帮助下文件被成功删除。

下面是删除的文件。

目标蒙古的APT活动

用户gxpoy6包含了以蒙古为目标的APT攻击的数据。从它开始的时间为去年9月看,感染向量是相同的。许多工件和网络特征已经消失了,但是我们能分析下这个并作进一步对比。

第一个安装脚本没有使用base64混淆。

它使用VBScript但是不编码,且直接执行powershell.exe,然而执行进程自己和上面是相同的。

通过powershell.exe执行的编码的命令行有相同的格式。

蒙古语的文档

还是使用PowerSploit注入恶意软件到内存中,没有改变。

Shellcode设计的有点不同

蒙古相关的活动也使用了XOR,但是密钥(“0xd4”)不同,字节长度还是0x2183.

C&C服务器还是在中国,主机名稍后公布。

IP/BGP信息:116.193.154.28 | 116-193-154-28.pacswitch.net. | AS4766 | JIULINGQIHANG-CN | CN (Room 413, No.188, Dong Han Men Nan Lu, CHINA)

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码