Viikkotehtävä 6(Pen test)

Etusivulle

Kone: HP ProBook 6560b, johon asennettu Kali linux käyttöjärjestelmä versio 2020.3. CPU: Intel Celeron B810 1.60GHz

VK3 Penetration Testing Course 2020 Autumn

Tehtävänannot otettu Tero Karvisen kurssi sivulta

h6 viimeistä viedään

”a) Palauta kaikki. Laita tähän a-kohtaan linkki jokaiseen kotitehtäväraporttiisi.” (Karvinen, 2020)

”Vinkki: linkkejä tulee viisi kappaletta, sellaisia klikattavia (a href).”(Karvinen, 2020)

b) Googlen kärkeen – Vapaaehtoinen, mutta helppo ja suositeltava: lisää linkki tehtäviisi tämän sivun perään kommentiksi.” (Karvinen, 2020)

”Vinkki: tämä linkki voi nostaa sivusi PageRankkia, jolloin pääset Googlen hakutuloksissa ylöspäin. Jos laitat linkin nopeasti, saatat saada linkkejä myös kurssikavereilta, kun h-kohdassa muut viittaavat kotitehtäviisi.” (Karvinen, 2020)

”c) Tee 5 tiivistettä eri ohjelmilla ja arvaa ne hashcatilla.” (Karvinen, 2020)

”d) Kokeile hydraa johonkin uuteen maaliin.”(Karvinen, 2020)

”Vinkki: Voit kokeilla esimerkiksi eri protokollaan Metasploitable 2:lla tai uuteen demoniin localhostilla.” (Karvinen, 2020)

”e) Kokeile hydraa omaan weppilomakkeeseen.”(Karvinen, 2020)

”Vinkki: Voit koodata lomakkeen itse vaikkapa Python Flask:illa. Jos haluat valmiin lomakkeen, asenna Juice Shop -harjoitusmaali ja käytä sitä.” (Karvinen, 2020)

”f) Tee oma sanalista itse tekemästäsi ja keksimästäsi weppisivusta.” (Karvinen, 2020)

”Vinkkejä: Voit muuttaa sivun sanalistaksi vaikkapa cewl:lla tai omalla skriptillä. Älä käytä muiden sivuja esimerkkinä vaan tee oma sivu.”(Karvinen, 2020)

”g) Murra jonkin tiedoston salajanasuojaus.” (Karvinen, 2020)

”Vinkkejä: Voit avata esimerkiksi zip tai pdf-tiedoston salakirjoituksen. Yksi helppo vaihtoehto on zip2john.” (Karvinen, 2020)

”h) Joukkoäly – silmäile muiden kotitehtäväraportit, kerää lista parhaita komentoja ja havaintoja. Muista merkitä lähteet. Näin saat oman tiivistelmän parhaista tunkeutumistekniikoista.” (Karvinen, 2020)

”Vinkki: läksyjen raportteja löydät Googlella ja DuckDuckGo:lla, tämän sivun kommenteista sekä oppitunnin chatissa jaetuista linkeistä.” (Karvinen, 2020)

”i) Viimeistely. Käy vanhat kotitehtäväsi läpi. Tarkista, että olet viitannut lähteisiin: tehtäväsivuun, kurssiin, muiden opiskelijoiden raportteihin, man-sivuihin, kotisivuihin ja ylipäänsä kaikkiin käyttämiisi lähteisiin. Lähdeviite tulee olla jokaisessa artikkelissa, jossa lähdettä on käytetty. Mikäli teet kotitehtäviisi lisää testejä tai kokeiluja, tee ne selkeästi jatkoksi uuden otsikon alle ja merkitse, milloin lisäykset on tehty. Historia ei voi enää muuttua.” (Karvinen, 2020)

