Tunkeutumistestaus vko. 2

h2 turbo boosted

Tero Karvinen

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.

z) Lue ja tiivistä. Tässä z-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen ja tiivistelmä riittää). Tiivistämiseen riittää muutama ranskalainen viiva.

€ Jaswal 2020: Mastering Metasploit – 4ed: Chapter 1: Approaching a Penetration Test Using Metasploit (kohdasta “Conducting a penetration test with Metasploit” luvun loppuun)

  • Tunkeutumistestauksella mitataan yrityksen kykyä puolustautua hyökkäyksiltä ja selvitetään tietoturvan tasoa
  • Tunkeutumistestauksen vaiheet:
    • Scope, tavoitteet, testausajat, termistö
    • Kohteen valinta, opiskelu ja tiedonkeruu: aktiivinen/passiivinen tiedustelu, käytössäolevien torjuntatyökalujen tunnistaminen
    • Uhkamallinnus: hyökkäyksen vaikutukset, riskien indentifiointi ja niiden toteutumien arviointi
    • Haavoittuvuusanalyysi: haavoittuvuuksien löytäminen
    • Hyökkäys: haavoittuuksien hyödyntäminen, hyökkääjän toiminnot järjestelmässä
    • Raportointi
  • Testausympäristön käyttöönotto: eri laitteistoa ja käyttöjärjestelmiä virtuaaliympäristössä
  • Metasploitilla voidaan testata samanaikaisesti useita kohteita
  • -> Modeling threats… ->

a) SELECT * FROM student. Ratkaise SQLZoo:sta: 0 SELECT basics, 1 SELECT name, 2 SELECT from World.

SQL Zoo

Listataan halutut sarakkeet ( SELECT ) tietystä relaatiosta ( FROM ) ja annetaan ehdot ( WHERE ) tulostettaville arvoille. Ehtoihin voidaan lisätä erilaisia määreitä sekä operaattoreita. Tuloksia voi ryhmitellä ja järjestää nouseviin tai laskeviin järjestyksiin. Lauseissa voidaan suorittaa laskutoimituksia ja käyttää valmiita funktioita. Seuraavien poimintojen avulla tehtävien teko onnistui:

-- haetaan yhtä tiettyä merkkijonoa
WHERE foo = 'bar'
-- ehtona luvun löytyminen lukuväliltä
WHERE x BETWEEN y AND z
-- valitsee merkkijonon ensimmäisen kirjaimen
LEFT(foo, 1)
-- pyöristää lähimpään tuhanteen
ROUND(value, -3)
-- etsii listasta
WHERE foo in ('bar', 'baz')
-- etsii merkkijonoa alusta
WHERE foo LIKE 'bar%'
-- laskee merkkijonon pituuden
LENGTH(foo)
-- operaattori, foo ei ole bar
WHERE foo <> bar
-- merkit, joita etsitään ja jota ei saa esiintyä
WHERE foo LIKE '%b%' AND foo LIKE '%a%' AND foo NOT LIKE '%r%'
-- arvossa heittomerkki
WHERE foo = 'bar o''baz'
-- järjestää laskevassa järjestyksessä, sitten aakkosellisessa
ORDER BY yr DESC, winner

b) Nyrkkeilysäkki. Asenna Metasploitable 2 samaan verkkoon Kalin kanssa. Katso, ettei haavoittuva Metasploitable 2 näy Internetiin.

Latasin Metasploitable 2 täältä. Purin .zipin, loin uuden virtuaalikoneen ja lisäsin .zipistä löytyneen virtuaalikovalevyn.

Virtuaalisen kovalevyn lisääminen.

Verkkoliikenteen tulee tapahtua vain virtuaalikoneiden välillä, jotta haavoittuva Metasploitable2-kone ei ole yhteydessä nettiin.

Verkkoasetusten määrittely siten, ettei koneella pääse nettiin.

Kalin (hyökkäyskone) verkko-asetuksista nyppäsin verkkopiuhan pois ja lisäsin uuden verkkokortin, joka mahdollistaa liikenteen virtuaalikoneiden välillä.

Verkkokaapelin irroittaminen seinästä.
Verkkoliikenne vain virtuaalikoneiden välillä.

Käynnistin Metaspoitable2-koneen, kirjauduin sisään ja tarkastin ottamalla yhteyttä Googlen nimipalvelimeen, ettei kone näy internettiin.

Sisäänkirjautuminen.
Virtuaalikone ei ole yhteydessä internettiin.
c) Nauhalle. Nauhoita kaikki konsolissa annetut asiat ja näkyvät tulosteet koko tehtävästä (esim. script).

Komennolla script -fa tiedostonimi voidaan tallentaa komentorivin tapahtumat. Vipu -a tallentaa tiedoston loppuun, mikäli tiedosto on jo olemassa. Vipu -f kirjoittaa tiedostoon reaaliajassa. Komennolla exit nauhoitus lopetetaan.

