Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Kalim_Backdoor — 卡利姆后门恶意软件报告 | Kitploit
工具/GitHubGitHub/salaheldinfikri/kalim_backdoor
危害指标 (IOC) 管理静态分析动态分析 (沙盒)持久化机制恶意软件分析数字取证命令与控制威胁情报学习与教育
GitHubsalaheldinfikri/kalim_backdoor

Kalim_Backdoor

卡利姆后门恶意软件报告

查看仓库
435个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Kalim后门恶意软件分析报告

photo

本报告将讨论Kalim后门恶意软件的功能。

目录:

- 什么是后门?

- 技术分析。

- 总结。

- 战术与技术(MITRE ATT&CK)。

- 入侵指标(IOCs)。

- Yara规则。

什么是后门?

后门是一种隐藏的系统访问方法,可绕过正常身份验证和安全控制。

技术分析:

基础静态分析:

首先将其上传到VirusTotal进行初步分析。结果显示该文件是一个64位DLL,被识别为Kalim恶意软件家族。此外,多个检测结果提示其可能与MuddyWater威胁组织有关联。

2

该恶意软件还与域名moodleuni[.]com建立网络通信。

1

它释放了一些文件:

photo

现在用Die(Detect it easy)打开:

3

样本导入了大量Windows API,表明其未被加壳。总共从六个DLL中导入函数:KERNEL32.dll、USER32.dll、ADVAPI32.dll、SHELL32.dll、ole32.dll和WININET.dll。

尽管每个DLL导入多个API,但有几个函数因其在恶意软件行为中的作用而特别值得关注。

具体来说,样本从WININET.dll导入网络相关API,用于与命令与控制(C2)服务器建立通信。它还利用ole32.dll中的COM相关函数来创建和操作组件对象模型(COM)对象。此外,恶意软件使用SHELL32.dll中的SHGetFolderPathW来检索由CSIDL值标识的系统目录路径。

image

高级静态分析:

在DllMain中,唯一执行的操作是创建一个新线程。在此线程中,执行两个函数:sub_1800063A0和StartAddress。

image

分析sub_1800063A0函数时,我发现它包含两个不同的阶段。第一阶段,恶意软件将其自身副本释放到AppData\Roaming目录中。它通过创建一个名为Updates的新子目录,然后创建一个名为update.exe的可执行文件来实现。写入此文件的二进制有效负载直接源自嵌入数据,位置为unk_18002AA10。因此,最终文件写入以下路径:“C:\Users<用户名>\AppData\Roaming\Update\update.exe”。

在第二阶段,恶意软件使用*RCLSID: {00021401-0000-0000-C000-000000000046}(对应Shell Link对象CLSID_ShellLink)和RIID: {000214F9-0000-0000-C000-000000000046}(映射到IShellLinkW接口)*初始化一个组件对象模型(COM)对象。通过查看shell32.dll实现的完整Shell COM接口表,可以准确识别调用的方法。恶意软件调用了四个关键的COM方法:SetPath、SetDescription、Save和Release。利用这些函数,它在Windows启动目录中创建了一个名为MicrosoftUpdateSerice.lnk的恶意启动快捷方式,从而在受感染系统上建立持久性。

image

分析StartAddress函数

恶意软件通过三个不同的函数实现其网络通信逻辑,并生成两个独立的线程。一个线程负责生成和管理命令shell,而第二个线程负责在恶意软件完成执行后上传收集的数据。

这三个函数共同管理受感染主机与命令与控制(C2)服务器之间的通信,并组织成三个逻辑层。

第一层负责从受感染系统收集基于主机的指纹信息。第二层通过执行加密和其他操作处理这些数据,以准备传输。第三层与C2域名moodleuni[.]com建立网络通信并传输处理后的数据。

前两个网络相关函数专门负责身份验证和HTTP POST请求构造,从而实现向远程服务器的认证数据传输。

7

第三个函数负责接收来自C2服务器的命令。根据服务器的响应,恶意软件决定其下一步操作——要么生成一个隐藏的命令shell,要么根据从C2获得的命令上传收集的数据。

image

分析这两个线程以充分了解它们的功能。

