Penetration Testing Course
Tunkeutumistestaus ict4tn027-3008 - 2021 Autumn

Learn to hack computers to protect your own.

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 Five star experience
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.

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.

  1. 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.
  2. 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)
  3. 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.
  4. w46 ti Tiedustelu. “Mittaa kahdesti, leikkaa kerran”. Passiivinen ja aktiivinen tiedustelu. Porttiskannus, verkkojen skannaus ja niiden oheistekniikat. KKO 2003:36. Nmap-porttiskanneri.
  5. 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ä.
  6. w48 ti 12:00 Vierailija: Niklas Särökaari, F-Secure: Red Teaming. Salasanojen murtaminen. Murtaminen tiivisteistä. Sanakirjahyökkäys verkon yli.
  7. w49 ti 11:45 Vierailija: Niko Heiskanen: Miten opettelin pentestiä kurssin jälkeen. Sekä kertaus.
  8. 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

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

Yleiskuva, harjoitusmaaleja, web

Aktiivinen tiedustelu. HackTheBox.

Passwords, Learning to Learn tools

Web Fuzzing, Second to Last Words

Metasploit

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-tunkeutumistestaus-ict4tn027-3004-intensive-summer-course-2019-w21w22-5-credits

http://terokarvinen.com/2018/arvioitava-laboratorioharjoitus-tunkeutumistestaus-ict4tn027-3001-autumn-2018-period-1-5-op

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 opiskelijoiden esityksistä?
  • Suosittelisitko kurssia? Kenelle kurssi sopisi? Koulutoverille tai kollegalle?

2) Numeerinen palaute Haaga-Helian uuteen palautejärjestelmään

Vertailukohtana tyypillinen Haaga-Helian kurssi

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.

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.
  • 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.

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".

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
  • 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

Tehtävä on valmis, eikä päivity enää.

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 viimeistä viedään

Tehtävä päivittyy

a) Palauta kaikki. Laita tähän a-kohtaan linkki jokaiseen kotitehtäväraporttiisi.

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

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

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.

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

d) Kokeile hydraa johonkin uuteen maaliin.

Vinkki: Voit kokeilla esimerkiksi eri protokollaan Metasploitable 2:lla tai uuteen demoniin localhostilla.

e) Kokeile hydraa omaan weppilomakkeeseen.

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

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

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

g) Murra jonkin tiedoston salajanasuojaus.

Vinkkejä: Voit avata esimerkiksi zip tai pdf-tiedoston salakirjoituksen. Yksi helppo vaihtoehto on zip2john.

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.

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

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.

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.

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.