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/



Viikkotehtävä 5(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

h5 sitting ducks

Muista kohdistaa hyökkäykset vain harjoitusmaaleihin ja tarkistaa osoitteet.” (Karvinen, 2020)

Tehtävä päivittyy, mutta kaikki nämä kohdat tulevat ainakin läksyksi.”(Karvinen, 2020)

”z) Lue artikkelit ja katso videot, tee kustakin muistiinpanot (muutama ranskalainen viiva per artikkeli/video). Tässä z-kohdassa ei tarvitse tehdä mitään kokeita koneella.

”a) Metasploitable. Asenna Metasploitable 2. Murtaudu sille useilla tavoilla.”(Karvinen, 2020)

”Vinkkejä: VirtualBoxissa host-only-networking on kätevä. Voit laittaa Kaliin kaksi verkkokorttia, toinen NAT:lla Internetiin ja toinen host-only-network:n. Verkkoasetusten advanced-kohdasta voi vetää virtuaalisen verkkokaapelin irti ja kiinni, vaikka kone on päällä.” (Karvinen, 2020)

”Vinkkejä: Kannataa käyttää Metasploit-hyökkäysohjelmaa useimpiin hyökkäyksiin. Jos meinaat jäädä jumiin, katso seuraava askel spoilereista, esim Exploitability Guide. Jos Metasploitable 2 -maali ei löydy omasta verkosta (arp, arpwatch, netdiscover…), voit kirjatua sisään (msfadmin:msfadmin) ja ’ifconfig’ tai ’ip addr’. Vapaaehtoinen bonus-alakohta: löydätkö hyökkäyksen, joka tukee meterpreter-payloadia?” (Karvinen, 2020)

”b) Skannaa HackTheBoxin verkko niin, että tallennat tulokset Metasploitin tietokantoihin.” (Karvinen, 2020)

”Vinkkejä: voit hyödyntää aiempia skannauksiasi, joko vain taustatietona, tai tuomalla (import) nmap:n xml-tiedostot suoraan metasploitiin. db_nmap, hosts –up, services” (Karvinen, 2020)

”c) Onko joukossa vanhoja tai haavoittuvia versioita?” (Karvinen, 2020)

”Vinkkejä: Hyödynnä nmap:n versioskannausta. Hae palvelinten versioilla msfconsole search ja searchsploit.” (Karvinen, 2020)

”i) Vapaaehtoinen: Asenna ja korkkaa Metasploitable 3. Karvinen 2018: Install Metasploitable 3 – Vulnerable Target Computer” (Karvinen, 2020)

”j) Vapaaehtoinen: Asenna ja korkkaa Metasploitable 3 Windows, kuten edellisessä kohdassa mutta vm.box ”rapid7/metasploitable3-win2k8″. Viimeksi kokeillessani Windows-version asennuksessa oli sekalaisia hankaluuksia.” (Karvinen, 2020)

”k) Vapaaehtoinen, haastava: korkkaa jokin HTB:n kone.” (Karvinen, 2020)

*Päivitetty 28.1.2021*

Tehtävä z)

Conducting a penetration test with Metasploit

  • Auxiliary moduuleja on tärkeätä myös käyttää, koska ne saattavat paljastaa esim käyttäjätunnuksia ja salasanoja.
  • Luo aina tietokanta, kun aloitat uuden metasploit ”projektin”
  • Hosts komennolla näet hostit, jotka ovat ylhäällä ja services komennolla näet palvelut, jota kone käyttää, kun olet nmpannut.
  • search komennolla voit etsiä exploitteja, moduuleja yms. metasploitista
  • moduuleilla on oma rank ja mitä parempi rank moduulilla on, sitä paremmin se toimii ja on luotettava.
  • RHOSTS on yleensä lisättävä exploittiin eli kohde koneen IP ( set RHOSTS *IP* )
  • Payloadien valitseminen ( set payload )

Lähde: https://learning.oreilly.com/library/view/mastering-metasploit-/9781838980078/B15076_01_Final_ASB_ePub.xhtml#_idParaDest-30

Tehtävä a)

Aloitin tehtävän lataamalla Virtualboxiin Metasploitin ja uuden kali koneen. (**käytin aiemmissa tehtävissä vanhalle läppärille asennettua kalia**) Ongelmitta ei kuitenkaan selvitty, sillä käytän Mac konetta, ja minun täytyi ensiksi käydä hyväksymässä kernel asetukset macin omista asetuksista System Preferences -> Security & Privacy ja sieltä hyväksyä Oraclen lisäosa, jonka jälkeen homma alkoi toimimaan.

Asennusten jälkeen kävin luomassa vbox0 verkon, johon lisäsin metasploitin.

Virtualboxissa kohdasta File -> Host network manager -> create ja näin sain luotua vboxnet0, johon liitin metasploitin

host-only-network -> dropdown valikosta -> vboxnet0

Metasploit ja kali

Kun koneet oli asennettu tarkistin metasploitablen ifconfig komennolla koneen ip osoitteen, jonka sitten nmappasin metasploitilla. Ennen nmappausta kuitenkin loin uuden databasen.

db_nmap 192.168.56.101 -sV --top-ports 50

Tämän jälkeen kirjoitin services ja katsoin mitä kaikkea metasploitable 2 koneesta löytyy

Services msf6

Vsftpd

Rupesin käymään portteja läpi ja etsimään mahdollisia hyökkäyksiä. Enimmäisenä otin vsftpd 2.3.4 ja etsin löytyykö sille exploitteja. Ja löysin yhden kyseiselle versiolle, joka näytti olevan Backdoor command execution.

Exploit

Seuraavaksi lähdin kokeilemaan exploittia ja kirjoitin seuraavan komennon. Eli mitä exploittia haluan käyttää.

use exploit/unis/ftp/vsftpd_234_backdoor // voit myös käyttää numero nopeuttamaan exploitin käyttöä.

Komennon jälkeen katsoin show option komennolla mitä module optioneja minulla on ja lisäsin RHOSTin, johon lisäsin metasploitable 2 koneen IP osoitteen.

set RHOST 192.168.56.101

Tämän jälkeen pystyin ajamaan exploittia koneelle komennolla exploit, jonka jälkeen metasploit alkoi työstämään asiaa ja hakkeroitumaan koneelle. Ja näin pääsin koneelle sisään käyttäen backdoor haavoittuvuutta ja valmista exploittia. Nyt pystyin käymään tiedostoja läpi. Kävin vielä varastamassa ssh avaimet itselleni.

Ensimmäisen kohdan jälkeen lähdin käymään läpi muita portteja, jotka olivat auki. En kuitenkaan löytänyt mitään toimivia exploitteja, joita olisi voinut hyödyntää, ainoastaan VNC protocolla 3.3 löytyi auxiliary, jota kokeilin ja se antoi sanoman ”Login Successful”

En kuitenkaan ollut iha perillä mikä tämä VNC on, mutta sain selville graafisen käyttöliittymän etäkäyttöön tarkoitettu. En tiedä mitä tällä olisi tarkoitus tehdä kun sain Login successfullin.

Kävin hieman katsomassa läpikävleyistä osviittaa mitä kannattaisi tehdä ja huomasin, että en ollut skannannut kaikki portteja auki, kun käytin alussa top ports komentoa, joten ajoin vielä uudelleen nmapin ja löysin lisää portteja, jotka olivat auki, joten lähdin työstämään niitä.

db_nmap -sV 198.168.56.101

IRC

Lähdin kokeilemaan ensimmäiseksi irc protokollaa, ja etsin unrealircd exploitteja ja löysin exploitin, joka oli backdoor command execution.

irc

Lisäsin normaalisti RHOSTin exploitille ja yritin ajaa komentoa, mutta se ei toiminut vaan piti lisätä payload exploittiin.

payloads

Päätin käyttää ensimmäistä payloadia, joka ilmeisesti hyödyntää Perl ohjelmointikieltä. Ajoin payloadin sisään komennolla ” set payload 0 ”. Tämän jälkeen pystyin suorittamaan exploitin ja pääsin sisään koneelle, mutta vain irc kansioon eli /etc/unreal.

hetken tutkittuani koneelta löytyi erilaisia luotuja networkkeja ja niiden hostien sähköposteja /etc/unreal/networks kansiosta. Myös unrealircd.conf tiedostosta löytyi mielenkiintoista tavaraa kuten salasanoja ja käyttäjätunnuksia, mutta greppasin vain salasanoja kyseisestä kansiosta.

passwd

Tomcat

Kokeilin tomcatia joka toimii portissa 8180. Katsoin hieman vihjettä läpikävelystä, että tomcatista voisi löytyä jotain, jos sivustoa skannaa. Aloitin etsimällä mitä kaikkea tomcattiin löytyy search tomcat komennolla.

meta

Mielenkiinto siirtyi administration kohtaan ja päätin ajaa tiedustelun, joka on suunnattu tomcatin administration toolille. Valitsin kyseisen ajon.

set 1 -> show options -> set RHOSTS 192.168.56.101 -> exploit

Ajossa meni hetken aikaa, mutta sain mielenkiintoisia tuloksia.

Ensimmäisenä kiinnitin huomiota http sivuun, jonne menin vierailemaan ja löysin admin kirjautumis sivun. Kokeilin ensiksi samoja käyttäjätunnuksia ja salasanaa kun metasploitable2 koneessa, mutta ne ei toiminut. Rupesin sen jälkeen katsomaan lisää tulostetta ja lopusta löysin [Tomcat server administration] ja [tomcat/tomcat], joten kokeilin tätä tomcat yhdistelmää ja pääsin kirjautumaan sisään webserverille.

tomcat webserver

Bindshell Metasploitable root shell

Jouduin hieman katsomaan vinkkiä läpikävelystä, jonka löysin youtubesta, jossa käytettiin netcattia porttiin 1524, joka on metasploitable root shell, eli pääsin komennolla.

sudo nc 192.168.56.101 1524

kirjautumaan suoraan root käyttäjänä metasploitable koneelle.

netcat

Lähteet: https://www.youtube.com/watch?v=wqlQpnXJj1o&list=PLnvGUPsMazNScS415yluE4DEir8-dhjFD&index=13
https://charlesreid1.com/wiki/Metasploitable/Apache/Tomcat_and_Coyote
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

tehtävä b & c)

Tehtävä oli skannata HTB verkko metasploitilla. Aloitin tehtävän ensiksi komennolla

Sudo msfdb init // Avaa ja konfiguroi tietokannan

Seuraavan avasin metasploitin konsolin, jotta voin ruveta luomaan uuden tietokannan ja aloittaa itse tehtävän tekemisen.

Sudo msfconsole // avaa metasploitin consolen

Metasploit console

Konsoliin päästyäni aloitin luomalla uuden tietokannan, jonka nimeksi annoin htbnw. Loin tietokannan antamalla komennon

workspace -a htbnw // Luo tietokannan nimeltä htbnw

Kun tietokanta oli luotu niin pystyin aloittamaan itse verkon skannauksen. HTB koneita taisi olla aktiivisena 10.10.10.194-220 osoitteissa, joten päätin ajaa nuo ja –top-ports 25. Ajoin koneet 194-220, koska muistan jonkun tunnilla sanoneen, että aktiivisia koneita htb verkossa on 194-220 osoitteissa.

db_nmap 10.10.10.194-220 --top-ports 25 -sV

Nmap skannasi 27 IP-osoitetta ja siellä oli 20 hostia ylhäällä ja skannaus kesti 56.25 sekuntia. Skannauksen jälkeen katsoin vielä komennolla hosts, jotta näen kaikki hostit, jotka on ylhäällä ja mahdollisesti niiden käyttöjärjestelmät

hosts

Hostien katsomisen jälkeen listasin services komennolla kaikki palvelut, jotka ovat koneilla auki tai kiinni, jonka jälkeen rupesin etsimään metasploitista vanhoja ja haavoittuvia versioita.

Kone 10.10.10.197

197

FTP: v. vsftpd 3.0.3 ja tämä näyttäisi olevan uusin versio FTP:lle. Tälle versiolle en löytänyt mitään haavoittuvuuksia metasploitista. Versiolle 2.3.4 oli Backdoor command execution haavoittuvuus.
SSH: OpenSSH 7.9p1. SSH versio on vanhentunut versio uusin versio on 8.4. En löytänyt metasploitilta openssh versio 7.9:lle mitään haavoittuvuutta.
SMTP: Postfix smtpd. Tästä ei selvinnyt mikä versio käytössä. SMTPD:lle löysin 2 exploittia(read local privilege escalation ja Remote command execution), mutta en ole varma käyvätkö ne tähän, koska versiosta ei ole mitään tietoa.
HTTP/80: nginx 1.14.2. Nginx on vanhentunut versio, mutta tähän ei löytynyt mitään haavoittuvuutta.
IMAP: Courier Imapd Released 2018, myös todennäköisesti vanhentunut versio. Löysin yhden remote code executiion haavoittuvuuden kun etsin hakusanalla imap 2018, mutta en ole varma onko exploitti sopiva tähän.
SSL/IMAP: Courier Imapd released 2018, myös todennäköisesti vanhentunut versio. Löysin yhden remote code executiion haavoittuvuuden kun etsin hakusanalla imap 2018, mutta en ole varma onko exploitti sopiva tähän.
HTTP/8080: nginx 1.14.2 Vanhentunut versio, mutta tähän ei löytynyt mitään haavoittuvuutta.

Kone 10.10.10.198

HTTP/8080: Apache http 2.4.43 on vanhentunut versio tästä on julkaistu jo, 2.4.46 versio. Versiolle ei löytynyt metasploitilta mitään haavoittuvuutta tai exploittia.

Kone 10.10.10.199

SSH: OpenSSH 8.1 on vanhentunut versio, tästä julkaistu jo 8.2. Tähän ei löytynyt mitään haavoittuvuutta.
HTTP: OpenBSD httpd. Versiosta ei saatu tietoa. OpenBSD löytyi 1 exploittia, joka oli Rank: Excellent. Dynamic loader chpass privilege escalation.

Kone 10.10.10.200

SSH: OpenSSH 7.9p1. SSH versio on vanhentunut versio uusin versio on 8.4. En löytänyt metasploitilta openssh versio 7.9:lle mitään haavoittuvuutta.

Kone 10.10.10.201

SSH: OpenSSH 8.2p1. on uusin versio, joka on tullut vuonna 2020 helmikuussa. Tähän ei metasploitista löytynyt haavoittuvuuksia.

Kone 10.10.10.203

HTTP/80: Microsoft IIS http 10.0 ja tämä on uusin versio IIS palvelusta. Metasploitista ei löytynyt tälle mitään haavoittuvuuksia.

Kone 10.10.10.204

MSRPC: Microsoft Windows RPC. Versiota en saanut selville, joten meni arvailuksi löytyikö mitään haavoittuvuuksia, mutta pari pisti silmään, mutta nekin oli julkaistu jo 2005 ja 2007.

Metasploit

HTTP/80: Microsoft IIS httpd versiosta ei saanut tietoa. Metasploitista löytyi useampia IIS exploitteja ja noin 4 kpl excellent rankilla olevia. Lähtisin ensimmäiseksi kokeilemaan näitä excellent rankin omaavia exploitteja kyseiseen palveluun.

Metasploit

10.10.10.205

SSH: OpenSSH 8.2p1 on uusin julkaisu, joka on tullut 2020. Metasploitista ei löytynyt mitään mitään haavoittuvuuksia tästä versiosta.
HTTP/8080: Apache Tomcat 9.0.27 ei ole uusin versio tomcatista ja siitä on julkaistu jo versio 10. Metasploitista löytyi yksi haavoittuvuus hakusanalla ” Apache tomcat 9.0 ” infosta löytyi tietoa, että se olisi versioille 9.0 ja aiemmat, mutta voisihan tätä myös kokeilla tuohon 9.0.27, koska rank on ecellent. Vaikka epäilen exploitin toimivuutta kyseiseen versioon.

Kone 10.10.10.206

SSH: OpenSSH 7.2p2 on vanhentunut versio SSH:sta. Metasploitista ei löytynyt haavoittuvuuksia.
HTTP/80: Apache http 2.4.18 on vanha versio apachesta, mutta metasploitista ei löytynyt mitään haavoittuvuutta.

Kone 10.10.10.208

FTP: vsftpd 2.0.8 or later Eli ei ole täyttä varmuutta voiko se olla ehkä vanhempi versio vai jopa uudempi. Sana later jättää vähän arvailuksi kumpaa sillä tarkoitetaan, mutta jos se on 2.0.8 niin se on vanhentunut versio. Yksi haavoittuvuut löytyi metasploitista

vsftpd


SSH:
OpenSSH 7.9p1 on vanhentunut versio, eikä metasploitista löytynyt exploitteja tai haavoittuvuuksia kyseiselle versiolle.
HTTP/80:
Apache http 2.4.38 ei ole uusin versio siitä on julkaistu 2.4.46. Eikä tähän versioon löydy haavoittuvuuksia.

Kone 10.10.10.209

SSH: OpenSSH 8.2p1 on uusin versio SSH ja siihen ei löydy haavoittuvuuksia.
HTTP/80:
Apache httpd 2.4.41 ei ole uusin versio ja siihen ei löydy mitään haavoittuvuuksia.

Kone 10.10.10.210

