Skip to content
Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
154 lines (97 sloc) 7.8 KB

h2

Penetration testing - Kotiläksyt
http://terokarvinen.com/2018/penetration-testing-course-autumn-2018

  1. Tiedustele aktiivisesti HackTheBoxin verkko. Voit käyttää esimerkiksi porttiskannereita, metasploittia, selainta, curl -I, nc ja muita osaamiasi työkaluja. Raportoi. Laita HackTheBoxin ratkaisut yksinkertaisen salasanan taakse, ei julkiseen nettiin. Salasanan voit antaa opettajalle Moodleen ja kurssikavereille, ei julkiseen nettiin.

  2. Tee WebGoatista kolme tehtävää. Asenna WebGoat tarvittaessa. Ratkaisut saa julkaista normaalisti koko Internetille. Vinkki: edellisen kerran läksyjen raporteissa tällä sivulla on helppoja asennusohjeita WebGoatille.

  3. Vapaaehtoinen: Ratko lisää WebGoatin tehtäviä.

  4. Vapaaehtoinen, vaikea: Jos osaat, korkaa jokin maalikone HackTheBoxista. Muista sallitut rajat eli scope. Apupyörinä voit käyttää HackTheBoxin weppiliittymästä löytyvää konelistaa vaikeustason mukaan järjestettynä.

Ratkaisut

Tehtävä 1

Ensimmäisenä tehtävä on siis tiedustella verkkoa. Lähdetään liikkelle siitä, että asennetaan porttiskanneri.
sudo apt-get update
sudo apt-get install -y nmap

Sitten tarvitaankin verkko mitä skannata. Viime tunnilla rekisteröidyttiin Hackthebox.eu sivuille ja otettiin yhteys VPN:n avulla. Kirjauduin sisään ja siirryin Access välilehdelle. Sieltä latasin Connection Packin, joka on entuudestaan konfiguroitu, sekä löysin komennon jolla yhteys avataan.

Siirryin ensin terminaalissa kansioon johon Connection Pack ladattiin.
cd
cd Downloads

Kokeilin Hacktheboxin sivuilta saatua komentoa yhteyden avaamiseen.
openvpn esim.ovpn

"Command 'openvpn' not found, but can be installed with:"
sudo apt-get install -y openvpn

Aiemman komennon pitäisi nyt toimia kiltisti. Muistetaan laittaa sudo eteen.
sudo openvpn esim.ovpn

Päivitetään selain ja Access välilehdellä pitäisi olla vihreä ruksi kohdissa Server Status ja Connected

Access

HTB:n säännöt -sivulla ilmaistaan mikä verkko soveltuu skannaamiseen:
10.10.10.0/24 tai 10.10.10.1-10.10.10.254

Scope

Nyt pitäisi siis aloittaa itse skannaaminen. Löysin apua Nmapin käyttöön osoitteista:
https://highon.coffee/blog/nmap-cheat-sheet/ ja https://hackertarget.com/nmap-cheatsheet-a-quick-reference-guide/

Komentoja portteihin liittyen
Scan a single Port
nmap -p 22 10.10.10.1
Scan a range of ports
nmap -p 1-100 10.10.10.1
Scan 100 most common ports (Fast)
nmap -F 10.10.10.1

Komentoja kohteen valintaan
Scan a single IP
nmap 10.10.10.1
Scan a range of hosts
nmap 10.10.10.1-254
Scan a subnet
nmap 10.10.10.0/24

Komentoja eri tyypin skannauksille
Scan using TCP connect
nmap -sT 10.10.10.1
Scan using TCP SYN scan (default)
nmap -sS 10.10.10.1
Scan UDP ports
nmap -sU -p 123,161,162 10.10.10.1
Scan selected ports - ignore discovery
nmap -Pn -F 10.10.10.1

Skannataan kohdeverkkoa
Skannataan ensiksi vain yksi osoite niin varmistutaan siitä, että kaikki toimii.
nmap 10.10.10.1 (2.57 sekuntia)

"Host seems down. If it is really up, but blocking our ping probes, try -Pn
nmap -Pn 10.10.10.1

Mitään ei näyttänyt tapahtuvan. Annoin komennon juosta noin 20 sekuntia ja lopetin sen Ctrl + C:llä. Kokeillaan vähän isompaa rangea.
nmap -F 10.10.10.1-100 (30.10 sekuntia)

Kyseinen komento siis skannasi HTB:n verkosta ensimmäiset 100 IP-osoitetta käyttäen -F toimintoa, joka valitsee 100 yleisintä porttia. Löysimme 16 hostia sadan osoitteen joukosta. Nmap listasi komentoriville löydetyt koneet ja kunkin koneen avonaiset portit.

