Tunkeutumistestaus vko. 5

Raportissa on vastaukset Haaga-Helia Ammattikorkeakoulu Tunkeutumistestaus -opintojakson tehtäviin. Kurssi perustuu Tero Karvisen materiaaleihin.

Kirjoittamani materiaali saa muuttaa, jakaa, käyttää ja kopioida GNU General Public License v.3.0 mukaisesti.

Tehtävänanto

Vinkkejä:

  • Muista merkitä harjoitusmaalisi ZAP:ssa kohteeksi, in scope.
  • Tallenna itsellesi HackTheBox:n säännöt (oikealla ylhäällä kysymysmerkki pallossa, Rules)
  • HTB VPN: Oikeasta ylänurkasta “Connect to HTB”, “Starting Point”, “OpenVPN”, “UDP 1337”, “Download VPN”, sitten(ulkomuistista) ‘sudo openvpn tero.ovpn’
  • HTBssä on kaksi VPN verkkoa, “Starting point” ja “Machines”. Niiden koneet eivät näy toiseen verkkoon.
  • Spawn the Machine. Nykyisin HTB:n koneet pitää käynnistää, ennenkuin niillä voi harjoitella. Eli tyhjän verkon skannailu ei paljoa lämmitä… Eka kone https://app.hackthebox.com/starting-point ja “Spawn Machine”. Kun kone on käynnistynyt, sen IP-osoite näkyy spawn-napin tilalla.
  • Kokeile, että pakettisi menevät oikeaan verkkoon HTB:n VPN:ssä.
  • Fawn: root flagin saa roottaamatta konetta

a) Totally Legit Sertificate. Asenna OWASP ZAP ja sen CA-sertifikaatti selaimeesi. Jos sinulla on jo ZAP, generoi uusi sertifikaatti ja asenna se.

OWASP ZAP v. 2.11.0 tuli valmiiksi Kalin mukana.

WebGoat pyörii portissa 8080, joten vaihdoin ZAPin porttiin 8081: Options -> Local Proxies.

Loin ja latasin uuden CA-sertifikaatin: Dynamic SSL Certificates -> Generate -> Yes -> Save -> Save.

Lisäsin ja otin luomani CA-sertifikaatin käyttöön: Firefox -> Preferences -> Privacy & Security -> View Certificates -> Authorities -> Import… -> owasp_zap_root_ca.cer -> Open -> Trust this CA to identify websites -> OK -> OK.

b) Kettumainen kettu. Asenna FoxyProxy lisäke Firefoxiin. Tee siihen sääntö, joka ohjaa vain kohdepalvelimen liikenteen ZAP-proxyyn. Muu liikenne saa mennä suoraan proxyn ohi nettiin.

Avasin Firefoxin ja asensin siihen FoxyProxy lisäosan: Firefox -> Open menu -> Add-ons -> Extensions -> Find more add-ons -> FoxyProxy -> Add to Firefox -> Add.

Lisäsin FoxyProxyyn määrityksen, joka ohjaa kohdepalvelimen liikenteen kulkemaan FoxyProxyn kautta: FoxyProxy -> Options -> Add:

  • Name: ZAP
  • IP address: localhost
  • Port: 8081

Tallensin proxyn ja otin sen käyttöön.

c) Kokeile, että ZAP sieppaa liikenteen valitsemastasi harjoitusmaalista. Voit käyttää aiemmin asentamaasi harjoitusmaalia tai uutta. Asenna tarvittaessa uusi harjoitusmaali, vaikkapa OWASP Juice Shop.

Lisätyn sertifikaatin vuoksi HTTPS-liikenne on nyt sallittua. Lisäsin osoiteriville Metasploitable 2-koneen IP-osoitteen: lisätyn sertifikaatin vuoksi HTTPS-yhteys toimii. ZAP alkoi myös rakentaa sivupuuta kohdepalvelimen sivulatausten perusteella.

d) Edit & resend. Näytä ZAP:lla esimerkki pyynnön uudelleen lähettämisestä (edit and resend).

Valitsin muokattavan pyynnön, klikkasin sitä hiiren oikealla ja valitsin “Open/resend with request editor”.

Muokkasin URLia ja painoin “send”.

Odotetusti .../foo.php endpointia ei löytynyt palvelimelta.

Kokeilin vielä endpointilla, jonka tiesin toimivan. Poistin URLista /login.php endpointin ja kutsuin uudelleenlähetyksessä /dvwa endpointia.

200 OK ja kirjautumissivu löytyi.

Pyyntöjen muokkaus ja uudelleenlähetys toimi.

e) Break. Pysäytä ZAP:lla pyyntö tiettyyn URLiin, muokkaa sitä ja päästä eteenpäin.

Googlasin ohjeet liikenteen manipulointiin. Aloitin lisäämällä kohdeosoitteen kohdealueeseen.