HTTP/80: Microsoft IIS httpd 8.5 on vanhentunut versio ja tästä on julkaistu jo 10 versio. metasploitista ei löytynyt 8.5 versiolle haavoittuvuuksia.
SSL/HTTP: Ei löydy kuin, että portti on auki.
HTTP/8080:
Apache httpd 2.4.43 on vanha versio, eikä tälle löytynyt haavoittuvuuksia.

Kone 10.10.10.211

SSH: OpenSSH 7.9p1 ei ole uusin versio ja metasploitilla ei löytynyt haavoittuvuuksia.
HTTP/8080:
Nginx 1.14.2 on vanha versio, mutta metasploitista ei löydy haavoittuvuuksia.

Kone 10.10.10.212

SSH: openssh 8.2p1 on uusin version openSSH:sta ja siihen ei löydy mitään haavoittuvuuksia.
HTTP/80:
Apache 2.4.41 on vanhentunut versio, eikä siitä löydy mitään haavoittuvuuksia.

Kone 10.10.10.213

HTTP/80: Microsoft IIS httpd 10.0 on uusin versio, eikä siihen ole mitään haavoittuvuuksia.
MSRPC: Microsoft Windows PRC ja siitä ei löytynyt mitään versiota, joten muutama exploit löytyi mitä voisi kokeilla, kun ei ole versiota tiedossa.

Metasploit

Kone 10.10.10.214

SSH: openssh 8.2p1 on uusin version openSSH:sta ja siihen ei löydy mitään haavoittuvuuksia.
HTTP/80:
Apache 2.4.41 on vanhentunut versio, eikä siitä löydy mitään haavoittuvuuksia.

Kone 10.10.10.215

SSH: openssh 8.2p1 on uusin version openSSH:sta ja siihen ei löydy mitään haavoittuvuuksia.
HTTP/80:
Apache 2.4.41 on vanhentunut versio, eikä siitä löydy mitään haavoittuvuuksia.

Kone 10.10.10.216

SSH: openssh 8.2p1 on uusin version openSSH:sta ja siihen ei löydy mitään haavoittuvuuksia.
HTTP/80:
Apache 2.4.41 on vanhentunut versio, eikä siitä löydy mitään haavoittuvuuksia.
SSL/HTTP/443: Apache 2.4.41 on vanhentunut versio, eikä siitä löydy mitään haavoittuvuuksia.

Kone 10.10.10.217

SSH: OpenSSH for_windows 7.7ei ole uusin versio ja löysin metasploitista hakusanalla openssh for windows kaksi POSTia, enkä ole varma ovatko nämä toiminnassa tässä versiossa.

POST

HTTP: Microsoft IIS httpd 10.0 ja tämä on uusin versio eikä siihen ole haavoittuvuuksia.
SSL/HTTP: Microsoft IIS httpd 10.0 ja tämä on uusin versio eikä siihen ole haavoittuvuuksia.

Kone 10.10.10.218

SSH: OpenSSH 8.0 ei ole uusin versio, mutta sille ei löydy mitään haavoittuvuuksia.
HTTP: Nginx 1.19.0 ei ole uusin versio, tästä on julkaistu 1.19.5 versio, mutta tähän ei ole mitään löytyvää haavoittuvuutta.

Lähteet: http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
https://nginx.org/en/download.html
https://www.cvedetails.com/version-list/2041/3475/1/Beasts-Vsftpd.html?order=0
https://httpd.apache.org

Viikkotehtävä 4(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

h4 walktrough

Tähän läksyyn tulee ainoastaan luettavia kohtia lisää. Tietokoneella tehtäviä kokeita ei tule enempää.” (Karvinen, 2020)

”z) Lue artikkelit ja katso videot, tee kustakin muistiinpanot (muutama ranskalainen viiva per artikkeli/video). Tässä z-kohdassa ei tarvitse tehdä mitään kokeita koneella.” (Karvinen, 2020)

”Vinkkejä: Kannattaa valita maalikoneita, jotka on merkitty helpoiksi. Kannattaa välttää lukemasta sellaisen helpon maalikoneen läpikävely, jonka haluat itse ratkaista. Sen sijaan kannattaa lukea mahdollisimman samantapainen (samoja palveluita/työkaluja tms) läpikävely toisesta koneesta. Kannattaa etsiä artikkeleita 0xdf:n, videokanavan tms. muiltakin sivuilta kuin ensimmäiseltä, niin kaikki eivät päädy kirjoittamaan samasta tapauksesta. Jos tarvitset maalikoneita kokeiluihisi tai muuten vaan omaan hyökkäyslabraasi:https://www.vulnhub.com/” (Karvinen, 2020)

”a) Etsi ja kokeile 5 uutta työkalua jostain lukemastasi/katsomastasi läpikävelystä.” (Karvinen, 2020)

”b) Tiedustele ja analysoi 5 htb konetta perusteellisesti. Käytä ainakin nmap-porttiskanneria. Halutessasi voit käyttää lisäksi muita työkaluja, kuten eyewitness, nikto, wpscan, gobuster, gvm (openvas), msfconsole, ffuf, zaproxy, mitmproxy, sqlmap, searchsploit, exploitdb…” (Karvinen, 2020)

”Vinkki: Selitä joka ikinen asia, jota porttiskannauksesta selviää. Arvioi selittämiäsi kohtia: ovatko asetukset erikoisia, palvelut tavallisia vai harvinaisia, uusia vai vanhoja. Onko haavoittuvan näköisiä kohtia? Millä työkaluilla voisit jatkaa selvitystä tai tunkeutumista?” (Karvinen, 2020)

”c) Nimeä 1-3 walktrough:ta, joissa tunkeudutaan samantapaisiin palveluihin, joita käsittelit kohdassa b. Tiivistä artikkelit muutamalla bulletilla. Mitä työkaluja hyökkääjät käyttivät? Kokeile työkaluja (1-3 työkalua), raportoi ja arvioi tulokset.” (Karvinen, 2020)

”Vinkki: Joudut todennäköisesti etsimään läpikävelyitä, joita et ole aiemmissa kohdissa nähnyt. Käytä eri työkaluja kuin ne, joita kokeilit aiemmissa kohdissa.” (Karvinen, 2020)

”h) Vapaaehtoinen (haastava): korkkaa jokin htb:n kone.” (Karvinen, 2020)

*Päivitetty 28.1.2021*

Tehtävä z)

HTB Admirer

  • Jos nmapissa tulee robot.txt tiedosto vastaan, voi se olla hyvä Curlata jos sieltä saisi jotain vihjeitä.
  • Jos sivu on koodattu PHP:llä, voi työkaluna käyttää gobusteria ja sisällyttää siihe komento -x php.
  • Käy mahdollisten kansioiden teksti tiedostoja läpi.

ServMon

  • Sivujen kansioiden brute forcettamista on hyvä kokeilla, koska se voi paljastaa tärkeitä tiedostoja.
  • searchploitilla on hyvä etsiä tunnettuja exploitteja.
  • crackmapexecia voi käyttää salasanojen kokeiluun, jos sellaisia on löytänyt hakkeroinnin aikana.
  • Hyvä käydä avonaisia TCP portteja läpi yksitellen ja kokeilla etsiä niistä tietoa.

Sauna (video)

  • Crackmapexeciä on hyvä käyttää SMB(server message block) protokollaan.
  • Burp suitella on hyvä käytä Http sivuja läpi ja etsiä mahdollisia laajennuksia sivustolta.
  • Muistiinpanojen pitäminen hyökättävistä koneista, jotta tieto on helposti löydettävissä, jos niitä tarvitaan.
  • Kerbrute työkalulla voi kokeilla useita käyttäjätunnuksia domainille.

Sneakymailer (video)

  • SWAKS eli sposti protokollien testaus työkalu, jolla pystytään myös huijaamaan lähettäjän sähköpostiosoite
  • Netcatilla pystytään seuraamaan oman sivun liikennettä, jos siellä on käyty. Eli sillä voi seurata sivuston liikennettä
  • Burpsuitella voidaan tehdä koodista paljon selkolukuisempaa.

Lähteet: https://0xdf.gitlab.io/2020/06/20/htb-servmon.html#website—tcp-8443
https://0xdf.gitlab.io/2020/09/26/htb-admirer.html
https://www.youtube.com/watch?v=f4vQhI4ADmI
https://www.youtube.com/watch?v=uLNpR3AnE-Y

Tehtävä a)

gobuster (Admirer)

Kokeilin gobusteria, jota käytettiin Oxdf:n läpikävelyssä. Ajoin busterin HTB koneesee 10.10.10.214. Busterilla voi etsiä salattuja tiedostoja ja kansioita web sivulta. Dirbusterilla on omia valmiita .txt tiedostoja, joita voi käyttää. Voit myös itse tehdä omia .txt tiedostoja joita käyttää.

gobuster

searchploit (servmon)

Searchploit on hyvä työkalu, jolla voi etsiä ohjelmista ja vaikka nmapissta tallennetusta .xml tiedostosta saatujen ohjelmien tai koneiden tunnettuja hyökkäyksiä.

Searchploit

hashcat

Kokeilin hashcat salasanojen murtamiseen tarkoitettua työkalua,jolla voi murtaa hashattuja salasanoja selkokielisiksi. Loppu ajossa kun yritin decryptata md5 cryptattuja salasanoja, jotka loin niin hashcat ilmoitti ”Illegal instruction” ja pikaisella googlauksella selvisi, että ongelma olisi ajureissa.

hashcat -m 0 -a 0 -o murrettu.txt kohde_hashes.txt /usr/share/wordlists/rockyou.txt

hash

crackmapexec

CME on hyödyntämise työkalu, joka toimii neljällä eri protokollalla SMB(server message block), SSH, MSSQL ja WINRM. CME toimii parhaiten smb protokollaan(useissa WT käytettiin CME:tä smb protokollaan), mutta en löytänyt/ehtinyt etsiä konetta, jossa on smb. Kokeilin CME:tä SSH protokollaan, mutta tulokset jäivät aika löyhiksi.

Crackmapexelle voi myös bruteforcettaa tiedettyjä salasanoja ja käyttäjätunnuksia, että sopiiko niistä mikään yhteen.

crackmapexec

zip2john

Yritin käyttää zip2john, jolla pystyisi murtamaan salasanoja salasanasuojatusta zip tiedostosta, mutta zip2john ei jostain syystä suostunut toimimaan vaan ilmoitti aina, että bash: zip2john: command not found ja saman antoi myös Johnista. Yritin selvitellä mistä kyseinen asia johtui, mutta en saanut selvyyttä asiaan.

Tehtävä b)

Omni

Aloitin tehtävän etsimällä mitä koneita HTB tarjoaa ja valitsin ensimmäiseksi koneeksi Omnin 10.10.10.204 pingasin ja kävin myös sivulla katsomassa ja siellä pomppasi suoraan Windows Device Portal kirjautumis sivu. Skannasin kyseisen koneen komennolla:

$sudo nmap -sV 10.10.10.204

-sV scan

Skannauksesta selvisi, että koneessa on portit 135 ja 8080 auki. Porttia 135 käytetään palveluiden etä hallintaan ja näitä palveluita on DHCP serveri, DNS serveri ja WINS eli windows internet name service. Toinen portti 8080, jota käytetään HTTP yhteyksien luomiseen. Skannauksesta myös selvisi, että kone olisi windows kone. HTB:ssä tätä tietoa ei lukenut. Päätin vielä ajaa agressiivinen portti skannauksen eli käyttäen -A, jos saisin lisää tietoa mitä Windowsia kone pyörittää.

-A scan

Ajtettuani skannauksen loppuun löytyi enemmän mielenkiintoista tietoa kyseisestä koneesta. Skannauksesta löytyi tietoa HTTP versiota ja oletettua windows käyttöjärjestelmää. Skannaus antoi minulle arvauksen, jolla arveli, että kone käyttäisi Windows XP 86% varmuudella ja Windows 7 85% varmuudella.
Kiinnitin myös huomiota Windowsin SP2 kohtaan ja pikaisen Googlauksen jälkeen löysin paljon artikkeleita Windows SP2 haavoittuvuuksista ja tunnetusti Windows XP koneet ovat yleisesti haavoittuvaisia, koska niihin ei ole enää samanlaista tukea kuin ennen. Tracerouten mukaan nämä tiedot tulisivat portista 135, jossa toimii Windows RPC.

Windows RPC on ollut haavoittuvainen Console Command Execution:ille Windows XP ja 7 koneissa, kun googlasin hieman tästä.

Myös IIS on haavoittuvuuksia havaittu, jolla pystytään tiputtamaan hyötykuormaa ASP scriptillä käyttäen WebDAV PUT pyyntöä.

Päätin vielä ajaaa Niktolla kyseisen sivuston ja portin 8080 ja katsoa löytyykö sillä haavoittuvuuksia. Käytin komentoa

nikto -h 10.10.10.204 -p 8080

Nikto

Sivusto näyttäisi olevan haavoittuvainen XSS hyökkäyksille. Suurin osa XSS hyökkäyksistä suuntautuu cookien session ID:n varastamiseen.

Httponly faligilla serveri pytyy lieivttämään näitä hyökkäyksiä. Lyhyesti httponly flag tunnistaa, jos hyökkääjä pyrkii lukemaan evästeen niin sivusto lähettää tyhjän merkkijonon takaisin jolloin hyökkäys epäonnistuu, eikä näitä cookie tietoja lähetetä hyökkääjän sivulle.

Lähteet: https://www.rapid7.com/db/modules/exploit/multi/misc/msf_rpc_console/
https://www.rapid7.com/db/modules/exploit/windows/iis/iis_webdav_upload_asp/
https://owasp.org/www-community/HttpOnly
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

Doctor

Toiseksi koneeksi päädyin valitsemaan Doctor nimisen.koneen HTB:sta. Aloitin ensiksi skannaamalla koneen ja aloitin tutkimalla mitä portteja kyseisessä koneessa on auki.

$sudo nmap -sV 10.10.10.209

-sV

Koneesta löytyi 3 porttia, jotka olivat avoinna. Portissa 22 toimi SSH, portissa 80 toimi Apache webserver ja viimeisessä portissa 8089 oli Splunkd httpd, joka oli itselle tuntematon. Surffailun jälkeen löysin tieto tästä splunkdista, joka sieppaa, indeksoi ja korreloi reaaliaikaista dataa haettavassa arkistossa, josta se tekee kaavioita, raportteja ja hälytyksiä, sekä myös visualisoi tämän datan.

Kävin myös tarkastamassa kyseisen sivuston portista 80 ja se oli nimensä mukaisesti, lääkärin vastaanotto sivusto.

Päätin vielä ajaa -A eli agressiivisen ajon, jotta voisin saada enemmän tietoa näistä porteista je versioista.

$sudo nmap -A 10.10.10.209

Portti skannaus -A komennolla toi aika paljon informaatiota meille ja kone toimii suurella todennäköisyydellä Linux 2.6.32 versiolla.
Skannauksessa huomasin Apachen olevan vanhentunut versio, mutta nopealla googlauksella ei löytynyt mitään haavoittuvuuksia Apachelle.
OpenSSH versio näyttäisi olevan uusin eikä sille löytynyt minkäänlaisia haavoittuvuuksia. Splunkdin SSL-certistä löytyi voimassaolo päivät.

Päätin tässä kohtaa ajaa sivuston vielä Nikton kautta ja selvittää lisää sivustosta ja mahdollisista haavoittuvuuksista

nikto -h 10.10.10.209

Nikto 209

Ajettuani sivuston niktossa, tuli sivustolle samoja haavoittuvuuksia kuin edellisessä koneessa eli näitä XSS haavoittuvuuksia.

Nikto antoi muutaman OSVDB ilmoituksen ja yksi mielenkiintoinen pomppasi silmään, jossa sanotaa OSVDB-3092 ”This might be interesting…” Googlailun jälkeen löysin, että kyseinen tiedosto voi pitää sisällään arkaluontoista materiaali.
Course Hero sivun mukaan tässä olisi haavoittuvuus, jonka avulla hyökkääjä voisi kirjoittaa missä tahansa tiedostojärjestelmässä, mutta sitten serve faultissa puhutaan, että tätä pidettäisiin vähäisenä tietojen paljastamis haavoittuvuutena, jonka voisi päivittää Apachen config tiedostossa.

Lähteet: https://www.coursehero.com/file/p7nbo61/OSVDB-3092-Multiple-Web-Server-Interesting-Web-Document-Found-A-potentially/
https://www.coursehero.com/file/p37625l/OSVDB-3092-Vulnerability-allows-attackers-to-write-anywhere-in-the-file-system/
https://serverfault.com/questions/126954/nikto-probe-warning-messages
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

Sneakymailer

Kolmannekis koneeksi valitsin HTB:sta SneakyMailer:in, jonka ip on 10.10.10.197. Aloitin ensimmäiseksi pingaamalla konetta ja ajamalla nmapin.

$sudo nmmap -sV 10.10.10.197

-sV