Ensimmäinen kotitehtävä on tältä osaa tehty. Tehtävänantoon kuului myös tulosten julkaisu ei-julkisesti, joten palataan siihen myöhemmin, kun keksin sopivan keinon.

Tehtävä 2

  1. Tee WebGoatista kolme tehtävää. Asenna WebGoat tarvittaessa. Ratkaisut saa julkaista normaalisti koko Internetille. Vinkki: edellisen kerran läksyjen raporteissa tällä sivulla on helppoja asennusohjeita WebGoatille.

Webgoat asennettiin viimeviikolla ja ohjeet siihen löytyvät tämän repon Asennuksia -kansiosta.
https://github.com/nauskis/Pentesting-syksy2018/blob/master/Asennuksia/Webgoat.md

Insecure Login
Käytän WebGoattia ubuntu 18.04 virtuaalikoneelta. Koitin kaapata tehtävään liittyviä paketteja host -koneeltani, mutta paketit eivät näkyneet Wiresharkissa. Tästä syystä asensin Wiresharkin virtuaalikoneelleni.
sudo apt-get install -y wireshark

Mitään muita kikkailuja ei tarvittu. Wiresharkia käynnistäessä valitsin promptiin että vain root -käyttäjä voi napata paketteja, joten jouduin käynnistämään ohjelman komentoriviltä, että sain nuuskijan toimimaan.
sudo wireshark

Seuraavaksi loin haluttua liikennettä klikkaamalla Log In painiketta.
blanko

Tämän jälkeen tutkin liikennettä. Ensimmäisenä oli hyvä rajata liikennettä suodattamalla vain Http liikenne näkyviin. Seuraavaksi olin kiinnostunut localhost liikenteestä, koska WebGoat toimii paikallisesti.

Selailin liikkuvia paketteja ja osuin (pienellä tuurilla) heti oikeaan kehykseen.
http

Avasin kehyksen ja klikkasin kohdan Hyper Text Transfer Protocol (http) auki. Siellä luki selkokielisenä käyttäjätunnus ja salasana.

Syötin tunnukset WebGoattiin ja pääsin sisälle. Outoa oli, että en saanut napattua tunnuksia WireSharkilla uudestaan. Koitin samoja askelia millä onnistuin ensimmäisellä kerralla, mutta tunnukset sisältävää viestiä ei löytynyt pakettien joukosta, vaikka katsoin ne kaikki läpi moneen kertaan.
Login

Authentication bypasses
WebGoat antaa esimerkin kuuluisasta tapauksesta, jossa PayPalin 2FA suojaus kierretään muutamassa minuutissa.
https://henryhoggard.co.uk/blog/Paypal-2FA-Bypass

Ymmärtääkseni autentikointiin käytettävä viesti tulee kaapata ja joko muuttaa, tai poistaa sen sisältäviä parametreja. Tässä tapauksessa siis SecurityQuestion0 ja SecurityQuestion1. Tämän onnistuttua pääsisin ohittamaan tunnistautumisvaiheen, vaikka en sinänsä tietäisi oikeaa vastausta.

En tiedä millä työkalulla voisin kaapata ja muokata viestejä, mutta Wiresharkin avulla ainakin löysin oikean kehyksen. questions

Tässä kohtaa harmittaa, koska joudun jättämään ongelman ratkaisun loppuun asti myöhemmälle. Koitan vielä kolmatta aihetta tältä illalta.

Client side filtering
Tässä haavoittuvaisuudessa asiakkaalle lähetetään liikaa tietoa mihin hänellä ei pitäisi olla pääsyä.
Tehtävänä on kirjautua sisään Moe Stoogen tunnuksilla ja saada selville toimitusjohtajan palkka.

Katsotaan taulukosta ensin Larryn palkka esimerkiksi. Hänen ID on 101.

Klikataan taulukkoa oikealla hiiren paikinneella ja valitaan Inspect Element.
Element

Pääsemme tarkastelemaan HTML koodia ja etsimme piilotettua tietoa. Ensimmäisenä mieleeni tuli etsiä riviä jossa esiintyy
style="display: none;"
Ratkaisu oli kuitenkin paljon yksinkertaisempi, ja pienellä selaamisella löysin taulun, jonka ID on "hiddenEmployeeRecords".
Nopeasti työntekijöitä selaamalla huomasin että ID 102 ei ole listalla, joten tutkin tämän numeron ensimmäisenä. Se kuitenkin kuului henkilölle Moe Stooge, eikä halutulle Neville Barholomewille.
Klikkasin seuraavaksi kaikki ID:t läpi ja viimeisenä listalla oli ID 112, joka kuului toimitusjohtajalle.
Neville

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.