“验证器”(Validator)木马分析

 

“验证器” (Validator) 木马是美国国家安全局 NSA (APT-C-40) 所使用的先进轻量级后门木马,其在 NSA 的攻击活动中起到先锋的作用,会被首先植入到目标机器中进行环境探查和信息收集等工作。

近期,兄弟部门对该木马的 12.3.1.0 版本进行了分析,在这篇文章中将对该木马的 8.2.1.1 版本进行详细分析。

 

样本信息:

MD5 55f0afafcbdea70278b22fcb****c94c
SHA1 d1f4f4e1f7d65755ac1cfc3189d38cd7****4102

 

样本概述:

该样本为 “验证器”(Validator)木马的 8.2.1.1 版本,其初次进入主机时是以 ee.dll 作为名称植入,然后以 actxprxy32.dll/actxprxyserv.dll 为名并使用 dll com 劫持实现持久化,最终寄宿在 avp.exe/svchost.exe 进程中进行恶意行为。

 

运行流程:

 

详细分析:

1, 该样本是一个 DLL 文件,原始文件名为 actxprxy32.dll。

文件信息:

2,加载 actxprxy.dll 文件 (被劫持文件) 获取其导出函数用于函数的转发维持正常调用。

3,解密”BINRES”类型的资源 1,该资源长度为 8 字节含有两个功能指令,解密失败则进行卸载操作。

查找资源:

解密方式异或 0x79。

4,进行当前模块名称判断。

4.1>如果当前模块名称是 ee.dll。

首先在 %windir%\system32\ 目录下搜索 actxprxy32.dll 和 actxprxyserv.dll 文件,搜索到则将其删除并将自身复制为被删除的文件,未搜索到则将自身复制为actxprxy32.dll,复制完成后删除自身。

然后将上述复制的文件 actxprxy32.dll/actxprxyserv.dll 根据当前操作系统版本设置 dll com 劫持进行持久化。

操作系统版本 劫持位置
Windows XP Windows Server 2003 Windows Server 2003 R2 劫持 COM 对象注册表键: HKEY_CLASSES_ROOT\CLSID\{B8DA6310-E19B-11D0-933C-00A0C90DCAA9}\InProcServer32 (Default) = %windir%\System32\actxprxy32.dll (Default) = %windir%\System32\actxprxyserv.dll
Windows Vista Windows Server 2008 Windows 7 Windows Server 2008 R2 劫持 COM 对象注册表键: HKEY_CLASSES_ROOT\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}\InProcServer32 (Default) = %windir%\System32\actxprxy32.dll (Default) = %windir%\System32\actxprxyserv.dll

最后创建以下注册表项并设置其访问权限为低。

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{77032DAA-B7F2-101B-A1F0-01C29183BCA1}\

MiscStatus 键用于记录木马运行时的错误信息,初始值为 “0”。

TypeLib 键用于记录 ClientID,初始值为{8C936AF9-243D-11D0-8ED4-00C04A34F692}。

Version 键用于记录木马版本,值为 008.002.001.001。

ClientID 的生成逻辑如下,格式为{8C936AF9-243D-11D0-****-************},初始的ClientID 由配置信息中的 machineid 产生。

设置完成。

在此期间会检查主机上是否存在一些预定的进程、服务以及 dll com 劫持,若检测到则会终止相应的进程和服务,恢复相应的 dll com 劫持,推测目的为清除旧组件。

查找目标进程:计算进程第一个模块名 hash 并与预设 hash 比较。

查找目标服务:枚举以下注册表下的项并计算其名称的 hash 与预设 hash 进行比较。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD

查找目标 dll com 劫持:检测以下注册表下的值是否含有特定字符串。

检查的 dll/com 劫持注册表路径
HKEY_CLASSES_ROOT\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}\InProcServer32 检测其 (Default) 值是否含有 actxprxy32.dll/actxprxyserv.dll。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Winsock 检测其 HelperDllName 值是否含有 wstcpip.dll/hdntcpip.dll。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders 检测其 SecurityProviders 值是否含有 crdssp.dll/sp.dll。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\KnownDLLs 检测其 LINKINFO 值是否含有 LI.DLL/LINK32.DLL。
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{FAEDCF53-31FE-11D1-AAD2-00805FC1270E}\InProcServer32 检测其 (Default) 值是否含有 netshell32.dll/inetshell.dll。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32 检测其 midimapper 值是否含有 midimapper.dll/midimap32.dll。

发现目标进程和服务则终止之并删除相应的文件。

若已经存在 dll com 劫持但没有发现上述预定的进程和服务,则会在以下注册表设置错误码(但是若为初次运行以下注册表还未建立则会设置失败),并且会根据当前操作系统版本恢复相应的 dll com 劫持。

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{6AF33D21-9BC5-4F65-8654-B8059B822D91}\MiscStatus

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{77032DAA-B7F2-101B-A1F0-01C29183BCA1}\MiscStatus

根据当前操作系统版本恢复相应的 dll/com 劫持。