Koneesta löytyi 7 porttia, jotka ovat avoimena.
Portista 21 löytyi file transfer protocolla ja näyttäisi olevan uusimmalla versiolla, joka toki on julkaistu jo 2015.
Porttissa 22 on OpenSSH portti auki ja toimii versiolla 7.9p1, johon googlauksella löytyi MitM haavoittuvuus, joka on julkaistu heinäkuussa 2020. Tähän ei cybersecurity-help:in mukaan ole vielä tehty korjauksia.
Portissa 25 pyörii smtp protokolla, joka on tarkoitettu reitittämään sähköposteja email serverille. Tällä skannauksella en saanut mahdollista versiota vielä selville.
portista 80 löytyy http, joka näyttäisi pyörivän nginx webpalvelimella. Nginx pyröii myös vanhemmalla versiolla. CVE-svisutolta löytyi 2 haavoittuvuutta versiolle 1.14.2, jossa http_mp4_moduuli olisi haavoittuvainen, jossa hyökkääjät voivat tehdä ikuisen loopin ja aiheuttaa sivun kaatumisen. Toisena haavoittuvuutena oli HTTP/2, joka sallisi liiallisen muistin käytön.
Porteissa 143 ja 993 toimii imap eli Internet Message Access Protocol, jolla hallinnoidaan palvelimella olevia sähköpostiviestejä. 993 Portissa tämä toimii ssl yhteydellä eli suojatulla yhteydellä.

Päätin ajaa seuraavaksi -A komennon nmapissa, jos saisin lisää tietoa imapista tai smpt:stä. Mutta mitään tieto ei näistä sen kummemmin löytynyt. Yksi asia pisti silmään, jossa portissa 80 toimiva nginx yritti uudelleenohjata sivustolta oisoitteeseen sneakycorp.htb.

Kävin muokkaamassa hosts kansiota

$sudo nano /etc/hosts

ja lisäsin sinne 10.10.10.197 sneakycorp.htb, jotta ohajus onnistuisi sneakycorpin sivulle.

/etc/hosts

Kokeilin uudelleen päästä sivustolle ja se päästi meidät sisään ja oli valmiiksi kirjautuneena käyttäjällä sisään.

sneakycorp

Aloin tutkimaan sivustoa tarkemmin ja huomasin viesti boksissa olevan viestejä, mutta en pystynyt avaamaan näitä viestejä, joten käytin f12 ja rupesin tutkimaan elementtejä ja pääsin näin lukemaan viestit joita käyttäjämme oli saanut. Viesteistä sain selville, että Cara Stevens on yrityksen johtaja tällä hetkellä ja Bradley Greer on koodin testaaja. Tässä on iso haavoittuvuus, koska tiedän yrityksen johtajan ja koodin testaajan sähköpostit, johon voisin lähettää vaikka haittaohjelman, joka parhaassa tapauksessa voisi levitä yrityksen verkkoon. Huomasin myös sivuston toimivan php:llä, josta voisi mahdollisesti saada jotain irti?

Päätin kokeilla ja ajaa sivuston niktolla, jos saisin tietää enemmän sen haavoittuvuuksista.

Nikto

Niktosta en niin hirveästi saanut irti, muutakuin joitain php sivuja, jotka ovat mahdollisesti haavoittuvaisia ja php saattaa olla myös vanhentunut versio.

Päätin vielä tutkia etusivulla olevaa PyPI ”it is now possible to install modules with pip on out server” kohtaa ja avasin f12 ja rupesin tutkimaan kyseistä laatikkoa, josta sitten löysin kohdan /pypi/register.php

Lisäämälläni linkillä pääsin luomaan käyttäjää serverille, mutta jätin tehtävän tässä kohtaa kesken, jota todennäköisesti jatkan myöhemmin.

pypi register

Lähtee: https://www.cvedetails.com/cve/CVE-2018-16845/
https://www.cvedetails.com/cve/CVE-2018-16845/
https://www.cvedetails.com/cve/CVE-2018-16843/
https://www.cybersecurity-help.cz/vdb/SB2020073043
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

Time

Neljännekis koneeksi, jota analysoin päätin valita Time nimisen koneen, joka kantaa osoitetta 10.10.10.214.

Aloitin ajamalla nmapin koneeseen 10.10.10.214 ja käytin -sV komentoa ensimmäisenn ajoon nähdäkseni mitä portteja koneella on auki. Koneesta paljastui kaksi porttia ja käyttöjärjestelmänä toimii linux. Portissa 22 toimi OpenSSH ja versiona näyttäisi olevan 8.2 eli tietojeni mukaan uusin ja tämä uusin SSH paketti tukee rsa-sha2-512 algorytmiä, jossa on mahdollisuus kaksi vaiheiseen tunnistautumiseen Fossbyten mukaan. Löysin yhden haavoittuvuuden 8.2p1 versioon Cybersecurityhelp sivuston mukaan se olisi haavoittuvainen MintM hyökkäyksille.
Toisena porttina koneessa toimi perinteinen 80 portti, jossa pyörii Apachen webpalvelin.

-sV

Päätin vielä ajaa -A komennolla kyseisen koneen, jos saisin lisätietoa koneesta enemmän.

-A

-A ajosta, ei saanut juurikaan enempää tietoa, enkä saanut haluamaani Linux versiota selville. Apachesta sai sen verran tietoon, että kyseinen sivusto voisi olla JSON:illa koodattu? Yksi pisti silmään, että TRACEROUTEna oli portti 3389, jota käyttää Microsoft Terminal Server (RDP). Myös TCP/IP sormenjälki löytyi ajossa.

Päätin käydä katsomassa tarkemmin http sivua löytyisikö sieltä mitään mielenkiintoista. Sivustolta löytyi ONLINE JSON BEAUTIFIER & VALIDATOR.

Eniten silmään pisti Validaattori, joka oli beta versio, jossa voisi olla jonkinlaisia haavoittuvuuksia, joten päätin ajaa sivuston jälleen Nikton kautta ja katsoa löytyisikö mitään mielenkiintoista.

Nikto

Nikto löysi yhden OSVDB-630 haavoittuvuuden sivustolta, jossa web server voi paljastaa sisäisen tai oikean IP osoitteen. Vulners sivuston mukaan tämä OSVDB-630 olisi Microsoft IIS (Internet information service) haavoittuvuus.

Lähteet: https://vulners.com/osvdb/OSVDB:630
https://fossbytes.com/openssh-8-2-released-two-factor-authentication-linux/
https://www.cybersecurity-help.cz/vdb/SB2020073043
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

Passage

Viimeiseksi koneeksi valitsin Passage nimisen oletettavasti Linux koneen. Aloitin -sV skannauksella, josta löytyi perinteiset 22 ja 80 portit avonaisena.

-sV

Portissa 22 pyörii OpenSSH versiolla 7.2p2. Löysin CVE sivustolta 2 vakavaa haavoittuvuutta, jotka olivat pisteytetty korkeimmalle.

CVE-2016-6515 Enne 7.3 veriota OpenSSH ei rajoita salasanojen pituutta salasanan tunnistautumisessa, joka sallii hyökkääjien tehdä DoS hyökkäyksen.
CVE-2015-8325 Kun UseLogin ominaisuus on kytketty päälle ja PAM on konfiguroitu lukemaan .pam_enviroment tiedostoja /user/home kansiossa, joka sallii paikallisen käyttäjän saada enemmän käyttöoikeuksia.

Myös Apachen versiosta 2.4.18 löytyi lukuisia haavoittuvuuksia ja kirjoitan niistä kahdesta eniten pisteitä saaneesta haavoittuvuudesta.

CVE-2017-7668 Apache httpd 2.2.32 ja 2.4.24: een lisätyt HTTP: n jäsentämismuutokset toivat virheen merkkiluetteloiden jäsentämiseen, jonka avulla ap_find_token () voidaan etsiä.
CVE-2017-7679 Apache httpd 2.2.x: ssä ennen 2.2.33 ja 2.4.x: ssä ennen versiota 2.4.26 mod_mime voi lukea yhden tavun puskurin päästä, kun se lähettää haitallista Content-Type-vastausotsikkoa.

Kokeilin vielä ajaa -A agressiivisen ajon koneelle ja katsoa löytyykö mitään lisätietoa sivusta.

-A

-A ajolla löytyi SSH-hostkeyt (RSA, ECDSA ja ED25519) Myös http sivun title löytyi ajosta, mutta tarkempaa käyttöjärjestelmä koneelle ei löytynyt. Päätin vielä ajaa koneen niktolla, mutta niktolla en saanut juuri mitään irti, koska koneella on ilmeisesti fail2ban ohjelma käytössä, joka katkaisee yhteyden jos tietystä osoitteesta tulee liikaa liikennettä.

Nikto

Lähde: https://www.cvedetails.com/cve/CVE-2016-6515/
https://www.cvedetails.com/cve/CVE-2015-8325/
https://www.cvedetails.com/cve/CVE-2017-7668/
https://www.cvedetails.com/cve/CVE-2017-7679/
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

Tehtävä c)

HTB FluJab

  • Hyökkääjä aloittaa luetteloimalla hostit, jotka hostaavat monille eri asiakkaille.
  • Kun hosti on tunnistettu, löytyy outoja cookieita joiden avulla pääsee konfigurointi sivulle.
  • Sivulla voi konfiguroida SMTP serverin menemään hostin läpi ja käyttää SQL injecktiota lomakkeisiin, josta voi lukea tulokset sähköpostin kautta
  • Koneessa Sneakymailer käytettiin hyväksi myös SMTP protokollaa.

Hyökkääjän käyttämät työkalut FluJab: Nmap, wfuzz, netcat

Ajattelin lähteä kokeilemaan wfuzz nimistä ohjelmaa, jolla voidaan etsiä ei linkitettyjä hakemistoja, scriptejä yms. ja myös bruteforcettamaan GET ans POST parametreja erillaisiin injectioihin kuten SQL ja XSS.

En kuitenkaan saanut tätä ohjelmaa toimimaan/osannut käyttää, joten tehtävä jäi omalta osalta vähän puolitiehen.

Lähteet:https://0xdf.gitlab.io/2020/06/20/htb-servmon.html#website—tcp-8443
https://0xdf.gitlab.io/2020/09/26/htb-admirer.html
https://www.youtube.com/watch?v=f4vQhI4ADmI
https://www.youtube.com/watch?v=uLNpR3AnE-Y
https://www.rapid7.com/db/modules/exploit/multi/misc/msf_rpc_console/
https://www.rapid7.com/db/modules/exploit/windows/iis/iis_webdav_upload_asp/
https://owasp.org/www-community/HttpOnly
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
https://www.coursehero.com/file/p7nbo61/OSVDB-3092-Multiple-Web-Server-Interesting-Web-Document-Found-A-potentially/
https://www.coursehero.com/file/p37625l/OSVDB-3092-Vulnerability-allows-attackers-to-write-anywhere-in-the-file-system/
https://serverfault.com/questions/126954/nikto-probe-warning-messages
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
https://www.cvedetails.com/cve/CVE-2018-16845/
https://www.cvedetails.com/cve/CVE-2018-16845/
https://www.cvedetails.com/cve/CVE-2018-16843/
https://www.cybersecurity-help.cz/vdb/SB2020073043
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
https://www.cvedetails.com/cve/CVE-2016-6515/
https://www.cvedetails.com/cve/CVE-2015-8325/
https://www.cvedetails.com/cve/CVE-2017-7668/
https://www.cvedetails.com/cve/CVE-2017-7679/
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
https://vulners.com/osvdb/OSVDB:630
https://fossbytes.com/openssh-8-2-released-two-factor-authentication-linux/
https://www.cybersecurity-help.cz/vdb/SB2020073043
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/



Viikkotehtävä 3(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

h3 nmap ja kaverit

Aktiivista tiedustelua, active recon.

Ole huolellinen näiden työkalujen kanssa. Porttiskannereita ja vastaavia ohjelmia saa käyttää vain harjoitusmaaleihin. Liikennettä tulee seurata toisella ohjelmalla (esim snifferi, kaikki verkkokortit on usein ”any”). Osoitteiden (esim. IP-numeroiden) kanssa tulee olla tarkkana. Voit käyttää vain sellaisia työkaluja, joiden toiminnan ymmärrät kohtuullisesti. Missään tehtävässä ei tehdä palvelunestohyökkäyksiä, eli älä lähetä kohdekoneille järjetöntä määrää dataa tai pyyntöjä järjettömällä nopeudella. Lue ja tallenna itsellesi HackTheBoxin säännöt ennenkuin aloitat. Kurssin säännöissä ja oppitunnilla on annettu tarkempia ohjeita.” (Karvinen, 2020)

”z) Lue artikkelit ja katso videot, tee kustakin muistiinpanot (muutama ranskalainen viiva per artikkeli/video). Tässä z-kohdassa ei tarvitse tehdä mitään kokeita koneella.

  • € Santos et al: The Art of Hacking (Video Collection): [..] 4.3 Surveying Essential Tools for Active Reconnaissance. Sisältää porttiskannauksen. 5 videota, yhteensä noin 20 min.
  • Lyon 2009: Nmap Network Scanning: Chapter 1. Getting Started with Nmap Suoraan hevosen suusta: Gordon Lyon aka Fyodor Vaskovich on kirjoittanut tuon menestyneen kirjan lisäksi nmapin. Kirja maksaa 40 eur, mutta reiluna kaverina Gordon oli laittanut juuri tähän sopivat kappaleet ilmaiseksi nettiin.
  • Silmäile (ei tarvitse lukea kokonaan, 40 liuskaa pitkä): Lyon 2009: Nmap Network Scanning: Chapter 15. Nmap Reference Guide
  • Silmäile (ei tarvitse lukea kokonaan): man nmap” (Karvinen, 2020)

”a) Miten nmap scan toimii? Tee nmapilla seuraavat testit, sieppaa liikenne snifferillä (wireshark) ja analysoi tulokset. Tee testit mahdollisimman suppeasti, jotta analysointi on helpompaa. Esimerkiksi skannaa vain yksi portti yhdestä koneesta, jos ominaisuuden esittely ei hyöydy laajemmasta skannauksesta. Selitä myös, miksi nmap lähettää tuollaisia paketteja. Käytä nmap:ia normaalisti sudo:n kanssa. Porttiskannaa ainoastaan omaa konetta omassa verkossa ja harjoitusmaaleja.” (Karvinen, 2020)

  • ping sweep -sn
  • don’t ping -Pn
  • TCP SYN ”used to be stealth” scan, -sS (tätä käytetään skannatessa useimmin)
  • TCP connect scan -sT
  • version detection -sV

”b) Nmap:n toimintoja. Kokeile, anna esimerkit, selitä tulokset ja käyttötarkoitus. Seuraa aina snifferillä, tarvittaessa perustele analyysisi siepatulla liikenteellä.” (Karvinen, 2020)

  • porttien valinta -p1-100, –top-ports 5
  • ip-osoitteiden valinta, verkkomaskilla 10.10.10.0/24, alku- ja loppuosoitteella 10.10.10.100-130 (ipcalc auttaa ymmärtämään, miten verkkomaskia tulkitaan)
  • output files -oA foo
  • version scanning -sV
  • OS fingerprinting, version detection, scripts, traceroute -A (miksei mnemonic ole –and-kitchen-sink?)
  • 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)

”c) Ninjojen tapaan. Aja nmap-versioskannaus -sV omaan paikalliseen weppipalvelimeen. Weppipalvelimeksi sopii esim ’python3 -m http.server’ tai oma apache. Piiloutuuko nmap-skannaus hyvin palvelimelta? Vinkki: wiresharkissa ”http” on kätevä filtteri, se tulee siihen yläreunan ”Apply a display filter…” -kenttään. Nmap-ajon aikana p laittaa packet tracing päälle. Vapaaehtoinen lisäkohta: jääkö Apachen lokiin jokin todiste nmap-versioskannauksesta?” (Karvinen, 2020)

”d) UDP-skannaus. ”Mulla olis vitsi UDP:sta, mutta en tiedä menisikö se perille”. Etsi tarvittaessa itse lähteet.” (Karvinen, 2020)

  • Mitkä ovat tavallisimmat tai kiinnostavimmat palvelut, joita UDP-skannauksella voisi löytää?
  • Miksi UDP-skannaus on hankalaa ja epäluotettavaa?
  • Miksi UDP-skannauksen kanssa kannattaa käyttää –reason flagia?
  • Vapaaehtoinen vaikeampi bonuskohta: näytä esimerkki onnistuneesta UDP-skannauksesta, sekä jonkin UDP:n erityisominaisuuden takia epäonnistuneesta tai harhaanjohtavan tuloksen antavasta UDP-skannauksesta.

”e) Avaa yhteys HackTheBoxin verkkoon ja osoita, että yhteys toimii. Varmista esimerkkiosoitteella, että olet yhteydessä oikeaan HackTheBox maaliverkkoon. Voit esimerkiksi tarkistaa ipcalc:lla, että kyseessä on yksityinen IP. Kokeilla pingillä, että osoite vastaa vain, kun VPN-tunneli on päällä. Kokeilla surffata jotain sivua, joka näkyy vain tuolta maaliverkosta. Ja tietysti, että kaikki toimii odotetulla tavalla.” (Karvinen, 2020)