Komentorivin tapahtumat tallennetaan tiedostoon.
d) Ei kuulu! Ennenkuin aloitat skannaukset, kokeile, ettei Kali pääse nettiin ‘ping 8.8.8.8’ vastaa “Network is unreachable”.

Testasin verkon toimivuutta samoin kuin aiemmin Metasploit2-koneella. Virtuaalikoneen asetuksista verkkopiuha on irti seinästä.

Kali ei ole yhteydessä internettiin.
e) Piilosilla. Etsi Metasploitable 2 verkkoskannauksella. Tarkista ensin, että osoitteet ovat uskottavia (ipcalc 10.0.0.1/23). Sitten ping sweep (nmap -sn). Analysoi tulokset, eli selitä, mitä mikäkin asia tulosteessa tarkoittaa. Mitä päättelet eri koneista?

Katsoin Metasploit2 ja Kali koneiden paikalliset IP-osoitteet komennolla ifconfig.

Metasploit2-koneen osoite.

Katsoin Kali-koneen paikallisen IP-osoitteen.

Kali-koneen osoite.

Metasploit2 192.168.56.101
Kali 192.168.56.102
Verkon peite 255.255.255.0

ping komennolla testasin koneiden välistä yhteyttä. Lähetin (-c, count) kohdekoneelle kolme pakettia.

Metasploit2-koneen onnistunut pingaus.

Tein pingsweepin verkon kaikkiin osoitteisiin. Löysin verkosta kaksi konetta: Metasploit2 (…101) ja Kali (…102).

Ping sweep.
f) Kilo. Porttiskannaa 1000 tavallisinta porttia löydetyistä koneista. Selitä ja analysoi tulokset. Mikä koneista voisi olla Metasploitable 2?

Syötin komennon, jolla nmap tarkastaa 1000 yleisintä porttia IP-osoitteista. Metaspoitable2-koneessa avonaisia portteja oli useita, kun taas Kalissa ei ensimmäistäkään.

Avonaiset portit.
g) Ja tiskiallas. Porttiskannaa Metasploitable 2 perusteellisesti. Selitä ja analysoi tulokset. Selitä kustakin avoimesta portista, mikä palvelu siinä on / mihin se on tarkoitettu, onko se tavallisesti näkyvissä Internetiin ja onko se nykyiaikainen. Voit myös arvioida, onko versio päivitetty.

Vivulla -sV tarkastetaan portissa oleva palvelu ja sen versionumerointi.

Metaspoiltable2-koneen avonaiset portit, niissä pyörivät demonit ja niiden versionumerot.
  • 21: File Transfer Protocol, tiedostonsiirtoa kahden päätelaitteen välillä. Ei ole turvallinen. Vanhentunut versio: malicious backdoor.
  • 22: Secure Shell, salattua tietoliikennettä. Protocol 2.0 on turvallisempi, mutta versio vanhentunut.
  • 23: Pääteyhteysprotokolla, tiedonsiirtoa internetin yli. Vanhentunut ja turvaton: ei minkäänlaista salausta. SSH on korvannut telnetin.
  • 25: Simple Mail Transfer Protocol, viestinvälitystä. Ei salausta.
  • 53: Domain Name System, nimipalvelin. Muuttaa nimet IP-osoitteiksi. Vanha versio.
  • 80: Hyper Text Transfer Protocol, tiedonsiirtoa kryptaamattomana web-palvelinten ja selainten välillä.
  • 111: Remote Procedure Call, tiedonsiirtoa UNIX-järjestelmien välillä.
  • 139: NetBIOS-ssn, tiedonsiirtoa Windows-laitteille. Täynnä haavoittuvuuksia.
  • 445: NetBIOS-ssn, tiedonsiirtoa Windows-laitteille. Täynnä haavoittuvuuksia.
  • 512: exec, komentojen ajamista etänä.
  • 513: login, sisäänkirjautuminen etänä.
  • 514: shell, interaktiivinen shell, ei vaadi kirjautumista.
  • 1099: java-rmi,
  • 1524: bindshell,
  • 2049, nfs,
  • 2121: ftp,
  • 3306: mysql, tietokanta. Tietokantoja ei pitäisi päästä käyttämään avonaisten porttien kautta vaan esim. käyttöliittymien avulla. Vanha versio.
  • 5432, postgresql, tietokanta. Tietokantoja ei pitäisi päästä käyttämään avonaisten porttien kautta vaan esim. käyttöliittymien avulla. Vanha versio.
  • 5900: vnc,
  • 6000: X11,
  • 6667: irc,
  • 8009, ajp13,
  • 8180: http,
h) Sataa simpukoita. Tunkeudu vsftpd-palveluun.

Avasin komennolla $ mfsconsole Metasploit-käyttöliittymän. Etsin vsftp-haavoittuvuuksia.

Löydetyt haavoittuvuudet.

Listalle ilmestyi ainoastaan yksi exploit. Tästä lisätietoa sain komennolla $ info 0. Täältä huomasin, että RHOSTS, eli kohdekoneen IP-osoite, tulee määritellä.

Kohdekoneen IP-pitää määritellä.

