Penetration Testing Course – ict4tn027-3001 – Autumn 2018 – period 1 – 5 op

I will teach the new penetration testing course.

Name: Penetration Testing - Tunkeutumistestaus
Code: ict4tn027-1
Teaching language: Finnish
Location: Computer lab pa5004, Haaga-Helia, Pasila, Helsinki
Time: Autumn 2018

Thanks to all of you who have made this course possible.

Agenda

Erittäin alustava agenda. Tämä on edistyneen kurssin ensimmäinen toteutus, muutoksia tulee varmasti.

1. Kohteiden rajaus (scope), lailliset rajat, etiikka, nuhteeton tausta. Nykytilan arviointi. Alkutesti ja osallistujien valinta. Kurssin sääntöjen hyväksyntä. Lämmittelyharjoitus. Harjoitusmaalien hankkiminen ja käyttö. OWASP 10 2017. Install Metasploitable 3 – Vulnerable Target Computer. Vulnerable Super Secure Password Recover – SQL Injection Example. Kertausmateriaalia.

2. Tiedustelu. Passiivinen tiedustelu. Aktiivinen tiedustelu. Kohteen valinta. nmap, db_nmap, nikto, zap, recon_ng.

3. Tunkeutuminen (exploit). metasploit, searchsploit. Meterpreter.

4. Weppi. OWASP 10. zap. sqlmap. WP.

5. Salasanojen murtaminen. hashdump, john. Salakirjoitus. gnupg2, tor, cryptopals.

6. Troijan hevoset. Vihamielinen etäkäyttö. Kalastelu (spear phising). set.

7. Verkkohyökkäyksiä.

8. Arvioitava harjoitus tai koe


Alustava kuvaus

Tämä alustava kuvaus muuttuu vielä kurssin ensimmäisen toteutuksen lähestyessä.

Taustaa

Tunkeutumistestauksessa (penetration testing) järjestelmän tietoturvaa parannetaan hyökkäämällä siihen oikeaa hyökkäystä muistuttavalla tavalla, mutta järjestelmän omistajan tilauksesta ja luvalla. Tunkeutumistestaus auttaa tunnistamaan ja priorisoimaan riskejä. Testiraportin perusteella järjestelmän turvallisuutta parannetaan korjaamalla havaitut puutteet.

Tietoturvasta huolehtiminen on pakollinen osa minkä tahansa yrityksen toimintaa. Riskialttiilla aloilla standardit voivat myös velvoittaa tunkeutumistestaukseen tai haavoittuvuusskannaukseen.

Tunnus: Laajuus: 5 op
Ajoitus:
Kieli: suomi
Opintojakson taso: ammattiopinnot
Opintojakson tyyppi: vaihtoehtoiset
Englanninkielinen nimi: Penetration Testing

Lähtötaso ja sidonnaisuudet muihin opintojaksoihin

Alkutestin suorittaminen on edellytys kurssille pääsyyn. Mikäli hakijoita on enemmän kuin kurssille mahtuu, alkutestin pisteet ratkaisevat etusijan.

Alkutestillä testataan
- Linuxin perusteiden hallinta (esim. komentokehote, demonit, tiedostojärjestelmän rakenne, ssh)
- Verkkojen perusteet (esim. TCP/IP pino, paketti, ARP, TCP, UDP, HTTP,
ICMP, SSL/TLS, socket, IP-osoite, portti, asiakas-palvelin-arkkitehtuuri)
- Ohjelmoinnin perusteet (muuttuja, suoritusjärjestys, ehtolause, silmukka, funktio, olio)

Kurssilla työskennellään pääasiassa Linuxin komentokehotteessa.

Opiskelijalla on oltava suoritettuna
- Linux palvelimet
- Jokin ohjelmoinnin alkeis- tai peruskurssi

Kurssille pääsy edellyttää myös kurssin sääntöjen hyväksymistä.

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

Vastuuopettajat

Tero Karvinen, www.TeroKarvinen.com

Opetus- ja oppimimateriaali