”f) Tiedustele aktiivisesti HackTheBoxin verkko. Analysoi tulokset (tärkeää). Käytä nmap-porttiskanneria. Seuraa koko ajan porttiskannerin toimintaa snifferillä, kuten tshark tai wireshark. HTB:n ratkaisut yhdessä sovitun salasanan taakse, jotta emme spoilaa toisten kilpailua. Tämä on laaja tehtävä, koska analysoitavaa on paljon. Pelkät komentojen tulosteet ilman analyysia eivät riitä, pääpaino on tulosten selittämisellä ja tulkinnoillasi. Osaatko nimetä työkaluja, joilla löytämiäsi palveluita (tai jopa haavoittuvuuksia tai vanhempia versioita) voisi tutkia myöhemmin lisää?” (Karvinen, 2020)

”c) Vapaaehtoinen: Tiedustele aktiivisesti joitakin HackTheBoxin maalikoneita muillakin työkaluilla. Analysoi tulokset (tärkeää) Sopivia ovat esimerkiksi EyeWitness, nikto, wpscan, gobuster, openvas ja ffuf. Aputyökaluiksi sopii Linuxin komentokehote, grep, pythonpy… Voit valita näistä vain jonkin tai joitakin työkaluja. Seuraa työkalun toimintaa koko ajan snifferillä, ja käytä vain työkaluja, joiden toiminnan ymmärrät kohtuullisesti. HTB:n ratkaisut yhdessä sovitun salasanan taakse, jotta emme spoilaa toisten kilpailua.” (Karvinen, 2020)

”e) Vapaaehtoinen, haastava: Korkkaa jokin HTB:n kone.” (Karvinen, 2020)

*Päivitetty 28.1.2021*

z) Lue artikkelit ja katso videot, tee kustakin muistiinpanot

Santos et al: The Art of Hacking

Active reconnaissance

  • Aktiivisella tiedustelulla pyritään saamaan tietoa uhrista ja/tai tämän verkosta erilaisia työkaluja käyttäen
  • Tiedustelussa saatuja tietoja ei kannata hävittää vaan pistää muistiin. Hyvä esimerkki nmapissa -oA komento, jolla saat tallennettua tulokset tiedostoiksi omalle koneelle.
  • Aktiivisessa tiedustelun eri vaiheet koostuvat esim. verkon skannauksesta, haavoittuvuuksien etsinnästä ja joissakin tapauksissa vaikka kalastelulla.

Porttiskannaus

  • Porttiskannauksessa käytetyin työkalu on nmap, jolla pystytään skannaamaan verkkoja tai yksittäisi hosteja
  • Nmapissa voidaan käyttää erilaisia komentoja ja kehoitteita riippuen mitä kohteesta halutaan saada selville. Porttien tiedot onko avoin vai ei ja mitä protokollia missäkin portissa on ja myös mahdollisia ohjelmisto versioita.
  • Masscan on yksi nopea tapa skannata portteja. Kalin ohje sivujen mukaan se olisi nopein porttiskanneri, jolla voisi skannata koko internetin alle 6 minuutissa.

Haavoittuvuudet

  • Verkon tai webin haavoittuvuuksien löytäminen
  • Työkaluja verkon skannailuun on yleisin eli nmap ja netcat tai wireshark, jolla voidaan analysoida verkon tietoja tarkemmin.
  • Webbiin tarkoitettuja työkaluja on nikto, joka löytyy kalista valmiiksi eli webserver skanneri ja SQLMap jota voidaan käyttää SQL injektioiden tekemiseen.

Lyon 2009: Nmap Network Scanning

Avatar online AO

Kappaleessa 1 käydään tarinaa läpi, jossa Pen-testing firmassa työskentelevä Felix saa toimeksiannon Avatar online peli firmalta. Felixin tulisi etsiä haavoittuvuuksia palomuurin ulkopuolelta. Kappaleessa käydään läpi muutamia komentoja joita voidaan nmapissa käyttää.

-sS eli SYN Scan, joka on oletuksena nmapissa.
-p-, jolla voidaan skannata jokainen portti 1-65535. Tämä komento on laajempaan skannaukseen, kuin normaalisti jolloin skannataan vain 1000 porttia.
-oA eli output files, jolla voidaan tallentaa porttiskannauksen tulokset tiedostoksi.

Trinity Matrix

Toisessa kappaleessa käydään matrixin skenaariota läpi, jossa henkilö Trinity yrittää kaataa sähköverkkoja, jotta ihmiskunta ei joutuisi koneiden orjiksi. Kappaleen kuvakaappauksessa nähdään kun Trinity ajaa komennon

nmap -v -sS -O 10.2.2.2

MadHat

Kolmannessa kappaleessa käsitellään tositarinaa, joka kertoo Lee ”MadHat” Heathista, joka on nmapin käyttäjä ja avustaja. MadHat työskenteli yrityksessä, jossa hän sai tehtäväksi skannata päivittäin 100.000 hostia, johon menisi noin 30tuntia niin hän päätti kirjoittaa skriptin nmap-wrapper, joka ajaa useita nmapin toimintoja rinnakkain ja tämän ansiosta aika puolittui 30 tunnista 15 tuntiin. Hän on julkaissut skriptit omalla nettisivullaan, joka löytyy täältä.

Lähteet: https://www.oreilly.com/library/view/the-art-of/9780135767849/SPTT_04_00.html
http://www.unspecific.com/nmap/
https://nmap.org/book/nmap-overview-and-demos.html
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

Tehtävä a) Miten nmap scan toimii?

Tehtävässä a) oli tarkoitus tutustua nmappiin ja sen toimintoihin. Valitsin kohde maaliksi Hack The Boxista eri maaleja, jotta tulokset eivät olisi aina samanlaisia. Aloitin ensimmäiseksi laittamalla VPN yhteyden kuntoon ja tarkistin, että pingi menee kohde koneelle läpi ja se meni eli kaikki oli ok.

Ping sweep -sn

Ping sweepillä pystyin tarkistamaan kuinka monta hostia verkossa on ylhäällä esimerkiksi jos skannaan koko verkon niin näen verkossa hostit, jotka ovat ylhäällä. Tehtävässä skannasin vain ping sweep:illä yhden koneen eli 10.10.10.198 ja sain selville komennolla, että tämä hosti on ylhäällä.

Kuvassa koneeni lähettää SYN kysymyksen hostille onko tämä hereillä.

Wireshark data

Don’t ping -Pn

-Pn komennolla voidaan skannata tietyltä hostilta kaikki portit, jotka ovat avoimia. Komento skannaa 1000 yleisintä porttia ja kertoo niistä avoimena olevat portit ja jättää näyttämättä filteröidyt portit. nmap help sivulla sanotaan "-Pn: Treat all hosts as online -- skip host discovery"

Nmap -Pn Kali

Laitoin nmapin päälle ja samalla seurasin wiresharkilla tun0 liikennettä, josta näin VPN liikenteen. Wiresharkista bongasin punaisella merkityn datan, jossa koneeni oli lähettänyt RST eli resetin hostille 8080 portista, joka tarkoittaa, että hosti on puhunut kyseisestä portista meille.

Wireshark

TCP SYN ”used to be stealth” scan, -sS

Kali -sS

Syn scan on yleisin porttiskannaus tekniikka ja myös nopein skannaus tapa. Tällä pyritään ettei portti lokeihin jäisi tietoa tai mahdollisesti, ettei port security toimintoja laukaistaisi. TCP SYN skannauksessa skannaaja lähettää SYN pyynnön hostille ja Host vastaa SYN, ACK johon skannaaja vastaa RST eli lopettaa kyselyn siihen, kun saanut vastauksen, että portti on aktiivinen ja valmis keskusteluun, mutta kone ei vastaa hostille, että tämä portti käy vaan poistuu.

Wireshark

Wiresharkissa huomasin, että koneenin oli sulkenut nämä yhteydet heti SYN/ACK varmistuksen jälkeen RST paketilla.

TCP connect scan -sT

Tätä yhteyttä voidaan käyttää, jos halutaan skannata IPv6 verkkoja tai jos jostain syystä SYN skannaus ei ole mahdollista.

TCP connect scan on alussa samanlainen kun stealth scan, mutta sen sijaan, että kone katkaisisi yhteyden puoliavoimen tien kohdalla niin skannaaja lähettää vielä SYN/ACK:n jälkeen oman ACK paketin varmistaakseen yhteyden. Tässäkin ajassa host ehtii lähettää esimerkiksi SSH bannerin merkkijonon ja heti kun nmap on saanut varmistuksen yhteydestä se sulkee sen RST paketilla.

Skannasin Hack the box koneen kyseisellä komennolla, josta näin, että SSH ja http portit olivat auki.

-sT kali

Alla olevasta kuvasta näkee, kun skannasin kyseisen koneen niin koneeni oli lähettänyt ACK paketin hosti koneelle, jonka jälkeen oli vielä tehty RST eli katkaistu yhteys kokonaan, kun yhteys oli varmistettu.

Wireshark -sT

Version detection -sV

Nimensä mukaisesti tämä kertoo kohde koneen/hostin portin version.

Skannasin HTB koneen 10.10.10.215, joka näytti kaksi porttia, jotka olivat SSH ja http ja niistä sain selville mitä versiota SSH ja http käyttävät.

-sV kali

Wiresharkista sain paljon mielenkiintoista tietoa ja kaikkea en edes ehtinyt tutkiskelemaan, mutta kiinnitin huomion heti (text/html) kohtiin, josta löytyi versiot mitä http versiota hosti käyttää.

Löysin myös toisen mielenkiintoisen löydöksen kun filteröin TCP protkollia wiresharkilla niin löysin kuinka paljon koneeni ja hosti keskustelivat keskenään. Ja törmäsin myös FIN paketteihin. Eli FIN tarkoitetaan kun dataa ei ole enempää niin keskustelu lopetetaan ”yhteisymmärryksessä” eikä tehdä niin sanottua RST eli resettiä ja katkaista yhteyttä.

-sV wireshark

Lähteet: http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
https://nmap.org/book/scan-methods-connect-scan.html
https://nmap.org/book/nmap-overview-and-demos.html
https://www.youtube.com/watch?v=4t4kBkMsDbQ&t=179s

Tehtävä b) Nmap:n toimintoja.

porttien valinta -p1-100, –top-ports 5

Kokeilin porttien valintaa HTB maalikoneeseen ja tulokseksi siis tuli 5 suosituinta porttia. Numeroa top-ports komennossa voi muuttaa riippuen siitä montako suosituinta porttia haluan skannata kyseisestä hostista.

Nmap -top-ports

En myöskään huomannut poikkeavia eroja wiresharkissa vaan sain tulokseksi normaale SYN pyyntöjä eri portteihin. Pyynnöt tietenkin erosivat toisistaan, jos portti oli avonainen.

top-ports wireshark

ip-osoitteiden valinta, verkkomaskilla 10.10.10.0/24, alku- ja loppuosoitteella 10.10.10.100-130 (ipcalc auttaa ymmärtämään, miten verkkomaskia tulkitaan)

Kokeilin skannata HTB 10 verkon koneista 198-200 eli $sudo nmap -sS 10.10.10.198-200 skannaamisessa meni yllättävän kauan noin 47 sekuntia, mutta tajusin, että olisin esimerkiksi voinut vielä lisätä porttien määrän mitä haluan skannata, jolloin tulos olisi ollu varmaan nopeampi versus, että skannaan verkkojen kaikki portit.

output files -oA foo

Kokeilin output filesiä ja mielestäni tämä voisi olla erittäin hyödyllinen työelämässä, jos tarvitsee skannailla isompia verkkoja niin saat tiedot automaattisesti tallennettua omalle koneelle. $sudo nmap -oA kokeilu -top-ports 5 10.10.10.215 kyseisellä komennolla sain 3 tiedostoa kokeilu.gnmap, kokeilu.nmap ja kokeilu.xml tiedostot kansioon, jossa olin sillä hetkellä kun ajoin komennon.

-oA kali

version scanning -sV

Kokeilimme tätä komentoa edellisessä tehtävässä, joten päätin kokeilla tätä hieman eritavalla ja skannata useamman verkon ja vain top 5 portit, jotta tulos olisi vähän erinlainen. Komennolla -sV sain selville avonaisten porttien versiot esim. jos avoinna oli http portti niin käyttääkö se apachea vai kenties jotain muuta webpalvelinta http sivun ylläpitoon.

Nmap -sV kali

Omaan silmään ei wiresharkissa näkynyt mitää erikoisempaa, ellei sitten tiettyä avointa porttia lähtenyt tarkastelemaan tarkemmin, josta sai myös selville portin version.

OS fingerprinting -A

Ajettuani OS fingerprint komennon, huomasin, että se on samanlainen kuin -sV komento, mutta sain vielä hieman enemmän tietoa avonaisista porteista sekä TCP/IP fingerprintin. Myös tiedoista löytyi verkkojen välisten hyppyjen määrä eli Nexthop ja Traceroutet eli traceroute, joka näyttää mahdollisen tien ja mittaa pakettien viiveen kun ne ylittävät IP protokollan verkossa. Jotkut hostit voivat vielä antaa esim. ssh-hostkeyn.

$sudo Nmap -A -top-ports 5 10.10.10.215

Nmap -A kali

Wiresharkista löysin aivan uusia pyyntöjä, joita koneeni lähetti hostille PSH ja URG. PSH flagi TCP headerissa ilmoittaa hostille, että data joka saapuu hostille OSI mallin 4 kerrokseen eli kuljetukseen on välittömästi siirrettävä sieltä kerros 7 eli applikaatio kerrokseen. En tosin ymmärrä täysin miksi näin tehdään ja löysin nämä flagit kun koneeni kommunikoi TCP 22 portin kanssa eli SSH yhteyden.

nmap -A wireshark

ajonaikaiset toiminnot

Nmapissa on useita ajonaikaisia komentoja joita voidaan antaa. Yksi yleinen on mitä itse käytän, jos perinteinen skannaus kestää pitkää on f jolla näen kuinka pitkällä skannaus on.

f = näet skannauksen keston (prosentteina)
v/V = verbosityllä voit tulostaa lisätietoja ajon aikana. Pieni v = lisää ja iso V vähentää verbosity leveliä.
d = debuggin tällä komennola saa enemmän tietoa kuin verbosityllä, jos verbosityn tiedot eivät riitä ja haluat lisää infromaatiota.

normaalisti ’sudo nmap’. Miten nmap toiminta eroaa, jos sitä ajaa ilman sudoa?

Kokeilin ensiksi ajaa nmappia ihan vain komennolla nmap 10.10.10.215 eli ilman sudoa ja tämä komento menee läpi ja kone skannaa normaalisti. Yritin tämän jälkeen lisätä komentoon -sS eli stealth scanin niin linux sanoi ”You requested scan type which requires root privileges. QUITTING!”. Nmappia voi siis käyttää normaaliin skannaukseen ilman erillisiä komentoja, mutta sudoa täytyy käyttää, jos haluaa antaa muita komentoja esim. -sS tai muita vastaavia.

Ilman sudo oikeuksia nmap käyttää -sT oletuksena eli TCP yhteyttä, kun taas sudo nmap käyttää oletuksena -sS eli SYN TCP stealth skannausta.

sudo nmap ja nmap

vertaile -sV vs -A kestoa

Skannasin saman hostin kummallakin komennolla -sV ja -A. Tuloksista kävi ilmi, että ajallisesti -A komento kestää 2x pidempään kuin -sV. Pakettien lähetetyssä määrässä ei kuitenkaan ollut niin suurta eroa, mitä voisi kuvitella, jos skannaus kestää ajallisesti tuplasti pidempään.

-sV
-A

-sV komennolla wireshark kaappasi 2102 pakettia, mutta -A komenolla paketteja napattii 2731.

-sV
-A

Lähde: http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
https://packetlife.net/blog/2011/mar/2/tcp-flags-psh-and-urg/
https://superuser.com/questions/887887/different-behavior-sudo-nmap-vs-just-nmap#963360
https://nmap.org/book/nping-man-output-options.html

c) Ninjojen tapaan. Aja nmap-versioskannaus -sV omaan paikalliseen weppipalvelimeen.

Aloitin tehtävän laittamalla oman apache palvelimen päälle ja katsomalla statukset, että kaikki on kunnossa palvelimella. Kävin myös katsomassa 127.0.0.1 osoitteesta, että on päällä. Kun weppipalvelin oli saatu toimintaan ajoin komennon $sudo nmap -sV 127.0.0.1.

-sV kali

Tehtävässä oli tarkoitus tarkastella piiloutuuko nmap-skannaus hyvin palvelimelta, mutta ainakin wireshark kaappasi HTTP GET paketin, jossa oli jälkiä nmapin käytöstä. Löysin Hypertext Transfer Protocol välilehdeltä tietoa nmapin käytöstä.

wireshark weppipalvelin

Lisätehtävänä oli käydä katsomassa löytyykö apachen logista jälkiä nmapin käytöstä. Aloitin tehtävän menemällä /var/log kansioon, josta etsin apache2 kansion. Apache kansiosta löytyi tiedosto access.log jonka avasin komennolla $sudo cat access.log. Jälkiä oli myös jäänyt apachen omaan logiin nmapin käytöstä.

$sudo cat /var/log/apache2/access.log // komento access.logiin.

/var/log/apache2/access.log

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

d) UDP-skannaus.

-Mitkä ovat tavallisimmat tai kiinnostavimmat palvelut, joita UDP-skannauksella voisi löytää?

