打开文件,一看文件尾缀IOK文件,不太清楚IOK文件是什么百度查一下

IOK 文件是一种专门的软件用来保存数据的文件,它通常不是通用的格式,只能用特定的软件打开。

但是用PEinfo打开看一下,发现并不是iok文件,而是对dll的包装

先提交给沙箱看看

首次提交2018年,看来确实是个木马dll

查看字符串特征

有网络特征消息,沙箱里做了总结

分析函数DLLEntryPoint函数

来到Sub_10009460函数,这里面有三个函数

sub_10009200函数

sub_10009200函数

SSDT(System Service Dispatch Table)

  • 什么是 SSDT?
    SSDT 是 Windows 内核维护的一张系统调用表。它保存了用户态系统调用(如 NtOpenProcess)到内核态对应服务函数地址的映射。
  • 作用
    当用户程序调用系统调用时,CPU 会切换到内核态,内核通过 SSDT 找到对应的内核服务函数来执行具体操作。
  • 为什么重要?
    SSDT 是内核提供系统服务的核心机制,系统安全、稳定性很大程度依赖它。

Rootkit

  • 什么是 Rootkit?
    Rootkit 是一种恶意软件,目的是隐藏自身或其他软件的存在,并保持对系统的长期控制。
  • 特点
    • 常运行在内核态,权限极高
    • 修改系统底层数据结构(如 SSDT)或核心组件
    • 隐藏文件、进程、网络连接,绕过安全检测
  • 为什么危险?
    Rootkit 能躲避杀软、监控系统行为,极难被发现和清除。

回到主函数

恶意核心代码在调用了两个线程

StartAddress 函数核

创建互斥体 call ds:CreateMutexA 通过互斥体防止程序多次运行,保证进程唯一性。

  1. 构造并调用某个远程URL
    函数中有一段代码拼接了一个URL字符串,比如类似: http://g.7i00.cm/s.gif 并调用某些函数(很可能是下载远程数据、配置或者命令):
    • 通过 GetProcAddress 获取下载或网络相关函数指针。
    • 调用该函数访问远程服务器。
  2. 本地文件操作
    • 拼接本地路径,比如类似: temp\<某字符>bpp.ini
    • 可能将远程下载的内容保存到本地文件。
    • 还调用了删除缓存等操作。
  3. 循环重试和定时等待
    • 如果访问失败,会循环尝试,等待一段时间后重试。
    • 直到成功或者达到最大次数才退出循环。

StartAddress 是一个远程控制的入口线程函数,它:

  • 防止重复运行(互斥体)
  • 从远程服务器下载配置信息或命令(http请求)
  • 保存到本地供后续执行
  • 可能控制恶意程序行为(远控)

StartAddress 负责与远程服务器通信,下载配置或命令,并保存本地,用于远程控制和指挥恶意程序的行为。

sub_10006CB0

sub_10006B40

总结

恶意目的
在 explorer.exe 进程加载时激活恶意功能,启动下载远程命令和自动传播(U盘自复制)线程。

反安全检测
避免在360安全软件相关进程中运行,直接退出,降低被发现风险。

权限提升
尝试获取 SeDebugPrivilege,用于调试或操作高权限进程。

清理机制
DLL 卸载时注销窗口类,做一些资源释放。

Categories:

Tags:

No responses yet

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注