Tunkeutumistestaus – h1

Tunkeutumistestaus

http://terokarvinen.com/2018/penetration-testing-course-autumn-2018

http://www.hackingarticles.in/hack-metasploitable-3-using-mysql-service-exploitation/

https://resources.infosecinstitute.com/learning-pentesting-metasploitable3-part-2/#article

https://linux.die.net/man/1/nmap

https://www.thomaslaurenson.com/blog/2018/07/08/metasploitable3-pentesting-the-ubuntu-linux-version-part1/

 

Teen harjoituksen kannettavalla läppärillä, johon on asennettu Xubuntu 18.04.1

Harjoitusympäristö on luotu käyttäen Tero Karvisen ohjeita vagrantilla:

http://terokarvinen.com/2018/install-metasploitable-3-vulnerable-target-computer

 

h1

  1. Tehtävänä on kokeilla jotakin OWASP 10 hyökkäystä harjoituskoneella. Yritän ensiksi simppeliä SQL injektiota.

Alkutilanteessa haavoittuva kohde on tehty virtuaalisena ja löytyy osoitteesta localhost:8080.

Localhost:8080 osoitteesta löytyy phpmyadmin hallintapaneeli ja payroll_app.php, joten on ilmiselvää, että taustalla pyörii väkisinkin SQL palvelu.

Aloitetaan kokeilemalla eri kirjautumistunnuksia payroll_appiin. Tunnilla opittu ’ OR 1=1 ja sen variaatiot tuntuvat rikkovan kyselyn, sivu palauttaa vain tyhjän ruudun. Salasana kenttä näyttää toimivan tyhjänä, mutta testailun aikana olen kirjoitellut siihen täytetekstiä, jos kysely hajoaa sen takia.

https://www.thomaslaurenson.com/blog/2018/07/08/metasploitable3-pentesting-the-ubuntu-linux-version-part1

Lyhyen selvittelyn jälkeen selvisi, että injektio toimii, jos syötteeseen lisää # merkin loppuun. Näin sivulta saadaan ulos kaikki käyttäjät, joilla voitaisi kokeilla sisäänkirjautumista koneelle.

Periaatteessa tehtävä on tällä suoritettu. Harjoitusympäristön rakentamisessa tuli yllättävän paljon ongelmia, eri virtualisointiratkaisut eivät tuntuneet toimivan kunnolla, ja useiden tuntien jälkeen oli pakko luovuttaa. Palaan tähän tehtävään myöhemmin tutkittuani asiaa lisää. Edit: 27.8. luulen, että # toimii, koska googlailun perusteella MySQL tuntuu tulkkaavan merkin # nykyiseksi tauluksi, tai jotain sen tyylistä. Sen takia se luultavasti näyttää koko taulun.

—————————–

27.8. jatkoa

https://roopelinux.wordpress.com/2018/08/27/penetration-testing-1-owasp-10/

Keskustelin ryhmätoverin kanssa harjoituksesta, ja jaoimme hiukan vinkkejä. Olin SQL injektiossa muuten oikeassa, mutta jätin virheellisesti salasanan tyhjäksi huonoissa kohdissa, jolloin en päässyt aina sisään, vaikka olisi ”pitänyt”. Eli siis ‘ OR ” = ‘ olisi toiminut, mutta se pitää syöttää molempiin kenttiin. Muuten kysely hajoaa.

Roope on loistavasti saanut omat tehtävänsä tehtyä keskustelumme jälkeen, harjoituksen vuoksi toistan osan samoista toimista. Käytän apuna pääasiassa Roopen käyttämää opasta: https://docs.google.com/document/d/1SDbTN4BDqE5W_mpANK8v4EgZndK9tgEeTy7A_k7MQr4/edit#heading=h.3yemd5z953oq

Nyt kun olemme saaneet käyttäjistä taulun injektion kautta, kokeillaan mitä muuta voimme tehdä SQLMapilla. Koska teen harjoituksen Xubuntulla, täytyy SQLMap asentaa ensin.

$ sudo apt-get install sqlmap

Käytetään SQLMappia ohjeiden mukaisesti:

$ sqlmap -u http://xx.xx.xx.xx:8080/payroll_app.php --data=”user=admin&password=admin&s=OK”

xx.xx.xx.xx on tietokoneen, jolla vagrant kone sijaitsee,  paikallinen osoite.

