
Persistnux — Actualizado!
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.
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.allowy/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.localy 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.soen 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 directivasinstallen busca de objetivos de comando sospechosos; elblacklistde 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.komediantemodinfoy se verifican - Módulos del kernel cargados (
lsmod): enumeración y verificación de integridad
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
.sose 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.soen/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.confy~/.pam_environment - Escaneo general de
/etc/security/
- Todos los módulos
- 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
8. Persistencia SSH
~/.ssh/authorized_keyspor usuario: claves modificadas recientemente marcadas; se analiza el contenido de la opcióncommand=en busca de patrones sospechosos~/.ssh/rcpor 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 -Ven Debian/Ubuntu,rpm -Vaen 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-pivotque 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
.pklaconResultAny/ResultInactive/ResultActive=yesincondicionales - Concesiones de identidad comodín (
unix-user:*) - Archivos
.rulesconpolkit.Result.YESincondicional (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="*"osend_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/cronenRUN+=(evasión común de restricciones de primer plano)
14. Escape de contenedores
- Contenedores Docker privilegiados (
--privileged,--pid=host) - Montajes bind de
docker.socken contenedores (control total del host a través de la API de Docker) nsenter -t 1en puntos de entrada de contenedores o Dockerfiles- Dockerfiles en directorios editables por el usuario que contienen técnicas de escape