Kambario Metasploit pažeidžiamumų paaiškinimas | TryHackMe Demonstracija

Tomas Savenas
savenas.lt
Published in
5 min readAug 5, 2020

--

Įvadas

Etiško įsilaužimo testuotojai neapsieitų be įvarių įrankių. Pirmajame ir viename svarbiausiu etapų: informacijai rinkti dažniausiai yra naudojamas nmap [1], kitas dažnai naudojamas įrankis yra Metasploit Framework. Tai atvyros kodo ir aktyviai palaikomas saugumo bendruomenės. Jis gali būti ne tik skeneris, bet ir pažeidžiamumo išnaudojimams ir prieigos išlaikimo priemonė. Taip pat gali būti prijungtas nmap. Metaploit yra interpretatorius visiems šiems moduliams. Jeigu atliekame įsibrovimo testą, mums yra patogu turėti viską vienoje sistemoje. Kompaniją Rapi7 kurie aktyviai palaiko Metaploit Framework, ir siūlo versiją su daugiau komponentų už papildomą mokestį. Mums susipažinti ir atlikti užduotį su Metasploit pilnai pakanka įprastos versijos. Jeigu reikia galime pasirašyti modulius, bei šablonus patys.

Metasploit įrankio panaudojimą galima būtų suskirstyti į trys fazes:

— įrakių paiešką ir pasirinkimą;

— Reikiamų nustatymų įvedimą;

— šablono panaudojimą, pažeidžiamumo patikrinimą arba išnaudojimą.

Tik vieno primityvaus pažeidžiamumo demonstraciją sudaro šios trys fazės, dažnu atveju pažeidžiamumų išnaudojimas yra kombinuotas procesas. Tai yra naudojami atskyri įrankiai ir moduliai tokie kaip “Revershell Shell” [3]. Po pažeidžiamumo išnaudojimo , dažnai taip nutinka, reikia grįšti į pirmą fazę ir ieškoti kito įrankio, kuris leistų atlikti prieigos išlaikymą, aukštesnių teisių gavimą.

Pasiruošimas

Kali Linux distribucijoje Metaspoilt yra įdiegtas. Tada mums apie diegimą, nereikia galvoti, tai yra tokiu atveju jeigu norime kitoje distribucijoje arba macOS tai padaryti galime naudoti šaltinį [2]. Dėl įrankio ar jo komponentų taip pat nereikia sukti galvos jis atnaujinamas kartu su operacinės sistemos programiniais paketais per pridėtas repozitorijas. Mūsų pusėje prie pradedant dirbti tereikia pirmam kartui inicijuoti duomenų bazę:

msfdb init

Pirmoji fazė

Pradėti galime nuo pagalbos funcijos apžiūrėkite ką siūlo ir kokius argumentus reikia įvesti. Pastebėjome, kad Linux ir panašioje operacinėse sistemose argumentai yra kviečiame su vienu minusu, kai yra tik raidžių trumpinys, o jeigu argumentas yra žodis tai naudojami du minusai. Tai yra programų kūrėjų susitarimas, tačiau retais atvejais gali pasitaikyti, kad kurie naudoja vieną minusą kartu su žodžiu.

msfconsole -h

Matome ilgą sąrašą.

Usage: msfconsole [options]Common options:-E, --environment ENVIRONMENT    Set Rails environment, defaults to RAIL_ENV environment variable or 'production'Database options:-M, --migration-path DIRECTORY   Specify a directory containing additional DB migrations-n, --no-database                Disable database support-y, --yaml PATH                  Specify a YAML file containing database settingsFramework options:-c FILE                          Load the specified configuration file-v, -V, --version                Show versionModule options:--defer-module-loads         Defer module loading unless explicitly asked.-m, --module-path DIRECTORY      Load an additional module pathConsole options:-a, --ask                        Ask before exiting Metasploit or accept 'exit -y'-H, --history-file FILE          Save command history to the specified file-L, --real-readline              Use the system Readline library instead of RbReadline-o, --output FILE                Output to the specified file-p, --plugin PLUGIN              Load a plugin on startup-q, --quiet                      Do not print the banner on startup-r, --resource FILE              Execute the specified resource file (- for stdin)-x, --execute-command COMMAND    Execute the specified console commands (use ; for multiples)-h, --help                       Show this message

Toliau, paleiskime Metasploit įrankį.

msfconsole

Matysime besikeičiančią reklamjuostę kartu su aprašymų kiek jame yra įrankių ir šablonų. Taip pat galime pradėti pagalbos funkcijos help, kuri parodys daugiau funkcijų ir aprašymų. Tai yra išplėstas menu kurį gausime tik užkrove Metasploit interpretatorių. Naudojant tabuliacijos klavišą užbaigsime vedamą komandą jeigu tokia yra, lygiai taip kaip Linux sistemoje. Taip pat esant Metasploit interpretatoriuje galima vesti Linux komandas ir matyti failų sistemą. Taip yra galimybė atskirai pasileisti nmap, kurio rezultatai bus įrašomi į duomenų bazę. Tai pravartu jeigu reikės sugeneruoti ataskaitą.

Šis įrankis naudoja postgresql duomenų bazę ir pasižiūrėti ar yra susijungusęs yra komandą.

