商业窃密木马综合分析报告
商业窃密木马是一类在利益驱使下形成的商品化、市场化的窃密木马。商业窃密木马会收集目标系统的重要数据(包括但不限于密码凭据、隐私信息、重要文件、数字资产等),并将收集到的数据回传至攻击者服务器,给用户造成隐私泄露、经济损失等严重后果。本文全面剖析了典型商业窃密木马家族,归纳了商业窃密木马攻击活动中的攻击流程和常用技术手段,阐述了商业窃密木马的活动现状,总结了有效的防护建议,帮助用户免受商业窃密木马的侵害。本篇文章9247字,预计19分钟读完。
目前,商业窃密木马已形成了一条完整的窃密产业链,主要包含制作、混淆、销售、传播、获利等环节。产业链分工协作明确:窃密木马编写者负责程序设计、开发和测试;混淆服务提供商负责混淆程序以规避检测;销售者进行推广销售以获取更多利益;传播者负责投放窃密木马感染用户设备。窃密攻击者可通过在窃密产业链中购买各个攻击阶段的服务来实现“一条龙”式的完整攻击,最终将窃取到的数据出售给信息购买者从而获利。
商业窃密木马采用模块化的载荷,内部组件相对独立,可扩展性强,可根据攻击目标的变化进行调整,增加新的窃密功能,对数据安全产生更多威胁。商业窃密木马通常具备下发恶意代码的功能,攻击者可借此传播后门程序、勒索软件、挖矿木马等,给受害者造成更大的损失。以近年来出现的双重勒索攻击方式为例:攻击者在加密数据之前会先窃取数据,后从数据泄露风险和数据损毁风险两方面对受害者进行勒索,试图获取更多收益。
针对商业窃密木马安天建议企业和个人采取如下防护措施:
攻击者利用用户感兴趣的话题作为诱饵,通过钓鱼邮件、钓鱼网站、公共网站等途径投放攻击载荷,诱导用户下载。攻击载荷多采用宏文档、Office漏洞利用文档或恶意程序压缩包形式,在受害者打开文档并启用宏时、Office软件存在对应漏洞时或不慎解压运行时,恶意程序就会执行。恶意程序一般由外层加载器和内部窃密木马载荷组成,外层加载器下载、解密窃密木马载荷,为其提供防御规避、持久化等能力,最终由内部的窃密木马窃取受害者的密码凭据、隐私信息、重要文件、数字资产等数据回传给攻击者。
图3-1 典型商业窃密木马攻击流程
近年来,随着商业窃密木马数量的不断增加,逐渐形成了一条完整的窃密产业链,主要包含制作商业窃密木马、销售、混淆、传播、获利等环节。即使攻击者没有足够的技术能力,也可以通过在窃密产业链中购买各个攻击阶段的攻击服务来实现“一条龙”式的完整攻击。攻击者通过多种传播方式大规模投放商业窃密木马,窃取用户主机中的数据。商业窃密木马采用模块化的载荷,内部组件相对独立,可扩展性强,可根据攻击目标的变化进行调整,增加新的窃密功能,对数据安全产生更多威胁。商业窃密木马通常具备下发恶意代码的功能,攻击者可借此传播后门程序、勒索软件、挖矿木马等,给受害者造成更大的损失。
4.1 产业链条分工明确,攻击门槛持续降低
图4-1 商业窃密木马产业链示意图
窃密木马编写者、窃密木马销售者
图4-2 RedLine窃密木马出售页面
图4-3 RedLine窃密木马的C2控制面板
购买混淆服务
图4-4 RedLine窃密木马编写者提供的收费混淆加密服务
投放木马、窃取数据
图4-5 Agent Tesla窃密木马的C2控制面板
4.2 传播方式多样化
4.2.1 利用钓鱼邮件传播
图4-6 钓鱼邮件示例
4.2.2 搭建钓鱼网站传播
图4-7 某传播商业窃密木马的钓鱼网站
4.2.3 利用公共网站传播
图4-8 通过视频网站传播示例
4.3 窃密家族快速更新,组件功能灵活迭代
图4-9 RedLine窃密木马更新说明
4.4 捆绑下发更多恶意代码,相互勾结扩大利益链
窃密木马为了避免核心功能代码、字符串等被安全软件检测,会采用各类对抗技术手段,隐藏自身特征,提高攻击成功的几率。常用的技术包括无文件技术、隐写术、修改异常处理机制等。
5.1 使用无文件技术规避检测
5.1.1 对内存载荷进行加密
图5-1 解密PE文件
5.1.2 使用多层载荷
图5-2 Agent Tesla多层载荷示意图
5.1.3 使用进程镂空技术
图5-3 创建进程并通过进程镂空技术注入载荷
5.2 使用隐写术规避检测
图5-4 使用隐写术隐藏载荷
5.3 利用异常处理机制对抗分析
图5‑5 注册VEH函数捕获异常
6.1 Agent Tesla
图6-1 2017年Agent Tesla销售页面的存档
图6-2 Agent Tesla控制面板的代码保护
窃取数据
表6‑1 窃密范围
数据回传
支持的回传方式包括电子邮件、FTP、HTTP及Tor匿名网络,攻击者可以选择其中任意一种方式,并将相关参数硬编码到样本中实现回传。
1.通过Tor匿名网络回传
窃密木马会自动下载Tor客户端并通过匿名网络进行HTTP通信,该种方式使得回传服务器更难以被溯源及破坏,增加了窃密木马的持久性。
2.通过电子邮件回传
支持通过SMTP协议进行电子邮件回传。
3.通过FTP回传
使用硬编码的回传地址、用户名及密码上传文件。
4.通过HTTP回传
将数据组合为表单并发送至服务器。
6.2 RedLine
RedLine是一种在黑客论坛出售的窃密木马。窃密木马作者在多个论坛发帖宣传,并提供买断制或订阅制购买方式,通过Telegram的自助机器人交易。该窃密木马于2020年3月被发现,尽管该窃密木马仅出现近两年,但已经具有强大完善的信息窃取功能,是十分流行的窃密木马家族之一。详细分析可参见安天曾发布的《通过视频网站传播的RedLine窃密木马分析》[2]。
窃取数据
连接至C2获取配置信息,包括国家和地区黑名单、IP黑名单、窃密功能开关、指定文件收集规则等。
数据回传
使用C#语言中的ChannelFactory类与C2进行网络通信。
6.3 LokiBot
LokiBot窃密木马也被称为Loki、LokiPWS,主要通过钓鱼邮件传播。LokiBot最早可追溯到2015年,由名为“lokistov”和“Carter”的用户在黑客论坛出售,售价为400美元。LokiBot服务端源码曾被泄露,后续还出现了售价仅80美元的“盗版”,还有较多配置信息被修改的版本,这也间接导致了LokiBot窃密木马的流行。
窃取数据
构建函数数组,每个函数均包含针对某种软件的窃密功能,然后依次执行这些函数。
详细的窃密范围如下表所示:
接收C2指令,执行后续功能
根据C2指令进行进一步操作。支持的功能包括再次窃取数据、下载并执行插件、升级自身、自删除等。
6.4 FormBook
FormBook是一种非常流行的商业窃密木马,自2016年开始在黑客论坛上以MaaS(恶意软件即服务)的形式出售,版本不断迭代更新。FormBook主要被用于窃取目标个人信息,能够自动收集目标系统中的敏感信息,具备键盘记录和屏幕获取功能。同时它具有远程控制能力,能够对目标系统进行长期驻留控制。
安天曾对某单位遭受投递FormBook窃密木马事件进行分析报告[4]。
窃取数据
循环查找并劫持如下列表中的进程,窃取进程数据,窃取内容包括键盘记录、账号密码等。
浏览器 | 360browser.exe | browser.exe | coolnovo.exe | cyberfox.exe | chrome.exe |
dooble.exe | firefox.exe | ucbrowser.exe | ybrowser.exe | opera.exe | |
safari.exe | deepnet.exe | icedragon.exe | iridium.exe | k-meleon.exe | |
maxthon.exe | microsoftedgecp.exe | midori.exe | mustang.exe | orbitum.exe | |
palemoon.exe | qupzilla.exe | superbird.exe | vivaldi.exe | waterfox.exe | |
邮件客户端 | foxmail.exe | gmailnotifierpro.exe | incmail.exe | operamail.exe | outlook.exe |
thunderbird.exe | |||||
即时通讯 客户端 | whatsapp.exe | skype.exe | icq.exe | pidgin.exe | trillian.exe |
yahoomessenger.exe | |||||
FTP客户端 | 3dftp.exe | alftp.exe | filezilla.exe | flashfxp.exe | ncftp.exe |
coreftp.exe | scriptftp.exe | leechftp.exe | smartftp.exe | webdrive.exe | |
winscp.exe |
数据回传
构建数据包,通过HTTP协议进行数据回传。
接收C2指令,执行后续功能
FormBook支持接受C2指令,以实施进一步攻击。指令功能包括下发模块、升级、卸载、执行命令、搜索信息等。
详细的指令功能如下表所示:
指令 | 具体作用 |
1 | 在%Temp%目录下解密PE文件,调用ShellExecuteA() |
2 | 更新目标系统中的FormBook |
3 | 卸载目标系统中的FormBook |
4 | 调用ShellExecuteA()执行从数据包中解密的下发命令 |
5 | 删除文件“.sqlite”和“Cookies”并搜索三个主要用户数据路径 |
6 | 重启目标系统 |
7 | 关闭目标系统 |
8 | 将FormBook添加自启动项,并将所有窃取的数据发送至C2服务器 |
9 | 从数据包开头至字符串结尾标识的数据中解密zip文件,并以随机字符串命名保存至%Temp%中,解压至同一文件夹下。 |
6.5 Vidar
Vidar于2018年12月首次被发现,主要通过黑客论坛及匿名通信软件出售,不同时长档位的售价在130美元到750美元不等。Arkei与其存在很强的同源性,两者整体结构及通信协议等核心代码基本相同,推测Vidar为Arkei的更新版本或分支版本。
窃取数据
根据C2指令进行窃密,指令的主要功能如图所示:
数据回传
将窃密数据打包为zip格式,通过HTTP协议发送到C2。
6.6 Raccoon
Raccoon窃密木马最早于2019年被发现。相比其他窃密木马,Raccoon只包含窃密功能,缺乏反沙箱、反虚拟机等防御规避能力,因此Raccoon开发团队曾在论坛中建议使用者借助第三方加载器或混淆器对恶意代码进行保护。
窃取数据
获取计算机硬件等系统基础信息。
图6-15 系统信息
检测系统安装的浏览器,下载用于窃取浏览器Cookies、保存的密码等信息的sqlite3.dll。
获取邮件客户端中的邮件地址、账户凭据等。
数据回传
将收集到的数据压缩为zip文件回传至C2服务器,最后使用cmd指令进行自删除。
6.7 Azorult
Azorult窃密木马最早于2016年7月被发现,至今已进行了多次升级。该窃密木马窃取账户凭据、浏览器保存的密码、数字货币等并自动发送至C2服务器,同时还具备加载其他恶意代码的功能。
窃取数据
部分窃密范围如下。
系统 | 序列号 | 产品名称 | 用户名称 | 计算机名称 |
显示屏分辨率 | 区域信息 | 时区信息 | CPU | |
RAM | 屏幕截图 | |||
加密货币客户端 | Electrum | Electrum-LTC | Ethereum | Exodus |
MultiBitHD | Monero | Bitcoin | Jaxx | |
电子邮件客户端 | Outlook | |||
其他常用软件 | Skype | Telegram | Steam | WinSCP |
加载其他载荷
下载后续载荷至%Temp%或%ProgramFiles%下,检查文件扩展名是否为exe,如果是则使用CreateProcessW运行,否则使用ShellExcuteW运行。
6.8 Pony
Pony窃密木马于2011年首次被发现,也被称为Fareit、Siplog,能够从受害者主机上窃取信息并加载其他恶意代码。该窃密木马支持多种定制功能,以满足不同的购买者的需求。
窃取数据
窃密范围包括系统信息、FTP工具、浏览器、邮箱客户端、加密货币客户端及其他常用软件。
系统信息 | 操作系统版本 | 国家/地区 | 语言 | 权限 |
机器型号 | ||||
FTP工具 | Far Manager | CuteFTP 6/7/8/9/pro/lite | FlashFXP 3/4 | FileZilla |
BPFTP | SmartFTP | TurboFTP | FFFTP | |
CoffeeCup Software | COREFTP | FTP Explorer | VanDyke | |
UltraFXP | FTPRush | WS_FTP | WebSitePublisher | |
ExpanDrive | ClassicFTP | Fling | leapftp | |
SoftX FTP | 32BitFtp | FTPVoyager | WinFTP | |
FTPGetter | ALFTP | DeluxeFTP | FreshFTP | |
BlazeFTP | GoFTP | 3D-FTP | EasyFTP | |
FTP Now | Robo-FTP 3.7 | LinasFTP | Cyberduck | |
PuTTY | FTPShell | FTPInfo | FTP Browser | |
My FTP | NovaFTP | Windows Commander | Total Commander | |
FTP Commander | FTP Navigator | FTP Control | Wiseftp | |
LeechFTP | fireFTP | SFTP | FTP Disk | |
浏览器 | Opera | Firefox | SeaMonkey | Flock |
IE | Yandex | Chrome | ||
邮件客户端 | Windows Live Mail | RimArts Mailbox | IncrediMail | BatMail |
Outlook | Thunderbird | Pocomail | ||
加密货币 | BitCoin | Electrum | MultiBit | LiteCoin |
Namecoin | Terracoin | Armory | Craftcoin | |
PPCoin | Primecoin | Feathercoin | Novacoin | |
Frecoin | Devcoin | Franko | ProtoShare | |
Megacoin | Quarkcoin | Worldcoin | Infinitecoin | |
Ixcoin | Anoncoin | BBQcoin | Digitalcoin | |
Mincoin | GoldCoin | Yacoin | Zetacoin | |
Fastcoin | I0coin | Tagcoin | Bytecoin | |
Florincoin | Phoenixcoin | Luckycoin | Junkcoin | |
其他 | Notepad++ | NexusFile | Directory Opus |
其他功能定制
该窃密木马在生成器中可以进行高级设置和参数设置。
选项 | 说明 |
压缩 | 压缩可执行文件,减小程序的大小 |
加密 | 使用RC4算法对回传数据进行加密 |
加密密码 | 设置RC4算法的加密密码 |
调试模式 | 用于调试 |
仅发送新的报告 | 不重复回传数据 |
自删除 | 在完成窃密工作后进行自删除 |
添加图标 | 设置程序的图标 |
UPX打包 | 使用UPX对程序进行压缩 |
尝试发送报告的次数 | 设置在回传失败时进行尝试的次数 |
构建选项 | 选择将窃密木马构建为EXE文件或DLL文件 |
窃密木马支持的参数列表如下。
参数 | 说明 |
-PACK_REPORT | 对回传数据进行压缩 |
-ENCRYPT_REPORT | 加密报告 |
-REPORT_PASSWORD | 加密密码,默认为Mesoamerica |
-SAVE_REPORT | 将回传数据保存至磁盘(用于调试) |
-ENABLE_DEBUG_ONLY | 调试模式 |
-SEND_MODIFIED_ONLY | 仅回传新的数据 |
-SELF_DELETE | 启用自删除 |
-SEND_EMPTY_REPORTS | 回传空白数据 |
-ADD_ICON | 添加图标 |
-UPX | 使用UPX进行打包 |
-DOMAIN_LIST | 域列表 |
-LOADER_EXECUTE_NEW_FILES_ONLY | 相同文件仅运行一次 |
-DISABLE_MODULE | 删除指定的窃密模块 |
-DLL_MODE | 生成为DLL文件 |
-COLLECT_HTTP | 额外收集HTTP/HTTPS |
-COLLECT_EMAIL | 额外收集电子邮件信息 |
-UPLOAD_RETRIES=N | 回传数据的次数,默认值为2 |
-DISABLE_GRABBER | 禁用窃密功能,仅用于加载其他程序 |
具体ATT&CK技术行为描述表如下。
ATT&CK阶段/类别 | 具体行为 | 注释 |
侦查 | 从非公开源搜集信息 | 从黑客论坛收集受害者信息 |
资源开发 | 获取基础设施 | 获取服务器基础设施 |
资源开发 | 入侵基础设施 | 入侵其他网站作为攻击资源 |
资源开发 | 能力获取 | 开发、维护恶意代码 |
资源开发 | 环境整备 | 在攻击设施上部署攻击程序 |
初始访问 | 网络钓鱼 | 通过钓鱼邮件、钓鱼网站诱导受害者执行 |
执行 | 利用主机软件漏洞执行 | 利用漏洞执行 |
执行 | 诱导用户执行 | 诱导用户执行 |
持久化 | 利用自动启动执行引导或登录 | 设置自启动项 |
持久化 | 利用计划任务/工作 | 设置计划任务 |
防御规避 | 操纵访问令牌 | 操纵其他进程的权限令牌 |
防御规避 | 反混淆/解码文件或信息 | 解密被混淆的载荷、配置信息等 |
防御规避 | 隐藏行为 | 隐蔽在后台执行 |
防御规避 | 间接执行命令 | 通过Powershell等执行命令 |
防御规避 | 修改注册表 | 通过修改注册表更改系统安全设置 |
防御规避 | 混淆文件或信息 | 对载荷、配置信息进行混淆 |
防御规避 | 进程注入 | 注入系统进程 |
防御规避 | 虚拟化/沙箱逃逸 | 检测虚拟机/沙箱并以此改变行为 |
防御规避 | 利用反射代码加载 | 使用C#反射机制加载解密后的载荷 |
凭证访问 | 从存储密码的位置获取凭证 | 从浏览器、密码管理等获取密码 |
凭证访问 | 输入捕获 | 捕获键盘记录 |
凭证访问 | 窃取应用程序访问令牌 | 获取客户端软件的访问令牌 |
凭证访问 | 窃取Web会话Cookie | 从浏览器窃取Cookie |
发现 | 发现文件和目录 | 发现待收集的文件 |
发现 | 发现进程 | 发现系统进程列表 |
发现 | 发现软件 | 发现系统软件列表 |
发现 | 发现系统信息 | 发现系统基础信息 |
发现 | 发现系统地理位置 | 发现系统地理位置、语言区域等信息 |
发现 | 发现系统所有者/用户 | 发现系统用户名称 |
发现 | 发现系统服务 | 发现系统服务 |
发现 | 虚拟化/沙箱逃逸 | 检测虚拟化/沙箱环境 |
收集 | 自动收集 | 自动收集需要的信息 |
收集 | 收集剪贴板数据 | 收集剪贴板数据 |
收集 | 数据暂存 | 将数据收集到临时路径 |
收集 | 收集电子邮件 | 收集电子邮件 |
收集 | 输入捕获 | 捕获键盘记录 |
收集 | 获取屏幕截图 | 获取屏幕截图 |
收集 | 捕获视频 | 捕获摄像头视频 |
命令与控制 | 使用应用层协议 | 使用HTTP、SMTP等协议 |
命令与控制 | 编码数据 | 对流量数据进行编码 |
命令与控制 | 混淆数据 | 对流量数据进行混淆 |
命令与控制 | 使用加密信道 | 使用SSL加密流量 |
命令与控制 | 使用备用信道 | 配置备用C2地址 |
命令与控制 | 使用标准非应用层协议 | 直接使用TCP协议通信 |
命令与控制 | 利用合法Web服务 | 使用公共平台 |
数据渗出 | 自动渗出数据 | 自动回传收集的信息 |
数据渗出 | 限制传输数据大小 | 限制传输数据大小 |
数据渗出 | 使用非C2协议回传 | 使用与C2通信不同的信道回传 |
数据渗出 | 使用C2信道回传 | 使用与C2通信相同的信道回传 |
数据渗出 | 使用Web服务回传 | 使用公开的Web服务回传 |
通过追踪商业窃密木马的攻击流程,发现目前攻击者采用钓鱼邮件、钓鱼网站、公共网站等多个传播方式入侵受害者主机,入侵成功后收集目标系统的重要数据(包括但不限于密码凭据、隐私信息、重要文件、数字资产等)并将其回传给攻击者,给用户带来隐私泄露、经济损失等严重后果。同时,捆绑下发后门程序、勒索软件、挖矿木马等更多恶意代码,试图获取更多收益。