”j) Vapaaehtoinen bonus, haastava: Lipunryöstö. Jos olet onnistunut korkkaamaan HTB:n koneita tai muita lipunryöstöjä, luettele onnistumiset. Liitä mukaan ruutukaappaus esim. HTB:n sivusta, jossa lippusi on lueteltu. Myös puolikkaat huomioidaan, eli mainitse myös pelkät normaalit (ei root/SYSTEM) käyttäjät sellaisilta koneilta, joita et ole vielä kokonaan rootannut.” (Karvinen, 2020)

*Päivitetty 28.1.2021*

Tehtävä a)

Kaikki Tehtävät: https://jannelinux.design.blog/main-page/
Tehtävä 1 https://jannelinux.design.blog/2020/11/06/penetration-testing-course-2020-autumn-tunkeutumistestaus-ict4tn027-3006/
Tehtävä 2 https://jannelinux.design.blog/2020/11/12/viikkotehtava-2pen-test/
Tehtävä 3 https://jannelinux.design.blog/2020/11/22/viikkotehtava-3pen-test/
Tehtävä 4 https://jannelinux.design.blog/2020/11/30/viikkotehtava-4pen-test/
Tehtävä 5 https://jannelinux.design.blog/2020/12/06/viikkotehtava-5pen-test/

Tehtävä c)Tee 5 tiivistettä eri ohjelmilla ja arvaa ne hashcatilla.

Aloitin tehtävän luomalla 5 erilaista hashattua salasanaa. Löysin 5 eri salasanatiivistettä ja ne oli: sha-256, sha-512, md5, md4 ja whirlpool. Kaikkien salasanojen hash tiivisteet tein netissä https://md5hashing.net sivustolla.

Salasanat ja hash

Olin valmis aloittamaan salasanojen murtamisen. Halusin kuitenkin käyttää hashid komentoa, nähdäkseni mitä hashid antaa arvauksiksi ja ihan harjoituksen vuoksi. Monissa hasheissa hashid antoi paljon eri vaihtoehtoja kullekkin hashille.

Loin jokaiselle tiivistetylle salasanalle omat tekstitiedostot, joita lähdin sitten ajamaan hashcatilla.

hashcat -a 0 -m "hashnumero" "tiedosto" /usr/share/wordlists/rockyou.txt

-a parametri viittaa sanakirja hyökkäykseen ja -m parametri on hashin numero, jotka löysin netistä https://hashcat.net/wiki/doku.php?id=example_hashes. Olisin voinut käyttää myös omaa tiedostoa, jonne haluan murretut salasanat parametrilla -o. Murretut salasanat menivät kuitenkin omaan kotihakemistoon piilotettuu .hashcat kansioon ja sieltä löytyi hashcat.potfile.

potfile

Lähteet: https://md5hashing.net
https://hashcat.net/wiki/doku.php?id=example_hashes
https://medium.com/infosec-adventures/identifying-and-cracking-hashes-7d580b9fd7f1
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

Tehtävä d) Kokeile hydraa johonkin uuteen maaliin.

Kokeilin viime tunnilla hydraa ssh protokollaan, joten päätin nyt kokeilla hydraa ftp protokollaan, johon käytin omaa luomaani salasana tiedostoa. Ajoin hydran metasploitable 2 koneen ftp protokollaan komennolla:

hydra -l msfadmin -P /home/kali/passut.txt 192.168.56.101 ftp -T4

-l parametrilla kokeillaan tietylle käyttäjälle salasanoja.
-P parametri on polku salasana listaan.
-T4 parametri vähentää päällekkäisten kirjautumisten kokeilua.
-V parametrilla voit nähdä yritykset reaaliaikaisesti kun hydra niitä kokeilee.
-u parametrilla voit kääntää, että hydra kokeilee yhtä salasanaa moneen käyttäjään, eikä montaa käyttäjää yhteen salasanaan.

Hydra ftp

Lähde: http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

Tehtävä e) Kokeile hydraa omaan weppilomakkeeseen.