Opettaja kertoo teorian käytännön esimerkkiin sidottuna.
Opetettuja asioita kokeillaan tietokonelaboratoriossa.

Laboratorioharjoitusten takia tunneilla on syytä olla paikalla.

Arviointiperusteet

- Kotitehtävät (50%)
- Arvioitava laboratorioharjoitus tai koe (50%)
- Aktiivinen osallistuminen lähiopetukseen

Aikaisemmin hankitun osaamisen tunnistaminen (AHOT)

Tällä kurssilla AHOT-menettelyn soveltaminen edellyttää todistettavaa kokemusta systemaattisesta tunkeutumistestauksesta.

Aiemmin hankitun osaamisen tunnistaminen ja tunnustaminen on prosessi, jossa arvioidaan aikaisemmin hankittua osaamista suhteessa suoritettavaan opintojaksoon. Aiemmin hankittu osaaminen voi perustua aikaisempaan opiskeluun tai alan työkokemukseen. Opiskelijan halutessa suorittaa opintojakso AHOT-menettelyä käyttäen tulee opiskelijan ilmoittautua normaalisti opintojaksolle ja ottaa yhteyttä opintojakson opettajaan AHOT-menettelyn käynnistämiseksi.

Palautteen hyödyntäminen

Ensimmäisen toteutuksen suunnittelussa on hyödynnetty palautetta kursseilta “Linux palvelimena” sekä “Linuxien keskitetty hallinta”. Kotitehtävien julkaisuun kannustetaan ja samalla annetaan selkeät palautusohjeet. Vuorotellaan teoriaa ja käytäntöä. Annetaan paljon käytännön esimerkkejä. Ryhmän koko rajoitetaan kohtuulliseksi.

Tämä alustava kuvaus muuttuu vielä kurssin ensimmäisen toteutuksen lähestyessä.
Updated: added course code and other details. Added more details.

Kertausmateriaalia

Tämä materiaali on vapaaehtoista, jos osaat ne jo.

Läksyt

Kotitehtävät raportoidaan weppiin samaan tapaan kuin esim “Linux palvelimena” -kurssilla. Linkin palautus Moodleen. Kannattaa laittaa myös kommentiksi tämän sivun perään, jos haluat näkyvyyttä ja auttaa samalla kurssikavereitasi.

Kaikkien ajan säästämiseksi poistan kurssilta ne, jotka eivät ala suorittaa kurssia palauttamalla kotitehtäviä.

h1

0) Opiskele aikataulusta linkitetyt materiaalit. Aikataulusta linkitetyt materiaalit ovat lukuläksynä joka kerta. Tätä 0-kohtaa ei tarvitse raportoida.

1) Kokeile valitsemaasi OWASP 10 hyökkäystä omalle koneellesi. Tässä harjoituksessa saa käyttää vain omalle, paikalliselle koneelle asennettuja harjoitusmaaleja.

Vinkkejä: Voit etsiä jonkin valmiin haavoittuvan ohjelmiston, asentaa sen ja kokeilla valmista hyökkäystä suoraan spoilerista/ohjetekstistä. Tarkoitus on siirtyä hyökkäyksistä puhumisesta niiden kokeilemiseen. Jos osaat koodata, voit tehdä haavoittuvan ohjelman myös itse. Tämä näytti aika haavoittuvalta ja on helppo asentaa: Install Metasploitable 3 – Vulnerable Target Computer. Vinkkejä: Teron haavoittuva ohjelma: Vulnerable Super Secure Password Recover – SQL Injection Example. Kaikkein helpoin vaihtoehto on asentaa Metasploitable 3 ja vilkaista payroll_app.php -ohjelmaa.

2) Vapaaehtoinen: Kokeile useita OWASP 10 hyökkäyksiä omalla koneellasi olevaan harjoitusmaaliin. Montako saa toteutettua käytännössä?

h2

Scope. Tiedustelu- ja hyökkäysohjelmia saa käyttää vain luvallisiiin maalikoneisiin. Lue HackTheBoxin säännöt ennen aloittamista. Tarkista IP-osoitteet huolellisesti.

