
自今年早些时候首次出现以来,ToneShell 后门程序便展现出极强的适应性。“野马熊猫”(Mustang Panda)黑客组织对其加以利用,以在目标环境中维持长期控制权限。
研究人员于 9 月初发现的这一最新变种,隐藏在通过 “侧载”(sideloading)方式植入的动态链接库(DLL)中,与合法可执行文件捆绑在一起。
该后门程序通过伪装成 “包含普通文档” 的压缩包进行传播,当宿主进程触发恶意 DLL 时,后门便会激活,启动一套精心设计的感染流程,以规避初步检测。
该后门程序通过伪装成 “包含普通文档” 的压缩包进行传播,当宿主进程触发恶意 DLL 时,后门便会激活,启动一套精心设计的感染流程,以规避初步检测。
在典型的部署场景中,这类压缩包(文件名常带有本地化或政治相关主题)包含合法的加载器可执行文件与经过重命名的 DLL 载荷。
可执行文件运行后,DLL 会先检测环境中是否存在沙箱特征(包括与安全解决方案相关的进程名和文件路径),确认无异常后才继续执行后续操作。
可执行文件运行后,DLL 会先检测环境中是否存在沙箱特征(包括与安全解决方案相关的进程名和文件路径),确认无异常后才继续执行后续操作。
若环境检测通过,恶意软件会将自身复制到用户 “AppData” 目录下新建的子文件夹中,与多个微软 Visual C++ 运行时库放置在一起。
Intezer 公司的研究人员指出,这一操作可让后门程序从 “不易引发怀疑的位置” 运行,融入正常的用户目录结构,降低被发现的概率。
Intezer 公司的研究人员指出,这一操作可让后门程序从 “不易引发怀疑的位置” 运行,融入正常的用户目录结构,降低被发现的概率。
借助任务计划程序 COM 服务实现持久化驻留
后门程序迁移至目标位置后,会通过直接调用 Windows “任务计划程序 COM 服务”(Task Scheduler COM Service)建立持久化机制。
Intezer 的研究人员发现,该恶意软件利用
该任务被配置为 “每分钟启动一次恶意可执行文件”,即便后门进程被终止,也能通过定期启动确保近乎持续的重新感染。
Intezer 的研究人员发现,该恶意软件利用
ITaskService与IRegisteredTask接口,在根文件夹中创建名为 “dokanctl” 的计划任务。该任务被配置为 “每分钟启动一次恶意可执行文件”,即便后门进程被终止,也能通过定期启动确保近乎持续的重新感染。
任务定义中将 “操作路径” 指向 “AppData” 目录下复制的
svchosts.exe文件 —— 该文件伪装成 Windows 合法系统进程,进一步隐藏恶意行为。
(任务创建流程(来源:Intezer)
这一设计的影响极为深远:与依赖 “注册表运行项” 或 “服务安装” 的传统方式不同,后门程序通过滥用任务计划程序 COM 服务,避开了安全工具熟知的检测规则。
此外,由于该计划任务利用系统现有库文件运行,缺乏深度行为分析能力的安全工具可能无法识别这一异常修改。
此外,由于该计划任务利用系统现有库文件运行,缺乏深度行为分析能力的安全工具可能无法识别这一异常修改。
ToneShell 的持久化机制核心在于 “通过自定义代码实例化并调用 COM 接口”,关键代码片段如下:
cpp
运行
CComPtr<ITaskService> taskService;
HRESULT hr = taskService.CoCreateInstance(__uuidof(TaskScheduler));
if (SUCCEEDED(hr)) {
taskService->Connect(_variant_t(), _variant_t(), _variant_t(), _variant_t());
CComPtr<ITaskFolder> rootFolder;
taskService->GetFolder(_bstr_t(L"\\"), &rootFolder);
CComPtr<IRegisteredTask> existingTask;
rootFolder->GetTask(_bstr_t(L"dokanctl"), &existingTask);
if (!existingTask) {
CComPtr<ITaskDefinition> taskDef;
taskService->NewTask(0, &taskDef);
CComPtr<ITriggerCollection> triggers;
taskDef->get_Triggers(&triggers);
CComPtr<ITrigger> trigger;
triggers->Create(TASK_TRIGGER_TIME, &trigger);
// 配置触发器为“每分钟执行一次”
CComPtr<IActionCollection> actions;
taskDef->get_Actions(&actions);
CComPtr<IAction> action;
actions->Create(TASK_ACTION_EXEC, &action);
CComPtr<IExecAction> exec;
action->QueryInterface(&exec);
exec->put_Path(_bstr_t(L"%APPDATA%\\svchosts.exe"));
rootFolder->RegisterTaskDefinition(_bstr_t(L"dokanctl"), taskDef,
TASK_CREATE_OR_UPDATE, _variant_t(), _variant_t(),
TASK_LOGON_INTERACTIVE_TOKEN, _variant_t(), nullptr);
}
}
这种实现方式体现了攻击者对 Windows 系统内部机制的深入理解,能以 “极小的痕迹” 实现持久化驻留。
同时,由于依赖 COM 接口,该后门程序避开了简单的 “基于文件” 的检测 —— 恶意可执行文件并非通过 “启动项直接执行”,而是由任务计划程序调用运行。
同时,由于依赖 COM 接口,该后门程序避开了简单的 “基于文件” 的检测 —— 恶意可执行文件并非通过 “启动项直接执行”,而是由任务计划程序调用运行。
随着各机构不断加强对 ToneShell 的防御,“监控基于 COM 接口的异常任务计划程序交互” 将成为网络安全防护的关键环节。
版权声明·<<<---红客联盟--->>>·免责声明
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。
联系我们:admin@chnhonker.com
