Penetration Testing Course 2022
Tunkeutumistestaus ict4tn027-3007 - 2022p4 late spring
Learn to hack computers to protect your own.
In the course, you will break into target computers.
Excellent 4.9 out of 5 feedback from previous course.
Update: New visitor: Social Engineering with Riku Juurikko, Senior Security Manager, Elisa.
Update: New visitor: Forensic Analyses with Andrej Bondarenko, CEO, Difseco.
Update: New visitor: How to become invisible with Juho Jauhainen, Lead Incident Response Investigator, Accenture.
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-3007 |
Timing | 2022 period 4 late spring, w13-w20 |
Credits | 5 cr |
Classes | Mondays 8:15 - 13:45, online, mandatory participation |
Max students | 30 Enroll 2021-11-29 w48 Monday at 08:00. |
Language | Finnish (+reading material in English) |
Remote | Yes, fully remote |
Feedback | 4.9 * out of 5 Excellent feedback |
Services | Moodle, Jitsi |
First class | 2022-03-28 w13 Monday 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 spring 2022.
*Previous instance feedback was excellent 4.9 out of 5. But the best feedback has been excellent 5.0 out of five, with every student giving feedback, and every feedback being the best 5.
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. Python on myös hyvä vaihtoehto kieleksi.
Alkutestin sisältö ja muoto selviävät ensimmäisellä tapaamiskerralla. Viimeksi tehtävänä oli siepata ja analysoida (omaa) verkkoliikennettä ja tehdä raportista weppisivu; tai kirjoittaa ohjelma, joka kertoo tietoja kohdekoneesta ja tehdä tuolle ohjelmalle weppisivu. Joillain toisilla kerroilla alkutehtävä on ollut kirjallinen.
Alkutesti
Joko
- Sieppaa ja analysoi (omaa) verkkoliikennettä ja tee raportista weppisivu, tai
- Kirjoita ohjelma, joka kertoo tietoja kohdekoneesta ja tee tuolle ohjelmalle weppisivu
Alkutestin saa suorittaa vain, jos on hyväksynyt kurssin säännöt.
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
Oppitunnit maanantaisin 08:15 - 13:45 videokonfferenssina, loppukevään 2022p4. Alustava aikataulu, johon tulee muutoksia kurssin kuluessa. Pääsiäismaanantaina w16 ei ole oppituntia.
Päivä | Aihe |
---|---|
2022-03-28 w13 | 1. Alkutesti, sääntöjen hyväksyntä. Yleiskuva. Kohteiden rajaus (scope), lailliset rajat, etiikka, nuhteeton tausta. Hyökkäykseen sopivien työkalujen hankinta. |
2022-04-04 w14 | 2. Vierailu: Miten olen näkymätön? Juho Jauhainen, lead incident response investigator, Accenture. (9-10) 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) |
2022-04-11 w15 | 3. Vierailu: Lari Iso-Anttila: RFID-hakkerointi (08:15). Vierailu: Social Engineering. Riku Juurikko, senior security manager, Elisa. (09:00). 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. |
2022-04-25 w17 | 4. Vierailu: Niklas Särökaari: Q&A (12:00). Niklaksella on vuosien Red Team ja Penetration testing kokemus, miettikää kysymyksiä etukäteen. Tiedustelu. “Mittaa kahdesti, leikkaa kerran”. Passiivinen ja aktiivinen tiedustelu. Porttiskannus, verkkojen skannaus ja niiden oheistekniikat. KKO 2003:36. Nmap-porttiskanneri. |
2022-05-02 w18 | 5. Vierailu: Mika Rautio, security management consultant, WithSecure: Attacking application vulnerabilities. (08:15). Valmiiden hyökkäysten käyttö. Metasploit. Käyttöönotto. Porttiskannausten tallentaminen tietokantaan. Murtotekniikan ja etähallintaohjelmiston yhdistäminen. Harjoitushyökkäyksiä. |
2022-05-09 w19 | 6. |
2022-05-16 w20 | 7. 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
Kurssi sai viimeksi palautteen kokonaisarvion "erinomainen", 4.9 / 5. Paras palaute on ollut 5.0 / 5, eli jokainen opiskelija antoi palautteen ja jokainen palaute oli paras mahdollinen eli vitonen.
Vanhojen kurssisivujen perässä on runsaasti vapaamuotoista palautetta.
Edellinen toteutus 2021 loppusyksy, 4.9 /5 kiitettävä palaute from previous course.
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?
- Miten voisin parantaa kurssia?
- Viihdyitkö kurssilla?
- Mitä pidit arvioitavasta labrasta?
- Mitä pidit vierailijoista?
- Suosittelisitko kurssia, tai oletko suositellut sitä jo? Jos, niin kenelle kurssi sopisi? Koulutoverille tai kollegalle?
2) Numeerinen palaute Haaga-Helian uuteen palautejärjestelmään
Miten pidit tästä kurssista verrattuna muihin Haaga-Helian kursseihin?
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
z) Lue ja tiivistä. Tässä z-alakohdassa ei tarvitse tehdä testejä tietokoneella, vain lukeminen ja tiivistelmä riittää). Tiivistämiseen riittää muutama ranskalainen viiva.
- 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
e) Ratkaise 2021 Challenge.fi:stä yksi tehtävä, esim. 2021 Where was this picture taken, Encoding basics.
f) TryHackMe tai HackTheBox. Rekisteröidy, lue ja tallenna säännöt, avaa OpenVPN-yhteys, ratkaise yksi tehtävä (tai tehtävän alakohta) jommasta kummasta palvelusta: TryHackMe tai HackTheBox
g) Vapaaehtoinen: Ratkaise OverTheWire: Bandit, tasot 5-10.
h) Vapaaehtoinen: Korkkaa jokin käytössä oleva kone HackTheBoxista (non-retired machine).
i) Vapaaehtoinen: Laita linkki kotitehtäviisi sivun kommentiksi. Tarjolla viittauksia ja nousua hakukoneissa.
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. Valitse jakso, jota et ole kuunnellut aiemmin.
- Darknet Diariesista kannattaa valita jokin muu jakso kuin uusin, niin saamme tiivistelmiä eri jaksoista
- Karvinen 2006: Raportin kirjoittaminen
- Olethan merkinnyt raporttiisi kurssin, tehtävänannot 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.
- Onko WebGoat tuttu? Jos olet jo ratkaissut nämä WebGoat-tehtävät, ratkaise jokin toinen kohta WebGoatista näiden sijaan.
- 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.
- HTTP Basics
- HackTheBox: Suosittelen aloittamaan Starting Point -harjoitusverkosta
- Mikään näistä tehtävistä ei edellytä palveluiden ostamista.
- OpenVPN asennus (ulkomuistista): lataa tero.opvn -tiedosto, 'sudo openvpn tero.opvn'. Kannattaa kokeilla esim. avaamalla joku vain kohde/harjoitusverkossa näkyvä weppisivu, että harjoitusverkko näkyy. Ja kokeilla, että esim Google/Duck ei näy, jos kaikki liikenne on tarkoitus ohjata harjoitusverkkoon.
- TryHackMe lienee helpompi kuin HackTheBox
- Kopioi palveluista (HackTheBox, Challenge.fi, TryHackMe...) säännöt talteen itsellesi
- 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.
Tee ja raportoi:
a) SELECT * FROM student. Ratkaise SQLZoo:sta: 0 SELECT basics, 2 SELECT from World kohdat 1-4.
b) Ratkaise WebGoatista: A1 Injection (intro).
c) Nyrkkeilysäkki. Asenna Metasploitable 2 samaan verkkoon Kalin kanssa. Katso, ettei haavoittuva Metasploitable 2 näy Internetiin.
d) Nauhalle. Nauhoita kaikki konsolissa annetut asiat ja näkyvät tulosteet koko tehtävästä. (esim script)
e) Ei kuulu! Ennenkuin aloitat skannaukset, kokeile, ettei Kali pääse nettiin 'ping 8.8.8.8' vastaa "Network is unreachable".
f) 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?
g) Kilo. Porttiskannaa 1000 tavallisinta porttia löydetyistä koneista. Selitä ja analysoi tulokset. Mikä koneista voisi olla Metasploitable 2?
h) 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.
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) Vapaaehtoinen: Asenna jokin kone Vulnhub:ista samaan Internetistä eristettyyn verkkoon Kalin kanssa.
m) Vapaaehtoinen: 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.
- Webgoat: 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.
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?
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, nucleus 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 Script Kiddie
Palautus sovitusti Laksuun.
Harjoittele vain luvallisiin harjoitusmaaleihin. Irrota tarvittaessa koneet Internetistä ja seuraa hyökkäysohjelmien toimintaa toisella työkalulla.
v) Lue artikkelit ja katso videot, tee kustakin muistiinpanot (muutama ranskalainen viiva per artikkeli/video). Tässä v-kohdassa ei tarvitse tehdä mitään kokeita koneella.
€ Jaswal 2020: Mastering Metasploit - 4ed: Chapter 1: Approaching a Penetration Test Using Metasploit (kohdasta "Conducting a penetration test with Metasploit" luvun loppuun)
Vapaavalintainen läpikävely (walktrough) yhdestä murrosta. Voit siis valita yhden läpikävelyn mistä tahansa näistä kanavista tai blogista. Kanavilla on muitakin artikkeleita, valitse tästä läpikävely. Keskity tiivistäessä asioihin, joita voisit itse soveltaa hyökätessä. Tässä on yli 200 h videota, niitä ei tarvitse katsoa kaikkia.
Muu myöhemmin ilmoitettava lukutehtävä: Jos ensi viikon vierailija pyytää kertaamaan jotain Windowsista (rekisteri, tiedostojärjestelmä, käyttäjät...) tai tietokonerikosten teknisestä tutkinnasta, laitan siitä erikseen sähköpostia
a) Emmental. Asenna Metasploitable 3
b) Msf. Murtaudu Metasploitable 3 käyttämällä Metasploittia 'sudo msfconsole'
c) Rat. Demonstroi meterpreter:n käyttöä
d) Laksu. Palauta linkkisi sovitusti Laksuun. Arvioi ja anna palautetta kahden (2) kurssikaverin kotitehtävästä. (Vapaaehtoisena bonuksena saat antaa palautetta useammastakin. Tätä d-alakohtaa ei tarvitse raportoida.)
e) Vapaaehtoinen: ExploitDB offline. Murtaudu johonkin harjoitusmaaliin käyttäen hyökkäystä, jonka etsit 'searchsploit' työkalulla. Valitse sellainen hyökkäys, joka ei tule suoraan Metasploitin mukana.
f) Vapaaehtoinen: NSA was here. Kokeile Ghidraa. Voit esimerkiksi kääntää jonkin oikein yksinkertaisen ohjelmasi binääriksi, ja katsoa miltä se näyttää.
Vinkit:
- Haaga-Helian kirjaston kautta saatat päästä lukemaan O'Reillyn maksulliset aineistot ilmaiseksi
- Metasploitable 3
- Helpointa on asentaa Linux-versio Vagrantilla. Vagrant tosin pyörii helpoimmin raudalla olevalla Linuxilla. - Karvinen 2018: Install Metasploitable 3 – Vulnerable Target Computer (Article uses rapid7/metasploitable3-ub1404 , see also "rapid7/metasploitable3-win2k8")
- Voit asentaa Metasploitable 3 myös muilla tavoilla, katsomalla verkosta ohjeita
- Jos haluat, voit asentaa myös Metasploitable 3 Windows-version
- Metasploit
- Metasploit tulee Kalissa valmiina, ja tässä on helpointa käyttää Kalia
- Tietokantojen (db_nmap, services, hosts) käyttöönotto: 'sudo msfdb init'
- Jos jäät jumiin tai aika loppuu, hakukoneista "Metasploitable 3 exploitation guide". Merkitse selkeästi, jos käytit johonkin tehtävään tällaista läpikävelyohjetta (walktrough)
- Meterpreter
- Helpointa on etsiä Metasploitista hyökkäys, joka tukee suoraan meterpreter payload:ia. Joillakin hyökkäyksillä on myös mahdollista laittaa auki oleva sessio taustalle Ctrl-Z, 'sessions' ja päivittää meterpreteriin 'sessions --upgrade 1'.
- 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.
- Laksu
- Jos olet supernopea palauttamaan tehtäviä, eivätkä muut ole vielä ehtineet palauttaa, voit vilkaista uudelleen seuraavana päivänä
h6 Final Countdown
Palautus tuttuun tapaan Laksuun.
a) Middle. Muuta hakupyyntöä välimiesproxylla.
b) Cheatsheet - kerää parhaat kikat, käskyt ja tekniikat omasta ja toisten raporteista. (tässä alakohdassa pelkkä kirjoitus riittää, ei tarvitse testata koneella)
c) Viitteet kuntoon. Tarkista kaikista raporteistasi, että olet viitannut kaikkiin lähteisiin: kurssiin, tehtävänantoon, toisten kotitehtäviin, kirjoihin, opetusvideoihin, weppisivuihin, GitHub-varastoihin... Katso myös, että suorat lainaukset on merkitty lainausmerkein tms. (Tätä alakohtaa ei tarvitse raportoida)
d) Kaikki tehtävät tähän. Listaa suora linkki kuhunkin palautukseesi.
e) Arvioi kaksi. Anna Laksussa palautetta kahdesta kotitehtäväpaketista. (Tätä alakohtaa ei tarvitse raportoida)
f) Vapaaehtoinen, Korkki: Jos olet korkannut koneita Challenge.fi:ssa tai HackTheBoxissa, listaa ne tähän. Erottele selkeästi käynnissä olevien kilpailujen (non-retired) koneet vanhoista, joiden ratkaisut on jo julkaistu.
g) Vapaaehtoinen, HackStation 3000: Valmistele kone viimeisen kerran arvioitavaan labraan. Saat asentaa koneelle etukäteen mitä ohjelmia haluat ja tehdä haluamiasi asetuksia. Jos ohjelmat eivät ole yleisessä käytössä olevia vapaita ohjelmia, niistä pitää toimittaa opettajalle tarvittaessa luvallinen kopio (jos se ei jostain ohjelmasta onnistu, käytä jotain toista ohjelmaa). Koneella ei saa olla luottamuksellisia tietoja, koska labrassa kerätään automaattisesti tietoja koneelta.
Vinkkejä
- Middle
- Voit käyttää mitä välimiesproxya haluat. Tunnilla katsottiin MitmProxy (web ja tui), OWASP ZAP ja Burp.
- Cheatsheet
- Linkkejä raportteihin löytyy kurssisivun (ja vanhojen kurssisivujen) kommenteista sekä hakukoneilla
- Laita itse asia tiiviisti muistilapullesi (ei pelkästään tietoa, että tieto löytyisi jostasin).
- Arvioi kaksi
- Kommentoi kutakin tehtäväpaketin tehtävää erikseen.
- Onko kaikkiin tehtäviin vastattu? Onko ratkeamattomia tehtäviä yritetty ja raportoitu eri lähestymistavat?
- Toistettavaa? Onko mukana tiedot, jolla voi toista samat onnistumiset, virheet ja ratkaisut samalla tavalla?
- Selkeää? Helppolukuista? Onko selitys ja analyysi mukana?
- Vinkkejä vastaajalle?
Tuntitehtäviä
t1a Skene
Laita seurantaan
- HelSec, tilaa HelSecin tapahtumakutsut
- OWASP Helsinki tilaa OWASP Helsinki Chapter -tapahtumakutsut
- Vapaaehtoinen: Teron Botbook-lista
Tee yksi harjoitus (tai osatehtävä) kustakin näistä
- OverTheWire Bandit, Level 0
- Challenge.fi, esim. 2021 Where was this picture taken, Encoding basics. Rekisteröidy 2022.
- Jos ehdit: TryHackMe, ota OpenVPN-yhteys omalta (virtuaali-)koneelta
- Jos ehdit: HackTheBox (suosittelen aloittamaan Starting Point -harjoitusverkosta)
Mikään näistä tehtävistä ei edellytä palveluiden ostamista. OpenVPN asennus (ulkomuistista): lataa tero.opvn -tiedosto, 'sudo openvpn tero.opvn'. Kannattaa kokeilla esim. avaamalla joku vain kohde/harjoitusverkossa näkyvä weppisivu, että harjoitusverkko näkyy. Ja kokeilla, että esim Google/Duck ei näy, jos kaikki liikenne on tarkoitus ohjata harjoitusverkkoon.
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.