在第一个线程中,恶意软件创建一个作业对象以及另外两个管道,然后为它们设置特定属性。

然后它创建一个具有某些属性的CMD:

第四个参数中的值1表示CMD可以从管道句柄继承。

第五个参数中的值0x1000200u表示CMD具有以下标志:

CREATE_NO_WINDOW = 0x0000000u

CREATE_NEW_PROCESS_GROUP = 0x0000200u

CREATE_UNICODE_ENVIRONMENT = 0x0000400u

以及一些启动信息:{结构体大小 = 104字节,hStdError = hWritePipe,hStdOutput = hWritePipe,hStdInput = hReadPipe2,dwFlags |= 0x100u = STARTF_USESTDHANDLES}。第一个管道负责从shell读取输出,第二个管道负责向shell写入。

以及一个指向PROCESS_INFORMATION的指针

创建shell后,它将其分配给作业对象并进入挂起状态,等待来自C2的命令。

photo

shell通过共享内存检查控制命令:

Pending:正常执行。

Terminate:终止shell并清理。shell被完全销毁并重置。

Ctrlc:强制终止所有剩余子进程。

image

在正常操作中,如果存在命令,它会将命令写入CMD,然后使用PeekNamedPipe检查输出,并将其存储在缓冲区中。

photo

第二个线程。

该线程首先在指定路径创建一个新文件。该文件用于在上传到C2服务器之前临时存储数据。如果无法创建文件或在初始化期间发生错误,该函数会在共享内存中设置状态字符串"error"并退出。文件通过HTTPS传输到恶意软件的命令与控制服务器(moodleuni[.]com),并使用自定义标头和会话标识符以模仿合法流量。上传完成后,该函数更新共享内存以指示成功或失败:

- 如果上传失败,则为"error"。

- 如果上传成功,则为"done"。

10

总结:

Kalim后门恶意软件首先着重于建立持久性,以确保在受害系统上长期存在。它通过在启动目录(CSIDL_STARTUP)中创建一个恶意快捷方式来实现:

C:\Users<User>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

此机制确保每次系统启动时恶意软件自动执行。

一旦建立持久性,恶意软件便启动与其命令与控制(C2)服务器moodleuni[.]com的通信。它执行初始身份验证和系统指纹识别阶段,在此阶段收集、处理并加密基于主机的信息。然后,恶意软件进入命令等待状态,持续轮询C2以获取指令。

根据接收到的命令,恶意软件可动态决定其后续操作,包括生成一个隐藏的命令shell以进行交互控制,或将收集的数据上传回C2服务器。这种模块化设计同时支持远程命令执行和数据外泄,使Kalim成为一个灵活且持久的后门。

image

战术与技术(MITRE ATT&CK):

入侵指标(IOCs):

root@kitploit:~
- Family name: Kalim
- TA: MuddyWater 
- SHA256 = 0c8071494bc155c96f2cee998200f63efffcb5a064c021de0925504271806229
- C2 = moodleuni[.]com
- MicrosoftUpdateSerice.lnk
- 150.171.27.12 (From VirusTotal)

Yara规则:

root@kitploit:~
rule kalim{
    meta:
        description = "Detects Kalim malware"
        author = "SalahEldin Fikri"

    strings:
		$m1  = "kalim.pdb" wide ascii
		
        $s1  = "UPLOAD"
        $s2  = "isHidden"
        $s3  = "/command"
        $s4  = "sleepTime"
        $s5  = "hardwareId"
        $s6  = "pending"
        $s7  = "ctrlc"
        $s8  = "terminate"
        $s9  = { 8D 01 02 04 08 10 20 40 80 1B 36 }
        $s10 = "KifHsNH6Xhgyebsr"


    condition:
        uint16(0) == 0x5A4D and 
		filesize < 500KB and
		($m1) and
		7 of ($s*)
}
下载工具
TacticTechnique IDName
PersistenceT1547.001Startup Folder
Defense EvasionT1036.005Masquerading
ExecutionT1204.002User Execution
Command & Control / StagingT1105Ingress Tool Transfer
Defense EvasionT1559.001COM Abuse