🦠 TAMASHII v5 - Worm Lab Propagation 2025
Script Python offensif pour simulation de propagation autonome en environnement lab isolé – analyse, exécution, et défenses éthiques.
🎯 Introduction & Philosophie
Bienvenue dans cette masterclass TAMASHII v5, un worm Python remanié par Platon-Y pour Echoes of Hackers. Ce script simule une propagation autonome en lab isolé, sans C2 centralisé, pour étudier les mécanismes de malware avancés. On attaque pour mieux défendre – usage éducatif only, avec éthique stricte. Toute exécution hors lab = conséquences légales. On va décortiquer le code, expliquer son flow, et finir par des protections solides pour transformer ce savoir en bouclier cyber.
Violent mode à tester avec prudence – pas de traces réelles hors simu.
Nous attaquons pour mieux défendre
🛠️ Prérequis
- Environnement Kali Linux isolé (VM ou réseau fermé)
- Outils : arp-scan, nmap, sshpass, nmcli, vtysh (pour BGP simu)
- Cibles lab : Machines virtuelles sur 10.13.37.0/24 ou 192.168.x.x
- Python 3.10+ avec modules standards (os, subprocess, etc.)
- Connaissances : Réseau, SSH, Modbus, BGP basiques
- Éthique : Test en mode non-violent d'abord !
🔍 Analyse du Code
Voici le script complet – un worm furtif, multithread, avec persistance, discovery dynamique, et ops sur protocoles industriels (Modbus, BGP). Toggle VIOLENT_MODE via env pour tests safe.
⚠️ CADRE JURIDIQUE FRANÇAIS - LISEZ ATTENTIVEMENT
Conformément aux articles 323-1 à 323-3-1 du Code Pénal :
- Ce code est fourni à des fins de RECHERCHE ACADEMIQUE uniquement
- L'exécution nécessite une AUTORISATION ÉCRITE du responsable du lab
- Vous devez être inscrit dans un établissement d'enseignement supérieur
- Conservez cette autorisation pendant 3 ans (Art. 6 Loi 78-17)
Je certifie être chercheur/étudiant en cybersécurité
Je dispose d'une autorisation écrite pour ce lab
Je n'utiliserai pas ce code en production
🦠 Fonctionnement Détaillé
Phase par phase, voilà comment TAMASHII v5 opère en lab – propagation sans C2, furtive et autonome.
- Persistance : Copie le script en endroits cachés (/tmp, /var, /usr), chmod +x, et crée un service systemd pour redémarrage auto. Furtif avec noms innocents comme ".sys-up".
- Exec Shellcode : Exécute du code ASM inline via ctypes. En mode violent : spawn /bin/sh ; sinon : exit safe. Idéal pour payloads minimaux sans fichiers.
- Discovery Targets : Scan ARP local, Nmap furtif (-T2), et WiFi/GSM via nmcli (connex auto à APs publics). Fallback sur subnet complet si rien trouvé.
- Propagate : Shuffle targets, multithread (50 workers), infect SSH + Modbus par IP. Jitter random pour éviter détection. Appelle BGP et shellcode en violent.
- Infect SSH : Brute light (users/pwds lab-style), copie script via base64, chmod/nohup pour exécution bg.
- Modbus/BGP/Scoreboard : Ops sur port 502 (Modbus write/read), BGP network announce via vtysh, et envoi messages à 10.13.37.254:1337 pour "scoreboard" simu.
- Carnage : Délais phasés (180s deploy, 480s prop, 300s delete en violent), thread daemon pour run infini avec sleep random (1-2h).
🛡️ Stratégies de Protection – Parce qu’on attaque pour mieux se défendre
Maintenant qu’on a vu TAMASHII faire son carnage en lab… on passe aux choses sérieuses : comment on le stoppe net. Parce que oui, on est des attaquants dans ce contexte, mais on est d’abord des protecteurs. On ne laisse jamais un outil comme ça sans bouclier.
- Isolation réseau (la base de tout) :
- SSH en mode parano : Plus jamais de mot de passe. Jamais. Key-only, Fail2Ban avec 3 tentatives = ban IP 7 jours, et surtout :
PAM + Google AuthenticatorouYubiKey. Root login désactivé, connexion uniquement via un bastion. Et on monitore /var/log/auth.log avec OSSEC ou Wazuh en temps réel. - Protocoles industriels (Modbus, BGP, etc.) : Port 502 fermé à l’extérieur. Point. Si besoin d’accès distant : VPN site-to-site avec IPsec ou WireGuard chiffré en AES-256. vtysh ? Seulement sur les routeurs, jamais sur les stations d’ingénierie. Et on désactive nmcli sur les hosts critiques – pas besoin de se connecter au Wi-Fi du McDo en pleine usine.
- Détection de persistance : Tous les matins, un petit script qui fait :
systemctl list-unit-files | grep -v disabled→ on regarde les services suspectsfind /tmp /var/tmp /dev/shm -type f -executable→ on traque les binaires cachés- AIDE ou Tripwire en daily check
- SELinux en enforcing + AppArmor profiles strictes
- Monitoring qui ne dort jamais : Wazuh + ELK (ou Graylog) avec des règles spécifiques :
- Détection de shellcode en mémoire (Sigma rules)
- Alertes sur création de processus fils de python/ssh sans parent légitime
- Surveillance des écritures dans /tmp + /var/tmp
- CrowdStrike Falcon, Carbon Black ou Microsoft Defender for Endpoint en mode blocage agressif
- Best practices qu’on répète en boucle (et qu’on applique !) :
- Least privilege partout (même pour les admins)
- Mot de passe ? Minimum 25 caractères + passphrase
- Honeypots dans chaque VLAN (Canarytokens, OpenCanary)
#!/bin/bash # Nettoyage TAMASHII - à lancer en root après un exercice echo "🔥 Nettoyage post-TAMASHII en cours..." # Services suspects systemctl disable --now cache-helper.service log-rotate.service systemd-log-rotate.service 2>/dev/null || true rm -f /etc/systemd/system/*helper*.service /etc/systemd/system/*rotate*.service # Fichiers cachés classiques rm -rf /tmp/.sys* /tmp/.tam* /var/lib/.cache* /usr/local/bin/.log* /usr/local/bin/.helper* /home/.hidden* 2>/dev/null # Cron jobs crontab -r 2>/dev/null rm -f /etc/cron.d/*rotate* /etc/cron.d/*helper* 2>/dev/null # iptables rapide iptables -F iptables -A INPUT -p tcp --dport 502 -j DROP iptables -A INPUT -p tcp --dport 22 -m recent --set --name ssh iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --name ssh -j DROP systemctl daemon-reload echo "✅ Système propre – prêt pour le prochain round !"
🏆 Défis & Extensions
Défi 1 : Ajoute obfuscation (pycryptodome) pour evasion AV.
Défi 2 : Intègre ML (scikit) pour adaptive scanning basé sur responses.
Défi 3 : Crée un dashboard Grafana pour monitorer propagation en lab.