Social engineering (ja vähän vuohikin) - Tunkeutumistestaus viikkotehtävä 3
TLDR
Tehtävässä perehdyin OWASP 10 materiaaleihin, tutustuin cross site scriptingiin sekä kävin läpi luentovieraamme Rikun oppeja.
Lue materiaali ja tiivistä - Tehtävä Z
Ensimmäisenä oli vuorossa lukea materiaalit.
Luentovierailija Rikun kalvot
- Social engineeringin tavoitteena on saada kohdehenkilö tekemään jotain, mitä hän ei välttämättä haluaisi tehdä
- Tämän ei aina tarvitse olla huono asia. Voidaan myös suostutella henkilö tekemään jotain, josta on hänelle hyötyä vaikkei haluaisi
- Ihmiset vastaavat myönteisesti pyyntöihin helpommin, mikäli pitävät toisesta henkilöstä
- Esimerkiksi saman urheilujoukkueen kannatus voi yhdistää henkilöitä
- Kun kohdehenkilölle antaa lahjan, tulee hänelle herkästi tarve “maksaa lahja takaisin”
- Pidä ovea auki, niin seuraava ovi saatetaan avata puolestasi
OWASP 10 2017 (pdf)
- A1 Injection
- Sovelluksella on injektioriski, mikäli käyttäjän syötettä ei validoida tai putsata mahdollisen vihamielisen datan varalta
- Tästä oiva esimerkki on sqlinjektio ’ OR ‘1’=‘1
- SQLinjektio voi johtaa kaiken tiedon menettämiseen tietokannasta tai tiedon saatavuuden ongelmiin
- A2 Broken authentication
- Hyökkääjillä on valtava määrä mahdollisia salasanoja ja käyttäjänimiä käytössänsä
- Mikäli salasana on huono tai helposti arvattavissa on sovellus vaarassa joutua brute force hyökkäyksen kohteeksi
- Toimiva kaksivaiheinen tunnistautuminen on tärkeässä osassa tämän kaltaisia hyökkäyksiä vastaan
- A3 Sensitive data exposure
- Arkaluontoinen tieto ei ole suojattu tarpeeksi hyvin tai on käytetty vanhentuneita/yksinkertaisia cryptausmenetelmiä
- Heikosti cryptatut salasanat voi murtaa nopeasti näytönohjaimien laskentatehoa hyödyksi käyttäen
- Mikäli sivu ei pakota suojattua HTTPS yhteyttä on riski joutua Man in the middle hyökkäyksen kohteeksi
- A7 Cross site scripting
- Sivusto sisällyttää validoimatonta käyttäjän syötettä url kentässä näkyväksi
- Hyökkääjä voi lisätä omaa koodiansa url:n sisään ja lähettää linkin kohteelle
- Mikäli kohde avaa linkin hyökkääjä saa kohteen http session kaapattua
€ Santos et al 2018: Hacking Web Applications The Art of Hacking Series LiveLessons (video):Security Penetration Testing for Today’s DevOps and Cloud Environments: Lesson 5: Authentication and Session Management Vulnerabilities
- Nykypäivänä kaikkien web sovellusten tulisi käyttää SSL/TLS salausta
- Salauksia on kahdenlaisia: yhden-, sekä kahdensuuntaisia salauksia
- OAuth2 suosittu tapa suorittaa käyttäjän session autentikointi
- Käyttäjän sisäänkirjautumistiedot eivät näy käytettävälle web-sovellukselle, vaan käyttäjä saa “tokenin” joka on voimassa määrätyn ajan mahdollistaen sovelluksen käytön
€ Percival & Samancioglu 2020: The Complete Ethical Hacking Course (video): Chapter 21: Cross Site Scripting
- Lomakkeet ovat tärkeä suojata script tägien varalta
- Mikäli sivustolle saa tallennettua xss sisältöä se ajetaan kaikilla sivulle siirtyvillä selaimilla
- Beefin avulla linkaten xss scriptin omalle palvelimelle hyökkääjä saa haltuunsa kohteen selaimen
Rikun opit - Tehtävä A
Tehtävänäni oli etsiä verkosta tapaus, jossa yritykseen on tunkeuduttu social engineeringin avulla. Valitsin tapauksekseni Yhdysvaltojen, sekä Israelin yhteisoperaatiosta Iranin ydinaseohjelmaa vastaan. Uutisen voi lukea täältä
Valtiot käyttivät apunaan Hollannin tiedustelupalvelua ja heidän osoittamaansa henkilöä, joka esiintyi mekaanikkona. Henkilö pääsi toistuvasti kohdetiloihin sisään, jotta valtiot pystyivät hankkimaan lisää tietoa heidän valmisteillaan olevaa haittaohjelmaa varten. Iranin rikastamon tietokoneet eivät olleet yhteydessä internetiin, joten haittaohjelman ainut tapa edetä oli sisäverkossa. Tunkeutuja sai laitettua haittaohjelman sisältävän USB tikun rikastamon sisäverkossa olevaan tietokoneeseen ja näin hyökkääjät saivat tehtävänsä valmiiksi.
Henkilö oli insinööri koulutukseltaan, joten hän pystyi hyvin luontevasti esiintymään uskottavasti mekaanikkona rikastamolle saapuessaan. Artikkelin mukaan peiteyrityksen pystyttämisessä oli saatu apua Israelin valtiolta, joten korjaustöitä tekevän yrityksen tarkastaminen oli varmasti hankalaa rikastamolle.
Hyökkäys onnistui, koska soluttautunut henkilö pääsi syöttämään usb tikun rikastamolla olevaan tietokoneeseen. Artikkeli ei kerro, kuinka tarkkan valvonnan alla tämä soluttautunut henkilö liikkui. Uskoisin, että mikäli rikastamolla olisi vierialijat olleet jatkuvan tarkkailun alla soluttautuja ei olisi päässyt kytkemään haittaohjelmaa sisältävää muistitikkua koneeseen.
Rikun viitteet - Tehtävä B
Seuraavaksi vuorossa oli tiivistää yksi Rikun lähteistä 3-5 avainoppiin.
Influence: The psychology of persuasion - Robert Cialdini
- Ihmiset tarttuvat nopeammin tilaisuuksiin, jotka ilmoitetaan olevan rajatun ajan voimassa (esim. Ensimmäiset 10 kyselyyn vastanneista voittaa elokuvaliput)
- Ole ensimmäinen joka antaa lahjan. Näin luot vaikutelman velasta
- Ihmiset pitävät herkästi lupauksistaan kiinni (Tutkimus rantavarkauksista)
- Siistitty ulkonäkö lisää luotettavuuden illuusiota
Vuohi etenee - Tehtävä C
Viimeisenä vuorossa oli suorittaa A2 Broken authentication - kohdat Authentication bypasses ja secure passwords, A3 Sensitive data exposure - Insecure login sekä A7 Cross scrite scripting - kohdat 2 what is xss sekä 7 try it tehtävät Webgoatista.
A2 Broken authentication
Authentication Bypasses
Ensimmäisessä tehtävässä lähetin tyhjän lomakkeen ensin, jotta pääsin näkemään POST kutsun. Sen sisältä löytyi request payloadi.
Headers kohdasta löytyi edit and resend
vaihtoehto. Muutin secQuestion0
ja secQuestion1
kohtien numerot joksikin muuksi, jotta sivu etsii kysymystä numerolla jota ei ole
olemassa.
Näin saimme vastauksen, että tehtävä suoritettu onnistuneesti.
Secure passwords
Seuraavaksi vuorossa oli tutkia salasanoja, sekä niiden vahvuutta. NIST ohjenuoran mukaan kuukausittainen salasanan vaihto saattaa tuoda huonoja lopputuloksia, sillä käyttäjillä voi loppua mielikuvitus salasanojen luomisessa. Samoin väkinäinen erikoismerkkien, sekä isojen ja pienien kirjainten sekoittaminen on huomattu luovan huonompia salasanoja.
A3 Insecure login
Tässä tehtävässä käytin Teron vinkin mukaisesti wiresharkia. Työkalua en ollut ennen käyttänyt, joten tämä tuli uutena asiana.
$ sudo tshark -i any -V -Y 'http.request.method == POST'
Laitoin komennon avulla wiresharkin kuuntelemaan kaikkia verkossa liikkuvia POST kutsuja ja menin takaisin webgoatiin painamaan login
.
Vastauksena tuli pitkä lista tekstiä. Listaa tutkiessani löysin kohdan, jossa luki käyttäjänimi sekä salasana
Syötin tiedot lomakekenttään ja sain tehtävän suoritetuksi
A7
2 What is XSS?
Testasin ovatko cookiet samat kahdella eri sivulla. javascript:alert(document.cookie);
. Kyllä olivat
A7
7 Try It! Reflected XSS
Viimeisessä tehtävässä pääsin kokeilemaan cross site scriptingiä. Mikäli sivusto ei tarkista käyttäjän syötettä, voi hyökkääjä kirjoittaa omaa javascriptiä ajettavaksi sivustön syötekenttiin.
Aloitin kokeilemalla kirjoittaa javascriptiä luottokortin numerolle tarkoitettuun kenttään. Tämä osoittautui oikeaksi tekstikentäksi, joka oli haavoittuvainen.