概述
DeathStalker是一个独特的威胁组织, 专门针对金融机构和律师事务所进行攻击。该组织不受经济利益的驱动,他们不会部署勒索软件,不会窃取付款信息以转售它,或从事通常与网络犯罪黑社会相关的任何类型的活动,他们只对收集敏感的业务信息感兴趣。
从该组织以往的攻击行为来看DeathStalker是一群雇佣据,他们提供黑客服务或者在金融界充当某种信息经纪人的角色。他们通常通过包含恶意LNK文件的附件的钓鱼邮件来进行传播,并控制受害者的设备一切去敏感的商业信息,主要使用恶意程序Janicab对目标进行攻击,
2.攻击链
2. 详细分析
1.SMPT-error.txt.lnk分析
该文件为Janicab变种,该lnk元数据与以前被发现的旧版本Janicab类似,即SID、字体、屏幕缓冲区大小、窗口大小和MAC地址是相似的。MAC地址都为VMWare虚拟机内的地址。在LNK文件中嵌入了多个文件, 这些文件在LNK文件中的位置如下图:
当受害者点击快捷方式时,lnk会将自身拷贝到临时目录,然后通过find找到字符串”#@~^”并将从该字符串到文件末尾的数据保存为文件”.vbe”,该字符串为被加密的vbs脚本的标志。然后使用cscript.exe执行该vbe脚本,并设置第一个参数为该快捷方式文件名,该参数主要用于vbe脚本从lnk文件中解析其他的嵌入文件。
2.stage1 vbe分析
该vbe脚本由LNK文件通过命令行调用,解密后的vbs脚本如下图,主要是解密第二阶段的vbe脚本并保存为文件2.vbe然后执行,同样将lnk文件的路径作为第一个参数。
由于在执行2.vbe时,该脚本会调用cmd或者powershell,最后还会调用函数killRunningCmdInstances结束对应的进程。
提取文件时使用相对于LNK文件的文件偏移和数据大小来从LNK文件中提取数据,这段数据位于LNK文件的文件偏移3643,数据大小为5042。这段vbe脚本被抹去了字符”#@~^”,这样做可以避免某些工具从lnk文件中提取脚本。提取文件具体代码如下:
在脚本中通过WMI查询来获取所有正在运行的进程,并判断要结束的进程是否在这些进程中,如果在则结束进程。
3.stage2 2.vbe分析
与stage1的文件一样,同样为加密后的vbs脚本,该阶段脚本的主要功能为提取嵌入到lnk文件的诱饵文件、cab压缩包和stage3的vbe文件。脚本执行后收件判断第一个参数指向的文件是否存在,如果存在则将其拷贝到临时目录。
在脚本中硬编码了嵌入在LNK文件的各个文件对应的文件偏移和文件大小,通过函数ExtractEmbeddedFile提取并将其保存到临时目录,提取文件与前一阶段类似。
当在xp系统上运行时, 只执行stage3阶段的vbe脚本。
4.stage3 vbe分析
检测安全软件
Vbe脚本运行时首先通过WMI查询来获取当前用户机器安装的所有安全软件。
禁止CCleaner浏览器自动清理
通过删除垃圾清理软件CCleaner的注册表项来禁止该软件清理临时目录的文件,使位于临时目录的恶意程序不会被其删除。
注册表设置
执行脚本ie.vbe监控IE浏览器是否在执行,如果IE浏览器在执行并且使用的命令行参数包含字符”-Embedding”则结束IE进程,每隔5分钟执行一次前述操作。
将要写入到注册表的自启动项写入文件runOnce.reg,然后通过reg.exe导入文件并在导入完成后删除reg文件。
当操作系统为Vista时禁止显示IE浏览器的保护模式的banner。
设置注册表项禁止IE浏览器的扩展功能。
检测虚拟机
检测操作系统是否包含virtualbox、vmware和parallels的驱动文件来判断是否运行在虚拟机中。
判断主板名是否包含指定的关键此来判断是否运行在虚拟机中。
检测网卡的mac地址来判断是否运行在虚拟机中。
检测分析工具
遍历进程判断是否有列表中的进程名在运行中。
删除浏览器cookie
删除火狐浏览器、谷歌浏览器和IE浏览器的cookie数据。
从Youtube视频获取C&C地址
与大部分恶意软件不同,当前版本的Janicab从两个链接的源码中获取C&C地址。从Youtube链接的播放页面中获取网页源码,并使用正则匹配从字符串”we need (.*) views”中获取一个数字然后将其除以1337得到一个整数,再通过一系列运算转换成点分式后拼接成””http://{ip地址}/B2mV-VzVc-81Az-135J。
使用Get请求访问路径”Status2.php”,如果返回的数据为”OKOK”,则表示该服务有效。
将整数转换成IP地址的代码如下:
C&C通信
如果检测到文件再虚拟机中运行则get请求形式并将电脑名、用户名和检测到的数据发送到rit.php。如果返回的数据不为”skip”并且文件xitx不存在则退出进程。
如果keylogger功能启用并且kl文件存在, 则将文件数据base64编码后上传到路径rk.php。
如果文件”~PF214C.tmp”存在则将文件数据base64编码后上传到路径”rs.php”。
发送Get请求从从c.php,并从返回的网页数据中解析cmd命令然后执行。
执行文件kl并调用其导出函数MyDllEntryPoint执行键盘记录器功能,截图功能的实现。
下表为Janicab实现的C&C指令:
PHP路径 | 描述 |
---|---|
Status2.php | 检测服务器状态 |
a.php | 接收信标数据 |
gid.php?action=add | 添加新的受害者数据 |
rit.php | 上传受害者机器上安装的安全软件、是否在虚拟机运行等状态 |
c.php | 接收cmd命令并执行 |
rs.php | 上传屏幕截图数据 |
rk.php | 上传键盘记录数据 |
sm.php | 当受害者机器上存在安全软件时C&C服务器提供的执行方式, 比如设置runOnce注册表 |
d.php | 下载文件并执行 |
IOCS
aacd0752289f3b0c6be3fadba368a9a71e46a228 F1B5675E1A60049C7CD823EBA93FE977
hxxps://youtu.be/aZRJQdwN4-g
hxxps://plus.google.com/108098760042015113400/posts?hl=en
4.ATT&CK矩阵
Tactic | ID | Name | Description |
---|---|---|---|
Command and Control | T1105 | Ingress Tool Transfer | 从C&C下载payload |
T1071 | Application Layer Protocol | 使用http/https协议进行通信 | |
Execution | T1204 | User Execution | 诱导受害者执行 |
T1053 | Scheduled Task/Job | 创建计划任务执行恶意dll | |
T1059 | Command and Scripting Interpreter | 执行cmd或powershell命令 | |
Persistence | T1037 | Boot or Logon Initialization Scripts | 创建自启动注册表项 |
Collection | T1113 | Screen Capture | 收集屏幕截图 |
T1056 | Input Capture | 收集键盘记录 | |
Defense Evasion | T1497 | Virtualization/Sandbox Evasion | 检测是否在虚拟机环境下运行 |
T1070 | Indicator Removal on Host | 删除恶意程序在执行中创建的各种文件 | |
T1036 | Masquerading | 伪装成文件Notepad的快捷方式 | |
T1027 | Obfuscated Files or Information | Vbs脚本加密成vbe | |
Discovery | T1057 | Process Discovery | 判断是否有调试器、文件监控等进程在运行 |
Initial Access | T1566 | Phishing | 通过鱼叉式网络钓鱼投递恶意程序 |
最后更新: 2024年01月10日 20:56:18
本文链接: http://shxi.cc/post/aa71caad.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!