路透社最近报道有黑客组织对全球的多个目标发起了网络攻击活动。微软研究人员也追踪到了同样的攻击活动,本文介绍该攻击活动的相关细节。

研究人员发现攻击活动主要攻击公共机构和非政府组织,比如智库、研究中心和教育机构,以及石油、天然气、化工以及医疗行业的私营企业。

第三方安全研究人员分析称该攻击是APT 29(CozyBear)组织发起的攻击活动,微软称APT 29为YTTRIUM。截止目前,微软研究人员称还没有足够的证据表明该攻击活动来源于APT 29。

攻击概览

攻击活动是2018年11月14日早晨开始的。攻击目标主要是参与政策制定或在该区域有政治影响的机构。

钓鱼攻击在不同行业的分布

虽然目标分布在全球的不同行业,但主要分布在美国、尤其是华盛顿周边,其次是欧洲、香港、印度和加拿大。

钓鱼攻击活动地理分布

鱼叉式钓鱼邮件模仿通过OneDrive分享的通知,伪装成美国国务院的工作人员。如果接收者点击了鱼叉式钓鱼攻击邮件中的链接,就开始了攻击的漏洞利用链,最终会导致植入DLL后门,使攻击者可以远程访问接收者的机器。

攻击链

攻击活动分析

传播

攻击中使用的鱼叉式钓鱼攻击邮件模仿通过OneDrive分享的文件共享通知。

邮件中含有一个合法但是被黑的第三方链接:

hxxps://www.jmj.com/personal/nauerthn_state_gov/TUJE7QJl[random string]

攻击者使用了随机字符串来识别点击了链接的不同目标。但所有该链接的变种都会将用户重定向到相同的链接:

hxxps://www.jmj.com/personal/nauerthn_state_gov/VFVKRTdRSm

当用户点击链接后,就会被提供一个含有恶意LNK文件的ZIP文件。攻击中所有文件的文件名都是相同的,比如ds7002.pdf, ds7002.zip, ds7002.lnk

安装

LNK文件表示攻击的第一阶段。它会执行一个混淆的powershell命令,该命令会从LNK文件的offset0x5e2be扩展16632字节的位置提取出base64编码的payload。

LNK文件中编码的内容

编码的payload是一个严重混淆的PowerShell脚本,会被解码和执行:

解码的第二个脚本

第二个脚本会从.LNK文件中提取出两个额外的文件:

C2

PowerShell脚本会在路径%AppData%\Local\cyzfc.dat下创建一个第一阶段DLL文件cyzfc.dat。这是导出函数PointFunctionCall的64位DLL。

然后PowerShell脚本会通过调用rundll32.exe来执行cyzfc.dat。在连接第一阶段C2服务器pandorasong[.]com (95.216.59.92)后,cyzfc.dat开始通过以下步骤来安装final payload:

  1. 为第二阶段payload分配ReadWrite页;
  2. 提取第二阶段payload作为资源
  3. 将header融入到第一阶段payload的0xEF字节
  4. 将header加到资源从字节0x12A开始的位置中;
  5. 用滚动XOR(ROR1)方法从key 0xC5开始解密第二阶段payload。

第二阶段payload是Cobalt Strike的一个实例,Cobalt Strike是一个商业渗透测试工具,会执行以下步骤:

  1. \\.\pipe\MSSE-<number>-server格式定义一个本地命名的pipe,其中<number>09897之间的随机数字;
  2. 连接到pipe,写入全局数据size0x3FE00
  3. 通过命名的pipe实现后门:
    • 从pipe(最大0x3FE00字节)到分配的缓存中读取内容;
    • XOR解码payload到新的RW内存区域,这次使用的XOR key为:用0x7CC2885F每4个字节进行简单XOR
    • 将该区域变成RX
    • 创建一个线程运行payload。

将全局数据写入pipe实际上是写的是一个第三方payload。Payload也是用相同的XOR算法加密的,解密后,与Meterpreter header组成了一个PE文件,可以翻译PE header中的指令,并将控制转移到反射加载器上:

第三个payload最后会加载并连接到C2服务器地址,其中C2服务器地址是融入到PE文件的配置信息中的。配置信息在第3个payload运行时会XOR解密:

配置信息本身含有C2信息:

CobaltStrike是一个功能丰富的渗透测试工具,提供给远程攻击者广泛的功能,包括提权、获取用户输入、通过PowerShell或WMI执行任意命令、执行侦察、通过不同协议与C2服务器通信、下载和安装恶意软件等。

Indicators of attack
Files (SHA-1)

•   ds7002.ZIP: cd92f19d3ad4ec50f6d19652af010fe07dca55e1
•   ds7002.LNK: e431261c63f94a174a1308defccc674dabbe3609
•   ds7002.PDF (decoy PDF): 8e928c550e5d44fb31ef8b6f3df2e914acd66873
•   cyzfc.dat (first-stage): 9858d5cb2a6614be3c48e33911bf9f7978b441bf

URLs

•   hxxps://www.jmj[.]com/personal/nauerthn_state_gov/VFVKRTdRSm

C&C servers

•   pandorasong[.]com (95.216.59.92) (first-stage C&C server)

安全团队可以查找网络中相关的活动来确定是否被攻击和入侵:

//Query 1: Events involving the DLL container
let fileHash = "9858d5cb2a6614be3c48e33911bf9f7978b441bf";
find in (FileCreationEvents, ProcessCreationEvents, MiscEvents, 
RegistryEvents, NetworkCommunicationEvents, ImageLoadEvents)
where SHA1 == fileHash or InitiatingProcessSHA1 == fileHash
| where EventTime > ago(10d)

//Query 2: C&C connection
NetworkCommunicationEvents 
| where EventTime > ago(10d) 
| where RemoteUrl == "pandorasong.com" 

//Query 3: Malicious PowerShell
ProcessCreationEvents 
| where EventTime > ago(10d) 
| where ProcessCommandLine contains 
"-noni -ep bypass $zk=' JHB0Z3Q9MHgwMDA1ZTJiZTskdmNxPTB4MDAwNjIzYjY7JHRiPSJkczcwMDIubG5rIjtpZiAoLW5vdChUZXN0LVBhdGggJHRiKSl7JG9lPUdldC1DaGlsZEl0" 

//Query 4: Malicious domain in default browser commandline
ProcessCreationEvents 
| where EventTime > ago(10d) 
| where ProcessCommandLine contains 
"https://www.jmj.com/personal/nauerthn_state_gov" 

//Query 5: Events involving the ZIP
let fileHash = "cd92f19d3ad4ec50f6d19652af010fe07dca55e1";
find in (FileCreationEvents, ProcessCreationEvents, MiscEvents, 
RegistryEvents, NetworkCommunicationEvents, ImageLoadEvents)
where SHA1 == fileHash or InitiatingProcessSHA1 == fileHash
| where EventTime > ago(10d)

https://cloudblogs.microsoft.com/microsoftsecure/2018/12/03/analysis-of-cyberattack-on-u-s-think-tanks-non-profits-public-sector-by-unidentified-attackers/

源链接

Hacking more

...