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

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

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

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

工具目录

分类

查看所有分类
Loading categories
process-injection-playground — 与进程注入相关的样本和材料集合 | Kitploit
工具/GitHubGitHub/oscerd/process-injection-playground
CTF渗透测试学习与教育红队Payload 开发二进制利用
GitHuboscerd/process-injection-playground

process-injection-playground

与进程注入相关的样本和材料集合

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Linux 进程注入演练场

一个全面的 Linux 进程注入技术合集,演示了向运行中进程注入代码的各种方法。这些示例仅供教育、安全研究以及理解底层 Linux 进程操作之用。

概述

进程注入是一种在另一个进程的上下文中运行代码的技术。虽然通常与恶意软件相关联,但这些技术也具有以下重要价值:

  • 安全研究:理解攻击向量并开发防御手段
  • 调试:分析和修改运行中的应用程序
  • 插桩:性能分析和监控
  • 渗透测试:授权的安全评估
  • CTF 竞赛:夺旗挑战

可用技术

1. 基于 Ptrace 的代码注入

目录:ptrace/

经典的进程注入方法,使用 ptrace() 系统调用直接将 shellcode 写入进程内存并重定向执行流。

主要特性:

  • 通过 PTRACE_POKETEXT 直接操作内存
  • 指令指针(RIP)劫持
  • 原始 shellcode 注入

适用场景:理解底层进程控制和直接代码注入

了解更多 →


2. LD_PRELOAD 注入

目录:ld_preload/

利用 LD_PRELOAD 环境变量在其他任何库之前加载恶意库,从而进行函数插入。

主要特性:

  • 基于环境变量的注入
  • 通过符号插入实现函数挂钩
  • 构造函数/析构函数
  • 实现简单但同样易被检测

适用场景:函数挂钩、API 监控、行为修改

了解更多 →


3. /proc/mem 写入注入

目录:proc_mem/

通过 /proc/<pid>/mem 文件系统接口直接写入内存,并结合 ptrace 进行进程控制。

主要特性:

  • 通过文件系统直接访问内存
  • 对于大型载荷比 PTRACE_POKETEXT 更高效
  • 单次写操作即可写入整个 shellcode
  • 无字对齐要求

适用场景:快速批量内存注入,绕过传统 ptrace 的局限性

了解更多 →


4. dlopen() 库注入

目录:dlopen_inject/

一种复杂的技术,通过劫持执行流调用 dlopen(),强制运行中的进程加载共享库。

主要特性:

  • 适用于已经运行的进程(不同于 LD_PRELOAD)
  • 持久性(库保持加载状态)
  • 支持具有完整库功能的复杂载荷
  • 可以像 LD_PRELOAD 一样挂钩函数,但在进程启动之后

适用场景:高级持久注入、运行时库操作

了解更多 →


快速开始

前置条件

  • Linux 系统(已在 x86_64 上测试)
  • GCC 编译器
  • Root 权限或 CAP_SYS_PTRACE 能力
  • Make 构建工具

构建所有示例

root@kitploit:~
# 构建 ptrace 注入
cd ptrace && make all

# 构建 LD_PRELOAD 注入
cd ../ld_preload && make all

# 构建 /proc/mem 注入
cd ../proc_mem && make all

# 构建 dlopen 注入
cd ../dlopen_inject && make all

基本使用模式

每种技术都遵循类似模式:

  1. 启动目标进程:

    root@kitploit:~
    cd <technique>/victim-process
    ./sample
    

    记下显示的 PID

  2. 执行注入:

    root@kitploit:~
    cd <technique>
    sudo ./<injector> <PID> [additional args]
    
  3. 观察结果:检查目标进程输出中注入代码的执行情况

有关各技术的具体说明,请参阅各自的 README 文件。

对比矩阵

何时使用哪种?

  • ptrace:学习基础、简单的 shellcode 注入
  • LD_PRELOAD:快速函数挂钩、调试、由你控制进程启动时
  • /proc/mem:快速注入大型载荷、当 PTRACE_POKETEXT 太慢时
  • dlopen:持久注入、复杂载荷、需要完整库功能时

安全注意事项

防御措施

  1. Yama ptrace_scope:将 ptrace 限制为特权用户

    root@kitploit:~
    echo 1 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    
  2. SELinux/AppArmor:强制访问控制

  3. 监控:使用 auditd 记录 ptrace 和进程注入尝试

    root@kitploit:~
    auditctl -a exit,always -F arch=b64 -S ptrace
    
  4. 运行时完整性检查:定期验证进程内存

  5. 代码签名:验证库签名

检测方法

  • 监控 /proc/<pid>/maps 中是否存在意外的内存区域或库
  • 通过系统日志关注 ptrace 附加尝试
  • 检查环境变量(LD_PRELOAD)
  • 使用 lsof、pmap 等工具以及进程监控工具
  • 启用内核安全模块

法律与道德声明

重要提示:这些技术只能在授权环境中使用:

本仓库仅用于教育和研究目的。 作者不对这些技术的滥用负责。在对任何系统进行测试前,务必获得适当的授权。

故障排除

常见问题

权限被拒绝错误:

  • 使用 sudo 运行
  • 检查 /proc/sys/kernel/yama/ptrace_scope
  • 验证 SELinux/AppArmor 策略

注入静默失败:

  • 确认目标进程不是静态链接的
  • 检查目标进程是否已加载所需库
  • 确保 shellcode 与你的架构匹配

段错误:

  • 确认你在 x86_64 架构上
  • 检查目标进程是否受保护
  • 确保正确的内存对齐

有关具体技术的故障排查指导,请参阅各技术的 README。

贡献

欢迎贡献!可能的补充内容:

  • 其他注入技术(GOT/PLT 挂钩、VDSO 操作等)
  • 用于对比的 Windows 等价实现
  • 检测/防御工具
  • ARM 架构支持
  • 更多 shellcode 示例
  • 防御性编程示例

参考

文档

  • man 2 ptrace - 进程跟踪系统调用
  • man 5 proc - /proc 文件系统文档
  • man 3 dlopen - 动态库加载
  • Linux 内核源码:进程内存管理

相关研究

  • “Linux 进程注入”技术及其演进
  • “Ptrace 注入”方法论
  • “共享库注入”最佳实践
  • MITRE ATT&CK:T1055(进程注入)

许可证

详见 LICENSE.txt。

免责声明

本软件“按原样”提供,仅供教育目的使用。请负责任且合乎道德地使用。在对你不拥有的任何系统上测试安全技术之前,务必获得适当的授权。

下载工具
技术复杂度隐蔽性持久性速度适用于运行中进程
ptrace中等低否中等是
LD_PRELOAD低非常低否快否
/proc/mem中等低否快是
dlopen高中等是中等是