Otin exploit-moduulin käyttöön komennolla $ use 0, määrittelin kohdekoneen IP-osoitteen, hyödynsin exploitin ja pääsin koneeseen sisään root-käyttäjänä.

Pääsin root käyttäjänä sisään.

Siirsin prosessin taustalle komennolla $ background ja tarkastin käynnissä olevan prosessin id:n komennolla $ sessions.

Yksi käynnissä oleva sessio.

Päivitin em. session shellin meterpreteriin.

Session päivitys.

Tästä en pääse eteenpäin. Komento $ sessions ei listaa uutta meterpreter sessiota id:llä 2.

Hyökkäys kokonaisuudessaan.
i) Ovi jäi auki. Mitä löytyy portista 1542/tcp? Kokeile netcattilla ‘nc’.

Komento $ nc 192.168.56.101 1524 avasi yhteyden koneeseen ja pääsin järjestelmää ylläpitävänä käyttäjänä sisään.

Root-oikeudet heti yhteyden luonnissa.
j) Darn Low Security. Etsi Metasploitable 2 weppipalvelin. Tee paikallinen tunnus DVWA Damn Vulnerable Web App -ohjelmaan. Aseta vasemman reunan palkista “DVWA Security” Low.

DVWA pyörii Metasploitable2:lla. Syötin Kali-koneen selaimeen http://192.168.56.101/.

Metasploitable2 web-palvelin.

Valitsin “DVWA”. Sivun alareunassa annetaan tunnukset “Hint: default username is ‘admin’ with password ‘password'”. Kirjauduin default-tunnuksilla (admin/password) sisään ja vaihdoin DVWA Security asetuksista palvelun tietoturvatasoksi “low” ja painoin “Submit”.

DVWA suojauksen taso.
Kirjautunut käyttäjä.

k) Execute! Ratkaise DVWA “Command Excution”. (“DVWA Security” on paras olla “Low”)

Valitsin “Command Execution” ja syötin kenttään “localhost”.

Localhost vastasi.

Sivun alareunassa on “View Source” painike, josta avautui ikkuna. Näin, että tekstikenttään syötetyt merkkijonot ajetaan shellissa sellaisenaan.

Kenttään kirjoitetut komennot ajetaan sellaisenaan.

Otin selville kirjautuneen käyttäjän ja työhakemiston.

; whoami && pwd
l) Asenna jokin kone Vulnhub:ista samaan Internetistä eristettyyn verkkoon Kalin kanssa.

Etusivulle ilmestyi useita maalikoneita. Toisena listalla oli maalikone”The Planets: Earth“, joka on määritelty helpoksi kohteeksi. Latasin maalikoneen ja katsoin ohjeet, miten .ova-tiedosto importoidaan VirtualBoxiin.

VirtualBox -> File -> Import Appliance -> Choose a virtual appliance to import… -> Earth.ova -> Next -> Import.

Maalikone ilmestyi VirtualBox Manageriin. Varmistin, että kone ei ole yhteydessä internettiin ja että se on muiden virtuaalikoneiden kanssa samassa verkossa. Valitsin koneen “Earth” -> Settings -> Network -> Adapter 1 -> “Attatched to: Host-only Adapter”, “Name: VirtualBox…”. Käynnistin Earth-virtuaalikoneen.

Virheilmoitus käynnistyessä.

Valitsin “Earth” -> Settings -> USB -> ruksi pois “Enable USB Controller”. Käynnistin koneen uudelleen.

Sisäänkirjautuminen.

m) Skannaa Vulnhubista hakemasi kone, ja analysoi tulokset.

Tein ping sweepin $ nmap -sn 192.168.56.0/24 ja löysin uuden koneen.

Ping sweep löysi uuden koneen.

Porttiskannasin 1000 yleisintä porttia.

Earthin porttiskannaus.

Halusin vielä nähdä demonien versiot.

Tarkempaa tietoa porteissa pyörivistä demoneista.

Maalikoneessa on kolme porttia auki:

  • SSH portissa 22 – salattu päätelaiteyhteys
  • HTTP portissa 80 – hypertekstin siirtoprotokolla
  • HTTPS portissa 443 – salattu hypertekstin siirtoprotokolla

Kohdekoneella pyörii web-palvelu Apachen mod_wsgi-moduulin avulla. Avasin selaimen ja syötin osoitekenttään kohdekoneen IP-osoitteen. Vastaukseksi sain kovakoodatun 400-virheilmoituksen.

Bad Request -virheilmoitus on kovakoodattu.
n) Vapaaehtoinen: Murtaudu jollain uudella tavalla Metasploitable 2:n.

tehtävän teko kesken

o) Vapaaehtoinen: Murtaudu Vulnhubista lataamaasi kuvaan.

tehtävän teko kesken

p) Vapaaehtoinen: Jos viime kerran SQL injektiot jäivät mysteeriksi, voit tehdä ne nyt suuremmalla ymmärykselllä. q) Vapaaehtoinen: Jatka HackTheBoxin parissa.

tehtävän teko kesken

Leave a Reply