db_status

Dažniausiai teks naudoti komandą search, nes tai patogiausias ir greičiausias būdas gautį šablonų ar įrankių sąrašą. Pvz.:

search wordpress

Turėsime virš 80 eilučių.

Mes galime matyti ar tai skenavimo, pažeidžiamumo išnaudojimo, ar teisių išlaikymo įrankis pagal kelio pradžia:

auxiliary/scanner/
exploit/
post/

Po auxiliary yra daugiau įvairių įrankiu. Tačiau apie juos mes šioje dalyje nekalbėsime, tada kai nagrinėsime praktiškai.

Pasirinkti galime dvejopai, su komandą ir nurodant paieškos eilutės numerį.

use 0

Arba įvedus pilną kelią

use exploit/unix/webapp/wp_admin_shell_upload

Pasirinkus pabloną, bus išskirtinai apskliaustas ir teksto spalva pasikeis į raudoną.

Jeigu nuobodžiaujate ir norite matyti kaip keičiasi reklamjuostė, naudokite komandą:

banner

Na štai užbaigėme su paieškos ir pasirinkimo etapu.

Antroji fazė

Šioje fazėje reikė nustatyti būtiniausius parametrus, tam kad pažeidžiaumų įrankis galėtų įrankis tinkamai veikti ir atlikti savo darbą. Būtini laukai pažymėti — “yes” stulpelyje “required”.

Komanda info suteiks informacijos apie autorių, parametrus arba galima įvesti komandą:

show options

Išves į ekraną, menu pasirinkimus ir tai ką turėtume įvesti, tam veiktų pasirinktas šablonas.

Atkreipkite dėmesį į stulpelį Name, jo parametrai yra dižiają raide. Taip pat nustatant reikės parinkti didžiosiomis raidėmis.

Parametrų parinkimas su komandą set pavyzdys atrodo taip:

set RHOSTS 10.10.10.10

Rezultatas:

RHOSTS => 10.10.10.10

su get komandą ir nurode argumentą gausime priskyrtą argumentą.

Norinti išvalyti turimą kintamąjo reikšmę naudokime unset.

Galime įvesti dar kartą komandą show options ir pamatysime ar pasikeitė ir kiek liko įvesti parametrų. Jeigu liko įvedame juos, priešingu atveju išves į ekraną klaidą ir neleis įvykdyti trečios fazės.

Papildomai galima užsaugoti to šablono parametrus kitam kartui su komandą save, esant reikalui, yra pasirinkimas išvesti ekrano rezultatus į failą su komandą spool.

Trečioji fazė

Šioje fazėje jeigu teisingai viskas parinkta paleiskime komandą check jeigu rezultas teigiamas, neišves klaidos apie parametrus, ir apie sėkmingą pažeidžiamumo egzistavimą, tuomet galėsime paleisti komandą run arba exploit. Abi komandos veikia lygiai taip pat, tik viena aiškiai apie save pasako, kad skirta pažeidžiamumo išnaudojinui. O kitą kai norine paleisti įrankį, ar įskiepį.

Demonstracija

Pasibandykime su demonstraciniu kambariu Metasploit, Try Hack Me platformoje. Paleiskime VM su mygtuku Deploy. Tai truks iki vienos minutės.

Mes jau esame susipažine su nmap įrankiu, šioje dalyje mes naudosime, kad veiktų Metasploit interpretatoriaus komandą. Pastaba IP adresas skirsis.

db_nmap -sV 10.10.116.136

Rezultatus pamatysime po skenavimo, ir jie automatiškai išsaugomi duomenų bazėje.

Juos dar kartą peržiūrėti galime atitinkamom komandomis

hosts
services

Išnaudojus pažeidžiamumą, reiktų gauti aukštesnes prieigos teises. Migruoti į paslaugą, kuri turi daugiau teisiu. Turime jau turėti meterpreter sesiją, t.y. išplėčiamasis įrankis, turi daugiau galimybių dirbti sistemoje ir jos procesuoje atmintyje. Jis papildo komandas kurias gali atlikti Metasploit. Jas galime peržiūrėti su help. Toliau migruosime į kitą paslaugą.

migrate -N spoolsv.exe

Galėsime daugiau sužintoti po sėkimgo migravimo apie paslaugos teises.

getuid

Dar vienas modulis yra kiwi, tai dar kitaip žinomas mimikatz, tik pritaikytas meterpreter sesijai.

Galima įsivertinti kokie ar operacinė sistemą užkrauta ant geležies ar VM.

run post/windows/gather/checkvm

Dar vienas puikus įrankis kuris gali parodyti, kokiems dar pažeidžiamumas neatspari ši VM. Tai

run post/multi/recon/local_exploit_suggester

Atsakykite į likusius klausimus.

Šaltiniai

#1 https://medium.com/hackerman-lt/kas-yra-nmap-ir-kaip-juo-naudotis-49a376400e8c
#2 https://medium.com/@tomas_savenas/kali-2018-4-and-metasploit-framework-5-0-73190afc9d96
#3 https://medium.com/hackerman-lt/kas-yra-reverse-shell-ir-kaip-juo-naudotis-9d9bd43d1207

--

--

Tomas Savenas
savenas.lt

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