Aloitin tehtävän tutkimalla miten saan ladattua juice shopin kalille ja löysin githubista ohjeet juice shopin lataukseen, mutta ensiksi minun piti ladata nodejs ja npm koneelleni, koska sitä ei ollut ja seurasin stackoverflown ohjeita, kuinka saan oikean nodejs ja npm version, mikä tukee juice shoppia. Aloitin eniksi komennolla:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash

nvm install <version>

Näin sain ladattua haluamani version koneelleni ja jatkoin githubin ohjeiden mukaan. Aloitin ajamalla git clone komennon:

git clone https://github.com/bkimminich/juice-shop.git

Tämän jälkeen suuntasin kotihakemistossani juice-shop kansioon ja seuraavaksi aloitin asentamalla npm:

npm install

Asennuksen jälkeen oli aika startata npm komennolla npm start, mutta jostain syystä minulla tuli paljon erroria eikä tämä lähtenyt toimimaan enkä saanut juice-shoppia portista 3000 auki.

Fail

Hetken pähkäilyjen jälkeen päätin ajaa uudelleen npm install komennon, jolloin asentui myös loput puuttuvat paketit ja sain npm start komennolla juice shopin pyörimään localhostiin porttiin 3000.

OK

Sitten surffasin juice-shop sivustolle ja tutkiskelin hetken aikaa sivustoa ja löysin ” About us ” välilehdeltä sähköpostin loppuosia, joista sitten loin käyttäjät tiedoston ja arvuuttelin sähköposteja siihen.

Löysin netistä komennon, jolla saan kokeiltua salasanoja webbi lomakkeeseen ja vähän muokkasin sitä ja lopulta se tuli näyttämään tältä.

hydra -V -L kayttajat -P /usr/share/wordlists/rockyou.txt -s 3000 localhost http-post-form "/#/login:userEmail=^USER^&userPassword=^PASS^&Login=Login:F=Invalid email or password."

en tiedä onko tähän helpompaakin komentoa, mutta tämän löysin. Lähdin ajamaan komentoa ja se löysikin 64 validia käyttäjä + salasanaa, mutta lähdin kokeilemaan muutamaa mutta niistä ei mikään käynyt. Sivulla, josta otin tuon hydra ajon niin sanottiin, että komento saattaa näyttää paljon valideja tunnuksia, joten kävin katsomassa läpikävelystä, että oikea käyttäjätunnus on admin@juice-sh.op ja passu admin123, joten kävin lisäämässä admin123 rockyou tiedostoon, koska siellä ei ole sitä. Ajoin uudelleen hydra komennon. Ja näin hydra löysi oikean tunnuksen ja pääsin kirjautumaan sisään.

Lähteet: https://github.com/bsqrl/juice-shop-walkthrough
https://github.com/bkimminich/juice-shop
https://gitter.im/bkimminich/juice-shop?at=5b892e6f60f9ee7aa4b92417
https://stackoverflow.com/questions/39981828/installing-nodejs-and-npm-on-linux
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

Tehtävä f) Tee oma sanalista itse tekemästäsi ja keksimästäsi weppisivusta.

Aloititin tehtävän tekemisen hakemalla digipalvelut kurssilla tekemäni nettisivun, jonka laitoin pyörimään apachella localhostiin, jotta voin käyttää cewliä ja tehdä itselleni sanalistan sivustosta. www/html kansiossa on nyt kaksi erillistä sivua omalta luomaltani webbi sivulta.

Kun sivusto oli saatu pystyyn ja toimi apachella niin käytin cewliä luodakseni sivustolta sanalistan.

cewl localhost -w lista

sanalista

Näin sain luotua sivustoltani sanalistan ja cewl keräsi myös muilta välilehdiltä tiedot sanalistaan. Cewlillä voit saada nopeasti tietyltä sivulto sanoja, joita voit käyttää käyttäjätunnus tai salasanalistana.

Lähde: http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

Tehtävä g) Murra jonkin tiedoston salajanasuojaus.

