
persisthunt — Mis à jour !
Script de détection de persistance, de chasse et de collecte d'artefacts Linux
Détection de persistance Linux, chasse aux menaces et collecte d'artefacts
Résumé
persisthunt.sh accélère les investigations en collectant des artefacts ciblés liés à la persistance et en signalant les modèles suspects couramment associés aux techniques de persistance Linux.
Le script aide à la détection de persistance, à la chasse aux menaces et à la collecte d'artefacts à travers les mécanismes de persistance Linux bien connus. Les résultats sont classés en trois niveaux — High, Low et Informational — selon la confiance et la sévérité. Les exemples incluent des entrées d'exécution automatique suspectes référençant /tmp/, /home/, /dev/tcp, curl, ou la détection de shells bind/inverses actifs.
Il est conçu comme une base flexible que les défenseurs peuvent personnaliser pour leurs environnements en ajoutant ou en supprimant de la logique de détection et des mots-clés. La sortie peut être volumineuse et nécessiter une analyse spécifique à l'environnement, mais elle convient également à la revue et à la synthèse à l'aide de LLM ou d'agents IA.
Utilisation
Exécutez en tant qu'utilisateur root et redirigez la sortie vers un fichier
sudo persisthunt.sh > output.log
Exécutez sur un hôte distant via SSH
ssh [email protected] 'bash -s' < persisthunt.sh > output.log 2>&1
Exemples de détections
=== [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