Yleisimmät palvelut mitä UDP skannauksella voi löytää on DNS, SNMP ja DHCP. Nämä palvelut löytyvät porttien 53, 161/162 ja 67/68 takaa.

-Miksi UDP-skannaus on hankalaa ja epäluotettavaa?

Ongelmana on kun palimuurit estävät ulosmenevät ICMPv4 type 3, code 3 viestit jolloin portti näyttää olevan auki, siksi näitä oikeita avoimia portteja on vaikea erottaa näistä vääristä positiivisistä porteista. UDP skannaus on myös erittäin hidasta, koska nmap välttää verkon floodaamista turhilla paketeilla.

-Miksi UDP-skannauksen kanssa kannattaa käyttää –reason flagia?

UDP skannauksessa kannattaa käyttää –reason flagia, koska UDP on yhteydetön protokolla, jossa ei ole flageja. Reason komennolla pystymme näkemään miksi portti on merkitty suljetuksi, avoimeksi tai filteröidyksi ja miksi hosti on ylhäällä.

Lähde: http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
https://www.utc.edu/center-academic-excellence-cyber-defense/pdfs/4660-lab2.pdf
https://geek-university.com/nmap/the-reason-flag/

e) Avaa yhteys HackTheBoxin verkkoon ja osoita, että yhteys toimii.

Ensinmäiseksi aloitin ottamalla VPN yhteyden HTB verkkoon komennolla
$sudo openvpn *käyttäjätunnus*.ovpn. Tämän jälkeen siirryn HTB sivulle, josta tarkistan, että yhteys on varmasti mennyt päälle.

Lab yhteys

Kävin vielä tarkistamssa, että pääsen jollekkin maalikoneen nettisivulle ja käytin buff:in konetta 10.10.10.198:8080 ja pääsin vierailemaan sivulle.

10.10.10.198:8080

Sain onnistuneen yhteyden HTB verkkoon.

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

f) Tiedustele aktiivisesti HackTheBoxin verkko. Analysoi tulokset.

Aloitin tehtävän tekemisen skannaamalla HTB verkon 10.10.10.0/24 ja käytin tehtävään kahta eri ajoa -sS ja -sV. Käytin myös komentoa –top-ports 5, jotta saan skannattua top 5 portit kaikista maalikoneista ja päätin vielä tehdä laajemman skannauksen, jossa skannasin -sV komennolla kaikki portit HTB:sta, joka kesti 483.11 sekunttia.

$sudo nmap -sS --top-ports 5 10.10.10.0/24

$sudo nmap -sV 10.10.10.0/24

-sV skannaus tulos

Analysoinnissa huomasin, että suurin osa HTB koneista toimii Linuxilla, mutta muutamat koneet toimivat myös windowsilla. Tuloksia selatessa huomasin yhden koneen 10.10.10.197, jossa oli IMAP protocolla portissa 143 ja 993 auki. IMAPia käytetään sähköpostien lähtetyksessä niin rupesin miettimään voisiko tätä käyttää jotenkin hyväksi jossakin hyökkäyksessä, kun nämä portit ovat jätetty auki. Googlailun jälkeen löysin paljon exploitteja, joita on kirjoitettu nimen omaan IMAP Courierille.

IMAP

Skannailu tuloksista löysin myös 3 eri windows konetta, jotka myös rupesivat kiinnostamaan minua. Koneet olivat 217, 213 ja 210. Konee alkoivat kiinnostamaan windowsin haavoittuvuuksien takia. Löysin koneista, että useat käyttävät windows RPC:tä eli Windows Remote Procedure Call. RPC on pyyntö-vastaus protokolla. RPC:lle löytyi myös paljon valmiiksi kirjoitettuja exploitteja kuten RPC Console Command Execution.

210 kone
213 kone
217 kone

Lähteet: https://www.rapid7.com/db/modules/exploit/multi/misc/msf_rpc_console/
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/

Kaikki lähteet: http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
https://www.rapid7.com/db/modules/exploit/multi/misc/msf_rpc_console/
https://nmap.org/book/scan-methods-connect-scan.html
https://nmap.org/book/nmap-overview-and-demos.html
https://www.youtube.com/watch?v=4t4kBkMsDbQ&t=179s
https://packetlife.net/blog/2011/mar/2/tcp-flags-psh-and-urg/
https://superuser.com/questions/887887/different-behavior-sudo-nmap-vs-just-nmap#963360
https://nmap.org/book/nping-man-output-options.html
https://www.oreilly.com/library/view/the-art-of/9780135767849/SPTT_04_00.html
http://www.unspecific.com/nmap/
https://nmap.org/book/nmap-overview-and-demos.html


Viikkotehtävä 2(Pen test)

Etusivulle

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

VK2 Penetration Testing Course 2020 Autumn

Tehtävän annot otettu Tero Karvisen kurssi sivulta

”Lue opiskelumateriaali jokaisen läksyn yhteydessä. Tämän kerran lukupaketti L2 tutustuttaa OWASP 10 sekä hakkerointia opettaviin videoihin O’Reilly Learningissa (läpinäkyvyyden nimissä: sen omistava yritys on julkaissut useita kirjojani).” (Karvinen, 2020)

”a) Kirjaa muutamalla ranskalaisella viivalla per artikkeli muistiinpanot kustakin lukuläksyn osasta. OWASP 10 osalta 3-5 bullettia per haavoittuvuus. Bulleteista on hyvä selvitä, miten haavoittuvuutta käytetään; sekä olla niin yksilöivä, että eri haavoittuvuudet erottuvat toisistaan.” (Karvinen, 2020)

”b) Kybertappoketju. Mainitse esimerkkejä työkaluista, jotka soveltuvat Hutchins et al kybertappoketjun kuhunkin vaiheeseen. Tee esimerkkiajo niillä työkaluilla, joita osaat käyttää turvallisesti ja muita verkkoja häiritsemättä.” (Karvinen, 2020)

”b) Ratkaise WebGoatista tehtävät

  • A2 ”Broken Authentication”: Authentication Bypasses, Secure passwords (Eli ”JWT tokens” ja ”Password reset” voi tehdä myöhemmin).
  • A3 ”Sensitive Data Exposure”
  • A7 ”Cross Site Scripting”: What is XSS?, Try It! Reflected XSS (Eli ”Identify potential for DOM-Based XSS” ja siitä eteenpäin jäävät myöhemmäksi)
  • A8:2013 Request Forgeries: Cross-Site Request Forgeries: kohdat ”Basic Get CSRF Exercise” ja ”Post a review on someone else’s behalf”.” (Karvinen, 2020)

”Vinkkejä: Authentication Bypasses: F12 Inspector muokkaa myös HTML-lomakkeita. Insecure login: snifferin käyttö on tässä realistisempaa kuin F12, joten esim ’wireshark’, ”tshark -i any -V -Y ’http.request.method == POST'” tai ’sudo ngrep -d lo assword’. A7 Cross Site Scripting: JavaScript-bookmarkletit eivät oletuksena toimi enää monissa selaimissa, käytä JavaScriptin ajamiseen F12 Console. Cross Site Scripting: script-tagit. ”Try It! Reflected XSS” on läpi, kun yllä numeron tausta muuttuu vihreäksi, vaikka se sanoo ”Well done, but … Please continue.”. ”Identify potential for DOM-Based XSS”: jos löysit jo oikean kohdan JavaScriptistä ja kokeilit yhtä monta vaihtoehtoa kuin moolissa on rakenneyksiköitä, lunttaa oikea palautusmuoto netistä ja jatka eteenpäin. Basic Get CSRF Exercise: tee oma weppisivu. Jos file:// ei toimi, ’python3 -m http.server’.” (Karvinen, 2020)

”k) Vapaaehtoinen: Kokeile totetuttaa käytännössä joitakin MITRE ATT&CK -kehikon tekniikoita. Nimeä selkeästi, mitä tekniikkaa käyttät. Yksittäisten tekniikoiden kokeilu riittää.” (Karvinen, 2020)

”Vinkki: Jos jostain syystä päädyt tekemään kokonaisen ohjelman, katso, ettei siitä ole haittaa muille. Esim jos ohitat virustorjunnan, laita joku selkeä merkki siitä, että ohjelma on olemassa. Älä anna ohjelman levitä automaattisesti. Jos tarpeen, lisää ohjelmaan rajoitus (toimii vain koneella, jolla on /etc/tama_on_testikone -tiedosto) ja automaattinen sammutus jonkin päivän jälkeen. Älä tee tuhoisia operaatioita täydellä mittakaavalla, voit simuloida esimerkiksi kryptausta tai päällekirjoitusta yksittäisillä tiedostoilla.” (Karvinen, 2020)

”Vinkki: mainitse, mitkä tunnetut hyökkäykset hyödynsivät samoja tekniikoita ja miksi.” (Karvinen, 2020)

”l) Vapaaehtoinen: Korkkaa jokin Hack the Boxin kone, mutta lue HTB:n säännöt ensin. VPN-tunnelin luominen ja oikean IP-avaruuden käyttö on tärkeää.” (Karvinen, 2020)

”Vinkki: kannattaa aloittaa koneista, joita HTB on listannut helpoiksi.” (Karvinen, 2020)

*Päivitetty 28.1.2021*

Tehtävä a)

Tehtävänä oli lukea OWASP 10 raporttiin eri haavoittuvuuksista ja kerätä niistä 3-5 bullettia per haavoittuvuus.

Injection A1

Tietoturva-aukkojen hyödyntämistä tunkeutumisessa. Esiintyy yleisesti tietokantapohjaisissa sovelluksissa.

  • Injectointi varsinkin vanhoihin ja päivittämättömiin sovelluksiin, joissa omien komentojen lisääminen kenttään on mahdollista
  • Hyökkäys on tehokas, jos sillä saadaan arkaa tietoa selville, kuten Vastaamo tapauksessa.
  • Sovellus on erittäin haavoittuva, jos käyttäjien syötteitä ei suodateta tai estetä millään tavoin
  • Hipsuja käyttämällä pystytään lisäämään heikosti suojattuihin tietokantoihin omia lausekkeita.

Broken Authentication A2

Rikkinäinen todennus on laaja käsite haavoittuvuuksille, joita hyökkääjät käyttävät ja esiintyvät näin ollen laillisina käyttäjinä.

  • Sivustot, joilla on heikko tunnistautuminen niin näihin on hyökkääjän helppo käyttää hyväksi.
  • Jos järjestelmä sallii esimerkiksi heikkojen salasanojen käytön ja sallii esim syöttää salasanaa useaan kertaan, vaikka olisi virheellinen tai sallia useamman tunnistautumisen.
  • Helposti estettävissä, jos järjestelmässä on kaksivaiheinen tunnistautuminen, joka tulee kirjautujan puhelimeen koodina ja pitkien salasanojen, jotka pitävät sisällään Isoja, pieniä kirjaimia ja numeroita ja erikoismerkkejä.

Sensitive Data Exposure A3

Sensitiivisen datan paljastuminen liikennettä seuraamalla.

  • Haavoittuvuus syntyy, jos kryptaamatonta tietoa lähetetään palveluiden tai järjestelmien välillä.
  • Kryptattu tietokaan ei ole välttämättä turvallinen, koska nykyajan sovelluksilla pystytään murtamaan joitakin kryptokieliä helposti.
  • Haavoittuvuuden löytämiseksi liikennettä pystytään haistelemaan useilla työkaluilla kuten wireshark yms. josta näet liikenteen ja esim. POST pyyntöjä, joista voi ilmetä käyttäjätunnuksia ja salasanoja.

XML External Entities A4

  • Järjestelmän on altis hyökkäyksille, jos hyökkäyksessä päästään laittamaan ei toivottuja XML-tiedostoja kohde järjestelmään.
  • XML haavoittuvuus on nykyisin paljon harvinaisempi ja ei niin käytetty kuin aikaisemmin.
  • Jos järjestelmässä havaitaan, että se on haavoittuvainen XML hyökkäyksille niin järjestelmä voi suurella mahdollisuudella myös haavoittuvainen DDOS hyökkäyksille, jotka ovat nykyisin erittäin yleisiä.

Broken Access Control A5

  • Access controllia eli kulunvalvonta toteutetaan siten, että tietyt käyttäjät eivät pysty toimimaan omien käyttöoikeuksien ulkopuolella.
  • Yleisiä haavoittuvuuksia voi olla, jos muokataan URL osoitteita tai HTML sivuja, jolloin hyökkääjä pääsee näkemään käyttäjän tiedot.
  • Primary keyn vaihtaminen, joka sallii toisen käyttäjän muokkaamisen tai tiedustelun.

Security Misconfiguration A6

Turvallisuuden väärät määritykset, voivat ja ovatkin vakava haavoittuvuus.

  • Järjestelmä voi olla haavoittuvainen, jos asianmukaiset suojaukset eivät ole kunnossa tai pilvipalveluissa on väärin määritetyt käyttöoikeudet.
  • Joissakin järjetelmissä, jotka päivitetään uuteen niin osa turvallisuus asetuksista on laitettu defaultiksi eli ei välttämättä ole päällä, jolloin järjestelmä on haavoittuvainen.
  • Järjetelmässä ei ole vaihdettu oletus käyttäjätunnuksia tai salasanoja uusiin. Monet järjestelmät nykyään vaativat, jos luodaan uusi tunnus, että salasana vaihdetaan uuteen.

Cross-Site Scripting A7

  • Yleensä hyökkäys on suunnattu käyttäjän nettiselaimeen.
  • Heijastuvassa XSS hyökkäyksen onnistuttua hyökkääjä voi mielivaltaisesti ajaa HTML koodia ja javascriptiä uhrin selaimessa.
  • Varastoidussa XSS hyökkäyksessä ohjelmaa tallentaa käyttäjän antamia syötteitä, joita voidaan käyttää ulkopuolisen toimesta.
  • Haavoittuva järjetelmä voi sallia hyökkääjän käyttää joidenkin yritysten web-palveluita tai muita sivustoja.

Insecure Deserialization A8

Tämä kohta jäi itselleni epäselväksi enkä ymmärtänyt tätä kohtaa.

Using Components with Known Vulnerabilities A9

  • Monille haavoittuvuuksille on helppo löytää kirjoitettuja hyödykkeitä(exploit), joita voi käyttää haavoittuvuuksia vastaan.
  • Yrityksille, joilla ei ole tietoa uudesta raudasta tai nykyisestä niin se on riski, koska niissä voi mahdollisesti olla haavoittuvuuksia.
  • Säännöllinen järjestelmän skannaus haavoittuvuuksien varalta ja mahdollisten korjauksien tekeminen.
  • Tärkeää on pitää sovellukset ja järjestelmät päivitettyinä ja päivittää ne aina uusien päivitysten tullessa.

Insufficient Logging & Monitoring A10

Riittämätön kirjaaminen ja monitorointi, on kriittinen jos hyökkääjä pääsee sisälle ilman, että kukaan huomaa.

  • Hyökkäykset pyritään yleensä tekemään huomaamattomasti ja pyrkivät olla laukaisematta mahdollisia hälyjä järjestelmissä ja tämä voi myös kertoa haavoittuvuudesta, jos järjestelmä ei huomioi tuntemattomia pyyntöjä.
  • Lokien ylläpito on tärkeää, jos esim kirjautumisista ei pidä kirjaa, niin kuka vain voisi kirjautua ilman kenenkään tietämättä.
  • Lokien säilyttäminen pilvessä voisi olla järkevä ratkaisu, jolloin lokien poisto olisi entistä vaikeampaa.

Lähteet: https://portswigger.net/web-security/cross-site-scripting
http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
https://resources.infosecinstitute.com/topic/xml-vulnerabilities/
OWASP 10 2017 (pdf)

Tehtävä b)

Cyber kill chain

Reconnaissance, Eli tiedustelu cyber kill chainissa. Yritetään etsiä haavoittuvuuksia kohde järjestelmästä.

HTTrack – Website copier: Tällä työkalulla pystyt kopioimaan ”offline” kopion mistä vaan nettisivusta. Tämä kopioi sisältää kaikki kuvat, sivut linkit ja alkuperäisen sivun koodin. Tämän työkalun avulla sinun ei tarvitse viettää sivulla paljoa aikaa, ettei sivun monitorointi työkalut kirjaa aktiivisuuttasi sivulla.

The Harvester: Tämä työkalu on Christian Martorellan kehittämä python scripti, joka tekee systemaattisen listan sähköposteista ja sub-domaineista (aliverkkotunnus). Tämä työkalu löytyy valmiiksi asennettuna kali linuxista.

Weponization, eli aseistautuminen. Kill chainin osa kaksi, jossa etsitään haittaohjelmia kohdettasi vastaan. Esimerkiksi voit kehittää malware tiedoston, joka sisältää hyötykuormaa.

Metasploit framework: Tällä työkalulla saadaan tietoa tietoturva-aukoista ja tämä soveltuu hyvin Weponization kohtaan. Metasploit työkalusta löytyy myös toinen työkalu nimeltä mfsvenom, jolla pystytään tekemään viruksia, matoja, botteja yms. eli voisi hyvin sanoa ettet ole vain aseistautumassa vaan kehittämässä omat aseet.

Delivery: Kolmas vaihe cyber killchainissa on itse kuljetus, eli vaihe jossa paketit tai hyötykuormat kuljetetaan kohteeseen. Yleisimpiä tapoja on lähettää nämä sähköpostitse, luoda nettisivu tai päästä fyysisesti kohteen koneelle.

