Tehtävät tehty 27.10. – 31.10.2021
Kurssisivu: https://terokarvinen.com/2021/penetration-testing-course-2021-autumn/
Tehtävänannot: https://terokarvinen.com/2021/penetration-testing-course-2021-autumn/#h1-vuohi-tappoketju-ja-pimean-verkon-paivakirjat
z) Tiivistelmät
OWASP 10 A03:2021 –Injection tiivistelmä
- OWASP Top 10:n kolmas tietoturvariski: injektio
- Sovellus on alttiina hyökkäykselle kun:
- Sovellus ei vahvista tai suodata käyttäjän tietoja.
- Dynaamisia kyselyjä käytetään ilman kontekstin poistoa suoraan tulkissa.
- Vihamielistä dataa käytetään oliorelaatiokartoituksen (engl. objectrelational mapping = ORM) hakuparametreissa, jotta saadaan arkaluontoisia tietoja.
- Vihamielisiä tietoja käytetään suoraan tai ketjutetaan.
- Yleisimmät injektiot: SQL, NoSQL, OS-komento, Objectj relational mapping, LDADja Expression Language (EL) tai Object Graph Navigation Library (OGNL).
- Konsepti on sama kaikissa injektioissa, ja lähdekoodin tarkistaminen on paras tapa havaita, ovatko sovellukset alttiita injektioille.
- Ehkäiseminen:
- Tiedot pidetään erillään komennoista ja kyselyistä: turvallisen API:n käyttö.
- Positiivisen palvelinpuolen syötetyn tietojenvahvistuksen käyttö.
- Esimerkkihyökkäykset:
- Sovellus käyttää epäluotettavia tietoja haavoittuvan SQL-kutsun rakentamisessa.
- Sovellus luottaa sokeasti kehyksiin, joka voi johtaa kyselyihin, jotka ovat haavoittuvia.
- Lähde: OWASP 2021. A03:2021 –Injection. Luettavissa: https://owasp.org/Top10/A03_2021-Injection/. Luettu: 27.10.2021.
Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains tiivistelmä
Abstrakti
- Perinteiset verkon suojaustyökalut kuten virustorjunta ja tunkeilijan havaitsemisjärjestelmä keskittyvät riskin haavoittuvuuskomponenttiin, ja vastaus tapauksesta tulee vasta kun on tapahtunut onnistunut tunkeutuminen.
- Uusi uhkaluokka: Advanced Persistent Threat (APT) edustaa hyvin koulutettuja vastustajia, jotka toteuttavat monivuotisia tunkeutumiskampanjoita haavoittuviin kansallisen turvallisuuden tietoihin.
- APT käyttää tappoketjumallia kuvaillakseen tunkeutumisen vaiheita, kartoittaakseen vastustajan tappoketjun indikaattorit puolustajan toimintatavoille, yhdistääkseen mallit, jotka yhdistävät yksittäiset tunkeutujat laajempiin kampanjoihin ja että tiedustelutietojen keruu muodostaa perustan tiedusteluvetoiselle tietokoneverkkopuolustukselle.
Tunkeutumisen tappoketju
- Tappoketju on systemaattinen prosessi, jossa vihollinen tunnistetaan ja hyökätään kohteeseen, saadakseen aikaan haluttu vaikutus.
- Tunkeutumisessa tappoketjun vaiheet:
- Tiedustelu
- Aseistus
- Toimitus
- Hyödyntäminen
- Asennus
- Komento ja ohjaus (Command and Control)
- Tavoitteisiin liittyvät toimet
Toimintatavat
- Tappamisketjusta tulee malli toimivalle tiedustelulle, kun puolustajat ohjaavat yrityksen puolustusta tiettyihin prosesseihin, ja hyökkääjät kohdistavat hyökkäyksen niihin.
- Puolustajat pystyvät mittaamaan näiden toimien suorituskykyä ja tehokkuutta puutteiden korjaamiseksi.
- Tekstissä on esimerkki taulukosta, jossa on eri toimintatapoja, ja mihin tappoketjun vaiheeseen ne kuuluvat. Esimerkiksi palomuurin pääsynhallintaluettelo on osa tiedustelu- ja C2-vaiheita.
Lähde: Hutchins, E., Cloppert, M. & Amin, R. 2011. Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains. Luettavissa: https://lockheedmartin.com/content/dam/lockheed-martin/rms/documents/cyber/LM-White-Paper-Intel-Driven-Defense.pdf. Luettu: 28.10.2021.
Darknet Diaries EP 93: Kik tiivistelmä
- Kik on suosittu chat-sovellus erityisesti nuorison keskuudessa.
- Kik julkaisi oman kryptovaluutan Kinin kerätäkseen rahaa itselleen.
- Medialab osti Kikin 2019, ja sovellukseen alkoi tulla mainoksia.
- Kikissä on paljon botteja, aikuisviihdesisältöä ja kiristäjiä.
- Monet käyttäjät tekevät kustomoituja .apk versioita Kikistä ja myyvät niitä, eikä Medialab estä sitä.
- Podcastissa haastatellaan henkilöä, joka jakoi aikuisviihdesisältöä toisille käyttäjille Kikin chateissa, ja monet käyttäjät alkoivat pyytää häneltä lapsiin kohdistuvaa seksuaalista sisältöä.
- Maailmalla on ollut monia oikeuskäsittelyjä, jossa Kikissä on jaettu lapsiin kohdistuvaa seksuaalista sisältöä.
- Kikistä ei saa kuvia poistettua moderoinnin puutteen takia.
Lähde: Darknet Diaries 2021. EP 93: Kik. Kuunneltavissa: https://darknetdiaries.com/episode/93/. Kuunneltu: 27.10.2021.
a) Over The Wire: Bandit
Tehtävänantona ratkaista Over The Wiressa tasot 0-4: https://overthewire.org/wargames/bandit/
Taso 0
Kuvassa SSH-yhteys PuTTyn kautta OverTheWire palvelimelle.
Kuvassa onnistunut yhteys salasanan (oli tehtävänannossa) kirjoittamisen jälkeen.
Taso 1
Avattu käyttäjänä bandit0 home kansiosta readme tiedosto komennolla: cat readme. Tiedostossa oli salasana käyttäjälle bandit1. Tehty uusi SSH-yhteys PuTTyn kautta käyttäjänä bandit1 samalle palvelimelle kuin kuvassa 1, käyttäen tiedostosta saatua salasanaa.
Kuvassa yhdistetty bandit1 käyttäjänä.
Taso 2
Aloin tästä eteenpäin käyttämään Kali Linuxia (VirtualBoxissa), koska PuTTy-yhteys alkoi hidastelemaan ja kaatuilemaan.
Kali Linuxissa ensin kirjauduttu palvelimelle ssh-yhteydellä porttiin 2220 komennolla: ssh bandit0@bandit.labs.overthewire.org -p 2220. Kopioitu readme tiedostosta taas käyttäjän bandit1 salasana. Kirjauduttu ulos käyttäjästä bandit0 komennolla logout. Kirjauduttu käyttäjänä bandit1 komennolla: ssh bandit1@bandit.labs.overthewire.org -p 2220, ja kirjoitettu salasana.
Tässä kohtaa tuli ongelma, kun piti aukaista home kansiosta tiedosto, jonka nimi oli ”-”. Komento cat – ei toiminut, joten pikaisella googletuksella (lähde: https://serverfault.com/questions/124659/how-can-i-open-a-file-whose-name-starts-with Luettu: 29.10.2021) löysin komennon: ”cat ./-”, jolla sain tiedoston auki, ja salasanan seuraavalle tasolle.
Taso 3
Kuvassa kirjauduttu käyttäjänä bandit2, ja aukaistu tiedosto “spaces in this filename”. Kun olin kirjoittanut cat komennon, kirjoitin spaces ja sen jälkeen painoin tabulaattoria (ajattelin että tiedosto ei aukea, jos kirjoitan käsin tiedoston nimen niin kuin se lukee), niin täydentyi kenoviivat. Tiedostossa oli salasana seuraavalle tasolle.
Taso 4
Kuvassa ensin kirjauduttu käyttäjänä bandit3. Käytetty kuvassa näkyviä komentoja ensiksi päästäkseen kansioon inhere, ja avata tiedosto .hidden, jotta saadaan salasana seuraavalle tasolle. Koska tiedosto oli piilotettu tiedosto, käytin komentoa ls -la.
b) Kali Linuxin asentaminen
Olin jo asentanut Kali Linuxin VirtualBoxiin ennen kurssin alkua. Ladattu Kali Linux 2021.3.iso 64-bit Installer täältä: https://www.kali.org/get-kali/#kali-bare-metal. Ja asennettu VirtualBoxiin näiden ohjeiden mukaan: https://www.kali.org/docs/virtualization/install-virtualbox-guest-vm/
Kuvissa Kali Linuxin työpöytä ja luodun virtuaalikoneen asetukset.
WebGoat
Tehtävänantona asentaa WebGoat 8 ja tehdä tehtävät osioista: HTTP Basics, Developer Tools ja A1 Injection Intro.
c) WebGoat 8 asennus
WebGoat 8 asennettu Kali Linuxissa komennoilla:
sudo apt update
sudo apt upgrade
Asennettu ufw (java oli jo asennettu):
sudo apt install ufw
Palomuuri päälle:
sudo ufw enable
Ladattu ja suoritettu WebGoat 8 Java JAR paketti:
wget https://github.com/WebGoat/WebGoat/releases/download/v8.0.0.M26/webgoat-server-8.0.0.M26.jar
java -jar webgoat-server-8.0.0.M26.jar
Menty sen jälkeen Kali Linuxissa selaimella osoitteeseen: http://localhost:8080/WebGoat/
Kuvassa WebGoatin etusivu. Käytetty asennukseen lähdettä: https://terokarvinen.com/2020/install-webgoat-web-pentest-practice-target/
d) WebGoatin tehtävät
HTTP Basics
Kuvassa löydetty magic number painamalla sivustossa hiiren oikeaa näppäintä ja painamalla ”Inspect Element”. Koodista haettu magic number, ja sieltä löytyi 74. HTTP komento oli POST. Jouduin googlettamaan miten magic number löytyy (lähde: https://github-wiki-see.page/m/WebGoat/WebGoat/wiki/Main-Exploits).
Developer Tools
Kuvassa harjoitus suoritettu selaimen konsolissa, valittu numero oli tehtävän vastaus.
Kuvassa menin ensin Network välilehdelle ja tyhjensin kaikki pyynnöt roskakorin kuvasta. Kun painoin WebGoatissa ”Go!! näppäintä tuli pyyntö nimeltä network, jonka Request välilehdellä luki networkNum.
A1 Injection Intro
Kuvassa ratkaistu tehtävä, jossa piti hakea taulusta employees työntekijän Bob Franco department. Kysely: select department from employees where last_name=’Franco’.
Kuvassa ratkaistu tehtävä, jossa piti muuttaa tauluun employees työntekijän Tobi Barnett department. Kysely: UPDATE employees SET department=’Sales’ WHERE last_name=’Barnett’.
Kuvassa ratkaistu tehtävä, jossa piti muokata taulua employees lisäämällä kolumni phone. Kysely: ALTER TABLE employees ADD phone varchar(20).
Kuvassa ratkaistu tehtävä, jossa piti antaa käyttäjäryhmälle UnauthorizedUser oikeudet muokata tauluja. Kysely: GRANT ALTER TABLE TO UnauthorizedUser.
Kuvassa ratkaistu tehtävä, jossa piti hakea kaikki käyttäjät taulusta.
Kuvassa ratkaistu tehtävä, jossa piti hakea kaikki data käyttäjät taulusta.
Kuvassa ratkaistu tehtävä, jossa piti hakea kaikki tiedot employees taulusta, vaikka käyttäjällä Smith ei pitäisi olla niihin pääsyä.
Kuvassa ratkaistu tehtävä, jossa piti muuttaa Smithin palkka kaikiksi isoimmaksi. Muutettu palkaksi 9999999 kyselyllä: 3SL99A’ ; UPDATE employees SET salary=9999999 WHERE auth_tan=’3SL99A’–
Kuvassa ratkaistu tehtävä, jossa piti tyhjentää access_log taulu, jotta ei jää jälkiä muutoksista, jotka tehtiin edellisissä tehtävissä. Kysely: UPDATE’; DROP TABLE access_log–
A1 Injection osion tehtäviin katsottu apua videosta: OWASP Webgoat SQL Injection Introduction Tutorial. Katsottavissa: https://www.youtube.com/watch?v=C_-ea63FUto
1 comment
Comments are closed.