Penetration Testing Course 2020 Spring - Tunkeutumistestaus ict4tn027-3003
Update: Top feedback: 5.0 / 5. Yes, every participant gave feedback, and each feedback was the best grade 5. Thank you!
Learn to hack computers to protect your own. In the course, you will break into target computers. Previous instance had excellent 4.9 out of 5 feedback.
Course is in late spring 2020. Teaching is in Finnish. Enroll now in Peppi: Tunkeutumistestaus ict4tn027-3003.
Teaching is in Finnish, so the rest of this page will be in Finnish. All my courses will be 100% remote learning in the spring 2020. Moodle (Haaga-Helia account required)
Kertausmateriaalia
Tämä materiaali on vapaaehtoista, jos osaat ne jo.
- Wikipedia: Internet protocol suite (eli TCP/IP pino)
- Command Line Basics Revisited (eli Linuxin komentokehote)
- PostgreSQL Install and One Table Database - SQL CRUD tutorial for Ubuntu
- 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ää loppukevään eli 2020 toisen periodin. Kurssi toteutetaan kokonaan etäopetuksena, kuten kaikki Teron kurssit keväällä 2020. Silloin, kun on yhteisiä videotapaamisia, pyrin asettamaan ne lukkarin mukaisesti ti 12-16:45.
- w14 ti 2020-03-31 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. Harjoitusmaalien hankinta.
- w15 ti 2020-04-07 Hyökkäykset weppiin. WebGoat. OWASP 10. Hyökkäysproxyt. mitmproxy.
- w16 ti 2020-04-14 Social engineering - Riku Juurikko, Elisa
KPMG Finland. - w17 ti 2020-04-21 CinCan malware-analyysi - Kimmo Linnavuo, Traficom.
- w18 ti 2020-04-28 Tiedustelu. “Mittaa kahdesti, leikkaa kerran”. Passiivinen ja aktiivinen tiedustelu. Porttiskannus, verkkojen skannaus ja niiden oheistekniikat. KKO 2003:36. Nmap-porttiskanneri.
- w19 ti 2020-05-05 Valmiiden hyökkäysten käyttö. Metasploit. Käyttöönotto. Porttiskannausten tallentaminen tietokantaan. Murtotekniikan ja etähallintaohjelmiston yhdistäminen. Harjoitushyökkäyksiä.
- w20 ti 2020-05-12 Salasanojen murtaminen. Murtaminen tiivisteistä. Sanakirjahyökkäys verkon yli. Salaustekniikoita. Etähallinta tunkeutumistestauksessa. Meterpreter.
- w21 ti 2020-05-19 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).
Yleiskuva, harjoitusmaaleja, web
- MITRE ATT&CK
- Hutchins et al 2011: Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains
- Darknet Diaries . Podcastien kuunteluun kännykällä AntennaPod löytyy F-Droidista
- MitmProxy on Kali and Xubuntu
- WebGoat on Ubuntu with Docker
- OWASP 10 pdf
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ä NewPipe 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.
Palautetta
Tältä toteutukselta ekan tunnin palaute pyöristyi mukavasti viitoseen, ja matalin palaute oli 4 erittäin hyvä. Asettaa pieniä paineita pitää tasoa seuraavillakin tunneilla.
Toisella tunnilla kaikki muut 5 ja yksi 4. Iloinen yllätys, koska tuli käytyä aika paljon asiaa ja haastetta riitti.
Aiemmalla 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
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ä.
h1
a) Ratkaise WebGoatista 5-10 tehtävää lisää. (Hyppää yli niistä, jotka eivät toimi tässä versiossa, esim "Developer version only" tai tuki haavoittuvuus muokkaamalla WebGoatin sorsia).
b) Kuuntele jokin murto Darknet Diaries -podcastista. Analysoi tätä murtoa Cyber Kill Chain (Hutchins et al 2011) ja Mitre ATT&CK -mallien avulla. Kirjoita siten, että analyysisi auttaa käytännön hyökkäyksissä.
c) (tästä alakohdasta ei raportointia:) Lue viimeisin OWASP 10 dokumentti. Tarvitset näitä hyökkäyksiä ihan käytännön tunkeutumisharjoituksissa, joten lue ne niin, että pystyt käyttämään niitä.
d) Vapaaehtoinen: Ratkaise kaikki WebGoat -tehtävät.
h2
Ole huolellinen näiden työkalujen kanssa. Porttiskannereita ja vastaavia ohjelmia saa käyttää vain harjoitusmaaleihin. Liikennettä tulee seurata toisella ohjelmalla. Osoitteiden (esim. IP-numeroiden) kanssa tulee olla tarkkana. Voit käyttää vain sellaisia työkaluja, joiden toiminnan ymmärrät kohtuullisesti. Kurssin säännöissä ja oppitunnilla on annettu tarkempia ohjeita.
z) Lue opiskelumateriaali jokaisen läksyn yhteydessä. Tätä lukukohtaa z ei tarvitse raportoida.
a) Varmista esimerkkiosoitteella, että olet yhteydessä oikeaan HackTheBox maaliverkkoon. Voit esimerkiksi tarkistaa ipcalc:lla, että kyseessä on yksityinen IP. Kokeilla pingillä, että osoite vastaa vain, kun VPN-tunneli on päällä. Ja tietysti, että kaikki toimii odotetulla tavalla.
b) Tiedustele aktiivisesti HackTheBoxin verkko. Analysoi tulokset (tärkeää). Voit käyttää esimerkiksi nmap-porttiskanneria, Linuxin komentoriviä (grep, pythonpy...) ja eyewitness:iä. Jos löydät nimipalvelimen, voit kokeilla zone transfer:ia tai nimien kokeilua (mutta katso, että nuo pyynnöt todella menevät oikeaan harjoitusmaaliin.) Löydät käyttöesimerkit työkaluista http://tools.kali.org ja man-sivuilta (esim. 'man nmap'). Noudata HTB:n sääntöjä. Kaikki muut osat raportista kannattaa julkaista yleisesti, mutta HTB:n ratkaisut yhdessä sovitun salasanan taakse, jotta emme spoilaa toisten kilpailua.
c) Tee WebGoatista lisää tehtäviä niin, että olet ratkaissut yhteensä 15-20 tehtävää.
d) Vapaaehtoinen: Tee kaikki WebGoatin tehtävät.
e) Vapaaehtoinen: Korkkaa jokin HTB:n kone. Voit hakea hieman apua katsomalla "machines"-kohdasta, mitkä koneet on arvioitu helpoimmiksi. Ja noista vanhojen HTB koneiden walktrough videoista ja artikkeleista, joita on tämän kerran lukupaketissa.
h3
z) Lue opiskelumateriaali, jos jotain on jäänyt ohi. Ja tietysti Rikun kalvot ja linkit, lähetän ne, kunhan saan siistityn version. Tätä lukukohtaa z ei tarvitse raportoida.
a) Rikun opit. Poimi jokin Rikun esityksestä oppimasi seikka ja kuvaile se. Mikä idea tai tekniikka vaikutti lupaavimmalta? Älä siteeraa tapausesimerkkejä tai kohteiden nimiä vastauksessasi. (Joku ei päässyt kuulemaan vierailua, olen antanut silloin vaihtoehtoisen tehtävän).
b) Tiedustele perusteellisesti joitain HTB:n koneita, joissa on weppipalvelin. Sopivia työkaluja ovat esimerkiksi gobuster ja nikto. Voit käyttää lisäksi muitakin työkaluja. Kokeile lomakkeisiin ainakin perusjuttuja (admin:admin, admin: , root: , root:root, guest:guest, asfasdf:adfkjwoeri, hipsu ') Selaile myös sivua ja seuraa liikennettä mitmproxylla. Analysoi tulokset. (Pelkät komentojen tulosteet eivät riitä.) Ovatko versiot vanhoja vai tuoreita? Onko epätavallisia asetuksia? Jos haavoittuvuusskanneri hälyttää, onko hälytys oikea? Mitkä aukot vaikuttavat parhaimmilta/pahimmilta? Miten pitkälle pääset koneen kanssa?
c) Kokeile neljää https://0xdf.gitlab.io/ mainitsemaa työkalua joihinkin HTB:n koneisiin.
d) Tee WebGoatista lisää tehtäviä niin, että olet ratkaissut yhteensä 20-25 tehtävää.
e) Kimmo Koskenvuo TrafiCom:lta (ent. Viestintävirasto) opettaa ensi viikolla malware-analyysia CinCan:lla. Silmäile CinCan.io. Asenna ympäristö, jossa voit ajaa CinCania. Ubuntu 18.04, yli 6 GB RAM, yli 4 GB levyä. Ainakin tuo RAM vaatimus on isompi kuin mitä tyypillisessä virtuaalikoneessa on. Monet työkalut vaativat paljon RAM:ia, ja enemmän on parempia. Eikä haittaa, vaikka leyväkin on enemmän. (Laitan myöhemmin viestiä, haluaako Kimmo meidän asentavan koko ohjelmiston etukäteen).
f) Vapaaehtoinen: Asenna CinCan ja kokeile sitä. https://cincan.io/environment/
h4 CinCan Foresics
a) CinCan-työpaja. Raportoi CinCan-työpajan harjoitus. Tämän raportin voi kirjoittaa jälkikäteen muistista. Voit työpajan aikana laittaa ylös komentoja ja avainsanoja, mutta keskity harjoituksiin ja seuraamiseen. Muista merkitä raporttiisi, että se on jälkikäteen muistinvaraisesti kirjoitettu.
b) Omat CinCanit. Kokeile Cincania itse. Voit käyttää opettuja ominaisuuksia uuteen, itse valitsemaasi näytteeseen. Tai voit kokeilla uutta ominaisuutta vanhaan näytteeseen.
c) Arviosi CinCanista. Mikä CinCanissa on parasta? Missä voisit hyödyntää sitä (töissä, harrastuksissa, koulussa...)? Suosittelisitko CinCania? Kenelle? Miten CinCania voisi parantaa?
d) Vapaaehtoinen: Robo-CinCan. Automatisoi jokin oma työnkulku tai prosessi CinCanin työkaluilla.
e) Vapaaehtoinen, vaikea: Omaa koodia CinCaniin. Huomaa, että tämä vapaaehtoinen lisätehtävä edellyttää projektin käytäntöihin perehtymistä ennen parannusten lähettämistä. Tee CinCaniin parannus, korjaus tai jokin uusi skripti tai ominaisuus. Lähetä se projektille (esim Gitlabissa) ja yritä saada se mukaan. Muutos voi olla miten pieni vain, kunhan se on hyödyllinen. Kerro, miten sait koodisi mukaan projektiin. Kunnioita kehittäjien aikaa - perehdy ohjeisiin ja projektin käytäntöihin, ennenkuin lähetät parannuksia.
h5 Sitting ducks
Muista kohdistaa hyökkäykset vain harjoitusmaaleihin ja tarkistaa osoitteet.
a) Murtaudu Metasploitable 2 harjoitusmaaliin useilla tavoilla käyttäen Metasploit-hyökkäysohjelmaa. Voit käyttää apuna Exploitability Guidea.
b) Kokeile eri asioita, mitä pystyt tekemään koneella, jonne olet päässyt Metasploitilla.
b) Lue O'Reilly Learning:sta Metasploittia käsittelevä artikkeli tai katso video. Kokeile kolmea kurssilla ja tässä tehtävässä aiemmin esittelemätöntä ominaisuutta tai tekniikkaa Metasploitista käytännössä. Pääset O'Reilly Learningiin HH tunnuksilla maksutta.
c) Asenna jokin muu virtuaalikone harjoitusmaaliksi kuin Metasploitable 2. Murtaudu siihen Metasploitilla.
d) Skanna HackTheBoxin verkko niin, että tallennat tulokset Metasploitin tietokantoihin.
e) Vapaaehtoinen bonus Metasploitia aiemmin käyttäneille: Kerro esimerkki, jossa käytit Metasploitia. Mitkä ovat suosikkitekniikkasi Metasploitin kanssa?
h6 Salasanat, ympäristöjen rakennus
Huomaa, että tässä tehtävässä merkittävä osuus koostuu harjoitusmaalien rakentamisesta, työkalujen valinnasta ja niiden parhaiden käyttötapojen selvittämisestä. Katso lukupaketin video ja katso linkit ennenkuin aloitat.
a) Murra salasanoja tiivisteistä. Kokeile erilaisia salasanojen tiivisteitä ja eri ohjelmia (esim. hashcat, john). Toimiiko hashcat koneellasi GPU:lla? Miten GPU:n käyttö vaikuttaa nopeuteen?
b) Murra salasanoja omalla koneellasi olevista palveluista. Esimerkiksi ssh:sta ja HTML-lomakkeelta. (esim. hydra). Ole huolellinen, että osoitat ohjelmalla vain luvallisia harjoitusmaaleja; voit käyttää esim. localhost-osoitetta harjoitteluun.
c) Etsi paikallisia salasanoja sivuttaissiirtymää varten. (esim LaZagne, mimikatz, meterpreter hashdump)
d) Etsi Mirai-haittaohjelman lähdekoodista kohta, josta ilmenee käytetty hyökkäys. Selitä, miten hyökkäys toimii. Mistä muista lähteistä löytyy tietoa Miraista? Onko samoja tekniikoita käytetty muissa hyökkäyksissä tai haittaohjelmissa?
e) Kokeile jotain uutta salasanojen murtamiseen tai keräämiseen tarkoitettua ohjelmaa, jota ei ole opetettu tunnilla tai käytetty vielä läksyissä. Voit katsoa vinkkejä esimerkiksi infosecn1nja:n tai 0xdf:n artikkeleista linkeistä.
f) Ratko WebGoatin tehtäviä niin, että olet ratkaissut yhteensä 25-30 tehtävää.
Vapaaehtoinen: Korkkaa jokin HTB:n kone.
Vapaaehtoinen: Kirjoita salasanojen kokeiluohjelma haluamallasi kiellä, esim Go tai Python.
ps. Go-ohjelmointi, intensiivikurssi ICT8TN031-3001, ilmoittaudu nyt Pepissä.
h7 Web fuzzing ja muistilappu
Loppusuoralla, maali häämöttää.
a) Web fuzzing. Asenna fuff ja käytä sitä valitsemaasi harjoitusmaaliin. Kokeile eri tyyppisiä fuzzingeja, fuff kohteiksi voi laittaa esimerkiksi kansiot, alidomainit, parametrien nimet, parametrien arvot tai lomakkeiden käsittelijät. Asenna itse tarvittavat harjoitusmaalit.
b) Muistilappu. Kokoa vanhoista harjoitustehtävistä tiivis, sähköinen muistilappu. Laita komennoista kokonaiset, toimivat esimerkit. Tavoitteena on tehdä sellainen muistilappu, josta on itsellesi hyötyä, kun teet tunkeutumistestausta käytännössä.
c) Viisauksia keräämässä. Silmäile muiden kotitehtäväraportit ja kerää uuden otsikon alle muistilappuusi kiinnostavimmat komennot. Muista lähteet.
d) 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.
e) 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.