共享模块
对手可能通过加载共享模块来执行恶意有效负载。共享模块是加载到进程中的可执行文件,用于提供对可重用代码的访问,例如特定的自定义函数或调用操作系统API函数(即本机API)。 对手可能利用此功能作为在受害者系统上执行任意有效负载的一种方式。例如,对手可以将其恶意软件的功能模块化为执行各种功能的共享对象,例如管理C2网络通信或执行特定的目标操作。 Linux和macOS模块加载器可以从任意本地路径加载和执行共享对象。此功能位于dlfcn.h
中的函数如dlopen
和dlsym
。尽管macOS可以执行.so
文件,但常见做法是使用.dylib
文件。(引用: Apple Dev Dynamic Libraries)(引用: Linux Shared Libraries)(引用: RotaJakiro 2021 netlab360 analysis)(引用: Unit42 OceanLotus 2017) Windows模块加载器可以被指示从任意本地路径和任意通用命名约定(UNC)网络路径加载DLL。这种功能位于NTDLL.dll
中,是Windows本机API的一部分,通过运行时调用的函数如LoadLibrary
。(引用: Microsoft DLL)