1 个不稳定版本

0.2.0 2024年3月16日

#412操作系统

MIT 许可证

25KB
581

pox

Pox 是一个进程感染框架,具有操作远程地址空间的工具。

Pox 使用 PTRACE 系统调用构建,因此仅限于 Linux/BSD 系统。

用法

Pox 自身是一个 crate,提供执行远程系统调用、注入远程字符串、监控远程执行和查找内存映射等功能。在将此 crate 包含到项目中时,大多数功能可以单独选择:[locator, monitor, rc]

此外,使用 bin 功能,将生成一个示例感染二进制文件:vector

Vector

Vector 可以感染正在运行的过程,远程调用 dlopen() 并加载共享对象。它只能在链接了 glibc 的二进制文件上工作(目前不支持 musl)。它可以攻击正在运行的过程(可能需要 root 权限)或启动一个子进程并感染它。

Vector 将

  • 查找系统调用指令并使用它执行远程操作
  • 远程调用 mmap 来分配一个字符串
  • 将共享对象路径写入分配的字符串
  • 从系统 glibc 和 procmaps 计算dlopen地址
  • 强制设置寄存器并使用之前注入的路径执行dlopen
  • 恢复进程

状态

Pox 仍在开发中。我构建这个项目是为了探索 Linux OS、进程和内存。

作者说明

由于它可以帮助将额外的库引入运行中的进程,因此这可能被用于制作恶意软件。然而,我认为开源它是可以的

  • 注入方法是相当古老的,于2002年在 Phrack 上描述。
  • 此方法仅适用于 Linux/BSD
  • 在大多数现代系统中,如果不是以 root 运行,PTRACE 无法附加到其他进程
  • 还有其他可用的项目在做同样的事情

依赖关系

~0.3–9MB
~72K SLoC