Exploitation: Eli hyökkäyksen hyväksikäyttövaiheessa kohde kone vaarannetaan ja tässä vaiheessa kuljetus suorittaa yhden kahdesta toimenpiteestä: Asentaa haittaohjelma(dropper), joka mahdollistaa hyökkääjän komentojen suorittamisen tai asentaa haittaohjelma (downloader), joka asentaa internetistä malwaren kohde koneelle, joka mahdollistaa hyökkääjän komentojen suorittamisen.

BeEF: eli Browser Exploitation Framework työkalu joka sopii hyväksikäyttövaiheeseen jos se tehdään nettiselaimessa. Ohjelma suorittaa komennot verkkoselaimessa.

Installation: Eli asennus vaihe, jossa ohjelma pyritään asentamaan kohteen koneelle ilman, että sitä huomataan. Tässä kohdassa voidaan käyttää tiedustelussa löytyneitä haavoittuvuuksia kuten backdooreja yms.

Command and control: eli vaarantuneiden resurssien käyttö, beaconien avulla joita käytetään verkon sallitun polun kautta. Beaconit yleensä esittävät olevinaan HTTP tai HTTPS pohjaisia. Ne on tehty näyttämään hyvälaatuiselta liikenteeltä väärennettyjen HTTP otsikkojen kautta. Jos kommunikointi on kryptattua beaconit yrittävät käyttää itse allekirjoitettuja sertifikaatteja tai kustomoitua kryptausta.

Actions: Eli viimeinen kohta cyber kill chainissa ja tällä voidaan tarkoittaa kuinka hyökkääjä on onnistunut hyökkäyksessä ja hänellä on niinsanotusti sormet näppäimistöllä. Hyökkääjän lopullinen tavoite voi olla mikä vain aina lunnaidein pyytäminen, jotta arkaluontoiset tiedot poistetaan ja kryptataan tai ihan vain kiusanteko kohde koneelle.

***En ajanut esimerkkiajoja työkaluilla, koska en niitä osaa käyttää turvallisesti***

Lähteet: http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/#L2
https://www.secjuice.com/cybersecurity-for-beginners-part-3-weaponization/
https://www.geeksforgeeks.org/reconnaissance-and-its-tools/
https://www2.deloitte.com/content/dam/Deloitte/sg/Documents/risk/sea-risk-cyber-101-july2017.pdf
https://www.geeksforgeeks.org/kali-linux-exploitation-tools/
https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html

Tehtävä b) Webgoat

Broken Authentication

Authentication Bypasses

Aloitin tehtävän tekemisen lukemalla ohjeita ja skenaarion, jonka webgoat tarjosi minulle. Tunnistautumis tehtävässä aloitin tarkastelemalla f12 HTML lomaketta, josta halusin löytää skenaarion tapaisen Security Question scriptin. Kun olin löytänyt HTML lomakkeesta secQuestion kohdan yritin laittaa valueksi ensiksi ”test” ja kokeilla menisikö ne läpi, mutta eivät menneet. Hetken mietiskelyn jälkeen päädyin kokeilemaan ja vaihtamaan SecQuestion:in nimet, jonka jälkeen tehtävä meni läpi. Vaihdoin siis vain numerot.

Secure Passwords

Secure password tehtävässä täytyi vain luoda uusi vahva salasana, johon käytin Strong password generaattoria joka tuli näyttämään tältä : nvU<Lz]52?’8gc9 ja WebGoatin salasanan tarkistaja antoi salasanalleni arvion missä ajassa se murrettaisiin ja arvioksi tuli: + 31 milj. vuotta.

Sensitive Data Exposure

Insecure Login

Tässä tehtävässä oli tarkoituksena sniffata paketteja ja löytää kirjautumiseen tarvittavat tiedot. Aloitin ensimmäiseksi miettimällä millä työkalulla haluan tehdä tämän pakettien sniffaamisen. Päädyin sitten Wiresharkkiin, koska se oli kaikista tutuin työkalu. Aloitin ensiksi avaamalla wiresharkin laitoin sen päälle ja kävin klikkaamassa ”Login” WebGoatista ja sen jälkeen sammutin wiresharkin ja rupesin tutkimaan paketteja. Tiesin, että haluan löytää HTTP paketit ja jotka ovat POST, joten aloitin karsimisen noilla ehdoilla. Hetken etsiskelyn jälkeen löysin oikean paketin josta löytyi selkotekstiä, jossa oli tehtävään tarvittava käyttäjätunnus ja salasana.

Wireshark

Cross-Site Scripting (XSS)

Cross Site Scripting

Tehtävä 2

Ensimmäisessä tehtävässä eli tehtävä 2 piti saada kahdelle eri tabille avatulle sivulle sama JSESSIONID. Avasin consolen kummassakin tabissa ja kirjoitin tehtävä kuvauksessa annetun tekstin alert(document.cookie); kumpaankiin tabin consoleen, jolloin sain JSESSIONID näkyviin ja vertasin, että ne on samat ja vastasin kysymykseen.

Tehtävä 7

Aloitin tehtävän lukemalla ohjeet ja tarkoituksena oli etsiä haavoittuva kenttä. Aloitin tutkimalla taulua, että minne pystyn kirjoittamaan ja tekemään, joten painoin ensiksi vain purchase nappia, jolloin tapahtui osto. Tämän jälkeen päätin kokeilla aikaisemmassa tehtävässä käytettyä scriptiä ensiksi card numberin ja sitten digitin tilalle.

Koodi: <script>alert(document.cookies)</script>

Sain kaksi eri vastausta tehtävälle. Tässä ohjelma tunnisti XSS attackin ja sanoit yritä uudelleen.

Digit

Ja sitten kokeilin credit card numbering kohdalle ja silloin sanoin, että well done!

Credit

Credit carding lisätessäni tehtävä sanoi Well done ja muuttui vihreäksi, mutta sanoi ettei alertti ole kovin vaikuttava? Tehtävän tarkoitus jäi itselleni epäselväksi.

Cross-Site Request Forgeries

Tehtävä 3

Tässä tehtävässä täytyi tehdä oma html sivu, josta pystyt tekemään pyynnön erilliseltä hostilta ja saada flag value näkyviin.
Ensimmäiseksi aloitin laittamalla apache2 ohjelman päälle, sekä luomalla uuden index.html sivun kansioon /var/www/html, sekä kokeilin, että apache toimii. Kopioin WebGoat sivun ”Submit Query” napin HTML- koodin käyttäen F12 ja inpect ja lisäsin sen omaan index.html tiedostoon.

Apache sivu ja HTML

Sitten muokkasin koodia sen verran, että vaihdoin action kohtaan oman local IP osoitteen ja porttinumeron, jota käytän WebGoatissa eli ”127.0.0.1:8080” . Tämän jälkeen tallensin sivun ja avasin uudessa välilehdessä Apache sivun ja painoin ”Submit Querry” nappia, joka ohjasi minut uudelle sivulle, mutta ei heti toiminut vaan vei minut Webgoatin kirjautumis sivulle, joten rupesin tarkastelemaan uudelleen actions kohtaa, jossa huomasin osoitteessa olevan /WebGoat/WebGoat/, joten poistin toisen webgoatin ja kävin kokeilemassa uudelleen, jolloin sivu toimi ja vei minut oikealle sivulle, josta sain Flag Valuen.

Flag Value

Tehtävä 4

Tämä tehtävä oli aika pitkälti samanlainen kuin edellinen tehtävä, mutta nyt vain kopioin ”Submit review” laatikon omalle apache sivulleni, jotta pystyn kirjoittamaan sieltä käsin arvosteluita webgoatin myynti ilmoituksen arviointi laatikkoon.

Aloitin tehtävän avaamalla index.html sivuni kansiosta /var/www/html ja liitin webgoatista saamani ”Submit review” laatikon HTML koodin omalle index.html sivulle. Tein siihen saman muutoksen kuin aikaisemmassa tehtävässä ja liitin local IP osoitteeni action kohtaan eli ”127.0.0.1:8080” ja tallensin html sivun ja päivitin sivun firefoxissa, jolloin sivulleni oli ilimestynyt ”Submit review” nappi ja kentät.

Review ja HTML

Lähdin kokeilemaan sivua ja kirjoitin arvostelu kenttään ja painoin submit, jolloin tuli ilmoitus, että arvostelu on mennyt onnistuneesti toiselle sivulle ja kävin vielä tarkistamssa webgoatista, että onko ne mennyt sinne ja siellä ne oli.

Submit sivu
Review sivu

Lähteet: http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
https://passwordsgenerator.net

Viikkotehtävä 1(Pen test)

Etusivulle

VK1 Penetration Testing Course 2020 Autumn

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

Tehtävä alkoi 6.11.20 kello 12.30

Tehtävänannot otettu Tero Karvisen kurssi sivulta

”Tee ja raportoi.” ( Karvinen, 2020)

a) ”Hanki kutsu HackTheBoxiin.” ( Karvinen, 2020)

b)” Asenna WebGoat ja kokeile, että pääset kirjautumaan sisään.” ( Karvinen, 2020)

c) ”Ratkaise WebGoatista tehtävät ”HTTP Basics”, ”Developer tools”, ”CIA Triad” ja ”A1 Injection (intro)”. Katso vinkit alta.” ( Karvinen, 2020)

d) ”Kuuntele jokin maksuvälineisiin liittyvä jakso Darknet Diaries -podcastista. Kuvaile tiiviisti tämä murto ja peilaa sitä Mika Raution esitykseen ”Stealing your payment card data”. Voit hakea lisätietoa tapauksesta myös muista lähteistä. (Tässä d-kohdassa ei tarvitse tehdä mitään teknistä harjoitusta, vain kirjoitettu vastaus. Ei tarvitse tavoitella kirjallisuuden Finlandiaa, tiivis vastaus riittää). Vinkki: AntennaPod on hyvä kännykkäohjelma podcastien kuunteluun.” ( Karvinen, 2020)

e) ”Vapaaehtoinen: Ratkaise lisää WebGoat-tehtäviä. Kuinka pitkälle pääsit?” ( Karvinen, 2020)

f) ”Vapaaehtoinen, haastava: Ratkaise kaikki WebGoat -tehtävät.” ( Karvinen, 2020)

*Päivitetty 28.1.2021*

Tehtävä a) Hanki kutsu HackTheBoxiin.

Ensimmäisenä tehtävänä oli saada kutsu HackTheBoxiin, eli meidän piti Hakkeroida kutsu koodi ja etsiä se Invite sivulta. Tämä voi olla haastavaa, jos ei tiedä mistä aloittaa.

Ensiksi aloitin tarkastelemalla Invite sivun lähdekoodia, josta invite koodi löytyy. Ensimmäisenä tulee etsiä lähdekoodista javatiedosto, josta koodi löytyy. Lähdekoodista löytyy tiedosto ”inviteapi.min.js, josta löytyy seuraava vihje:

Avainsanana toimii makeInviteCode, joka sitten kirjoitetaan consoleen muodossa makeInviteCode() ja saat seuraavan printtauksen konsoliin auki:

Huomaamme, että console tulostaa kryptattua kirjoitusta, jonka saamme decryptaamalla datan tekstin base64 decoderilla, joka löytyy netistä https://www.base64decode.org/ ja saat dekryptauksen jälkeen kirjoitusta joka sanoo näin:

In order to generate the invite code, make a POST request to /api/invite/generate

Seuraavaksi täytyy käydä tekemässä POST pyyntö oman koneesi terminalissa. Itse käytin mac:ia joten terminaaliin kirjoitetaan seuraava komento

curl -XPOST https://www.hackthebox.eu//api/invite/generate

Komennon jälkeen sain koodin komentoriville ja päättelin sen olevan Base64 kryptausta, koska koodin perässä oli ”=” merkki. Kopioin kryptatun koodin ja vein sen https://www.base64decode.org/ ja decryptasin koodin, jolloin sain Invite koodin HackTheBoxiin, jolla pääsen kirjautumaan sivustolle.

HackTheBox etusivu

Ja näin tehtävä oli ratkaistu ja saatu kutsu sivustolle.

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

Tehtävä b) Asenna WebGoat ja kokeile, että pääset kirjautumaan sisään.

Aloitin webgoatin asennuksen Teron ohjeiden mukaisesti ensiksi päivittämällä ja sitten asensin javan koneelle ja hyväksyin palomuurit komennolla:

$ sudo apt-get -y install openjdk-11-jre ufw
$ sudo ufw enable

Näiden asetusten jälkeen lähdin asentamaan ja ajamaan itse WebGoattia ja hain tämän githubista wget komennolla.

$ wget https://github.com/WebGoat/WebGoat/releases/download/v8.0.0.M26/webgoat-server-8.0.0.M26.jar

Seuraavalla komennolla saat pystytettyä serverin, jotta pääset tekemään käyttäjän/kirjautumaan sivulle.

$ java -jar webgoat-server-8.0.0.M26.jar

Loin WebGoattiin käyttäjätunnuksen ja pääsin kirjautumaan sisään.

***HUOM! WebGoat on erittäin haavoittuvainen, kun olet päässyt sivulle suosittelen pistämään nettiyhteyden kiinni. WebGoat ei vaadi nettiyhteyttä enää kun olet sinne yhdistänyt***

WebGoat etusivu

Lähde: http://terokarvinen.com/2020/install-webgoat-web-pentest-practice-target/

Tehtävä c) Ratkaise WebGoatista tehtävät ”HTTP Basics”, ”Developer tools”, ”CIA Triad” ja ”A1 Injection (intro)”. Katso vinkit alta

HTTP Basics tehtävät

HTTP basic 3 kohdassa tulee etsiä magic_num. Löysin, kun kirjoitin ”was the HTTP command a POST or a GET” kohtaan oikean vastauksen ja painoin GO!, jonka jälkeen avasin F12 painikkeella Dev Toolin ja katsoin uusimman requestin ja avasin sen. Request aukesi ja katsoin sieltä params kohdan, josta löysin magic_num:in.

CIA Triad tehtävät

Tässä kappaleessa oli vain ”Tentti” johon vastasin.

Devtool tehtävät

Tehtävässä piti käyttää Developers Toolia ja kohdassa 4 täytyi ajaa yksi komento consolessa ”webgoat.customjs.phonehome()” ja sait vastauksesi tehtävään.

Kohdassa 6 lähetin Go! napilla POST pyynnön ja avasin Dev Toolin, josta menin network välilehdelle ja sieltä etsin POST pyynnön, jonka sitten avasin ja sieltä taas params välilehti josta löysin oikean vastauksen.

Injection intro

Tehtävän 2 vastaus oli: SELECT department FROM employees WHERE first_name='Bob' AND last_name='Franco';

Tehtävä 3: UPDATE employees SET department='Sales' WHERE first_name='Tobi' AND last_name='Barnett'; (Tehtävän pitäisi onnistua myös pelkällä etunimellä)

Tehtävä 4: ALTER TABLE employees ADD phone varchar(20);

Tehtävä 5: GRANT ALTER TABLE TO UnauthorizedUser;

Tehtävä 9: Smith' or '1'='1 (minulla jostain syystä ei ollut Smith’ vastausta valittavana niin valitsin sieltä pelkä (’) ja se toimi.

Tehtävä 10: Login_Count = 0 User_id= 111 OR 1=1; --

Tehtävä 11: Employee Name: Smith' OR '1'='1 Authentication TAN: 3SL99A' OR '1'='1

Tehtävä 12: Employee Name: Smith Authentication TAN: 3SL99A'; UPDATE employees SET salary ='Haluamani määrä' WHERE last_name='Smith'; --

Tehtävä 13: Terve'; DROP TABLE access_log; --

Lähde: http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
https://github.com/WebGoat/WebGoat
https://www.w3schools.com/sql/sql_injection.asp

Tehtävä d) Kuuntele jokin maksuvälineisiin liittyvä jakso Darknet Diaries -podcastista. Kuvaile tiiviisti tämä murto ja peilaa sitä Mika Raution esitykseen ”Stealing your payment card data”. Voit hakea lisätietoa tapauksesta myös muista lähteistä. (Tässä d-kohdassa ei tarvitse tehdä mitään teknistä harjoitusta, vain kirjoitettu vastaus. Ei tarvitse tavoitella kirjallisuuden Finlandiaa, tiivis vastaus riittää). Vinkki: AntennaPod on hyvä kännykkäohjelma podcastien kuunteluun.

Valitsin Darknet Diaries podcastista The Carder nimisen episodin, joka käsitteli luottokortti petoksia. Venäläinen hackeri nimeltä Track2 alias Roman Seleznez, joka tehtaili luottokortti petoksia yhdysvalloissa. Vuonna 2003 Seleznev aloitti korttipetokset. Seletznev käytti vuokrattua serveriä, jolla hän massa skannasi netistä portteja 3389 jotka on auki tai Windowsin Remote Desktoppeja, jotka näkyivät internettiin. Kun tälläinen Remote Desktop löytyi niin hän brute forcetti yleisesti käytettyjä salasanoja ja jos tämä onnistui hän pääsi sisälle koneelle. Seleznev valikoi uhreikseen paikallisia ravintoloita, jotka käyttivät Windows koneita, joiden kautta maksu liikenne kulki. Päästyään koneille sisään hän asensi koneisiin Malwaren joka luki korttitietoja ja käänsi ne selkokieliseksi, joista sai selville oleelliset tiedot, jotta korttia voidaan käyttää. Kun hän oli saanut korttitiedot selville hän dumppasi korttitiedot omalle TOR sivustolle, jossa myi näitä tietoja eteenpäin. Hänellä arvioitiin olevan noin 1.7 miljoonan kortin tiedot ja hän aiheutti arvioilta noin 169 miljoonan dollarin vahingot teoillaan, ennen kuin salainenpalvelu nappasi hänet vuonna 2013.

