Retour aux mises à jour
UpdatedJul 28, 2026

persisthunt — Mis à jour !

Script de détection de persistance, de chasse et de collecte d'artefacts Linux

Partager

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

Techniques

Catégories