Valitsin vasemmasta reunasta osoitteen, nimesin sen, valitsin “In Scope” ja hyväksyin asetukset “OK”.

Valitsin “Show only URLs in scope”. Nyt Metasploitable 2-koneen kohdalle ilmestyi tähtäin.

Lisäsin kohdealueeseen DVWA ja kirjauduin sisään.

Etsin HTTP-kutsulokista GET-kutsun, jossa siirrytään DVWA palveluun ja lisäsin tähän breakpointin.

Hyväksyin oletusasetukset.

Palasin Metasploitable2-webpalvelimen etusivulle ja klikkasin “DVWA”. Ohjelman toiminta pysähtyi ja sekä selaimeen että ZAPiin avautui dialogi. Muokkasin kutsuttavaa endpointia ja valitsin “Submit and step to next request or response”.

Nyt palvelimelta kutsuttiin muokattua endpointia.

f) Automaagista. Tiedustele valitsemasi harjoitusmaali ZAP:n automaattisilla toiminnoilla, kuten spider ja forced browsing. Arvioi ZAP:n tuloksia, kuten löytyneitä tiedostoja ja varoituksia.

ZAP tarjoaa automatisoidun hyökkäyksen, jossa voi valita kahden hämähäkin (traditional ja AJAX) väliltä, jotka ryömivät sivuston läpi.

Automatisoitu hyökkäys passiivisesti käy läpi jokaisen löytämänsä sivun ja niiden aikana heränneet HTTP-kutsut ja pyynnöt. Hyökkäksen aikana ZAP myös aktiivisesti käy sivustoa läpi etsien mahdollisia haavoittuvuuksia käyttäen tunnettuja hyökkäystapoja. Tässä vaiheessa oli hyvä varmistaa, että kohdekone oikeasti on Metasploitable2 ja että olen kytkenyt virtuaalikoneet pois internetistä. En kaipaa ikäviä yllätyksiä harhaan menneistä hyökkäysharjoituksista.

Hyökkäyksen loputtua sain lopulliset tulokset. ZAP liputtaa ja luokittelee havainnot:

  • High
  • Medium
  • Low
  • Informational
  • False Positive

Kriittisiä varoituksia oli yhteensä 11.

ZAP varoittamat ja pahimmat riskit koskevat tekniikoita, joissa hyökkääjä voi URLia manipuloimalla kerätä kriittistä palvelimella olevaa tietoa.

The Path Traversal attack technique allows an attacker access to files, directories, and commands that potentially reside outside the web document root directory. An attacker may manipulate a URL in such a way that the web site will execute or reveal the contents of arbitrary files anywhere on the web server. Any device that exposes an HTTP-based interface is potentially vulnerable to Path Traversal.

OWASP ZAP

ZAP löysi haavoittuvan JS kirjaston, jQuery v1.3.2.

g) Starting point. HackTheBox. Kytkeydy HackTheBoxin “Starting Point”-verkkoon OpenVPN-yhteydellä ja käynnistä kone Meow “Spawn Machine”. Liitä vastaukseesi ruutukaappaus, jossa Starting pointin ilmaiset osat näkyvät ratkaistuna profiilissasi. Tämän kohdan saa raportoida, säännöissä erikseen annetaan lupa julkaista “Starting Point Machines” ratkaisuja. Vaihtoehtotehtävä: Jos nämä koneet ovat jollekin propellihatulle helppoja, voit näiden sijasta korkata yhden tavallisen koneen Machines-verkosta.

  • Meow
  • Fawn
  • Dancing

Tein tunnukset HackTheBoxiin ja kirjauduin sisään. Aloitin tutustumalla sääntöihin ja HTB-etikettiin.

Valitsin oikean yläkulman “Connect to HTB” -> “Starting Point” -> “OpenVPN” -> “EU” -> “UDP 1337” ja “Download VPN”.

Edit. En saanut yhteyttä luotua EU-palvelimille. Vastaavat US toimi.

$ openvpn starting_point_raattamaa.ovpn 

Valitsin vasemmasta reunasta “Labs” -> “Starting point”. HTB sääntöjen mukaan nämä koneet saa raportoida. Valitsin “Meow” ja aloitin tehtävien teon. Testasin yhteyden kohdekoneeseen pingaamalla sitä.

$ ping 10.129.212.45

Kohdekone vastasi. Tehtävissä viitattiin telnetiin ja porttiin 23. Suoritin versioskannauksen.

$ sudo nmap -sV 10.129.212.45

Loin telnet-yhteyden kohdekoneen porttiin 23.

$ telnet 10.129.212.45 23

Yritin yleisiä default-pareja, kuten admin/admin, admin/password jne. HTB walkthrougstan katsoin oikean tunnuksen; Root päästi sisään. Lippu löytyi flag.txt.

root@Meow:~# ls
flag.txt  snap
root@Meow:~# cat flag.txt