Kuten Mikan esityksessä tässä jaksossa tulee hyvin esiin myös mikan esitys kuinka kortteja voi skiimata esim. asentamalla fyysisen laitteen, joka lukee kortin tiedot kun sen laittaa skiimaus laitteeseen, mutta tässä tapauksessa Seleznev käytti Malwarea, jolla pystyi lukemaan kortin tiedot eli toisin sanoen käytti virtuaalista skiimaus laitetta (malwarea).

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

Tehtävä Loppui 6.11.20 kello 17.25

Lähteet: http://terokarvinen.com/2020/tunkeutumistestaus-kurssi-pentest-course-ict4tn027-3006-autumn-2020/
http://terokarvinen.com/2020/install-webgoat-web-pentest-practice-target/
https://github.com/WebGoat/WebGoat
https://www.w3schools.com/sql/sql_injection.asp

Etusivulle

Oma moduuli h7(Palvelinten hallinta)

Etusivulle

b) Oma moduli (iso tehtävä). Ratkaise jokin oikean elämän tai keksitty tarve omilla tiloilla/moduleilla. Voit käyttää Salttia tai muuta valitsemaasi modernia keskitetyn hallinnan ohjelmaa. Esitä tulos viimeisellä opetuskerralla, 5-10 min (keskiviikon ryhmä). Live demo olisi kiva. Raportoi modulisi tarkoitus, koodi ja testit.

Lähde: http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/

Tehtävässä käytetyn koneen speksit

Koneen tiedot

Viimeisenä tehtävänä meillä oli rakentaa oma moduuli tai tila. Päädyin pohdiskelun jälkeen tekemään itselleni tilan, jolla pystyn asentamaan haluamani ohjelmat valmiiksi konffattuna, jos ne vaativat conffausta uudelle virtuaali koneelleni ja ainut mitä pitää tehdä on lisätä uusi kone minioniksi ja sitten vain ajaa sen state.highstate:lla. Tilan pitäisi toimi kaikilla Debian perheen distroilla mm. Kali, Ubuntu yms. Tämä säästää hurjasti aikaa vs jos alkaisin asentamaan kaikki ohjelmat uudelleen, jos lataa uuden orjan.
Myös yksi projektini ratkaisusta oli ladata myös sellaisia ohjelmia, jotka vaativat repositoryn. Ratkaisussani käytän tilaa, joka hakee automaattisesti repositoryn minionilleni, jotta ohjelman pystyy lataamaan.

Ohjelmat, jotka haluan aina ladata uudelle koneelleni ovat:

Atom #code editor
Apache2 #webserver
Stacer #System optimizer ja monitoring työkalu
Git #Jotta voin tarvittaessa viedä töitäni githubiin
SSH #voin tarvittaessa ottaa yhteyttä muihin koneisiin
Chromium #chromium on avoimeen lähdekoodiin perustuva Google Chrome ja pidän siitä enemmän kuin firefoxista.
Ja yleensä haluan tehdä muutoksia myös bashiin ja terminaliin.

Aloitin luomalla top.sls tiedoston /srv/salt kansioon ja näytän lopussa miltä se tulee näyttämään kokonaisuudessaan kun olen asentanut ohjelmat.

Apache2

Apache2 ja loin /srv/salt kansiion Apache2 kansion. Apache2 kansiion loin 2 tiedostoa. Tiedoston, joka näkyy webissä ja init.sls tiedoston, jossa on kaikki tarvittavat, jotta apache toimii. Alla init.sls ja testaus

Apache init.sls

Lähde: http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4
Omat tehtävät/Muistiinpanot

Atom

Aloitin atomin asennuksen luomalla /srv/salt kansioon sille oman kansion atom. Kansion sisään loin uuden init.sls tiedoston. Atomin asennus ei onnistu pelkällä
pkg installed komennolla vaan se tarvitsee repositoryn. Tässä kohtaa jouduin pohdiskelemaan kuinka saan repositoryn ladattua.
Pitkän tovin etsiskellessäni löysin saltstackista ohjeet pkgrepon käyttöön ja sitten aloin vaan kokeilemaan erilaisia yhdistelmiä, kunnes löysin oikean tavan käyttää tätä minun tilanteessani.
Repositoryn Atomille löysin sivulta codeforgeekistä, jotta sain asennettua Atomin. Lopullinen init.sls tiedosto tuli näyttämään seuraavalta.

Atom init.sls
ajo
sources.list

Lähteet: https://codeforgeek.com/install-atom-editor-ubuntu-14-04/
https://docs.saltstack.com/en/latest/ref/states/all/salt.states.pkgrepo.html

Stacer

Stacer on monitorointi työkalu, jolla pystyt katsomaan CPU käyttöä muistia yms. Ja haluan ehdottomasti tämän aina uudelle koneelleni, joten aloitin ensiksi menemällä Stacerin Githubiin, josta löysin repositoryn, että saan ladattua stacerin. Tämän jälkeen loin /srv/salt kansioon stacer kansion ja sinne init.sls tiedoston joka tuli näyttämään samanlaiselta kuin atomin init.sls.

Stacer.init
Onnistunut ajo

Lähteet: https://github.com/oguzhaninan/Stacer
https://docs.saltstack.com/en/latest/ref/states/all/salt.states.pkgrepo.html

SSH

SSH asennuksessa käytin apuna omia muistiinpanojani ja tehtäviäni, jotta saan SSH:n toimimaan ja muutin sieltä perinteisesti porttinumero defaultista (22) -> 8888. Tein tämän ensiksi käsin masterilla, jotta sain kopioitua sshd_config tiedoston /srv/salt/ssh kansioon.
Aloitin lataamalla Openssh-serverin omalle masterilleni, jotta saan sshd config tiedoston kopioitua /srv/salt/ssh kansioon, johon tein sitten porttinumeron muutoksen.

SSH init.sls
init.sls

Asennuksen jälkeen halusin vielä kokeilla, että SSH varmasti toimii, joten testasin sen.

Lähteet: http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port

Asensin myös uuden selaimen Chromiumin ja Gitin, mutta ne menevät ihan vain pkg.installed komennolla.

Terminal ja Bash prompt

Haluan myös yleensä muokata Bash promtia ja terminaalia, joten tein niihin myös muutoksia. Aloitin ensiksi terminaalin muokkaamisella ja tein sen ensiksi käsin masterilla. Eli oikealla klikkauksella terminaalin päällä ja sieltä dropdown valikosta preferences ja sieltä pystyt vaihtamaan värejä ja muuta. Itse halusin muuttaa värimaailmaa terminaalista joten se onnistui kohdasta Colors.
Asetusten jälkeen suuntasin kansioon:
/home/slave/.config/xfce4/terminal ja sieltä kansiosta löytyi terminalrc tiedosto, jonka kopioin sitten /srv/salt/terminal kansiooni, jotta saan ajettua asetukset salt minionilleni.

init.sls terminal
terminalrc tiedosto
Ajo terminal

Tämän jälkeen siirryin muokkaamaan bash promptia. Ajoin bashin uudet asetukset
/home/slave/.bashrc , jotta ne tulevat näkyviin minionilleni. Loin ensiksi uuden init.sls ja newbash tiedoston /srv/salt/bash kansiooni. init.sls tiedosto tuli näyttämään seuraavalta:

bash init.sls

Uuden bashin loin käyttäen nettisivua nimeltä Easy Bash Prompt Generator, jolla pystyn muokkaamaan oman bashin millaiseksi haluan sen ja generaattori muuttaa sen koodiksi. Uuden bash promptin koodi tuli näyttämään tältä.

Ajo bash
uusi prompt

Vaihdoin promptista @merkin väriä ja pidin myös värimaailman samanlaisena kuin uuden terminaalini värimaailma ja promptin lopusta poistin, että se näyttää vain nykyisen directoryn.

master$ sudo salt '*' state.highstate

Lopullinen top.sls tiedosto

Top.sls

Salt kansion puu näkymä.

Tree view

Lopuksi halusin vielä kokeilla uudella ja tyhjällä virtuaalikoneella, että tämä minun tilani toimii ja asentaa kyseiset ohjelmat ja laittaa asetukset.
Aloitin asentamalla uuden virtuaalikoneen ja guest additionit käytin apuna teron kurssi materiaali guest additionien asennukseen.
Uuden virtuaalikoneen asennuksen jälkeen latasin salt-minionin koneelle ja liitin sen master koneelleni minioniksi.

Asetusten jälkeen lähdin kokeilemaan tilaani uuteen virtuaalikoneesee ja tässä lopputulos.

master$ sudo salt ubuntuorja2 state.highstate

ajot

Tilat menivät läpi uudelle koneelle, joten tilan luonti on onnistunut. Laitan vielä kuvat loppuun, että ohjelmat toimivat uudella virtuaalikoneella.

Atom
Atom projects kansio
Git
Apache ja chromium
Uusi prompt ja terminal
SSH
yhteyden testaus masterilta uudelle minionille
Stacer

Ja tilan luonti on onnistunut ja ohjelmat asentuivat uudelle virtuaalikoneelle conffattuna ja käyttövalmiina.

Tein tehtävää 3 eripäivänä ja aikaa meni noin 12tuntia

Lähteet: http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/
http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4

https://codeforgeek.com/install-atom-editor-ubuntu-14-04/
https://docs.saltstack.com/en/latest/ref/states/all/salt.states.pkgrepo.html
http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port
http://terokarvinen.com/2020/remote-learning-tools-for-my-courses/
https://github.com/oguzhaninan/Stacer

Etusivulle

Viikkotehtävä 6(Palvelinten hallinta)

Etusivulle

Tehtävän tekemiseen meni noin 10h kolmena eri päivänä.

Tavoitat Saltilla jo monet eri tyyppiset koneet. Vaikka läppärit vaihtavat osoitetta, jäävät tulimuurin ja NAT:n taakse, pystyt ohjaamaan niitä masterilla. Nyt tarkastellaan eri levityspakettien hallintaa.

a) Asenna jokin toinen Linux-levityspaketti orjaksi Saltille. CentOS on hyvä vaihtoehto. Voit esimerkiksi asentaa CentOS:n VirtualBoxiin ja tehdä koneiden välille virtuaaliverkon. Jos käytät Vagrantia, ’cent.vm.box = ”centos/7″’ on kätevä.

b) Kerää grains.items avulla tiedot orjista, joissa on eri levityspaketti.

c) Tee päivän viesti (motd), jossa koneen tyyppi tulee grains osfinger -muuttujasta. Kokeile, että saat eri levityspaketeilla eri tuloksen. Voit hyödyntää aiemmin tekemääsi motd:ia.

d) Tee tila, joka tekee RedHat-perheellä (esim. CentOS) tiedoston /tmp/redhat ja Debian-perheellä (esim Ubuntu) tiedoston /tmp/debian. Voit käyttää mitä vain eri perheiden levityspaketteja.

d) Tee tila, joka asentaa ja konfiguroi Apachen kahteen erilaiseen järjestelmään, esim. CentOS ja Ubuntu. Paketin nimi on CentOS:ssa ”httpd”. Käytä Salt-koodin generointia muoteilla.

e) Vapaaehtoinen: Tee tila, joka asentaa nginx kahteen erilaiseen levityspakettiin.

d) Vapaaehtoinen, vaikeampi: Kokeile Salt:ia Windowsilla.

Tehtävä a) Asenna jokin toinen Linux-levityspaketti orjaksi Saltille. CentOS on hyvä vaihtoehto. Voit esimerkiksi asentaa CentOS:n VirtualBoxiin ja tehdä koneiden välille virtuaaliverkon. Jos käytät Vagrantia, ’cent.vm.box = ”centos/7″’ on kätevä.

Asensin toiseksi levityspaketiksi Centos 7 ja asensin sen lähestulkoon samanlailla, kuin xUbuntunkin. Latasin ISO tiedoston Centos sivuilta.

Ja latasimme centille guest additionsit ja käytimme lähteenä VirtualBox Guest Additions on Fedora 31/30, CentOS/RHEL 8/7/6/5 ja saimme guest additionit laitettua ohjeiden mukaan.

CentOs

Tehtävä b) Kerää grains.items avulla tiedot orjista, joissa on eri levityspaketti.

Aloitan ensiksi lataamalla päivitykset ja lataamalla salt-minionin centille komennolla

slave$ sudo yum update
slave$ sudo yum install salt-minion

Kun olin saanut minionin ladattua katsoin masterilta IP osoitteen komennolla

hostname -I

Tämän jälkeen kävin lisäämässä IP osoitteen ja orjan nimen CentOsin orjalle kohdista
master : *IP-osoite*
id: centorja

slave$ sudo nano /etc/salt/minion

Lisäyksien jälkeen kävin käynnistämässä salt-minionin uudelleen komennolla

slave$ sudo systemctl restart salt-minion

Lisäyksien jälkeen kävin hyväksymässä masterilla uuden orjan, jonka loin juuri CentOsilla ja se löytyi unaccepted keys kohdasta ja painoin y ja näin sain orjan hyväksyttyä.

master$ sudo salt-key -A

Seuraavalla komennolla näämme meidän orjamme

master$ sudo salt '*' cmd.run 'whoami'

Cent ja Ubuntu orjat

Uuden orjan asennuksen jälkeen pääsen keräämään grains tietoja eri perheiden levityspaketeista. Aloitin luomalla /srv/salt kansioon uuden kansion nimeltä ”yksitotuus” komennolla

master$ sudo mkdir yksitotuus

Kansion luonnin jälkeen aloitin luomalla init.sls ja grains.txt tiedostot yksitotuus kansion sisälle.

init.sls tiedoston sisältö
grains.txt tiedoston sisältö

Kun tiedostot oli tehty pystyin lähtemään ajamaan tietoja minioneille

master$ sudo salt '*' state.apply yksitotuus

Käytän state.apply komentoa, koska en ole luonut top.sls tiedostoa, jolla voisin ajaa nämä minioneille sudo salt '*' state.highstate komennolla.

Ja ajettuani state.apply komennon kaikki meni hyvin ja ne meni läpi. Nyt voin lähteä kokeilemaan ja katsomaan saanko grains tietoja eri orjilta. Tämän kokeilin komennolla

master$ sudo salt '*' cmd.run 'cat /tmp/grains.txt'

grains tiedot orjilta

Ajettuani komennon totesin, että testi toimi ja sain kerättyä haluamani grains tiedot orjilta, jotka ovat eri Os familystä.

Lähde: http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/
http://terokarvinen.com/2018/configure-windows-and-linux-with-salt-jinja-if-else-and-grains

Tehtävä c) Tee päivän viesti (motd), jossa koneen tyyppi tulee grains osfinger -muuttujasta. Kokeile, että saat eri levityspaketeilla eri tuloksen. Voit hyödyntää aiemmin tekemääsi motd:ia.

Aloitin tehtävän tekemisen ja loin /srv/salt kansioon uuden kansion nimeltä motdtemplate ja sinne tiedostot init.sls ja motd. Kävin myös tarkastamassa masterilla, että etc kansiossa oli myös motd tiedosto olemassa, jos sitä ei ole sen voi luoda sinne.

Init.sls tiedosto
motd tiedosto

Näiden jälkeen ajoin state.apply komennon

master$ sudo salt '*' state.apply motdtemplate

Ubuntu orja
Kenos orja

Ja huomasin, että komennot menivät läpi ongelmitta. Sitten kävin vielä kokeilemassa ssh yhteydellä ensiksi ubuntu orjan ja sen jälkeen cenos orjan.

SSH yhteys ubuntu orjalle ja motd grains tiedot
Centos ssh kirjautumis yritys

Jostain syystä en päässyt SSH yhteydellä Centosiin sisään ja vastasi, että ”Connection timed out” yritin selvitellä googlaamalla mikä olisi ongelmana, mutta en saanut yhteyttä siltikään toimimaan, vaikka ajot menivät kuitenkin centos orjalleni perille.

Lähde: http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/
https://phoenixnap.com/kb/how-to-enable-ssh-centos-7

Tehtävä d) Tee tila, joka tekee RedHat-perheellä (esim. CentOS) tiedoston /tmp/redhat ja Debian-perheellä (esim Ubuntu) tiedoston /tmp/debian. Voit käyttää mitä vain eri perheiden levityspaketteja.

Aloitin tehtävän luomalla itselleni /salt/srv kansioon uuden kansion pillar ja sinne tiedoston init.sls. init.sls tiedostoon tein jinja/yaml koodin, jolla pystyin luomaan tiedoston centosin /tmp kansiion RedHat tiedoston ja ubuntun /tmp kansioon Debian tiedoston. Kirjoitin init.sls tiedostoon seuraavan koodin.

