Kybertappoketju, nmap, metasploit ja harjoitusmaalit - Tunkeutumistestaus viikkotehtävä 2
TLDR
Tehtävässä asensin metasploit2 haavoittuvan järjestelmän ja tunkeuduin siihen msfconsolen sekä SQLinjectionin avulla. Asensin VulnHubista harjoitusmaalin ja kokeilin tunkeutua siihen tuloksetta.
Lue artikkelit ja tee muistiinpanot - Tehtävä Z
Ensimmäisenä tehtävänä oli lukea Hutchins et al 2011: Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains , sekä Jaswal 2020: Mastering Metasploit - 4ed: Chapter 1: Approaching a Penetration Test Using Metasploit ja tehdä näistä muistiinpanoja muutamalla ranskalaisella viivalla per artikkeli ja/tai video.
Cyber kill chain
- Tehokas hyökkääminen vaatii suunnitelmallisuutta
- Jokainen edellinen kohta listasta suoritettava, jotta seuraavaan voi siirtyä. Siksi tätä kutsutaan ketjuksi
- Puolustautuessa hyökkäyksiltä on tärkeää ymmärtää, kuinka hyökkäys tapahtui
- Suosituimmat tavat toimittaa vihamielinen ohjelma kohdekoneeseen vuosina 2004-2010 olivat
- Sähköpostin liitetiedostot
- Verkkosivut
- USB-laitteet
Mastering Metasploit
- Metasploit helpottaa tekee useiden järjestelmien testaamisesta kerralla helpompaa
- Testauksessa tärkeää määrittää kohde, sekä testauksen laajuus
- Metasploit tukee käyttäjän itse luomia moduuleja, sekä on avoimen lähdekoodin softaa
Listaa työkaluja ja tekniikoita jotka sopivat kuhunkin kybertappoketjun kohtaan - Tehtävä A
Seuraavaksi vuorossa oli listata tappoketjun seitsemään kohtaan sopivia työkaluja tai tekniikoita, sekä kokeilla 1-3 niistä työkaluista. Työkalujen kokeilun hoidan tehtävässä b.
- Reconnaissance - Tiedustelu
- Tiedustelua voi tehdä passiivisesti. Esimerkiksi selata kohteen webbisivuja tai työntekijöiden linkedin profiileja kerätäkseen tietoa
- Aktiivisessa tiedustelussa käytetään esimerkiksi porttiskanneria saadakseen tietoa palvelimen palomuurin avoimista porteista.
- Weaponization - Aseistus
- Esimerkiksi pdf tiedoston muuttaminen haitalliseksi, tai office tuotepaketin ohjelman haitallisen makron valmistaminen
- Metasploitista löytyy lista käyttövalmiita hyötykuormia, joita voi käyttää haavoittuviin järjestelmiin
- Delivery - Toimitus
- Nimensä mukaisesti vihamielinen hyötykuorma toimitetaan kohdejärjestelmään
- Esimerkiksi aikaisemman listan mukaan sähköpostin liitetiedostona
- Exploitation - Hyväksikäyttö
- Toimituksen jälkeen aseistettua ohjelmaa käytetään kohdejärjestelmässä. Eli hyväksikäytetään haavoittuvuutta
- Installation - Asennus
- Asennetaan kohdejärjestelmään takaovi, jonka avulla hyökkääjät pääsevät haavoittuneeseen järjestelmään uudestaan
- Command and Control - Käske ja hallitse
- Kun takaovi on asennettu, pääsee hyökkääjät suorittamaan komentoja kohdejärjestelmässä
- Esimerkiksi Meterpreter
- Actions on objectives - Kohdejärjestelmässä suoritettavat tehtävät
- Tämä vaihe riippuu siitä, mitä hyökkääjä on aluperin halunnut tehdä kohdejärjestelmässä
- Esimerkiksi Smart hashdump salasanahashien saamiseksi
Asenna Metasploitable2 ja murtaudu siihen useilla tavoilla - Tehtävä B
Metasploitable2 asennus virtualboxiin oli erittäin suoraviivainen. Ensin täytyi ladata Metasploitable2 asennuspaketti. Tämä on saatavilla täältä. Latauksen jälkeen zip tiedosto täytyy purkaa ja puretusta kansiosta löytyy Virtual machine disk format muodossa oleva tiedosto. Tätä käytetään Virtualboxissa kovalevyn valinnassa.
Ennen Metasploitable2 käynnistämistä täytyy virtualboxin asetuksista muuttaa tämän kyseisen boxin verkkokortti Host-Only adapteriksi
. Näin haavoittuva Metasploitable2
ei saa otettua yhteyttä internetiin vaan liikenne pysyy paikallisten virtuaalikoneiden sisällä.
Vastaavasti Kalin asetuksista täytyy lisätä uusi verkkokortti joka on vastaavasti Host-only adapter
. Harjoitusten suorittamisen ajaksi voi Kalin NAT verkkokortista ottaa “johdon
irti”. Tämä on käytännössä sama, kun vetäisit ethernet kaapelin irti tietokoneestasi. Näin varmistetaan, ettei vahingossa oteta yhteyttä muualle kuin paikallisverkossa
olevaan Metasploitable2 virtuaalikoneeseen.
Kävin tarkistamassa metasploitable2 sen paikallisen IP osoitteen, jotta tiedän mihin kohdistan hyökkäykset. Metasploitable2 pääsee kirjautumaan sisään msfadmin
:msfadmin
tunnuksella.
Seuraavaksi tarkistin, etten voinut ottaa yhteyttä googlen dns palelimeen (eli ulkopuoliseen internettiin) ja sainko vastauksen metasploitable2 koneelta
Tiedustelua
$ sudo msfconsole
komennolla avasin metasploitablen komentorivillä ajettavan ohjelman ja varmistin yhteyden tietokantaan. Seurasin
täältä löytyneitä ohjeita tietokannan käyttöönotossa
Loin myös uuden workspacen msfconsolen sisään workspace -a metasploitable2
komennolla.
Nyt pystyn ajamaan db_nmap
komentoa, joka tallentaa nmap skannauksen tuloksen suoraan tietokantaan.
msf6 > db_nmap -sV 192.168.56.101
Tämä komento ajaa porttiskannauksen versioiden tarkastuksella Metasploitable2 virtuaalikoneen osoitteeseen paikallisessa verkossani. Mikäli lukija kokeilee tätä itse tulee huomioida, ettei Metasploitable2 osoite todennäköisesti ole sama. Tarkista kohteen osoite ennen kuin ajat mitään komentoja.
Services
ja hosts
komennoilla voi hakea tietokannasta nmap skannauksen tuloksia
Exploitin etsiminen ja hyökkäys
Seurasin luennolla näytettyä esimerkkiä ja etsin portissa 21 olevan ftp palvelun versiolla mahdollisia exploitteja
msf6 > search vsftpd 2.3.4
Seuraavaksi valitsin ainoan tarjolla olevan exploitin, asetin kohteen ja exploit komennolla kokeilin pääsisikö kerrasta sisään
Näin saimme root käyttäjän virtuaaliboxiimme.
Seuraavaksi siirsin tämän shellin taustaprosessiksi ctrl+z
näppäinyhdistelmällä ja yritin ylentää kohdejärjestelmän komentokehotteen meterpreter shelliksi
sessions -u 1
Tämä ei kuitenkaan vaikuttanut onnistuvan.
Seuraava portti
Etsin netistä tietoa metasploitable2 järjestelmän haavoittuvuuksista, ja metasploitable2 omasta documentaatiosta löytyi esimerkki
myös portissa 6667
pyörivästä palvelusta. Sivuston ohjeesta poiketen täyty lisätä hyötykuorma tähän exploittiin itse. show payloads
komennolla saa listan tarjolla
olevista hyötykuormista. Valitsin vaihtoehdon 5
Takaisin sain ilmoituksen, ettei komentorivisessiota saatu avattua. Täytyy palata tähän kohtaan myöhemmin takaisin.
Mutilidae
Siirryin kalin verkkoselaimella virtuaalikoneen osoitteeseen ja valitsin sieltä Mutilidaen johon koitan päästä murtautumaan.
Testasin ensimmäisenä Sqlinjectiota sisäänkirjautumis lomakkeen käyttäjänimi kohtaan
' OR 1=1--
Vastauksena sain virheilmotuksen
Googletin virheilmoituksen ja tästä youtube videosta ilmeni, että metasploitable2 virtuaalikoneen asetuksissa on säädettävää.
Vaihdoin siis $dbname
riville tietokannan nimeksi owasp10
alkuperäisen metasploit
sijaan.
Palasin mutilidaen sivulle, nollasin tietokannan Reset DB napilla ja yritin sqlinjectiota uudestaan
Asenna jokin virtuaalikone vulnhubista ja tunkeudu siihen - Tehtävä C
Viimeisenä vuorossa oli asentaa VulnHubista jokin virtuaalikone ja tunkeutua siihen. Valitsin
tätä tehtävää varten Bluemoon 2021 boksin. Ladattu tiedosto täytyi importata virtualboxiin.
Virtualboxissa File -> import Appliance
. Tuontia hyväksyttäessä poistin valinnan usb controllerista ja hyväksyin muut. Asennuksen jälkeen ennen
ensimmäistä käynnistystä muutin asetuksista bluemoonin verkkoadapterin Metasploitable2 tapaan Host-only Adapteriksi
.
Koneen ip osoitteen etsiminen
Tätä varten käytin $ netdiscover -r 192.168.56.0/16
komentoa etsiäkseni bluemoonin osoitteen paikallisesta verkosta. Vastaukseksi sain kolme osoitetta
192.168.56.1
192.168.56.100
192.168.56.103
Testasin näitä selaimessa ja jokaisessa luki sivuston titlenä BlueMoon:2021
. 103 loppuisesta osoitteesta aukesi seuraava sivu
Jälleen kerran muistutan lukijaa, että osoitteet jotka näkyvät minulle ei todennäköisesti ole samat kuin lukijalla.
Seuraavaksi avasin msfconsolen, loin uuden workspacen nimeltä bluemoon ja tein db_nmap skannauksen 103 päätteiseen osoitteeseen.
Vastauksena tuli takaisin seuraavat palvelut
Etsin metasploitista avoimien palveluiden versioilla mahdollisia exploitteja tuloksetta.
Muistelin, että luennolla mainittiin wfuzz olisi kalissa jo valmiina. Päätin kokeilla tätä wfuzzin common.txt sanalistan avulla.
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.56.103/FUZZ
Wfuzz toimi erittäin nopeasti, mutta kaikki vastaukset olivat 404 (not found).
Luennoilla emme ole kerinneet käymään vielä enempää tunkeutumistekniikoita ja kello on tätä raporttia kirjoittaessa 02:00. Suljen siis koneeni tältä erää ja palaan tämän boxin pariin, kun tiedän enemmän.
Edit 13.4.2021
Tunnilla sain uutta tietoa Bluemoon boxin suhteen. Luennolla omia ratkaisujaan esitteli Anton. Itse en ollut löytänyt apua tähän tehtävään googlen avulla, mutta onneksi hän oli! Seuraan nyt siis hänen ratkaisuaan, jotta pääsen etenemään Bluemoonissa.
Wfuzzin avulla en ollut löytänyt hidden_text
tiedostoa. Tämän sisältä löytyi linkki ja .png kuva
Latasin tämän wget komennolla, ja muutin qrkoodin tekstiksi käyttäen zbarimg
ohjelmaa.
Näiden tietojen avulla pääsin kirjautumaan ftp:n kautta sisään. Kirjautumisen jälkeen tiedostoja listatessa ftp ilmoitti "500 Illegal PORT command
virheilmoituksen.
Löysin ratkaisun ongelmaan täältä.
ftp>ls
komennolla löytyi kaksi tiedostoa. Latasin nämä molemmat paikalliselle koneelle ftp>get "tiedoston nimi"
komennon avulla
information.txt
tiedoston sisätltä löytyi kehotus robin
nimiselle henkilölle päivittää hänen salasanansa. Kirjoittaja on ollut niin ystävällinen, että on antanut hänelle
listan salasanoista joita voisi käyttää.
Hydran avulla voi kokeilla ladattua salasanalistaa ssh kirjautumiseen
hydra -l robin -P p_lists.txt -t 4 ssh://192.168.56.103
Hydra löysikin salasanan oikein nopeasti
Salasana oli toimiva ja näin sai user flagin löydettyä
$ sudo -l
komennolla voimme tarkistaa onko käyttäjällä sudo-oikeuksia, sekä mitä komentoja käyttäjä pystyy ajamaan sudona.
Robin käyttäjä voi siis ajaa jerry käyttäjän kautta yhden sudo komennon, joka on feedback.sh
scripti.
$ sudo -u jerry /home/robin/projects/feedback.sh
Näin saimme suoritettua feedback.sh komennon jerry käyttäjällä. Kirjoitin bash
jälkimmäiseen kenttään ja sain komentokehotteen jerry käyttäjänä
Jerry käyttäjä on docker ryhmän jäsen, joten alpine containerin avulla voimme saada pääsyn tietojärjestelmän juureen tietämättä jerryn salasanaa.
docker run -it --rm -v /:/mnt alpine
Yritin ensimmäisellä kerralla tehtävää tehdessäni etsiä läpikävelyä Bluemoonista, mutta en sellaista löytänyt. Onneksi Anton oli löytänyt tämän blogipostauksen, josta löytyi apua. Omin apuineni en todennäköisesti olisi selvinnyt tästä boxista, vaikka vastaus on näin jälkeenpäin melko yksinkertainen.
/Edit 13.4.2021