进程内存
对手可能会通过 /proc 文件系统将恶意代码注入进程中,以规避基于进程的防御,并可能提升权限。进程内存注入是一种在单独的活动进程地址空间中执行任意代码的方法。 进程内存注入涉及通过 /proc 文件系统 (/proc/[pid]
) 枚举进程的内存,然后使用可用的小工具/指令制作返回导向编程 (ROP) 负载。每个运行的进程都有自己的目录,其中包括内存映射。进程内存注入通常通过使用 /proc 文件系统提供的内存映射覆盖目标进程的堆栈来执行。这些信息可用于枚举偏移量(包括堆栈)和小工具(或程序中可用于构建恶意负载的指令),这些偏移量和小工具通常被进程内存保护(如地址空间布局随机化 (ASLR))隐藏。一旦枚举完毕,可以使用 dd 覆盖 /proc/[pid]/maps
中的目标进程内存映射。(引用: Uninformed Needle)(引用: GDS Linux Injection)(引用: DD Man) 其他技术(如 动态链接器劫持)可用于填充目标进程以提供更多可用的小工具。类似于 进程空洞化,进程内存注入可能会针对子进程(如后台的 sleep 副本)。(引用: GDS Linux Injection) 在另一个进程的上下文中运行代码可能允许访问该进程的内存、系统/网络资源,并可能提升权限。通过进程内存注入执行还可能规避安全产品的检测,因为执行被掩盖在合法进程下。