Pätkän ja oikeastaan sqlmapin idea on ilmeisesti, että se hakee haavoittuvuuksia kokeilemalla jonkin stringin syöttämistä.

SQLMap löytää haavoittuvuksia. Ohjelma kysyy, että testataanko muitakin haavoittuvuuksia ’user’ parametrin löytymisen jälkeen. Vastasin näihin muutaman kerran Y.

Samoin parametri ’password’ on haavoittuva.

Injektio on helpompi toteuttaa SQLMap Shellin kautta, joten poistutaan SQLMapista (CTRL + C) ja mukautetaan aiempaa komentoa:

$ sqlmap -u http://xx.xx.xx.xx:8080/payroll_app.php --data=”user=admin&password=admin&s=OK” --sqlmap-shell

Kun shell on käynnistetty, annetaan komento –dump. –dump suorittaa saman testauksen, kuin aikasempi, mutta tällä kertaa SQLMapin omassa shellissä. Ohjelma saattaa kysellä, että testataanko lisää asioita ’user’ parametrin jälkeen. Vastasin näihin Y, kunnes ohjelma näyttää injektiomahdollisuudet, ja kysyy mikä valitaan. Opas ei kommentoi tätä vaihetta mitenkään, joten ehkä molemmat näistä vaihtoehdoista käy. Valitsin vaihtoehdon [0], Roopen blogin mukaan. Tällä ei luultavasti olisi ollut väliä, koska ohjelma väittää molempien vaihtoehtojen olevan injektiopointteja.

Homma onkin tällä näköjään selvä, SQLMap osaa tämän perusteella heittää ruutuun listan käyttäjistä ja niiden salasanoista. Kokeilun vuoksi käynnistän Metasploitable koneen Virtualboxin kautta, ja yritän kirjautua sisään jollakin näistä:

Ja hommahan lähti toimimaan. Nyt olemme siis saaneet ajettua automatisoidun SQL injektion SQLMapin kautta. Saimme kaivettua tietokannan käyttäjistä kuten aiemmin, mutta myös salasanat. Kokeilimme salasanojen toimintaa koneella, ja pääsimme kirjautumaan sisään.

———————————–

Loppuajatuksia:

 

Haastavinta harjoituksessa oli harjoitusympäristön käyttöönotto, vaikka se tuntuukin uskomattomalta. Lähdin liikkeelle niin, että yritin Windows koneella virtualisoida Xubuntun, ja taas sen sisälle tuon vagrant metasploitable boksin, mutta se ei tietenkään onnistu koska virtualisointia virtualisoinnin sisällä. Koitin monia kombinaatioita Kalin ja Xubuntun kanssa, myös oikealla läppärillä.

Useiden tuntien jälkeen lähimmäksi pääsin, kun sain vagrantin pystyyn, ja sain avattua tuon localhost:8080 onnistuneesti. Suuri osa ajasta meni sen ihmettelemiseen, kun mietin, että miten esim. nmap pääsisi skannaamaan tuon vagrant koneen portit, kun se pyörii paikallisen koneen portissa 8080. Nyt jälkikäteen, onhan se selkeää, kun ajattelee, että vagrant koneen liikenne kulkee vain tämän 8080 portin kautta. Lisäksi sotkin tähän Virtualboxin ilman vagrantia, ja sekin sekotti pakkaa. Tähän hölmöilyyn kului kuitenkin valitettavan paljon aikaa. Uskon, että tämän temppuilun jälkeen tulevat tehtävät tulevat menemään ainakin valmistelun osalta paljon helpommin, ja pääsen oikeasti asiaan huomattavasti nopeammin.

Seuraavana päivänä juttelin Roopen kanssa (blogi linkattu ylempänä) tästä, ja saimme koottua ajatuksia siten, että pystyimme molemmat jatkamaan omien ongelmiemme kanssa. Kun sain SQLMapin tutkailemaan tuota konetta, loput harjoituksesta sujui mukavasti.

Haluaisin vielä yrittää tunkea sisään jatkossa jonkun payloadin Metasploitin kautta, mutta sitä pitää tutkia myös lisää, ennen kuin lähden sekoilemaan.  Tai sitten ehkä jossain toisessa harjoituksessa.

 

This entry was posted in Uncategorised. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.