Penetration Testing Course
Tunkeutumistestaus ict4tn027-3008 - 2021 Autumn
Learn to hack computers to protect your own.
Course is finished, feedback was 4.9 excellent. Thanks! Next course is Pentest 2022 spring.
In the course, you will break into target computers. Excellent feedback from 4.8 to 5.0 out of 5.
Only one seat left! Advanced course, I can usually get places to most of those who know the prerequisites well.Can't take more participants here. Next enrollment opens 2021-11-29 w48 Mon 08:00. The next course instance starts on 2022 w13.
Update: New visitor: Niklas Särökaari, F-Secure.
Update: New visitor: Mika Rautio, Senior Software Architect, Poplatek.
Use of penetration testing techniques requires legal and ethical considerations. To safely use these tools, tactics and procedures, you might need to obtain contracts and permissions; and posses adequate technical skills. Check your local laws.
Course name and code: | Tunkeutumistestaus ict4tn027-3008 |
Timing | 2021 period 2 late autumn, w43-w50 |
Credits | 5 cr |
Classes | Tuesdays 8:15 - 13:45, online, mandatory participation |
Max students | 30 (only one seat left, but I can often get you a place if you know the prerequisites well) |
Language | Finnish (+reading material in English) |
Remote | Yes, fully remote |
Feedback | 4.8-5.0 out of 5 Excellent feedback |
Services | Moodle, Jitsi |
First class | 2021-10-26 w43 Tue 08:15, Tero emails video conference link |
*Teaching is in Finnish, so the rest of this page will be in Finnish. All my courses will be 100% remote learning in autumn 2021.
Kertausmateriaalia
Tämä materiaali on vapaaehtoista, jos osaat ne jo. Lähteet ovat esimerkkejä, voit osata/opetella nuo asiat mistä vain haluat. Alkutestin kysymykset eivät rajoitu tähän materiaaliin.
- TCP/IP-pino: Wikipedia: Internet protocol suite
- Linuxin komentokehote: Command Line Basics Revisited
- Tietokantojen alkeet (millä vain alustalla): PostgreSQL Install and One Table Database - SQL CRUD tutorial for Ubuntu
- Ohjelmoinnin alkeet (millä vain kielellä): FreeCodeCamp.org: Javascript Algorithms And Data Structures Certification: Basic JavaScript: Introduction to JavaScript
Oppimistavoitteet
Opintojakson suoritettuaan opiskelija
- Tuntee tunkeutumistestauksen prosessin pääpiirteissään
- Tietää, että tunkeutumistestaukselle on lailliset ja eettiset rajat
- Osaa kartoittaa kohdejärjestelmän haavoittuvuuksia
- Osaa hyödyntää valmiita hyökkäyksiä (exploit) ja liittää niihin hyötykuorman käyttäen kurssille valittua työkalua
- Osaa soveltaa tavallisimpia hyökkäyksiä weppisovelluksia vastaan, kun kohdeohjelmistot ovat helppoja ja haavoittuvia.
- Osaa hankkia tunkeutumistestauksessa tarvittavia ohjelmistoja
Kurssilta ei saa mukaansa ilmaista pakettia nollapäivähaavoittuvuuksia, eikä kurssi anna mitään erityisoikeuksia eikä ammattinimikkeitä.
Aikataulu
Alustava aikataulu, johon tulee muutoksia kurssin kuluessa. Kurssi kestää loppusyksyn eli 2020 toisen periodin. Kurssi toteutetaan kokonaan etäopetuksena, kuten kaikki Teron kurssit syksyllä 2021.
- w43 2020-11-03 ti Alkutesti. Pentest yleiskuva. Kurssin sääntöjen hyväksyntä ja alkutesti. Yleiskuva. Kohteiden rajaus (scope), lailliset rajat, etiikka, nuhteeton tausta. Hyökkäykseen sopivien työkalujen hankinta.
- w44 ti Hyökkäykset weppiin: OWASP 10, SQLi. Prosessi: kybertappoketju.. OWASP 10 A1: SQL injektio. WebGoat harjoitusmaalina. Hyökkäyksen suunnittelu ja toteutus kybertappoketjun (Hutchins et al. cyber kill chain) avulla. Esimerkkihyökkäys ja vilkaisu työkaluihin (nmap, nc, metasploit search, use, set RHOSTS, exploit)
- w45 ti Hyökkäykset weppiin: useita tekniikoita. Prosessi: ATT&CK. WebGoat. OWASP 10 A2 broken authentication, A3 sensitive data exposure, A7 XSS, 2013A8 CSRF. Hyökkäyksen prosessi ATT&CK. Työkalujen käyttö hyökkäyksen eri vaiheissa. Lisäaihe, jos ylimääräistä aikaa jää: harjoitusmaalien hankintaa: HTB, VulnHub, Metasploitable.
- w46 ti Tiedustelu. “Mittaa kahdesti, leikkaa kerran”. Passiivinen ja aktiivinen tiedustelu. Porttiskannus, verkkojen skannaus ja niiden oheistekniikat. KKO 2003:36. Nmap-porttiskanneri.
- w47 ti Vierailija Mika Rautio, Poplatek: Tunkeutumistestaus tilaajan näkökulmasta.. Sekä Valmiiden hyökkäysten käyttö. Metasploit. Käyttöönotto. Porttiskannausten tallentaminen tietokantaan. Murtotekniikan ja etähallintaohjelmiston yhdistäminen. Harjoitushyökkäyksiä.
- w48 ti 12:00 Vierailija: Niklas Särökaari, F-Secure: Red Teaming. Salasanojen murtaminen. Murtaminen tiivisteistä. Sanakirjahyökkäys verkon yli.
- w49 ti 11:45 Vierailija: Niko Heiskanen: Miten opettelin pentestiä kurssin jälkeen. Sekä kertaus.
- w50 ti Päätöskerta. Arviointi koostuu kotitehtävistä ja mahdollisesta kurssin aikana tarkentuvasta toisesta osasta.
Luettavaa ja linkkejä
€ Maksulliset aineistot saattavat näkyä ilmaiseksi Haaga-Helian tunnuksilla kirjaston kautta. Haaga-Helialla on käyttöoikeus O'Reilly Learning -kirjoihin (ent. Safari).
Työkaluja kurssille
- Remote Learning Tools for Tero's Courses
- Kali Linux. Etsi Kalin kotisivulta tuorein amd64-arkkitehtuurin live-tikun iso-kuva.
Sekalaisia
Saad etal 2020: OWASP Web Security Testing Guide - wstg-v4.2.pdf (local mirror. The steps start from 4.1 Information gathering p 47)
Skelton et al 2020: Everything you need to know about FFUF (Recommended by Joona Hoikkala, the creator of ffuf)
L2 weppihyökkäyksiä - tukee läksyä h2
OWASP 10 2017 (pdf), erityisesti ne hyökkäykset, joita aiot kohta tehdä eli A2 Broken Authentication, A3 Sensitive Data Exposure, A7 Cross Site Scripting; sekä viime kerralla harjoiteltu A1 Injection.
€ Santos et al 2018: Hacking Web Applications The Art of Hacking Series LiveLessons (video): Security Penetration Testing for Today's DevOps and Cloud Environments: 6.3 Understanding SQL Injection ja 6.4 Exploiting SQL Injection Vulnerabilities sekä Lesson 5: Authentication and Session Management Vulnerabilities
€ Percival & Samancioglu 2020: The Complete Ethical Hacking Course (video): Chapter 21: Cross Site Scripting
Yleiskuva, harjoitusmaaleja, web
- MITRE ATT&CK
- Darknet Diaries . Podcastien kuunteluun kännykällä AntennaPod löytyy F-Droidista
- MitmProxy on Kali and Xubuntu
- Install Webgoat 8 - Learn Web Pentesting. (It's also possible to install old version 7 of WebGoat with Docker).
- OWASP 10 2017 (pdf). Tällä hetkellä 2020-11-02 uusin versio.
Aktiivinen tiedustelu. HackTheBox.
€ Santos et al: The Art of Hacking (Video Collection): [..] 4.3 Surveying Essential Tools for Active Reconnaissance: Port Scanning and Web Service Review
man nmap (laaja, silmäily riittää)
Kokonaisia blogeja ja videokanavia, vilkaise, ei tarvitse katsoa 200 h videota:
- https://tools.kali.org/tools-listing
- 0xdf https://0xdf.gitlab.io/
- ippsec https://www.youtube.com/channel/UCa6eh7gCkpPo5XXUDfygQQA/videos
- John Hammond https://www.youtube.com/user/RootOfTheNull/videos?sort=p
- Youtube-videoiden katseluun kännykällä SkyTube (tai NewPipe, jos se on päivitetty), molemmat F-Droidista. Youtube-videoiden nopeuden säätöön codebicycle Video Speed Controller addon Firefoxille.
Passwords, Learning to Learn tools
- infosecn1nja 2020: Red-Teaming-Toolkit
- Taylor et al 2018: The Art of Hacking: Hacking User Credentials €
Web Fuzzing, Second to Last Words
- Hoikkala "joohoi" 2020: ffuf - Fast web fuzzer written in Go
- Hoikkala "joohoi" 2020: Still Fuzzing Faster (U fool). In HelSec Virtual Meetup #1.
- Miettinen 2020: iPhone BFU Acquisition and Analysis. In HelSec Virtual Meetup #1.
Metasploit
€ Jaswal 2020: Mastering Metasploit - 4ed: Chapter 1: Approaching a Penetration Test Using Metasploit (kohdasta "Conducting a penetration test with Metasploit" luvun loppuun)
Karvinen 2018: Install Metasploitable 3 – Vulnerable Target Computer (Article uses rapid7/metasploitable3-ub1404 , see also "rapid7/metasploitable3-win2k8")
Palautetta
Viime toteutuksella kurssi sai huippupalautteen: 5.0 / 5. Jokainen osallistuja antoi palautteen, ja jokainen palaute oli paras mahdollinen 5.0.
Joillain vanhemmilla toteutuksella kurssi on saanut palautteen kokonaisarvion "erinomainen", 4.9 / 5. Vanhojen kurssisivujen perässä on runsaasti vapaamuotoista palautetta.
http://terokarvinen.com/2019/penetration-testing-final-lab
http://terokarvinen.com/2018/penetration-testing-course-autumn-2018
Anna palautetta
Palaute on todella tärkeä tapa kehittää kurssia – kiitos kommenteista jo etukäteen. Palaute kahteen kanavaan
1) Vapaamuotoinen palaute kommenttina tämän kurssisivun perään
Vapaamuotoiseen palautteeseen saa kirjoittaa mitä vain, eikä kysymyksiä tarvitse toistaa. Mutta tässä vinkiksi:
- Opitko jotakin – eli osaatko nyt sellaista, mitä et osannut ennen kurssia?
- Teitkö jotain ensimmäistä kertaa? Hyökkäsit weppiin, käytit jotain työkalua, skannasit kokonaisen verkon; käytit jotain kieltä, tekniikkaa tai työkalua?
- Oliko opittu hyödyllistä? Luuletko, että sille on käyttöä esim. tulevaisuudessa töissä tai kotona?
- Mitä pidit viimeisen kerran labrasta?
- Mitä mieltä olit vierailijoista?
- Viihdyitkö kurssilla?
- Miten voisin parantaa kurssia?
- Suosittelisitko kurssia? Kenelle kurssi sopisi? Koulutoverille tai kollegalle?
2) Numeerinen palaute Haaga-Helian uuteen palautejärjestelmään
Vertailukohtana tyypillinen Haaga-Helian kurssi
Numeeriset: Asteikko 1-välttävä (huonoin) ... 5-kiitettävä (paras)
- Oma aktiivisuutesi opiskelussa 1-5
- Osaamistavoitteiden saavuttaminen 1-5
- Työskentelytavat tukivat oppimista 1-5
- Opiskeluympäristö tuki oppimista 1-5
- Hyödyllisyys työelämään 1-5
Avoimet kysymykset (näihin voi myös kopioida samat vastaukset jotka kirjoitit aiemmin)
- Mitkä asiat edistivät oppimistasi?
- Miten kehittäisit toteutusta / toteutuskokonaisuutta, jotta osaamistavoitteet saavutettaisiin paremmin?
Kokonaisarviosi toteutuksesta / toteutuskokonaisuudesta 1-5
Kiitos palautteesta ja jännittävästä kurssista!
Läksyt
Palauta linkki Moodleen 24 h ennen seuraavaa lukujärjestykseen merkittyä kurssivarausta. Kaikkien ajan säästämiseksi poistan kurssilta ne, jotka eivät palauta tehtäviä.
Läksyt ovat virallisia vasta, kun ne on vahvistettu (yleensä oppitunnin päätteeksi). Tämä on edistynyt kurssi, joten ohjelmaan tulee yleensä muutoksia kurssin aikana. Osa tehtävistä edellyttää huolellisuuden lisäksi tietoja ja taitoja työkalujen käytöstä, jottei synny vahinkoja - tee vasta, kun tiedät oikeat työtavat.
h1 Vuohi, tappoketju ja pimeän verkon päiväkirjat
Update: listasin luettavat kappaleet Hutchins 2011 artikkelista.
z) Lue ja tiivistä. Tässä z-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen ja tiivistelmä riittää). Tiivistämiseen riittää muutama ranskalainen viiva.
- OWASP 10 A03:2021 - Injection
- Hutchins et al 2011: Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains Abstract sekä kappaleet 3.2 Intrusion Kill Chain ja 3.3 Courses of Action.
- Darknet Diaries podcast, vapaavalintainen jakso. Voi kuunnella myös lenkillä, pyykiä viikatessa tms. Siisti koti / kesäkunto kaupan päälle.
Tee ja raportoi:
a) Ratkaise Over The Wire: Bandit viisi ensimmäistä tasoa (0-4).
b) Asenna Kali Linux.
c) Asenna WebGoat, luo paikallinen WebGoat-käyttäjä ja kirjaudu sisään
d) Ratkaise WebGoatista tehtävät
- General
- HTTP Basics
- Developer tools
- A1 Injection (intro)
e) Vapaaehtoinen: Ratkaise OverTheWire: Bandit, tasot 5-10.
f) Vapaaehtoinen: Hanki TryHackMe-tunnus, lue säännöt, tee jokin harjoitus.
h) Vapaaehtoinen: Hanki HackTheBox-tunnus, lue säännöt, kokeile helppoa konetta.
Vinkkejä:
- Tässä tiivistelmään riittää muutama (5-10) ranskalaista viivaa. Kirjoita myös viivalla tai parilla jokin havainto, idea tai sovelluskohde, joka artikkelista tuli mieleesi.
- Lukutehtävät esittelevät erilaisia lähteitä, joista voit itse seurata alaa, podcastista vertaisarvioituun artikkeliin.
- Yleensä artikkelit luetaan ennen tehtäviä, mutta Hutchins ja Darknet Diaries voi nauttia myös käytännön harjoitusten jälkeen.
- Karvinen 2006: Raportin kirjoittaminen
- Olethan merkinnyt raporttiisi kurssin ja kaikki muutkin lähteet? Muista merkitä suorat lainaukset lainausmerkeillä tms.
- Ota testien olennaisista osista ruutukaappaukset
- Kalista sopivimmat versiot ovat Kalin 64-bittiset virtuaalikoneet, varsinkin VirtualBox-virtuaalikone.
- AntennaPod on hyvä kännykkäohjelma podcastien kuunteluun.
- Karvinen 2020 Install Webgoat 8 - Learn Web Pentesting
- Jokin tehtävä voi olla vaikea. Tee ja raportoi silloin kaikki mitä osaat. Listaa lähteet, joista hait ohjeita. Onko jotain vielä kokeiltavana? Mitä haasteita on vielä ratkaisun tiellä? Mitä virheimoituksia tai vastaavia tulee? Voit myös katsoa wepistä esimerkkiratkaisun - muista viitata lähteeseen ja merkitä, missä kohdassa katsoit ratkaisua. Ja katsotaan yhdessä tunnilla loput.
- WebGoat
- HTTP Basics
- HTTP request ja response näkyvät F12: Network.
- Lomakkeen tiedot näkyvät F12: Inspector. What's the magic number?
- Voit jättää "HTTP Proxies" myöhemmäksi, niin tämän kotitehtävän voi ratkoa ilman proxya. OWASP Zap on hyvä, niin myös MitmProxy.
- Developer Tools: F12 Network. Toimii mainiosti sekä Firefoxissa että Chromessa.
- A1 Injection (intro)
- Millaiset lainausmerkit SQL:ssä olikaan?
- Jos nostat kaikkien palkkaa, oletko enää rikkain?
- Nämä nimet ("A1 Injection") ovat samat kuin OWASP 10:ssä.
- Jos SQL kaipaa virkistystä, SQLZoo harjoitukset ja Wikipedia: SQL syntax voivat auttaa.
- HTTP Basics
- Vapaaehtoisista
- TryHackMe lienee helpompi kuin HackTheBox
- Kopioi HackTheBoxin säännöt talteen itsellesi
- Kokeile HackTheBoxissa, että olet kiinni testiverkossa, ennenkuin aloitat kokeilut
- HackTheBoxissa riittää haastetta myös guruille
- HackTheBoxissa "Machines" (tms) kohdasta löytyy koneiden vaikeustaso, aloita helposta (nekin voivat olla aika vaikeita)
h2 turbo boosted
Tunkeutumistekniikoita saa harjoitella vain annettuihin harjoitusmaaleihin. Tarkista kohteiden osoitteet huolella, ja irrota tarvittaessa tietokoneet Internetistä. Oppitunneilla ja kurssin säännöissä on annettu tarkempia ohjeita. Vieraita koneita ei saa porttiskannata, eikä vieraisiin koneisiin saa hyökätä.
z) Lue ja tiivistä. Tässä z-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen ja tiivistelmä riittää). Tiivistämiseen riittää muutama ranskalainen viiva.
- € Jaswal 2020: Mastering Metasploit - 4ed: Chapter 1: Approaching a Penetration Test Using Metasploit (kohdasta "Conducting a penetration test with Metasploit" luvun loppuun)
Tee ja raportoi:
a) SELECT * FROM student. Ratkaise SQLZoo:sta: 0 SELECT basics, 1 SELECT name, 2 SELECT from World.
b) Nyrkkeilysäkki. Asenna Metasploitable 2 samaan verkkoon Kalin kanssa. Katso, ettei haavoittuva Metasploitable 2 näy Internetiin.
c) Nauhalle. Nauhoita kaikki konsolissa annetut asiat ja näkyvät tulosteet koko tehtävästä. (esim script)
d) Ei kuulu! Ennenkuin aloitat skannaukset, kokeile, ettei Kali pääse nettiin 'ping 8.8.8.8' vastaa "Network is unreachable".
e) Piilosilla. Etsi Metasploitable 2 verkkoskannauksella. Tarkista ensin, että osoitteet ovat uskottavia (ipcalc 10.0.0.1/23). Sitten ping sweep (nmap -sn). Analysoi tulokset, eli selitä, mitä mikäkin asia tulosteessa tarkoittaa. Mitä päättelet eri koneista?
f) Kilo. Porttiskannaa 1000 tavallisinta porttia löydetyistä koneista. Selitä ja analysoi tulokset. Mikä koneista voisi olla Metasploitable 2?
g) Ja tiskiallas. Porttiskannaa Metasploitable 2 perusteellisesti. Selitä ja analysoi tulokset. Selitä kustakin avoimesta portista, mikä palvelu siinä on / mihin se on tarkoitettu, onko se tavallisesti näkyvissä Internetiin ja onko se nykyiaikainen. Voit myös arvioida, onko versio päivitetty.
h) Sataa simpukoita. Tunkeudu vsftpd-palveluun.
i) Ovi jäi auki. Mitä löytyy portista 1524/tcp? Kokeile netcattilla 'nc'.
j) Darn Low Security. Etsi Metasploitable 2 weppipalvelin. Tee paikallinen tunnus DVWA Damn Vulnerable Web App -ohjelmaan. Aseta vasemman reunan palkista "DVWA Security" Low.
k) Execute! Ratkaise DVWA "Command Excution". ("DVWA Security" on paras olla "Low")
l) Asenna jokin kone Vulnhub:ista samaan Internetistä eristettyyn verkkoon Kalin kanssa.
m) Skannaa Vulnhubista hakemasi kone, ja analysoi tulokset.
n) Vapaaehtoinen: Murtaudu jollain uudella tavalla Metasploitable 2:n.
o) Vapaaehtoinen: Murtaudu Vulnhubista lataamaasi kuvaan.
p) Vapaaehtoinen: Jos viime kerran SQL injektiot jäivät mysteeriksi, voit tehdä ne nyt suuremmalla ymmärykselllä
q) Vapaaehtoinen: Jatka HackTheBoxin parissa.
r) Vapaaehtoinen: Tee lisää tehtäviä DVWA:sta.
s) Vapaaehtoinen: Tee lisää tehtäviä WebGoatista.
t) Vapaaehtoinen: Tee lisää tehtäviä Over the Wiresta.
Vinkit
- Muista merkitä kurssi ja kaikki muutkin lähteet - mikä tieto on mistäkin.
- O'Reilly Learning (ent. Safari) on HH opiskelijoille ilmainen HH kirjaston kautta.
- Jos joudut katsomaan suoraan esimerkki/malliratkaisun, merkitse se raporttiin.
- "Host-only networking" sopii maalikoneille VirtualBoxissa. Esimerkkejä löytyy hakukoneista, vaikkapa Googlesta "karvinen" "host-only networking" tai sama DuckDuckGo:sta.
- 'script -fa teronloki123' nauhoittaa terminaalia
- pitkät tulosteet ja lokit kannattaa laittaa linkin taakse tai ainakin artikkelin loppuun, jotta raportti säilyy helppolukuisena.
- Tallenna nmap-komentojen tulosteet 'sudo nmap localhost -oA teronmap123'
- Internet-yhteyttä voi kokeilla vaikkapa pingaamalla Googlen nimipalvelinta 'ping 8.8.8.8'.
- Jos haluat varmistua Metasploitable2 osoitteesta, tai testata, että voit pingata Kali-Metasploitable kumpaankin suuntaan: kirjaudu Metasploitable 2 (msfadmin:msfadmin) ja katso 'ip a', 'ifconfig' sekä 'ping 10.0.0.1' Kalin IP-osoitteella.
- Kaikki skannaustehtävät edellyttävät tulosten kirjallista selittämistä. Pelkkä nmap:n tuloste ei riitä.
- Nmap skannaa oletuksena 1000 tavallisinta porttia, 'sudo nmap localhost'. -vv tai v klikkailemalla ajon aikana saa lisää tietoa. Useimmat napit 's' kertovat statuksen, eli paljonko on skannattu.
- Perusteellinen skannaus, esim 'sudo nmap -sV localhost' ja ehkä myös hitaampi 'sudo nmap -A -p- localhost'.
- Voit aloittaa tunkeutumisen vsftpd-palvelusta. Siihen on valmis hyökkäys Metasploitissa: msfconsole, search vsftpd, use 0, info, set RHOST 127.0.0.1, options, varmista huolellisesti että kohteena on harjoitusmaali, irroita tarvittaessa koneet Internetistä, exploit. Ja sitten (ehkä) nauttimaan: id, whoami, pwd, cat /etc/shadow...
- Jos haluat, voit kokeilla parantaa pääsyä: käyttäjä->root, shell ilman tty:tä -> ssh tai shell -> meterpreter...
- Komentoinjektio: ystäväsi ovat komentojen erottimet ';', '||', '&&' sekä pipe '|'. Ja tietysti vanhat kunnon lainausmerkit.
- Jokin tehtävä voi olla vaikea. Tee ja raportoi silloin kaikki mitä osaat. Listaa lähteet, joista hait ohjeita. Onko jotain vielä kokeiltavana? Mitä haasteita on vielä ratkaisun tiellä? Mitä virheimoituksia tai vastaavia tulee? Voit myös katsoa wepistä esimerkkiratkaisun - muista viitata lähteeseen ja merkitä, missä kohdassa katsoit ratkaisua. Ja katsotaan yhdessä tunnilla loput.
h3 Attaaack!
x) Lue/katso/kuuntele ja tiivistä. Tässä alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen ja tiivistelmä riittää). Tiivistä ranskalaisilla viivoilla.
- € Percival & Samancioglu 2020: The Complete Ethical Hacking Course (video): Chapter 21: Cross Site Scripting (7 videota, noin 25 min)
- OWASP 10 2017 (pdf) A2 Broken Authentication, A3 Sensitive Data Exposure, A7 Cross Site Scripting. (Poimi kustakin kolmesta hyökkäyksestä, miten ne käytännössä tehdään)
- MITRE 2021: ATT&CK Enterprise Matrix. (Selitä tiivistelmässä käsitteet tactic, technique, procedure. Selitä kukin taktiikka (tactic) ja anna kustakin taktiikasta esimerkkitekniikka (technique tai subtechnique).
z) Cross site story. Kirjoita kuvitteellinen esimerkki XSS-hyökkäyksestä. Tee mahdollisimman yksinkertainen esimerkki. Voit vaikkapa ottaa haltuun weppisivun ylläpitäjän oikeudet viemällä keksin. Tässä alakohdassa ei tarvitse tehdä mitään tietokoneella, pelkkä tarina riittää. Tarkoituksena on ymmärtää XSS-hyökkäyksen kokonaisuus ennen sormiharjoituksia. Voi halutessasi myös piirtää itse kaavion / sarjakuvan.
Tee selväksi ja erottele
- Mitä hyökkääjä tekee
- Mitä kohdehenkilö tekee
- Mitä sivua / palvelinta kohdehenkilö surffailee
- Missä JavaScriptit ajetaan
- Miten keksi päätyy hyökkääjälle
- Miten hyökkääjä hyödyntää keksiä?
- Mitä hyökkääjä pääsee tekemään (mikä ei onnistuisi ilman hyökkäystä)?
Tee ja raportoi
a) Vuohen uudet seikkailut. Ratkaise WebGoatista tehtävät
- A2 Broken authentication:
- Authentication bypasses: 2 2FA Password Reset
- A3 Sensitive data exposure
- Insecure Login: 2 Let's try
- A7 Cross Site Scripting (XSS): Cross site scripting
- 2 What is XSS?
- 7 Try It! Reflected XSS
- A8:2013 Request Forgeries:
- Cross-Site Request Forgeries
- 3 "Basic Get CSRF Exercise"
- 4 "Post a review on someone else’s behalf".
- Cross-Site Request Forgeries
b) Attakin alatekniikat. Demonstroi kaksi (2) alatekniikkaa (subtechnique) ATT&CK kehikosta. Tässä pitää siis käyttää näitä käytännössä johonkin harjoitusmaaliin. Voit käyttää haluamiasi valmiita työkaluja tai koodata / skriptata itse. Voit valita valmiin harjoitusmaalin tai tehdä sen itse. Muista, että myös tiedustelussa pitää noudattaa lakia, etiikkaa, rajauksia (scope) ja hyviä tapoja.
e) Vapaaehtoinen: Jantterit. Hyökkää joihinkin aiemmin asennettuihin harjoitusmaaleihin, joita meillä on jo monta: Over the Wire, DVWA, Metasploitable 2, VulnHub-kuvat; sekä ulkopuoliset TryHackme ja edistyneemmille HackTheBox. Murtautumaan oppii murtautumalla.
Vinkit
- XSS, cross site scripting. Mieti, miten tällä murtaudutaan jonnekin.
- ATT&CK FAQ voi auttaa käsitteiden hahmottamisessa
- Muista merkitä, mihin kohtaan (a, b, c...) mikäkin osa vastaustasi vastaa
- 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:2017 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' tai Apache httpd.
- Uudesta OWASP top 10 - 2021 ei ole vielä (w45 ti 2021-11-09) julkaistu PDF-versiota. Voit lukea uutta OWASP Top 10 - 2021 versiota wepistä
- Attakin alatekniikat: tässä ei tarvitse tehdä kokonaista kybertappoketjua A:sta Ö:hön, sillä yksittäiset tekniikat yleensä tekevät vain pikkuruisen osan kokonaisesta hyökkäyskampanjasta.
- Jantterit: aloita helposta.
h4 Tiedustelua
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.
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 luvut ilmaiseksi nettiin.
- Silmäile (ei tarvitse lukea kokonaan, 40 liuskaa pitkä): Lyon 2009: Nmap Network Scanning: Chapter 15. Nmap Reference Guide
- Port Scanning Basics (opettele, mitä tarkoittavat: open, closed, filtered; muuten vain silmäily)
- Port Scanning Techniques (opettele, mitä ovat: -sS -sT -sU; muuten vain silmäily)
- Silmäile (ei tarvitse lukea kokonaan): man nmap
Tee ja raportoi:
Miten nmap 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. Kannattaa tietysti aloittaa lukemalla man-sivulta tai Nmap Reference Guidesta, mitä noilla toiminnoilla on ylipäänsä tarkoitus tehdä. Porttiskannaa ainoastaan omaa konetta omassa verkossa ja harjoitusmaaleja.
Analyysi ja selittäminen on tärkeää. Toki tarvitaan ote snifferin lokista, komento ja ote sen tulosteesta, mutta ne eivät riitä ilman selitystä.
a) nmap TCP connect scan -sT
b) nmap TCP SYN "used to be stealth" scan, -sS (tätä käytetään skannatessa useimmin)
c) nmap ping sweep -sn
d) nmap don't ping -Pn
e) nmap version detection -sV (esimerkki yhdestä palvelusta yhdessä portissa riittää)
f) nmap porttien valinta -p1-100, --top-ports 5, -p-
g) nmap ip-osoitteiden valinta; luettelo, verkkomaskilla 10.10.10.0/24, alku- ja loppuosoitteella 10.10.10.100-130 (ipcalc auttaa ymmärtämään, miten verkkomaskia tulkitaan)
h) nmap output files -oA foo. Mihin kukin tiedostotyyppi sopii?
i) nmap version scanning -sV
j) nmap OS fingerprinting, version detection, scripts, traceroute, -A
k) nmap ajonaikaiset toiminnot (man nmap: runtime interaction): verbosity v/V, help ?, packet tracing p/P, status s (ja moni muu nappi)
l) normaalisti 'sudo nmap'. Miten nmap toiminta eroaa, jos sitä ajaa ilman sudoa? Suorita ja analysoi esimerkki.
m) nmap, vertaile -sV vs -A kestoa (ja lähetetyn datan määrää jos osaat; time, nethogs, wireshark). Käytä harjoitusmaalina metasploitable2.
d) Ninjojen tapaan. Piiloutuuko nmap-skannaus hyvin palvelimelta? Vinkkejä: Asenna Apache. Aja nmap-versioskannaus -sV omaan paikalliseen weppipalvelimeen. Etsi Apachen lokista tätä koskevat rivit. 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?
UDP-skannaus. "Mulla olis vitsi UDP:sta, mutta en tiedä menisikö se perille":
e) Mitkä ovat tavallisimmat tai kiinnostavimmat palvelut, joita UDP-skannauksella voisi löytää? (tässä alakohdassa vain vastaus viitteineen, ei tarvita testiä tietokoneella)
f) Miksi UDP-skannaus on hankalaa ja epäluotettavaa? Miksi UDP-skannauksen kanssa kannattaa käyttää --reason flagia? (tässä alakohdassa vain vastaus viitteineen, ei tarvita testiä tietokoneella)
g) Vapaaehtoinen bonuskohta: näytä esimerkki onnistuneesta UDP-skannauksesta, sekä jonkin UDP:n erityisominaisuuden takia epäonnistuneesta tai harhaanjohtavan tuloksen antavasta UDP-skannauksesta.
Aktiivista tiedustelua. Mihin tämä työkalu on tarkoitettu? Kokeile tätä työkalua omaan harjoitusmaaliin ja selitä tulokset:
h) fuff (hakemistojen kokeilu riittää, vapaaehtoisena bonuksena muutakin)
i) nikto
j) Pizza fantasia: jokin valitsemasi tiedustelutyökalu, esimerkiksi EyeWitness, wpscan, openvas tai jokin muu.
k) Vapaaehtoinen: Tiedustele aktiivisesti jokin HackTheBoxin maalikone. Analysoi tulokset, pääpaino on vastauksessa tulkinnoillasi. 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.
l) Vapaaehtoinen, haastava: Korkkaa jokin HTB:n kone. Aloita helposta.
h5 Me in the Middle
a) Totally Legit Sertificate. Asenna OWASP ZAP ja sen CA-sertifikaatti selaimeesi. Jos sinulla on jo ZAP, generoi uusi sertifikaatti ja asenna se.
b) Kettumainen kettu. Asenna FoxyProxy lisäke Firefoxiin. Tee siihen sääntö, joka ohjaa vain kohdepalvelimen liikenteen ZAP-proxyyn. Muu liikenne saa mennä suoraan proxyn ohi nettiin.
c) Kokeile, että ZAP sieppaa liikenteen valitsemastasi harjoitusmaalista. Voit käyttää aiemmin asentamaasi harjoitusmaalia tai uutta. Asenna tarvittaessa uusi harjoitusmaali, vaikkapa OWASP Juice Shop.
d) Edit & resend. Näytä ZAP:lla esimerkki pyynnön uudelleen lähettämisestä (edit and resend).
c) Break. Pysäytä ZAP:lla pyyntö tiettyyn URLiin, muokkaa sitä ja päästä eteenpäin.
d) Automaagista. Tiedustele valitsemasi harjoitusmaali ZAP:n automaattisilla toiminnoilla, kuten spider ja forced browsing. Arvioi ZAP:n tuloksia, kuten löytyneitä tiedostoja ja varoituksia.
e) Starting point. HackTheBox. Kytkeydy HackTheBoxin "Starting Point"-verkkoon OpenVPN-yhteydellä ja käynnistä kone Meow "Spawn Machine". Liitä vastaukseesi ruutukaappaus, jossa Starting pointin ilmaiset osat näkyvät ratkaistuna profiilissasi. Tämän kohdan saa raportoida, säännöissä erikseen annetaan lupa julkaista "Starting Point Machines" ratkaisuja. Vaihtoehtotehtävä: Jos nämä koneet ovat jollekin propellihatulle helppoja, voit näiden sijasta korkata yhden tavallisen koneen Machines-verkosta.
- Meow
- Fawn
- Dancing
f) Appointment. Kuinka monta lähestymistapaa keksit? Jos jokin ei toimi, kokeile jotain muuta. Kuinka pitkälle pääsit?
g) Vapaaehtoinen. Kokeile MITMproxya.
h) Vapaaehtoinen. Kokeile jotain helppoa konetta HTB Starting Pointista.
i) Vapaaehtoinen, vaikeahko: Kokeile jotain helppoa konetta HTB Machines-verkosta.
Vinkkejä:
- Muista merkitä harjoitusmaalisi ZAP:ssa kohteeksi, in scope.
- Tallenna itsellesi HackTheBox:n säännöt (oikealla ylhäällä kysymysmerkki pallossa, Rules)
- HTB VPN: Oikeasta ylänurkasta "Connect to HTB", "Starting Point", "OpenVPN", "UDP 1337", "Download VPN", sitten(ulkomuistista) 'sudo openvpn tero.ovpn'
- HTBssä on kaksi VPN verkkoa, "Starting point" ja "Machines". Niiden koneet eivät näy toiseen verkkoon.
- Spawn the Machine. Nykyisin HTB:n koneet pitää käynnistää, ennenkuin niillä voi harjoitella. Eli tyhjän verkon skannailu ei paljoa lämmitä... Eka kone https://app.hackthebox.com/starting-point ja "Spawn Machine". Kun kone on käynnistynyt, sen IP-osoite näkyy spawn-napin tilalla.
- Kokeile, että pakettisi menevät oikeaan verkkoon HTB:n VPN:ssä.
- Fawn: root flagin saa roottaamatta konetta
h6 hunter2
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.
- Taylor et al 2018: The Art of Hacking: Hacking User Credentials € (8 videota, yhteensä noin 40 min)
- Yksi vapaavalintainen ratkaisu vanhoista (retired) HTB:n koneista. Löytyy esimerkiksi näistä:
a) Tee 3 tiivistettä eri ohjelmilla ja arvaa ne hashcatilla. Tiivistä jokin oma sana, ei sanaa 'hashcat'. Voit käyttää tässä demossa itse tehtyä sanakirjaa, jossa on oikea ratkaisu muutaman väärän joukossa. Kuvaile myös, miten teit tiivisteet.
b) Kokeile Hydraa ssh:ta vastaan.
c) Kokeile salasanoja omaan weppilomakkeeseen.
d) Tee oma sanalista itse tekemästäsi ja keksimästäsi weppisivusta.
e) Murra zip-paketin salajanasuojaus.
f) Murra jonkin muun tiedoston salasanasuojaus.
g) Salasanan taakse / ei julkiseen nettiin: Tiedustele perusteellisesti jokin HTB Machines verkon kone. Selitä tulokset. Luettele lähestymistavat, joilla murtautumista voisi aloittaa. (Tämä pitää laittaa piiloon, koska HTB:lla on näistä kilpailu, emmekä halua spoilata sitä)
m) Vapaaehtoinen kilpailu: kuka saa eniten Machines-verkon aktiivisia koneita korkattua? Laita Terolle viesti, jos saat yhdenkin auki. Kerron palkinnon tunnilla.
Vinkkejä:
- Youtube-videoiden katseluun kännykällä SkyTube (tai NewPipe, jos se on päivitetty), molemmat F-Droidista. Youtube-videoiden nopeuden säätöön codebicycle Video Speed Controller addon Firefoxille.
- Voit avata esimerkiksi zip tai pdf-tiedoston salakirjoituksen. Yksi helppo vaihtoehto on zip2john.
- Salatun zip-paketin saa tehtyä 'zip --encrypt -r tero.zip tero/' (iirc)
- Voit kokeilla THC Hydraa esim. Metasploitable 2:n.
- Weppilomakkeeseen hyvä työkaluja ovat Hydra tai Fuff. Tarvittaessa voit tallentaa HTTP-pyynnön (request) ZAP:lla tai mitmproxylla.
- Voit koodata lomakkeen itse vaikkapa Python Flask:illa. Jos haluat valmiin lomakkeen, voit esim. asentaa Juice Shop -harjoitusmaalin.
- Voit muuttaa sivun sanalistaksi vaikkapa cewl:lla tai omalla skriptillä. Älä käytä muiden sivuja esimerkkinä vaan tee oma sivu.
- Tiedostojen salasanojen murtaminen onnistuu mukavasti John the Ripperillä. Ks esim. https://github.com/openwall/john/tree/bleeding-jumbo/run
- Jos korkkaat Machines-verkon koneita, älä laita niiden raportteja nettiin. Niissä on muillakin kilpailu kesken kuin vain meillä kurssilaisilla.
- Aloita helpoista koneista. HTB:n sisäänkirjatuneen käyttäjän sivulla näkyy, kuinka helppoina koneita on pidetty.
h7 Final Countdown
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.
- Nikon lähteet - silmäile ja tiivistä Nikon mainitsemat kolme lähdettä. Ne ovat sähköpostiviestissä "Wind0wned & oma kirjakauppa". Osa lähteistä on hyvin laajoja, tällöin voit silmäillä muutamia keskeisiä osia niistä.
a) Palauta kaikki. Laita tähän a-kohtaan linkki jokaiseen kotitehtäväraporttiisi.
b) Googlen kärkeen - Vapaaehtoinen, mutta helppo ja suositeltava: lisää linkki tehtäviisi tämän sivun perään kommentiksi.
c) Viittaukset kuntoon. Katso, että olet jokaisessa tehtävässä (h1, h2...) viitannut kurssiin ja kaikkiin muihinkin lähteisiin. Lähdeviitettä edellyttäviä lähteitä ovat kaikki materiaali, jota olet käyttänyt lähteenä. Esimerkiksi kurssi, tehtävänanto, toisten opiskelijoiden vanhat raportit, kirjat, videot, ohjelmien man-sivut ja artikkelit. 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.
d) 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. (Tästä voi olla hyötyä myös ensi viikolla). Jos sinulla on suosikkilähteitä kurssin ulkopuoleta, voit listata nekin tähän. Teh ultimate haking cheatsheet!
e) Rottia. Tee troijan hevonen, joka asentaa vihamielisen etäkäyttöohjelman (RAT, remote access trojan). Haittaohjelmien toimivia versioita ei saa laittaa näkyviin siten, että joku voisi ajaa niitä vahingossa. Tässä tehtävässä harjoitellaan kohdennettua hyökkäystä, automaattisesti leviäviä itse itseään kopoioivia ohjelmia ei tehdä (ei viruksia, ei matoja). Tunnilla tehtiin elf-binääri msfvenomilla yhdistämättä sitä mihinkään tavalliseen ohjelmaan. Tee siis jollain omilla mausteilla (valitse näistä joku):
- Kohdekone verkon takana
- Windows-kohde
- Fat Rat
- Veil
- Social Engineering Toolkit
- Makron hyödyntäminen
- Yhdistetty toiseen ohjelmaan (esim msfvenom template)
f) Bonusrotta: vapaaehtoinen bonus: tee lisää troijalaisia eri tekniikoilla.
g) 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. Kannattaa laittaa myös linkki mahdolliseen HTB:n julkiprofiiliin. Myös puolikkaat huomioidaan, eli mainitse eroteltuna myös ne koneet, joista sinulla on vasta user flag (vaikka root falgia ei vielä olisikaan). Erottele selkeästi aktiiviset koneet eläköityineistä (retired).
Ensi kerralla on arvioitava labra. Varmista etukäteen, että
- Sinulla on häiriötön työskentelymahdollisuus tuntien ajan (yksilötyö)
- Sinulla on virtuaalikone, jolla voit hyökätä
- Esim. Kali, voit toki käyttää mitä konetta haluat
- Tarpeeksi RAM-muistia
- Levyllä on vapaata tilaa
- Maalikuvat voivat sisältää esimerkiksi binäärejä, Docker-kuvia tai virtuaalikoneita.
- Docker-kuvia olisi hyvä saada käyntiin omassa virtuaalikoneessa (esim Kalissa)
- Sinulla tulisi olla kone, jossa uskallat ajaa binäärejä (sekä maalibinäärejä että harjoituksen arviointiin liittyviä).
- Tiedät, miten saa uuden (VirtualBox) virtuaalikoneen samaan verkkoon hyökkäyskoneen kanssa
- Runsain mitoin hakkeriasennetta
Vinkkejä
- Läksyjen raportteja löydät Googlella ja DuckDuckGo:lla sekä tämän sivun kommenteista.
- "Palauta kaikki" -kohtaan linkkejä tulee kuusi kappaletta, sellaisia klikattavia (a href).
- Linkki kommenteissa 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 "Joukkoäly" -kohdassa muut viittaavat kotitehtäviisi.
- TTPs - Tools, tactics and procedures. Kun teet tiivistelmää joukkoälystä, voit esimerkiksi poimia sopivia ohjelmia, valmiita käskyjä, esimerkkitilanteita joihin ohjelma sopii ja lähestymistapoja, joilla erityyppisiin maaleihin tunkeudutaan.
- Tässä ei ole tarpeellista jättää troijalaisten binäärejä näkyviin, sillä nehän eivät usein edes toimi ilman kontrollipalvelimia. Verkosta löytyvissä esimerkeissä malware näytteet ovat usein kryptatussa ZIP-paketissa, jonka salasana (esim "This package contains live malware") kerrotaan jossain sivulla. Paketissa on usein myös README, jossa asia väännetään rautalangasta, ja malware on joskus varoittavasti nimetty "malware-trojan.exe".
- Tässä harjoituksessa ei tarvitse ohittaa virustorjuntaa, voit laittaa sen harjoitusmaalista pois päältä.
Tuntitehtäviä
t45a - Attaaack! Esittele valittu ATT&CK tekniikka. Selitä mihin taktiikkaan se liittyy. Anna esimerkki proseduurista, jossa sitä on käytetty. Esittele tekniikka siten, että sitä pystyy soveltamaan käytännössä. Demosta plussaa, jos aikaa jää yli. Tero valitsee taktiikan, jonka sisältä voit itse valita tekniikan.