
MoP(Master of Puppets)是一个高级恶意软件追踪框架,旨在模拟和控制远程访问工具(RAT)的行为。该系统通过插件化的方式支持多种RAT,并提供了丰富的功能来模拟恶意软件的行为,包括文件系统操作、网络连接、进程管理等。MoP的核心目标是帮助安全研究人员分析和追踪恶意软件的行为,尤其是在沙箱环境中进行动态分析。
MoP系统的架构主要分为以下几个模块:
插件化架构:MoP通过插件化的方式支持多种RAT,每个插件可以独立实现特定的恶意软件行为。核心代码通过import_puppet_rat函数动态加载插件。
def import_puppet_rat(full_name: str) -> PuppetRAT:
module_name, class_name = full_name.rsplit('.', 1)
module = importlib.import_module(module_name)
if not module:
raise ModuleNotFoundError(module_name)
return getattr(module, class_name)多线程连接管理:MoP支持多线程连接多个目标,每个目标通过独立的线程进行处理。核心代码通过connect函数启动线程。
def connect(target_ip: str, target_port: int, plugin_name: str) -> None:
thread = threading.Thread(target=_connect, args=(target_ip, target_port, plugin_name))
thread.start()虚拟文件系统:MoP提供了虚拟文件系统功能,模拟了Windows文件系统的操作,如创建文件、读取文件、写入文件等。核心代码通过VirtualFileSystem类实现。
class VirtualFileSystem:
def __init__(self, root_dir, username):
self.root_dir = root_dir
self.username = username
self.files = {}网络连接模拟:MoP可以模拟网络连接,生成随机的网络连接信息,模拟恶意软件的通信行为。核心代码通过netstat函数生成随机的网络连接信息。
def netstat(chrome_pid: int=None) -> List[Connection]:
default_system_connections = [Connection(proto=Proto.TCP,
local_address=Address('0.0.0.0', 139),
foreign_address=Address('0.0.0.0', 0),
state=State.LISTENING,
pid=4)]进程管理模拟:MoP可以模拟进程列表,生成随机的进程信息,模拟恶意软件的进程行为。核心代码通过pslist函数生成随机的进程列表。
def pslist() -> Generator[Process, None, None]:
return _pslist_randomized()MoP系统主要应用于以下场景:
MoP系统通过插件化的架构和丰富的模拟功能,为安全研究人员提供了一个强大的工具来分析和追踪恶意软件的行为。其核心功能包括插件加载、多线程连接管理、虚拟文件系统、网络连接模拟和进程管理模拟。MoP适用于恶意软件分析、沙箱环境测试和安全工具开发等多种场景。
github链接地址:https://github.com/intezer/MoP.git