操作系统版本 注册表位置
Microsoft Windows 98 DLL 劫持注册表键: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\KnownDLLs LINKINFO=LINKINFO.DLL
Windows 2000 DLL 劫持注册表键: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{FAEDCF53-31FE-11D1-AAD2-00805FC1270E}\InProcServer32 (Default)=%windir%\System32\netshell.dll
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Winsoc HelperDllName = %windir%\System32\wshtcpip.dll
Windows XP DLL 劫持注册表键: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32 midimapper = midimap.dll
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Winsoc HelperDllName = %windir%\System32\wshtcpip.dll
Windows Server 2003 Windows Server 2003 R2 DLL 劫持注册表键: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Winsoc HelperDllName = %windir%\System32\wshtcpip.dll
Windows Vista Windows Server 2008 DLL 劫持注册表键: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders SecurityProviders = %windir%\System32\credssp.dll

4.2>如果当前模块名称不是 ee.dll。

则进行竞争模块的删除,如当前模块名是 actxprxy32.dll 则搜索删除 actxprxyserv.dll 和 ee.dll。

5,解密”BINRES”类型的资源 2 获得配置信息,然后在使用 rc6 算法加密与 base64编码后将其设置到以下注册表中。

rc6 key:66 39 71 3C 0F 85 99 81 20 19 35 43 FE 9A 84 11

存储位置:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{6AF33D21-9BC5-4F65-8654-B8059B822D91}\TypeLib\DigitalProductId

查找资源。

解密方式异或 0x79。

经过分析得到的配置信息中部分数据含义。
其中 “配置更新时间”,”上次与 C2 通信时间”会在运行时更新,”最大通信间隔” 是主机与 C2 上次通信的间隔,时间为 30 天。

6,判断当前宿主进程是否是 avp.exe\svchost.exe 不是则不执行恶意功能。

7,关闭主机代理。

8,创建互斥体。

互斥体名称 “InternetParser”。

9,连接白名单地址进行网络连通性测试。

10,连接 C2 发送信息获取数据/指令。

首次发送的数据包括主机 IP、MAC和 machineid,通信数据均使用 rc6 算法加密并使用 base64 编码。

rc6 key:37 08 EF B9 29 A7 4B 6B AB 3E 5D 03 F6 B0 B5 B3

发送数据加密之前的结构。

包内容如下,其中 EIag 标签的值为 0d1975bf[machineid]9c:eac。

11,指令分析与执行。

指令 功能描述
0x42 若已使用 0x70 更新 MachineID 则重设 ClientID。 同时取包中第二个字节作为子命令号,具有如下功能: l命令0:重新连接 C2 服务器 l命令2:卸载 l其他情况:重置与 C2 通信加密数据的 rc6 算法的秘钥
0x44 打开指定文件并写入,文件不存在则创建该文件
0x4A 获得指定文件的大小,文件不存在则创建该文件
0x4B 获得已存在文件的大小
0x53 读取已存在文件,并根据读取情况决定是否搜索并删除目标文件
0x56 CRC16校验文件,不通过则删除;通过则复制文件,删除原文件,然后根据标志以及文件类型判断是否以进程形式运行还是加载运行
0x60 收集主机信息回传
0x70 收集主机信息,生成 MachineID (用于生成 ClientID)
0x75 修改转换时间的间隔,收集主机信息回传
0x76 更新注册表配置信息中的 C2 IP 地址,收集主机信息回传
0x78 设置目标文件路径
0x79 更新配置信息
0x80 删除指定文件

当指令为收集信息回传时,收集的信息按以下标识进行分类。

标识 信息描述
000 MAC 信息
001 IP 地址
002 木马版本信息
003 未知
004 代理服务器信息
005 注册所有人信息 (RegisteredOwner)
006 注册机构信息 (RegisteredOrganization)
007 系统版本信息 (CSDVersion)
008 系统当前版本号 (CurrentBuildNumber)
009 系统当前内核版本 (CurrentVersion)
010 系统产品ID (ProductID)
011 语言环境信息
012 国家信息
013 %windir% 路径
014 网络连接方式(直连、拨号)
015 已安装的软件
016 未知
017 不存在
018 系统位数
019 当前时间(日期)

例:

 

关于我们

360沙箱云是 360 自主研发的在线高级威胁分析平台,对提交的文件、URL,经过静态检测、动态分析等多层次分析的流程,触发揭示漏洞利用、检测逃逸等行为,对检测样本进行恶意定性,弥补使用规则查杀的局限性,通过行为分析发现未知、高级威胁,形成高级威胁鉴定、0day 漏洞捕获、情报输出的解决方案;帮助安全管理员聚焦需关注的安全告警,过安全运营人员的分析后输出有价值的威胁情报,为企业形成专属的威胁情报生产能力,形成威胁管理闭环。解决当前政企用户安全管理困境及专业安全人员匮乏问题,沙箱云为用户提供持续跟踪微软已纰漏,但未公开漏洞利用代码的 1day,以及在野 0day 的能力。

360混天零实验室成立于2015年,负责高级威胁自动化检测项目和云沙箱技术研究,专注于通过自动化监测手段高效发现高级威胁攻击;依托于 360 安全大数据,多次发现和监测到在野漏洞利用、高级威胁攻击、大规模网络挂马等危害网络安全的攻击事件,多次率先捕获在野利用 0day 漏洞的网络攻击并获得厂商致谢,在野 0day 漏洞的发现能力处于国内外领先地位,为上亿用户上网安全提供安全能力保障。

(完)