1) Tiedustele aktiivisesti HackTheBoxin verkko. Voit käyttää esimerkiksi porttiskannereita, metasploittia, selainta, curl -I, nc ja muita osaamiasi työkaluja. Raportoi. Laita HackTheBoxin ratkaisut yksinkertaisen salasanan taakse, ei julkiseen nettiin. Salasanan voit antaa opettajalle Moodleen ja kurssikavereille, ei julkiseen nettiin.

2) Tee WebGoatista kolme tehtävää. Asenna WebGoat tarvittaessa. Ratkaisut saa julkaista normaalisti koko Internetille. Vinkki: edellisen kerran läksyjen raporteissa tällä sivulla on helppoja asennusohjeita WebGoatille.

3) Vapaaehtoinen: Ratko lisää WebGoatin tehtäviä.

4) Vapaaehtoinen, vaikea: Jos osaat, korkaa jokin maalikone HackTheBoxista. Muista sallitut rajat eli scope. Apupyörinä voit käyttää HackTheBoxin weppiliittymästä löytyvää konelistaa vaikeustason mukaan järjestettynä.

h3

Muista scope eli pysy sallittujen harjoitusmaalien rajoissa.

1) Kokeile haavoittuvuusskanneria (vulnerability scanner). Käytä jotain muuta kuin tunnilla kokeiltua niktoa. Esim. openvas, w3af…

2) Haavoittuvuusskannaa 5 konetta HackTheBoxin verkosta. Käytä kahta skanneria, esimerkiksi niktoa ja edellisessä kohdassa valitsemaasi skanneria. Analysoi tulokset. Mitkä palvelut vaikuttavat helpoimmilta kohteilta aloittaa hyökkäys? Jos haluat, voit tuoda tulokset metasploit:iin db_import -komennolla.

3) Silmäile Mirai-haittaohjelman lähdekoodia. Etsi lista salasanoista, joita Mirai käyttää. (Tämän kohdan voi tehdä pelkästä lähdekoodista. Mitään ei tarvitse kääntää eikä ajaa. Binäärimuotoiset virukset ja madot voivat levitä, joten niiden käsittely vaatii erityisjärjestelyjä.)

4) Yritä korkata joku kone HackTheBoxin verkosta. Maaliin asti ei tarvitse päästä, mutta raportoi mitä kokeilit ja mitä johtolankoja jäi vielä tutkittavaksi.Voit apupyörinä katsoa listasta, mitkä koneet on arvioitu helpoiksi.

5) Vapaaehtoinen: Miten OWASP WebGoat:n Authentication Bypass -hyökkäys toimii? Voit lukea OWASP 10 mitä tämä hyökkäys tarkoittaa ja sitten ratkaista tehtävän WebGoatista. Lopuksi voit katsoa WebGoatin lähdekoodista “string fishing” -tekniikalla, miten koodi toimii.

h4

1) Korkkaa Poison. Jos et pääse root shelliin asti, kuvaile, mihin pääsit ja mitä johtolankoja jäi tutkimatta.

2) CTF walktrough. Katso Youtubesta jokin CTF walktrough (muu kuin HackTheBox). Mitä opit, mitä ideoita sait? Kokeile vähintään kolmea itsellesi uutta työkalua, joita opit videosta.

3) Stuxnet. Lue artikkeli Stuxnetista, esim. Symantec tai Langer. Voit hakea ‘stuxnet analysis’. 1) Miten Stuxnet murtautui koneille? Yleisluontoinen vastaus (mikä hyökkäys millekin käyttöjärjestelmälle mihin komponenttiin) riittää, koska nämä hyökkäykset ovat jo vanhentuneet. 2) Miten ohjaus (command and control, C2) toimi? 3) Miten Stuxnet ylitti ilmaraon (air gap)?

h5

1) Tee troijan hevosia, vähintään kaksi erilaista. Voit tehdä esimerkiksi saastuneen asennusohjelman, dokumentteja joissa on vihamielisiä makroja sekä älypuhelimen apsin. Nimeä ohjelmat siten, että haitallinen tarkoitus ilmenee MALWARE-installer.exe. Vihamielisenä hyötykuormana voi olla esimerkiksi meterpreter. Älä tee itsestään leviäviä ohjelmia. Voit käyttää troijan hevosen tekoon esim. setoolkit, msfvenom.