init.sls tiedoston sisältö

Kirjoitettuani koodin lähdin ajamaan tiedostoa eteenpäin

master$ sudo salt '*' state.apply pillar

Ja sain vastaukseksi onnistuneen tilan, joka loi tiedostot eri perheiden tmp kansioon.

Debian
CentOs

Ja testin jälkeen kävin vielä tarkistamassa, että onko tiedostot luotu sinne minne halusinkin, että ne tulee.

Debian perheen tiedosto /tmp kansiossa
RedHat perheen tiedosto /tmp kansiossa

Ja kumpaankin oli tullut kansiot sillä nimellä millä halusinkin, että ne tulee. Joten totesin, että tehtävä suoritettu oikein.

Lähde: http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/
JINJA: https://docs.saltstack.com/en/getstarted/config/jinja.html
UNDERSTANDING JINJA https://docs.saltstack.com/en/latest/topics/jinja/index.html#jinja-in-states
http://terokarvinen.com

Tehtävä e) Tee tila, joka asentaa ja konfiguroi Apachen kahteen erilaiseen järjestelmään, esim. CentOS ja Ubuntu. Paketin nimi on CentOS:ssa ”httpd”. Käytä Salt-koodin generointia muoteilla.

Aloitin aktivoimalla CentOsille httpd webserverin. Aloitetaan lataamalla Centosille httpd

sudo yum install -y httpd

ja tämän jälkeen startataan httpd

sudo systemctl start httpd
sudo systemctl status httpd (Katsoin, että palvelu on päällä Active)

Kävin myös avaamassa portit httpd, koska tcp 80 käyttää normaalia liikennettä, kun taas tcp 443 käyttää kryptattua liikennettä.

sudo firewall-cmd ––permanent ––add-port=80/tcp
sudo firewall-cmd ––permanent ––add-port=443/tcp
sudo firewall-cmd ––reload

Sitten kävin testaamassa localhostilla, että sivu toimii.

Centos httpd aloitussivu

Aktivoinnin jälkeen poistin Httpd webbiserverin centokselta ja siirryin masterille (xubuntu) ja aloitan automatisoinnin.
Loin /srv/salt kansioon apacheweb kansion ja sinne init.sls tiedoston, joka näytti seuraavalta

init.sls

Tämän jälkeen ajoin tilan ja tilat menivät läpi kummallekkin, mutta minulla oli jo ubuntulle valmiiksi asennettu apache2, joten tilaan tuli ”packages are already installed”

master$ sudo salt '*' state.apply apacheweb

Ubuntu (Debian)
Centos (RedHat)

Tämän jälkeen jouduin lataaman uuden virtuaalikoneen , koska jostain syystä apacheni ei toiminut, joten latasin uuteen ubuntu koneesee minionin ja yhdistin sen masteriin, jotta pääsin jatkamaan asennusta. Ajoin tilat sisään ja ne onnistui kuten pitikin.

Lisäsin init.sls tiedostoon vielä servic.running, jotta centosilla httpd pysyy käynnissä.

{{ webserver }}.service:
service.running

Tämän jälkeen lähdin muokkaamaan init.sls tiedostoa, jonne lisäsin pilarit jotka ottavat apacheweb kansioon luomani centos ja ubuntu tiedostot, jotka haluan näkyvän nettisivullani ja tiedosto näytti loppujen lopuksi tältä

init.sls

Luonnin jälkeen ajoin tiedostot state.apply komennolla ja ne menivät läpi.

Ubuntu
Centos

Testien jälkeen oli aika kokeilla näkyvätkö sivuni webissä.

Ubuntu
Centos

Ja haluamani tekstit näkyvät nettisivullani, joten oletin tehtävän olevan suoritettu oikealla tavalla.

Lähde: http://terokarvinen.com/2018/configure-windows-and-linux-with-salt-jinja-if-else-and-grains
https://phoenixnap.com/kb/install-apache-on-centos-7
http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/

Lähteet: http://terokarvinen.com/
How to enable ssh centos 7: https://phoenixnap.com/kb/how-to-enable-ssh-centos-7
JINJA: https://docs.saltstack.com/en/getstarted/config/jinja.html
Understanding Jinja: https://docs.saltstack.com/en/latest/topics/jinja/index.html#jinja-in-states
Configure windows and linux with salt Jinja if else and grains: http://terokarvinen.com/2018/configure-windows-and-linux-with-salt-jinja-if-else-and-grains
Install apache on centos 7: https://phoenixnap.com/kb/install-apache-on-centos-7
Guestadditions centos 7: https://www.if-not-true-then-false.com/2010/install-virtualbox-guest-additions-on-fedora-centos-red-hat-rhel/
Configuration Managment Systems – Palvelinten Hallinta – Spring 2020 http://terokarvinen.com/2020/configuration-managment-systems-palvelinten-hallinta-ict4tn022-spring-2020/

Etusivulle

Viikkotehtävä 5(Palvelinten hallinta)

Etusivulle

a) Hello templates! Tee muotilla esimerkkitiedosto, jossa on muuttujien (esim grains) arvoja.

b) Message of the Day. Sisäänkirjautuessa näytetään päivän viesti. Lisää päivän viestiin tietoa ympäristöstä käyttäen muotteja. Sopiva tiedosto on /etc/motd.

c) Bash. Tee bashiin asetuksia Saltilla. Ensin käsin, vasta toimivaa automatisoidaan. Muista testata lopputulos käyttäjän näkökulmasta.

d) Nginx. Tee nginx-weppipalvelimeen asetuksia Saltilla. Voit esimerkiksi tehdä uuden site:n, niin että etusivu vaihtuu. Kun nginx on todennäköisesti sinulle uusi palvelin, tässä tehtävässä on siis ensin laaja osuus valita sopiva asetus nginx:lle ja saada se toimimaan käsin. Vasta toimivaa, käsin kokeiltua kannattaa automatisoida. Muista lopputuloksen testaus käyttäjän näkökulmasta.

x) Vapaaehtoinen: poista kaikki ylimääräinen motd:sta niin, että vain oma viestisi näkyy.

Tehtävä alkoi 2.5.2020 11.33

Tehtävä a)

Aloitin luomalla uuden kansion srv/salt/template ja loin tiedostot init.sls ja template.txt.

template.txt tiedostoon kirjoitin grains komennon: Käyttöjärjestelmä on {{ grains[’os’] }}

init.sls tiedostoon kirjoitin jinja komennot:

{% for file in ['moikka.txt'] %}
/srv/salt/template/ {{ file }}:
  file.managed:
    - source: salt://template/template.txt
    - makedirs: True
    - template: jinja
    - context:
      file: {{ file }}
{% endfor %}

Tämän jälkeen testasin ajaa tiedoston komennolla:

sudo salt-call --local state.apply template

Ja tämä meni läpi. Tämän jälkeen template kansioon oli luotu uusi txt tiedosto moikka.txt ja kun sitä tarkastelee cat komennolla niin se näytti käyttöjärjestelmän.
(En tiedä miksi tiedosto luotiin outoon muotoon ’ moikka.txt’)

Lähde: http://terokarvinen.com/2018/make-a-million-of-those-jinja-templating-salt-states

Tehtävä b)

Tein tehtävän b vähän eri tyylillä kuin ensimmäisen. Aloitin luomalla etc kansioon tiedoston motd eli message of the day. Tämän jälkeen menin /srv/salt kansioon ja loin sinne tiedoston motd. Motd tiedostoon lisäsin päivän viestiin seuraavat grainsit ja viestin:

Löysin grains tietoja sudo salt 'janne' grains.ls komennolla

Tämän jälkeen siirryin aiemmin luotuun sshd.sls tiedostoon ja lisäsin sinne kyseisen komennon, joka korvaa etc kansiossa olevan motd tiedoston.

Tämän jälkeen voimme ajaa ja kokeilla ja ajaa tehdyt muutokset sshd.sls tiedostoon.

sudo salt '*' state.apply sshd

Ja huomaan, että komento menee läpi ja tekee muutokset tiedostoon. Tämän jälkeen kokeilin kirjautua ssh yhteydellä ja katsoin näkyykö MOTD kirjautuessa sisään.

Ja sisäänkirjautuessa MOTD näkyy onnistuneesti ja sinne lisäämäni grainsit.

Lähde: https://lahdemi.wordpress.com/2018/04/15/3-viikkotehtava/

Tehtävä c)

Tehtävssä c päätin kokeilla muuttaa bashilla niin, että nykyinen kellonaika näkyy promptissa. Aloitin kokeilemalla aluksi /home/janne/.bashcr tiedostossa koodia jonka löysin netistä, joka muuttaa promptin asetuksia ja lisää siihen kellon ajan:

export PS1="[\\u@\\H \\W \\@]\\$ "

Tämän jälkeen poistin tai lisäsin # merkin koodin eteen, jotta pystyn tekemään muutokset saltilla.

Aloitin luomalla /srv/salt kansioon bash kansion

sudo mkdir /srv/salt/bash

bash kansioon loin init.sls tiedoston ja kello nimisen tiedoston, jonne laitettiin kyseinen koodi, joka tekee muutoksia promptiin.

Kello tiedoston koodi

init.sls tiedosto

Käytin file.appendia, jotta saamme lisättyä kello tiedoston koodin jo olemassa olevaan .bashrc tiedostoon ilman, että kyseinen tiedosto korvattaisiin kello nimisellä tiedostolla.

Tämän jälkeen ajoin ja katsoin, että kaikki toimii.

Koodi toimi onnistuneesti

Sitten oli vielä kokeilu eli käynnistin terminaalin uudelleen ja katsoin, että muutokset ovat tulleet voimaan ja kellonaika näkyy promptissa.

Reaaliaikainen kello promptissa

Lähde: https://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/

tehtävä d)

Aloitin tehtävän tekemisen poistamalla apache2 webpalvelimen, koska nginx on myös webbi palvelin ja kävin myös poistamassa /var/www/html kansiosta index.html tiedoston, jotta nginx saa sinne oman default sivun.

Asennuksen jälkeen kävin avaamassa HTTP portin komennolla

sudo ufw allow 'Nginx HTTP'

Ja tämän jälkeen kävin katsomassa onko status aktiivinen

sudo ufw status

ufw status

Kävin myös katsomassa, että system on aktiivinen.

Kävin kokeilemassa http://oma-ip ja pääsin nginx tervetuloa sivulle eli se toimii

Nginx tervetuloa sivu

Kun totesimme sivun toimivan voimme lähteä tekemään muutoksia saltilla. Luon /srv/salt kansiion nginx kansion sudo mkdir nginx ja sinne tiedostot default-index.html ja init.sls

default-index.html tiedostoon kirjoitin mitä haluan, että webbi sivullani näkyy.

Default.index.html sisältö

init.sls tiedostoon lisäsimme kyseisen tekstin, jotta teksti näkyy webbisivulla.

ja ajoimme tämän

sudo salt '*' state.apply nginx ja kaikki meni läpi kuten pitikin. Testin jälkeen voimme päivittää sivun ja katsoa tuleeko default-index.html tiedostoon tekemämme muutokset voimaan.

Webbisivu

Ja kirjoittamani tekstit tuli näkyviin webbisivulle, joten voimme olettaa että tämä tehtävä on suoritettu ja tehty oikein.

Lähde: https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-18-04#step-3-%E2%80%93-checking-your-web-server

Tehtävä loppui 3.5.2020 kello 16.09

Lähteet:

http://terokarvinen.com/2018/make-a-million-of-those-jinja-templating-salt-states

https://lahdemi.wordpress.com/2018/04/15/3-viikkotehtava/

https://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/

https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-18-04#step-3-%E2%80%93-checking-your-web-server

Etusivulle

Viikkotehtävä 4(Palvelinten hallinta)

Etusivulle

Tehtävä alkoi: 24.4.2020 klo 13.20

b) Modulikimara. Asenna 6 saltin tilaa/modulia. Tässä siis yksi tila/moduli on esimerkiksi Apachen asennus package-file-service rakenteella. Tiloista/moduleista enintään neljä voi olla muiden tekemiä, esimerkiksi verkosta löytyneitä. Muista lähdeviitteet ja lisenssit. Käytä tiloja, joita et ole aiemmin käyttänyt ja joita ei ole käsitelty tunnilla. Tilojen tulee tehdä muutakin kuin pelkästään asentaa yksittäinen paketti, esimerkiksi tehdä sille asetuksia (siis vaikka package-file, ei pelkkä package). Asennettavat ja konfiguroitavat ohjelmat voivat olla mitä vain valitset: palvelimia, graafisen käyttöliittymän ohjelmia, komentorviohjelmia, vapaita, suljettuja… Muista testata lopputulos käyttämällä ohjelmaa sen pääasiallisessa käyttötarkoituksessa. Jos jäät jumiin, tee kaikki mitä osaat ja dokumentoi ongelmat, niin ratkotaan niitä yhdessä.

Tehtävä b)

Tehtävässä oli tarkoituksean asentaa 6 eri saltin/moduulin tilaa. Päätin ladata unity tweak tool ohjelman, jolle kokeilen eri tiloja.

Sudo apt-get -y install unity-tweak-tool

Unity tweak toolilla pystyt muokkaamaan ubuntun graafista käyttöliittymää.

Asennuksen jälkeen etsin tiedostoa etc kansiosta ja huomasin, että se oli tallentunut lightdm nimellä sinne, josta löytyi kaikki conf. tiedot. Kopioin conf. tiedoston /srv/salt/lightdm kansioon ja loin sinne lightdm.sls tiedoston, jonne voimme kokeilla eritiloja.

Aloitin lataamalla sinne:

lightdm:
pkg.installed

Tämä meni läpi ilman ongelmia ja voimme lähteä kokeilemaan uusia tiloja lightdm ohjelmalle.

Sudo salt '*' sys.state_doc | less

Tällä komennolla löysin uusia tiloja, joita voimme kokeilla.

1.file.missing:

Aloitin helpolla file.missing, joka tulee True vastauksella, jos tälläistä tiedostoa ei löydy (tila saattaa olla vähän huono tehtävän kannalta, mutta päätin kokeilla jotain).

Koodi:

/srv/salt/kopiopaperi:
file.missing

Ja tämä toimi.

Siirryin tässä kohtaa apacheen jonne tein uusia tiloja joita kokeilin.

2.file.touch

Kokeilin luoda file.touch komennolla tyhjän kansion haluamaani paikkaan ja se onnistui. Loin tämän apachen init.sls tiedoston sisään ja ajamalla apachen state.applyn se luo uuden tyhjän tiedoston haluamaani paikkaan.

Käytin koodia:

Empty file:
file.touch:
- name: /srv/salt/test123.txt

File.missing ja file.touch komennot kokeilin itse ilman ohejeita ja löysin komennot
Sudo salt '*' sys.state_doc | less komennolla.

3.file.exists:

Tällä luodaan tila, jolla pystyt tarkistamaan löytyykö kyseinen tiedosto tietystä kansiosta. esim kun luot touchilla tiedoston pystyt etsimään löytyykö/onko tiedosto mennyt perille.

käytin koodia:

file exists:
file.exists:
- name: /srv/salt/test123.txt

ja tiedosto löytyi.

4.file.replace:

Kokeilin file.replace komentoa apacheen. TurnOff KeepAlive komento päästää useat pyynnöt läpi samasta TCP yhteydestä. Ja tässä käytimme file.replace funktiota, joka korvaa /etc/apache2/apache2.conf tiedostosta KeepAlive On tai Off tilan.
Voit muuttaa pattern ja repl kohdasta on ja off tiedostot toisin päin, niin saat yhteyden pois tai päälle.

Tässä YAML Koodi, jota käytin ja file.replace funktiota, jolla toteutettiin tämä tehtävä.

Turn Off KeepAlive:
  file.replace:
    - name: /etc/apache2/apache2.conf
    - pattern: 'KeepAlive On'
    - repl: 'KeepAlive Off'
    - show_changes: True
    - require:
      - pkg: apache2

Tämän jälkeen ajoin sudo salt '*' state.apply apache komennon ja se meni läpi.

Lähde: https://www.linode.com/docs/applications/configuration-management/configure-apache-with-salt-stack/

5.Enable apache confs.

Kokeilin laittaa päälle ja poist päältä apachen configuraatio tiedostot ja se on onnistui.

Käytin koodia:

Enable security conf:
apache_conf.enabled: #voi myös vaihtaa enabled -> Disabled
– name: security

Lähde: https://docs.saltstack.com/en/latest/ref/states/all/salt.states.apache_conf.html

6. Disable apache confs.

Päätin kokeilla myös edellistä confia toisinpäin, että tiedosto laittaa conffi tiedostot disabledille.

Disabled security conf:
apache_conf.disabled:
– name: security

Kuten huomaamme myös toisinpäin tämä tila toimiii.

Lähde: https://docs.saltstack.com/en/latest/ref/states/all/salt.states.apache_conf.html

Tehtävä Loppui 26.4.2020 klo: 20:29

Lähteet:

http://terokarvinen.com
https://docs.saltstack.com/en/latest/ref/states/all/salt.states.apache_conf.html
https://www.linode.com/docs/applications/configuration-management/configure-apache-with-salt-stack/

Etusivulle

Design a site like this with WordPress.com
Aloitus