Käynnistin seuraavan maalikoneen, Fawn, ja vastasin kysymyksiin. Pingasin kohdekoneen ennen versioskannausta.

  $ ping 10.129.6.209
  $ sudo nmap -sV 10.129.6.209

Kysymysten perusteella lippu haetaan FTP-palvelimen kautta.

Loin yhteyden ja yritin kirjautua sisään tutuilla oletustunnuksilla admin/admin, admin/password jne. Fawn walkthrougn mukaan yleinen virhe FTP-palvelinten konfiguroinneissa on anonymous tunnuksen käytön salliminen; tähän käy salasanaksi mikä tahansa.

A typical misconfiguration for running FTP services allows an anonymous account to access the service likeany other authenticated user. The anonymous username can be input when the prompt appears, followedby any password whatsoever since the service will disregard the password for this specific account.

Löysin ohjeet kuinka ftp-yhteyden luonnin jälkeen palvelimella voidaan syöttää komentoja: passive-modessa palomuuri ei estä komentojen ajamista. Nappasin lipun virtuaalikoneelle komennolla get ja luin sen comennolla cat.

Käynnistin seuraavan maalikoneen Dancing ja suoritin pingin jälkeen versioskannauksen.

Googlasin smbclient manuaalin, käyttöohjeita ja lopuksi katsoin vinkkiä walkthroug. Listasin maalikoneen samba-hakemistot.

Yhdistin WorkShares hakemistoon ja listasin käytettävät komennot help. Hakemiston sisällön voi listata ls, liikkumaan hakemistoissa cd ja lopulta hakemaan tiedostoja omalle koneelle get.

Lippu löytyi käyttäjän James.P hakemistosta. Latasin tiedoston komennolla get.

h) Appointment. Kuinka monta lähestymistapaa keksit? Jos jokin ei toimi, kokeile jotain muuta. Kuinka pitkälle pääsit?

Versioskannaus

Aloitin pingaamalla konetta ja tekemällä versioskannauksen.

Skannauksen perusteella palvelimella pyörii web-applikaatio, johon yritin muutamalla default-salasana-tunnus-parilla. Tutkin inspectorilla lähdekoodia, mutta en löytänyt vinkkejä.

Tehtävissä puhuttiin brute forcesta. Etsin tietoa mahdollisista salasanalistoista, kunnes vastaan tuli tietoa siitä, että Kalin mukana tulee erilaisia listoja.

Kalin oletuslistat

Kloonasin näiden lisäksi lisää erilaisia listoja SecLists ja tutustuin Gobusterin käyttöön.

$ git clone https://github.com/SecLists.git

Hakemisto /user/share/wordlists/dirbuster oli tyhjä ja selvästi sen nimi oli varattu. Latasin dirbusterin, jotta saan sen sanalistat käyttöön.

$ sudo apt-get install -y dirbuster
$ cd /usr/share/wordlists/dirbuster
$ ls                                                                                                                               
apache-user-enum-1.0.txt  directories.jbrofuzz    directory-list-2.3-medium.txt  directory-list-lowercase-2.3-medium.txt
apache-user-enum-2.0.txt  directory-list-1.0.txt  directory-list-2.3-small.txt   directory-list-lowercase-2.3-small.txt

Web-hakemistojen etsimistä sanalistoilla ja gobusterilla

Käytin Apachelle suunnattua sanalistaa

Virhe 403 Forbidden kertoo siitä, että hakemistot löytyivät, mutta sinne ei ole pääsyä.

Tässä vaiheessa työskentelyssä oli tauko, jonka vuoksi maalikoneen IP-osoite vaihtui. Testasin pingaamalla ja versioskannaamalla, että maalikoneella edelleen on samat speksit. Löysin muutaman uuden hakemiston, kuten /css ja /images. En tiedä onko nämä haavoittuvia, enkä jatkanut näihin perehtymistä.

Tunnettujen haavoittuvuuksien etsimistä searchsploitilla

Etsin searchsploit työkalulla mahdollisia haavoittuvuuksia, joita ei kuitenkaan löytynyt. Testasin myös hakea mm. apache ja httpd, mutta näiden tulokset eivät tuntuneet vievän minua eteenpäin.

Web-applikaation haavoittuvuuksien etsimistä Niktolla

Nikto on työkalu web-applikaatioiden analysointiin ja haavoittuvuuksien etsimiseen. Analyysin mukaan hakemisto /css voisi olla tarkemman tarkastelun arvoinen.

SQL Injektio

Tehtävissä puhuttiin SQL-injektioista, joten olisi korkea aika kokeilla niitä. Etsin valmiin SQL Cheat Sheetin ja lähdin yksitellen kokeilemaan. Lippu löytyi injektoimalla admin' or '1'='1'# käyttäjänimi-kenttään. Se, miksi kyseinen injektio loppuosan pois kommentoivalla #-merkillä toimi, ei auennut.

Edit. 30.11 – typot

Leave a Reply