Aloitin tehtävän luomalla itselleni kansion nimeltä murto ja sinne tiedoston nimeltä salasanat.txt. Tämän jälkeen käytin komentoa:

zip -e salaistatietoa.zip salasanat.txt

Eli zippasin tiedoston salasanat.txt salaistatietoa.zip tiedostoksi, jossa on salasana.

zip

Aloitin ensimmäiseksi tekemällä zippi tiedostosta uuden tiedoston, jonne john kerää zip tiedoston hashin.

zip2john salaistatietoa.zip > tiiviste

tiiviste

Tämän jälkeen pystyin aloittamaan murtamisen. Ajoin komennon:

John -wordlist=/usr/share/wordlist/rockyou.txt tiiviste

murrettu hash

Salasana tuli näkyviin, joka oli ” secretpassword ”. Kävin vielä kokeilemassa, että salasana on oikea tiedostoon ja päätin unzipata salasana suojatun zip tiedoston käyttämällä komentoa:

unzip salaistatietoa.zip

unzip

Lähde: http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

Tehtävä h) Joukkoäly

Viimeisessä tehtävässä oli tarkoituksena tutkailla muiden kurssilaisten tekemiä tehtäviä ja napsia sieltä parhaimpia vinkkejä ja komentoja itselleen talteen.

Löysin Mikon sivuilta hyvän Nmap komennon, jota varmasti voisi itsekin käyttää jatkossa, se on agressiivinen ja sillä varmasti saa kaikki tarpeelliset tiedot koneiden aukinaisista porteista.

$sudo nmap -sC -sV -oA recon -p- -T4 -v 10.10.10.203 , eli versioida enumeroiden, perus NSE-skriptejä käyttäen, tulostaen kaikki output-muodot, kaikki portit skannattuna, tasolla 4 eli kohtuu agressiivisesti.

Elmon sivulta löysin mielenkiintoisen työkalun eli burpsuiten, jolla pystyy tarkastelemaan webbi-pohjaisten sivujen haavoittuvuuksia. Voisin itse myös kokeilla kyseistä työkalua, sillä tämä on minulle aivan uusi työkalu. Sivulta löytyi myös hyvä listaus eri parametreista, joita voi käyttää nmapissa.

  • TCP connect scan -sT
  • TCP SYN ”used to be stealth” scan, -sS
  • ping sweep -sn
  • don’t ping -Pn
  • version detection -sV
  • porttien valinta -p1-100, –top-ports 5
  • ip-osoitteiden valinta, verkkomaskilla 10.10.10.0/24, alku- ja loppuosoitteella 10.10.10.100-130
  • output files -oA foo
  • OS fingerprinting, version detection, scripts, traceroute -A
  • ajonaikaiset toiminnot (man nmap: runtime interaction): verbosity v/V, help ?, packet tracing p/P, status s (ja moni muu nappi)
  • normaalisti ’sudo nmap’. Miten nmap toiminta eroaa, jos sitä ajaa ilman sudoa? Suorita ja analysoi esimerkki.
  • vertaile -sV vs -A kestoa (ja lähetetyn datan määrää jos osaat; time, nethogs, wireshark)

Markon sivuja tutkiessani löysin toisen uuden työkalun SWAKS, jota ilmeisesti voisi käyttää kalasteluun ja lähettää sähköposteja muiden nimissä. Tämä vaikuttaa mielenkiintoiselta työkalulta, jota voisi kokeilla (Tietenkin lähettämällä itselleen sähköpostia)

Lähteet: https://github.com/mikorpi/Pentest-2020-Autumn/blob/main/H4.md
https://github.com/rootElmo/Tunkeutumistestaus-harjoitukset/blob/main/Harjoitus4/Text.md
https://linuxandnurmola.wordpress.com/2020/11/29/pen-testing-tehtava-4/



Jätä kommentti

Design a site like this with WordPress.com
Aloitus