2) Mitä uusia keksintöjä Confickerissa esiteltiin? Lue jokin artikkeli Confickerista. ‘conficker analysis’ on hyvä hakusana. Kiinnitä huomiosi C2:n.

3) Blogeja. Etsi Krebsin tai Schneierin blogeista ideoita pentestiin. Näissä blogeissa on paljon turvallisuuteen liittyviä aiheita, tee erityisesti huomioita tunkeutumistestaukseen liittyen.

4) Safarionline. Opettele ja testaa jokin uusi Pentesting-tekniikka kirjasta tai videosta, jonka löydät Safarionlinesta.

Posted in Uncategorized | Tagged , , , , , , , , , , , , , , , , , , , , , , , , | 72 Comments

72 Responses to Penetration Testing Course – ict4tn027-3001 – Autumn 2018 – period 1 – 5 op

  1. $ cat bin |base64
    Cs/Z0PKvh/FiRYM7b1vrmjUYrBzOeF+1lZB/wo8SpgNwLqq0uJlQgsMtOctEITGYeoZC7KWuWxIw
    I02nXIqVGvJH49DTULkQCbylylJchzuBYp5oe7t+HUVJKFHRDxrkhokZ2Q==

    $ cat bin.armor |base64 -d

  2. Robert Ridal says:

    Moodle ei ole toiminut minulla jonkin aikaa joten palautan tässä ja sitten kun moodle toimii niin palautan siellä kanssa.

    Penetration testing – Hacking into Poison computer
    https://robertridal.wordpress.com/2018/09/16/penetration-testing-hacking-into-poison-computer/

    Penetration Testing – CTR and Stuxnet
    https://robertridal.wordpress.com/2018/09/17/penetration-testing-ctr-and-stuxnet/

  3. Jari Könönen says:

    .ovpn paketilla ei anna ottaa tällä hetkellä yhteyttä. Yritän vielä myöhemmin uudelleen. Jos ei onnistu niin kotitehtävä tulee jäämään vajaaksi.

  4. Attempts to attack the Hack The Box network were stopped by the following error:

    OpenSSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

    Before this error, browser stopped loading web pages and all connections died. Closing OpenVPN solved the connection problems, but prevents me from accessing the target network. Regenerating the connection package did not solve the error.

    • Tue Sep 4 16:46:33 2018 OpenVPN 2.4.6 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Jul 30 2018
      Tue Sep 4 16:46:33 2018 library versions: OpenSSL 1.1.0h 27 Mar 2018, LZO 2.10
      Tue Sep 4 16:46:33 2018 OpenSSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
      Tue Sep 4 16:46:33 2018 Cannot load private key file [[INLINE]]
      Tue Sep 4 16:46:33 2018 Error: private key password verification failed
      Tue Sep 4 16:46:33 2018 Exiting due to fatal error

      • The problem was finally solved by regenerating the certificate several times:

        The reason for the fatal error is information missing from the [username].ovpn file, namely everything between the tags:

        As soon as my .ovpn file contained information between the tags, the connetion started working. At this point it seems like a common error in HTB’s certificate generation.

  5. Robert Ridal says:

    Solved more lessons of WebGoat – including Authentcation Flaws – Authentication Bypasses, Cross Site Scripting (XSS)

    https://robertridal.wordpress.com/2018/09/03/penetration-testing-webgoat/

    And snoopped some HackTheBox network

    https://robertridal.wordpress.com/2018/09/03/penetration-testing-hackthebox-password-protected/

  6. H2:

    https://github.com/Fincer/penetration-testing/blob/master/exercises/h2.md

    Em. sivulta löytyy linkki varsinaiseen harjoitukseen. Jätän GitHub-linkin tähän, koska on mahdollista, että vaihdan jossain vaiheessa harjoitusdokumentin sijaintia/julkaisutapaa. Teen tarvittavat linkkimuutokset sitten GitHubiin tälltä osin.

    Harjoitus 2 -dokumenttiin pääsyä on rajoitettu kevyellä tunnus/salasana -tunnistautumisella.

  7. Tommi Timonen says:

    Linkki kotitehtäviin: https://github.com/Tommi852/pentesting/blob/master/tehtava1.md

    Rupesin säätämään eilen vielä noita lisätehtäviä, mutta onnistuin kalia asentaessa tuhoamaan bootloaderin ja loppu ilta menikin sitä korjaillessa.

  8. Älä ole pahvi. Tee blogi.

    Erään tunnin jälkeen jäin puhumaan Tero Karvisen kanssa harrastus projekteistani Android modaamisesta ja Nextcloud serveristä.
    Tero oli aivan ihmeissään kun sanoin ettei minulla ole jo alan töitä.
    “No kai sinulla on blogi noista jutuista?”
    “Ei ole”
    “Oletko hullu?! Saisit minkä tahansa työpaikan jos sinulla olisi blogi osaamisestasi. Mene heti tekemään blogin.”

    Otin neuvosta vaarin ja tein kotisivuni http://www.akseliratamo.fi

    Nyt työskentelen ensimmäisenä IT-Alan kokemuksenani “AIRBUS defence and space” tetra testaus laboratoriossa. Lähtöpalkkani on yli 2050 ja sidottu opintopisteisiin. Eli palkka nousee mitä enemmän kursseja on tehty.
    Testaan Tetra serverin uusinta versiota ja olen mukana kehityksessä. Pääsen seuraamaan IT maailmaa teknologian huipulta.

    • Onnittelut työpaikasta, Akseli! Roottaus blogisi vinkeillä vaikuttaa yhä houkuttelevammalta, kun Heimdalkin löytyy nyt suoraan Ubuntun pakettivarastoista.

      Ehkä blogiisi tulee joskus myös Tetra-juttuja?

  9. Hoi,

    MySQL asennus räjäyttää koko setin ainakin Xubuntu 18.04. MariaDB asennus “puhtaalta pöydältä” onnistuu

    • Hyvä vinkki. Suosittelen käyttämään MariaDB:tä (joka on käytännössä sama kuin MySQL) tai PostgreSQL:ää.

      Perinteinen MySQL ei toimi hyvin Ubuntu 18.04 -versiossa.

      • Robert Ridal says:

        Jos voin vielä sanoa niin ainakin Live tikulta bootattu Ubuntu 18.04 LTS ei toimi MySQL tai MariaDB mitenkään, vaikka yrittänyt asentaa securalla vaihdoehdolla, mutta jos on asennettu Linux niin MySQL toimii ihan hyvin.

  10. Tulossa kurssille, jos mahdollista!

  11. Jussi Isosomppi says:

    Tulossa kurssille!

  12. Zakiya Joval says:

    Tulossa!

  13. Ville Touronen says:

    Tulossa kurssille!

  14. Kristian Syrjänen says:

    Tulossa!

  15. Johannes Laatu says:

    Tulossa ollaan

  16. Roope Varttila says:

    Tulossa kursille !
    Pyysit tehtäviä kylkeen, löytyy täältä: https://roopelinux.wordpress.com/posts/

  17. Valtteri Partanen says:

    Tulossa jos mahtuu mukaan!

  18. Oliver Lahti says:

    Tulen tähän mielelläni mukaan, jos aikataulullisesti mahdollista!

  19. Aleksandr Harjumäki says:

    Tullahan!

    Kotisivut pyydetysti : https://kishin684536525.wordpress.com/

  20. Vili Viita says:

    Tulossa kurssille

  21. Toni Hukka says:

    Tulossa!

  22. Tommi Timonen says:

    Todellakin tulossa!

  23. Miikka Valtonen says:

    Tulossa!

  24. Robert Ridal says:

    Tulossa kurssille!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • Recent Posts

  • Picks

  • Boxing Clock for AndroidOcton8 Diving T-ShirtsShaking Tower Panda Android GameLearn Chinese with Android
  • Student projects