APT组织OrlRig使用BONDUPDATER变种攻击中东政府

(手动微笑)

640?wx_fmt=png

组织名:APT34,OilRig

攻击时间:2018.8.26

攻击事件:鱼叉攻击

投放邮件内容如下

邮件标题:Government Projects

APT组织OrlRig使用BONDUPDATER变种攻击中东政府_第1张图片

附件名:N56.15.doc

该样本于8月27日在twiiter上公布 (52b6e1ef0d079f4c2572705156365c06)

APT组织OrlRig使用BONDUPDATER变种攻击中东政府_第2张图片

打开后文档内容如下

【总理办公室殿下的兄弟姊妹/工作人员

上帝的平安,怜悯和祝福,,,】

APT组织OrlRig使用BONDUPDATER变种攻击中东政府_第3张图片

该宏受密码保护,宏代码结构大致如下

APT组织OrlRig使用BONDUPDATER变种攻击中东政府_第4张图片

        运行后会在以下目录创建两个文件

C:\ProgramData\WindowsAppPool\AppPool.vbs

(88a3636fbae365ac19d7fb68c2cc2fef)

vbs是用于创建计划任务运行自身并启动下面powershell脚本

C:\ProgramData\WindowsAppPool\AppPool.ps1

(8c4fa86dcc2fd00933b70cbf239f0636)

这个powershell脚本就是BONDUPDATER 2.0

640?wx_fmt=png

BONDUPDATER 2.0

该版本仍然使用DNS隧道进行数据传输,遇上一个版本

(https://www.fireeye.com/blog/threat-research/2017/12/targeted-attack-in-middle-east-by-apt34.html)不同的是,这个版本多了一个新的lock文件,它在以下位置创建一个lock文件,并将当前的PowerShell进程标识符(PID)写入此文件

C:\ProgramData\WindowsAppPool\lock

其主要用于只运行一个木马实例并进行进程运行时间的计算与判断

APT组织OrlRig使用BONDUPDATER变种攻击中东政府_第5张图片

若超过10分钟,则删除lock文件

紧接着,其会创建quid文件用于存储系统的唯一标识符,该标识符是通过获取10到99之间的随机数并附加生成的GUID的前8个字符生成的。

640?wx_fmt=png

下面为样本会创建的文件和文件夹

C:\ProgramData\WindowsAppPool\files

C:\ProgramData\WindowsAppPool\\receivebox

C:\ProgramData\WindowsAppPool\\sendbox

C:\ProgramData\WindowsAppPool\\done

该变种保留其原始命令处理与C2 【withyourface.com】通信功能

APT组织OrlRig使用BONDUPDATER变种攻击中东政府_第6张图片

尾随字符/命令 目的 描述
0 执行命令 读取文件的内容并将其作为带有“cmd.exe”的命令运行。该命令的输出保存到名称以“proc”开头的文件中,并存储在“sendbox”文件夹中,木马将发送给C2服务器。
1 下载文件 读取文件的内容以获取要下载的文件的路径。将指定的文件复制到“sendbox”文件夹中的文件,以便木马发送到C2服务器。
任何其他字符 上传文件 用于在系统上存储文件。该文件将移至“done”文件夹,该文件夹存储该文件以供将来使用。木马将“200 <> [存储文件的路径]”写入“sendbox”文件夹中的文件,以通知C2该文件已成功下载。

BONDUPDATER中可用的命令及其用途↑

BONDUPDATER变种有两种不同的DNS隧道协议,一种使用DNS A记录,另一种使用DNS TXT记录。对C2通信使用TXT记录为该家族的新功能。

发送数据格式

<具有部件号和操作字符的GUID> <序列号> <1到7个随机字符之间> C <部件号索引> <操作索引> T. <数据块>.<文件名>.

接收数据格式

<部件号和操作字符的GUID> <序列号> <1到7个随机字符之间> C <部件号索引> <操作索引> T.

Action Type A/TXT Communications Description
M A/TXT Initial beacon
0 A Provide filename
1 A Provide data
W TXT Provide filename
D TXT Provide data
P TXT TXT method failed, notify C2 to switch to A records

DNS隧道协议中使用的操作类型及其用途↑

下图可以对照上图来看

APT组织OrlRig使用BONDUPDATER变种攻击中东政府_第7张图片

A记录

木马处理C2响应中的A记录以获取文件名,该文件名专门在A记录中查找IPv4地址。前两个八位字节中的“24.125”。木马将此A记录的剩余两个八位字节附加到字符串“rcvd”,并将其用作文件名以将未来数据保存到“receivebox”文件夹中。此IP地址还指示木马将以下DNS A记录视为数据。以下DNS A记录在“.”上分开,前三个八位字节中的每一个都被视为数据,而第四个八位字节用作计数器以获取正确的数据块。最后,木马查找A记录“1.2.3”作为将提供的数据写入指定文件中。

下表表示 BONDUPDATER中原始数据传输过程中的IP地址及其含义

IP Address 描述
24.125.\d.\d 在“receivebox”中设置文件名“rcvd \ d \ d”以存储要处理的数据
\d.\d.\d.\d 前三个\ d被视为数据,第四个用于获取正确数据块的位置
1.2.3.\d 命令木马将数据写入文件并开始处理命令

TXT记录

C2可以通过使用DNS A记录“99.250.250.199”响应初始beacon来启动新的命令处理功能。该脚本将进入一个循环,尝试每50毫秒与其C2通信,寻找一系列具有特定字符的响应,脚本将使用这些响应作为指令来确定如何处理TXT记录的结果,如下所示,木马将每个TXT记录从字符“>”上的C2响应中分离出来,“>”字符左侧的数据用作指令,右侧数据用作数据。

指令 描述
N 空闲状态,将下一个查询的操作类型设置为“W”
S 从C2接收数据。将数据部分解码为base64。将C2的未来查询的操作类型设置为“D”。
S000s 使用数据作为文件名的一部分来保存数据。数据将附加到字符串“rcvd”,该字符串将保存在“receivebox”文件夹中。将C2的未来查询的操作类型设置为“D”。
E 将“S”命令提供的字节写入由“S000s”命令产生的文件。打破脚本处理下载文件的循环。
C 通过退出循环取消通信。

BONDUPDATER中新数据传输过程中的说明及其含义  

相关链接:https://researchcenter.paloaltonetworks.com/2018/09/unit42-oilrig-uses-updated-bondupdater-target-middle-eastern-government/

你可能感兴趣的:(APT组织OrlRig使用BONDUPDATER变种攻击中东政府)