Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
process-injection-playground — Una colección de muestras y material relacionado con la inyección de procesos | Kitploit
Herramientas/GitHubGitHub/oscerd/process-injection-playground
CTFPruebas de PenetraciónAprendizaje y EducaciónRed TeamingDesarrollo de PayloadsExplotación de Binarios
GitHuboscerd/process-injection-playground

process-injection-playground

Una colección de muestras y material relacionado con la inyección de procesos

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
1hace 8 mesesAún no revisado

Parque de Juegos de Inyección de Procesos en Linux

Una colección completa de técnicas de inyección de procesos para Linux, que demuestra varios métodos para inyectar código en procesos en ejecución. Estos ejemplos están pensados con fines educativos, investigación de seguridad y comprensión de la manipulación de procesos de bajo nivel en Linux.

Resumen

La inyección de procesos es una técnica utilizada para ejecutar código en el contexto de otro proceso. Aunque a menudo se asocia con malware, estas técnicas también son valiosas para:

  • Investigación de seguridad: Comprender vectores de ataque y desarrollar defensas
  • Depuración: Analizar y modificar aplicaciones en ejecución
  • Instrumentación: Perfilado de rendimiento y monitorización
  • Pruebas de penetración: Evaluaciones de seguridad autorizadas
  • Competiciones CTF: Desafíos de Capture The Flag

Técnicas Disponibles

1. Inyección de Código Basada en Ptrace

Directorio: ptrace/

El método clásico de inyección de procesos que utiliza la llamada al sistema ptrace() para escribir directamente shellcode en la memoria de un proceso y redirigir su ejecución.

Características principales:

  • Manipulación directa de memoria mediante PTRACE_POKETEXT
  • Secuestro del puntero de instrucción (RIP)
  • Inyección de shellcode sin procesar

Caso de uso: Comprender el control de procesos de bajo nivel y la inyección directa de código

Leer más →


2. Inyección LD_PRELOAD

Directorio: ld_preload/

Interposición de funciones utilizando la variable de entorno LD_PRELOAD para cargar una biblioteca maliciosa antes que cualquier otra biblioteca.

Características principales:

  • Inyección basada en variables de entorno
  • Enganche de funciones mediante interposición de símbolos
  • Funciones constructoras/destructoras
  • Fácil de implementar pero también fácil de detectar

Caso de uso: Enganche de funciones, monitorización de APIs, modificación de comportamiento

Leer más →


3. Inyección por Escritura en /proc/mem

Directorio: proc_mem/

Escritura directa de memoria a través de la interfaz del sistema de archivos /proc/<pid>/mem, combinada con ptrace para el control del proceso.

Características principales:

  • Acceso directo a memoria mediante sistema de archivos
  • Más eficiente que PTRACE_POKETEXT para cargas útiles grandes
  • Una única operación de escritura para todo el shellcode
  • Sin requisitos de alineación de palabras

Caso de uso: Inyección rápida de memoria en bloque, evitando las limitaciones tradicionales de ptrace

Leer más →


4. Inyección de Biblioteca con dlopen()

Directorio: dlopen_inject/

Técnica sofisticada que obliga a un proceso en ejecución a cargar una biblioteca compartida secuestrando la ejecución para llamar a dlopen().

Características principales:

  • Funciona en procesos ya en ejecución (a diferencia de LD_PRELOAD)
  • Persistente (la biblioteca permanece cargada)
  • Permite cargas útiles complejas con capacidades completas de biblioteca
  • Puede enganchar funciones como LD_PRELOAD pero después del inicio

Caso de uso: Inyección persistente avanzada, manipulación de bibliotecas en tiempo de ejecución

Leer más →


Inicio Rápido

Requisitos Previos

  • Sistema Linux (probado en x86_64)
  • Compilador GCC
  • Acceso root o capacidad CAP_SYS_PTRACE
  • Herramienta de compilación Make

Compilar Todos los Ejemplos

root@kitploit:~
# Compilar la inyección ptrace
cd ptrace && make all

# Compilar la inyección LD_PRELOAD
cd ../ld_preload && make all

# Compilar la inyección /proc/mem
cd ../proc_mem && make all

# Compilar la inyección dlopen
cd ../dlopen_inject && make all

Patrón de Uso Básico

Cada técnica sigue un patrón similar:

  1. Iniciar el proceso víctima:

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

    Anotar el PID mostrado

  2. Realizar la inyección:

    root@kitploit:~
    cd <technique>
    sudo ./<injector> <PID> [additional args]
    
  3. Observar los resultados: Comprobar la salida del proceso víctima para ver la ejecución del código inyectado

Consulta los archivos README individuales para obtener instrucciones específicas de cada técnica.

Matriz de Comparación

¿Cuándo Usar Cada Una?

  • ptrace: Aprender fundamentos, inyección simple de shellcode
  • LD_PRELOAD: Enganche rápido de funciones, depuración, cuando controlas el inicio del proceso
  • /proc/mem: Inyección rápida de cargas útiles grandes, cuando PTRACE_POKETEXT es demasiado lento
  • dlopen: Inyección persistente, cargas útiles complejas, cuando necesitas capacidades completas de biblioteca

Consideraciones de Seguridad

Medidas Defensivas

  1. Yama ptrace_scope: Restringir ptrace a usuarios privilegiados

    root@kitploit:~
    echo 1 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    
  2. SELinux/AppArmor: Controles de acceso obligatorios

  3. Monitorización: Usar auditd para registrar intentos de ptrace e inyección de procesos

    root@kitploit:~
    auditctl -a exit,always -F arch=b64 -S ptrace
    
  4. Comprobación de Integridad en Tiempo de Ejecución: Verificar periódicamente la memoria de los procesos

  5. Firma de Código: Verificar las firmas de las bibliotecas

Métodos de Detección

  • Monitorizar /proc/<pid>/maps para detectar regiones de memoria o bibliotecas inesperadas
  • Vigilar intentos de adjuntar ptrace mediante los registros del sistema
  • Comprobar las variables de entorno (LD_PRELOAD)
  • Usar herramientas como lsof, pmap y utilidades de monitorización de procesos
  • Activar módulos de seguridad del kernel

Aviso Legal y Ético

IMPORTANTE: Estas técnicas solo deben utilizarse en contextos autorizados:

Este repositorio es solo para fines educativos y de investigación. Los autores no son responsables del mal uso de estas técnicas. Obtén siempre la autorización adecuada antes de probar cualquier sistema.

Solución de Problemas

Problemas Comunes

Errores de permiso denegado:

  • Ejecutar con sudo
  • Comprobar /proc/sys/kernel/yama/ptrace_scope
  • Verificar las políticas de SELinux/AppArmor

La inyección falla silenciosamente:

  • Verificar que el proceso objetivo no esté enlazado estáticamente
  • Comprobar que el proceso objetivo tenga cargadas las bibliotecas necesarias
  • Asegurarse de que el shellcode sea correcto para tu arquitectura

Fallos de segmentación:

  • Verificar que estás en arquitectura x86_64
  • Comprobar que el proceso objetivo no esté protegido
  • Asegurar una alineación de memoria adecuada

Consulta los README de cada técnica para obtener orientación específica sobre solución de problemas.

Contribuciones

¡Las contribuciones son bienvenidas! Adiciones potenciales:

  • Técnicas de inyección adicionales (enganche GOT/PLT, manipulación de VDSO, etc.)
  • Equivalentes para Windows con fines de comparación
  • Herramientas de detección/prevención
  • Soporte para arquitectura ARM
  • Ejemplos adicionales de shellcode
  • Ejemplos de programación defensiva

Referencias

Documentación

  • man 2 ptrace - Llamada al sistema de trazado de procesos
  • man 5 proc - Documentación del sistema de archivos /proc
  • man 3 dlopen - Carga dinámica de bibliotecas
  • Código fuente del kernel de Linux: gestión de memoria de procesos

Investigación Relacionada

  • Técnicas de "Inyección de Procesos en Linux" y su evolución
  • Metodologías de "Inyección Ptrace"
  • Mejores prácticas de "Inyección de Bibliotecas Compartidas"
  • MITRE ATT&CK: T1055 (Inyección de Procesos)

Licencia

Consulta LICENSE.txt para obtener más detalles.

Aviso de Descargo de Responsabilidad

Este software se proporciona "tal cual" con fines educativos. Úsalo de manera responsable y ética. Obtén siempre la autorización adecuada antes de probar técnicas de seguridad en cualquier sistema que no sea tuyo.

Descargar herramienta
TécnicaComplejidadSigiloPersistenciaVelocidadFunciona en Proceso en Ejecución
ptraceMediaBajoNoMediaSí
LD_PRELOADBajaMuy BajoNoRápidaNo
/proc/memMediaBajoNoRápidaSí
dlopenAltaMedioSíMediaSí