Tietoturva-arjen kysymyksiä ja vastauksia kirjan perusteella

Syksyllä 2016 vapaana on vielä luvun 6 toinen tehtävä (nro 8).

Ohje: Valitse nimikoimaton tehtävä (sellaisen numero) alla olevasta luettelosta. Nimikoi se eli kirjoita nimesi sen alkuun numeron jälkeen ja nimen jälkeen toteutuskerran tunnus muodossa (201*-x), missä x=s tai k. Tämän voit tehdä jo ennen kuin edes saat kirjaa haltuusi. Laadi noin 150 sanan mittainen vastaus määräaikaasi mennessä tehtävän alle. Jos käytät myös jotain muuta kuin omaa ja kirjan tietämystä, merkitse lähdeviite.

Peter Kim: The Hacker Playbook: Practical Guide To Penetration Testing

Tämä on yksi monista tunkeutumistutkimuksen eli eettisen hakkeroinnin opaskirjoista. Teksti on hyvin käytännönläheistä ja käsittelee paljon työkalujen eli ohjelmistojen käyttöä. Oikolukua ei ole viety loppuun asti.

Alkuperäinen tehtävä koski kirjan ensimmäistä laitosta vuodelta 2014: Tutustu valitsemaasi kirjan lukuun. Yritä ymmärtää sen asema "pelin" kokonaisuudessa ja keskity sitten yhteen työkaluun tai prosessiin, jota luku kuvailee. Kirjoita siitä omalla otsikolla tiivistelmä siten, että lukija saa käsityksen millaista taitoa hakkeri tarvitsee, kuinka vaivalloista työ on, mikä siinä voi mennä pieleen ja millainen on onnistuneen prosessin tulos. Tehtäviä oli luvuista 3-8. Kun kaikista oli tehty yksi esitys, aloittiin toinen kierros.

Kirjasta ilmestyi uudistetty ja laajennettu laitos vuonna 2015. Tuomas T. laati siitä kysymyksiä syksyn 2016 kurssilla. Ne on sijoitettu aiempien lukujen lomaan sekä kahden uuden luvun alle, tunnuksilla [2nd ed.]. Uudet kysymykset käsittelevät asioita jotka tulivat kirjaan uuden laitoksen myötä. Uusi laitos on lähes samanlainen kuin edellien kuitenkin niin, että uutta sisältöä on tullut kohtuullisen paljon.

Chapter 2. Building Your Penetration Testing Box

[2nd ed. #1] Millainen testilaboratorio kirjassa pystytetään ja miten arvioisit sitä?

Chapter 3. Before the Snap – Scanning the Network

1. JK (2014-s): Scanning the Network asema "pelin" kokonaisuudessa ja Burp Suite Pro

Luvun 3. Before the Snap – Scanning the Network kertoo tietoverkon murtautumisen tiedonhakuvaiheesta, jossa pyrittään etsimään kohteesta tietoa ja haavoittuvuuksia erilaisilla tavoilla. Luku jakautuu ulkoiseen, sisäiseen ja web-sovellusten skannaukseen. Näitä käsitellään aktiiviselta ja passiiviselta näkökannalta. Aktiivisessa tutkitaan itse kohdejärjestelmään ja passiivisessa kerätään tietoja kohdejärjestelmään koskematta. Vaikka tiedonhakuvaiheessa käytetään paljon valmiita työkaluja, niin myös luovuudella ja osaamisella on merkittävä osa prosessia.

Burp Suite Pro on ohjelma, jolla skannataan web-sovelluksia verkon tunkeutumistutkimuksen aikana. Sen käyttö vaati seuraavien askelien toteuttamisen:

1. Verkon välityspalvelimen konfigurointi ja Burp Suite:n ottaminen käyttöön

Tässä vaiheessa ohjelma käynnistetään JAR-tiedostosta ja aktivoidaan proxy kuuntelemaan porttia 8080. Tämän jälkeen asennetaan Foxy Proxy for Firefox ja säädetään se lähettämään liikenne portin 8080 läpi. Jos kaikkki onnistui, niin Burpissa avautuu välilehti, kun selaimella menee jollekin internetsivulle.

2. Hakuindeksin luominen sivusta

Tässä vaiheessa luodaan tallenne kaikista kohdesivun sisältämistä tiedostoista, muodoista ja HTTP-metodeista. Tämä tapahtuu klikkaamalla Spider this host -painiketta. Jos tapahtuma onnistuu, niin site map -välilehdessä pitäisi näkyä sivuston rakenne.

3. Sisällön löytäminen

Tämä vaihe suoritetaan klikkaamalla hiiren oikeaa painiketta kohdesivun URL:n päällä site map välilehdessä. Nyt avautuu valikko, josta valitaan Engagement tools ja tämän jälkeen avautuvasta valikosta valitaan Discover content. Seuraavaksi Discover content -moduulista valitaan Session is not running. Jos kaikki onnistui, niin ohjelma tarjoaa listan piilotiedostoista, ylläpitosivuista, asetustiedostoista ja muista hyödyllisistä sivuista.

4. Aktiivisen skannerin ajaminen

Aktiivinen skannaus suoritetaan klikkaamalla hiiren oikeaa painiketta kohdesivun URL:n päällä site map -välilehdessä. Nyt avautuu valikko, josta valitaan Actively scan this host. Skannauksen tulokset ilmaantuvat Scan-välilehteen. Tuloksista voi mm. nähdä sivun haavoittuvuuksia.

2.ML (2015-k):The Process for Network Scanning

Verkkoskannauksen prosessiin annetaan vinkiksi käyttää useita eri työkaluja, prosesseja ja tekniikoita, joilla varmistetaan tehokas skannaus. Kirjan tekijän prosessin kuuluu yleensä neljä vaihetta/prosessia.

1.Verkon haavoittuvuuden skannaus

Tässä vaiheessa etsitään verkosta ja sivustosta haavoittuvuuksia ja vaikka työkalut tähän tuottavatkin ”meteliä” ja hälytyksiä sivustolla, on tämä tehokkain tapa aloittaa skannaus. Sekä Nexpose ja Nessus ovat hyviä ohjelmia ja kirjan tekijä suositteleekin käyttämään kumpaakin, mikäli siihen on mahdollisuus. Tuloksena ohjelmat antavat erityyppisiä ja -tasoisia haavoittuvuuksia.

2. Skannaus Nmap-ohjelmalla

Nmap-ohjelmalla etsitään palveluita jokaisesta yleisesti käytössä olevasta portista tai mikäli aikaa on kaikista 65535 portista.

3. Skannaus kustomoidulla Nmap-ohjelmalla

Tavallisen kokonaisen haavoittuvuus skannauksen tekeminen vie aikaa, mutta kustomoidulla Nmap skannauksella sitä saadaan pienennettyä. Tämä tarkoittaa sitä että ajetaan Nmap ja katstotaan onko portti auki. Tällä skannauksella saadaan nopeasti tarkasteltua muuttuuko portin tila tietyin aikavälein, kun sitä verrataan vanhaan. Onnistuneella skannauksella ja vertailulla saadaan joukko tuloksia, joista on hyvä lähteä etsimään haavoittuvuuksia.

4. Kuvakaappaus Peeping Tom -ohjelmalla

Skannauksissa on yleensä suuri peittoalue ja Peeping Tom onkin työtä helpottava sovellus, sillä se ottaa jokaisesta sivustosta kuvakaappauksen ja esittää ne helposti luettavalla tavalla. Näin aikaa säästää, kun ei tarvitse katsoa jokaista yksittäistä sivua manuaalisesti . Tällä tavalla haetaan tiettyjä haavoittuvuuksia ja päällekkäisyyksiä, joiden kautta saadaan mahdollisesti pääsy dataan.

[2nd ed. #2] Eetu Vuori (2017-k): Mitä tarkoittaa ZAP Proxyn yhteydessä mainittu "spidering"?

Spidering-termillä viitataan toimeen, jossa tiettyä web-sivustoa skannataan automatisoidusti, osana hyväksikäytettävien heikkouksien löytämistä. Spidering-skannauksen avulla saadaan selville mm. sivuston sisältämät yksittäiset sivut, muut tiedostot, kaavakkeet, linkit ja suoritettavissa olevat HTTP-pyynnöt. Tätä myöten saadaan siis käsitys sivuston yleisestä toteutuksesta ja sen mahdollisista haavoittuvuuksista. Huomionarvoista on kuitenkin se, että mikäli sivusto sisältää sivun tai sivuja joihin ei löydy mitään linkkiä, spidering-skannaus ZAP Proxylla ei tällaisia sivuja automaattisesti löydä. Tällaisia sivuja voivat olla esimerkiksi ylläpitäjän login-ruudut.

Yksinkertaisen spidering-skannauksen toteuttaminen onnistuu ZAP Proxylla pelkän skannattavan sivuston urlin avulla, jossa voi käyttää suoraan IP-osoitetta. Skannauksen jälkeen ZAP Proxy antaa käyttäjälle myös listauksen sivuston heikkouksista, jotka se on itsenäisesti havainnut. Työkalulla on siis mahdollista tehdä tuloksellista penetraatiotestausta, vaikka testaajan ammattitaito ei olisikaan erityisen korkea. Kirja myös suosittelee käyttämään useampia eri työkaluja spidering-skannauksen toteuttamiseen, sillä eri työkalut löytävät erilaisia haavoittuvuuksia ja täten penetraatiotestauksesta saadaan kattavampi.

Chapter 4. The Drive – Exploiting Scanner Findings

3. Ilpo Rantanen (2014-s): Exploiting Scanner Findings asema "pelin" kokonaisuudessa ja Metasploit

Luku 4 kertoo siitä, miten löydettyjä haavoittuvuuksia käytetään hyväksi järjestelmään tunkeuduttaessa. Luvussa käydään läpi kaksi standardi tapaa hyödyntää yleisiä haavoittuvuuksia. Asioita käsitellään melko yleisellä tasolla, koska haavoittuvuuksia on hyvin monen tyyppisiä, samoin kuin on tapoja käyttää niitä hyväksi.

Ehkä yleisin työkalu haavoittuvuuksien hyväksikäytössä on Metasploit, josta löytyy versiot sekä Windowsille että Linuxille. Metasploit frameworkia käytetään yleisesti työkaluna penetraatiotestauksessa.

Käyttö on periaatteessa melko yksinkertaista:
  • valitaan käytettävä moduuli
  • laitetaan asetukset kuntoon
    • ”uhrin” osoite ja portit
    • hyökkääjän osoite ja portit
  • tarvittavat versiot, käyttäjätilit yms.
  • Konfiguroidaan hyötykuorma
    • hyötykuorma on se osa joka tekee ”jotain” sen jälkeen kun on päästy haavoittuvuuteen kiinni ja sen ohi
    • hyötykuormia on erilaisia sen mukaan mitä niiden halutaan tekevän
  • Asetetaan encoders (en keksinyt mitään järkevää käännöstä tälle)
    • Perustapa jolla pyritään peittämään hyökkäys mutta jonka virustorjuntaohjelmat nykyään jo melko hyvin tunnistavat
  • Laitetaan muut tarvittavat asetukset kuntoon
  • Suoritetaan hyökkäys
Esimerkkeinä on käytetty haavoittuvuuksia MS08-067 ja WARFTP.

Luvussa luodaan yleiskatsaus siitä, miten skannerin löytämiä tietoja ja haavoittuvuuksia voidaan käyttää hyväksi. Valmiit netistä löydettävät työkalut eivät välttämättä aina toimi ja jos haluaa päästä hyviin tuloksiin tulisi oikeasti ymmärtää mitä ja miten ollaan tekemässä. Valmiita työkaluja kannattaa opetella muokkaamaan sen mukaan mitä skannerilla ollaan löydetty tai jopa tekemään itse omia.

4. Leo Heinsuo (2015-s): Skannerin havaintojen hyödyntäminen ja skriptit

Metasploitin lisäksi luku käsittelee skriptejä ja sitä, kuinka niihin liittyviä haavoittuvuuksia voi välillä jäädä Metasploitiltakin huomaamatta. Luvussa korostetaan, että penetraatiotestaajien on ymmärrettävä ja kyettävä muokkaamaan koodia sen kielestä riippumatta, olkoon se sitten Ruby, Python, Perl tms. Ideana on siis käyttää hyödyksi jotain löydettyä verkon tai järjestelmän aukkoa ja päästä ajamaan koodia palvelimella. Tämä avaa ovia uusiin sfääreihin, mutta sillä on myös mahdollista tehdä (turhaa) vahinkoa (esimerkkinä shell-koodin tapaus, joka tyhjentää palvelimen tiedot ajon lopuksi). Kirjoittaja kertoo internetistä löytyvän paljon valmista koodia, mutta suosittelee jokaisen vähintään testaavan sen ensiksi itse, ja parhaimmassa tapauksessa kirjoittamaan aina omansa tapauskohtaisesti.

Muutama pointti kirjoittajalta, mitä tulee ottaa huomioon netistä löydetyn koodin käyttämisessä (esimerkkinä WarFTP? -palvelimen exploit):
  • Miten hyödynnettävä koodi ajetaan? Mitä kirjastoja tarvitaan?
  • Mitä riippuvuuksia sillä on (käyttöjärjestelmä, hyökkäystenesto-ohjelmat)?
  • Täytyykö koodia muokata? Onko siinä esim. jotain kovakoodattuja rekisteriarvoja tai muita muuttujia?
  • Kaataako yritys palvelimen? Onko yrityksiä vain yksi?
Kirjoittaja painottaa etenkin, että monet skriptit toimivat vain tietyillä järjestelmillä, tietyllä versiolla.

Lopuksi yhteenvedossa suositellaan kirjaa The Shellcoder's Handbook niille, jotka haluavat oppia käyttämään skriptejä ja exploitteja paremmin. Kirjoittaja kertoo myös oppineensa itse paljon ottaessaan mallia internetistä löytämistään exploiteista ja koodatessaan ne itse uudelleen haluamalleen skriptikielelle.

[2nd ed. #3] Samuli Määttä (2017-k): Miten Heartbleed-hyökkäys toimii?

Heartbleed oli tietoturvan näkökulmasta ylivoimaisesti yksi suurimmista uhista tietojärjestelmiä kohtaan vuonna 2014. Heartbleed-nimi tuli OpenSSL?:n kirjastosta Heartbeat, jonka tarkoituksena on toteuttaa avoimen lähdekoodin yksinkertaisia kryptograafisia funktioita. Tarkkaa tietoa siitä, kuinka monta järjestelmää oli haavoittuneena, mutta huhtikuussa tehty zmap-skannaus paljasti ainakin yli miljoonan tietojärjestelmän olevan haavoittunut.

Yksinkertaisuudessaan Heartbleed-hyökkäyksen mahdollistama bugi johtui siitä, ettei palvelinpuolella tarkistettu pyyntöjen pituuksia. Mikäli käyttäjä lähettää pyynnön, joka sisältää pienen hyötykuorman, mutta väittää tämän hyötykuorman olevan kokoaan suurempi, palauttaa palvelin hyötykuormaa myös seuraavista muistiosoitteista. Nämä voivat sisältää käytännössä mitä tahansa. Ohjelmointivirhe tapahtuu, kun ohjelma ei automaattisesti laske hyötykuorman pituutta, vaan saa sen käyttäjältä manuaalisesti syötettynä.

Ei-tekninen esimerkki: Hyökkäyksessä käyttäjä haluaisi palvelimelta vastauksen ”HAT”, joka on 500 kirjainta pitkä. Tällöin palvelin lähettäisi 500 kirjaimen mittaisen hyötykuorman.

Palvelimen palauttama hyötykuorma saattoi olla turvallinen ja sisältää ainoastaan irrelevanttia dataa, mutta pahimmillaan se saattoi palauttaa käyttäjätunnuksia ja salasanoja sekä jopa yksityisiä SSL-sertifikaatteja. Jälkimmäisen varastamalla pystytään purkaa kaiken liikenteen salaus.

Yleisesti ottaen Heartbleed-hyökkäystä käytettiin HTTPS-kutsujen kanssa käytettäväksi, mutta sitä saattoi käyttää myös OpenLDAP?-kutsuihin. LDAP eli Lightweight Directory Access Protocol on TCP/IP-pinon yläpuolella toimiva protokolla, jonka avulla hoituu esimerkiksi autentikointi. Näiden kutsujen manipuloiminen voi olla erittäin vaarallista. Tässäkään ei ollut vielä kaikki, vaan Heartbleed-hyökkäystä voitiin toteuttaa myös VPN-yhteyksiin, jolloin VPN-yhteydet olivat myös vaarassa.

Kirjan ulkopuolelta mainittavan arvoista on, että yksi suomalainen Codenomicon oli yksi suurimmista tekijöistä, joka saattoi Heartbleedin koko maailman julkisuuteen.

[2nd ed. #4] Iiro Nykänen (2017-k): Kuvaile Shellshock-hyökkäystä

Shellshock (tunnetaan myös nimellä Bashdoor) oli yksi vuoden 2014 suurimmista tietoturva-aukoista. Se mahdollisti etäkoodin suorituksen hyökkäyksen kohteena olevalla tietokoneella hyödyntämällä ympäristömuuttujien parsintasääntöjä Bash-shellissä, tarkemmin vielä merkkijono "() { :;};" aiheutti haavoittuvuuden. Vaikka Shellshockia oli mahdollista hyödyntää muillakin keinoilla, web-teknologia CGI oli yleisin tapa johtuen Bashin kyvystä parsia CGI-scriptejä.

Kirjassa kuvaillussa tapauksessa luodaan bruteforce-scripti, joka käy läpi yleisimmät CGI-polut ja -tiedostot. Mikäli havaitaan validi shell-scripti, voidaan järjestelmään injektoida haittakoodia. Kirjan tapauksessa kohdetietokone vain heitti ping-viestin hyökkääjälle, jolloin kohteen tiedetään olevan altis hyökkäykselle, mutta jatkona kohteessa olisi mahdollista avata netcatin avulla suora remote shell -yhteys hyökkääjän ja kohteen välillä, jolloin hyökkääjällä olisi täysi pääsy järjestelmään.

CGI:n lisäksi Shellshockia oli ilmeisesti mahdollista käyttää esimerkiksi SSH:n ja DHCP:n avulla.

[2nd ed. #5] Miten tulostimia ja monitoimilaitteita hyödynnetään hyökkäyksissä?

Chapter 5. The Throw – Manual Web Application Findings

5. Valtteri Naskali (2015-k): Selainten tietoturva-aukot

Luku käsittelee erilaisia tekniikoita internet-sivustojen tietoturva-aukkojen löytämiseksi. Luvun tarkoituksena on ymmärtää, miten nämä haavoittuvuudet internet-sivustosta havaitaan ja miten niitä voidaan testata käsin. Näitä tekniikoita on esimerkiksi SQLi, XSS, CSRF, istunnon kaappaaminen, syötteen pakottaminen ja bisnes-logiikan harhauttaminen.

Käsittelen tekniikkaa, miten istunto otetaan haltuun. Tässä käytetään hyväksi http-protokollan tilattomuutta. Poistamalla omat historiatiedot saadaan poistettua evästeet, jotka ovat käytössä. Tämän suodatuksen jälkeen saadaan selville serverin tarjoama eväste. Tämä eväste on poistettava käytöstä Burp Suite -ohjelmalla, jonka jälkeen lähetetään Sequencer serverille. Burp suite tarvitsee vielä tietoonsa istunnon ID:n. Tämä tapahtuu samalla tavalla kuin alussa eli poistamalla evästä Burp Suitesta ja lähettämällä tieto serverille. Tämän jälkeen Burp Suite saa Sequencer-välilehden alle istunnon ID:n ja tämän tiedon avulla saadaan luetuksi toisen sivun istuntojen ID:t.

Kaikki nämä toiminnot perustuivat evästeiden ominaisuuksiin. Internetsivustoilla on erilaisia algoritmeja sekä toteutuksia, joilla istuntojen ID -tietoja generoidaan ja sijoitellaan. Näiden purkamiseen voi käyttää Burp Suiten tarjoamia tilastollisia analyyseja.

Istunnon haltuunotossa käytettiin siis yhtä ohjelmaa, jolla käskyt hyökättävälle sivustolle lähetettiin. Tästä on hyvä tutorial-video Youtubessa: https://www.youtube.com/watch?v=kNSAhKiXctA

6. MF (2015-k): SQLi

Valitsin luvusta 5 kohteeksi aiheen SQL injection. Lyhyesti ja ytimekkäästi tämän voisi kuvata niin, että laiskuus kostautuu. Eli jos web-sivuun syötettyä informaatiota ei tarkisteta kunnolla niin ongelmia voi tulla. Tämä artikkeli antaa hyvän taustoituksen aiheeseen: https://www.us-cert.gov/sites/default/files/publications/Practical-SQLi-Identification.pdf. Kirjassa taustoitusta ei ole vaan siinä kuvataan suoraan kuinka laiskuutta päästään hyödyntämään.

Esiin nostetaan kolme työkalua toiminnan helpottamiseen SQLmap, SQLninja ja Burp. Burbin (edellä olevassa US-gov materiaalissa esimerkissä on käytetty ZAPiä) avulla heikkous tunnistetaan. Burbista saatu kohdedata syötetään SQLmapiin ja/tai SQLninjaan ja hyökkäys pääsee eteenpäin. Kummankin ohjelman käyttöä suositellaan, koska ohjelmat tekevät periaatteessa saman, mutta yksityiskohdissa on merkittävää eroavaisuutta. Tämän myötä ne voivat löytää paremmin oikean lähestymisen tai niiden tunnistettavuus voi olla herkempi (huono asia tunkeutujalle).

Yleisimmät hyödynnettävät parametrit ovat GET ja POST. Kahta eri heikkouden sisältävää parametriä käytetään, koska niiden välitystapa on erilainen (URL/data). GETin käyttöön liittyy rajoitteita kuten logi-kirjaus sekä koko.

SQLmapin ja SQLninjan käytössä viilataan eri parametrejä, kunnes joko luovutaan yrityksestä tai päästään läpi. Prosessin haastavuutta kuvaa tuon Us Gov artikkelin määrittely SQLi haavoittuvuuden löytämiselle eli kyseessä on epätarkka tiede (imprecise science). Läpi pääsyn jälkeen arvioidaan mille tasolle läpipääsy onnistui. Esimerkiksi jos päästään lähettämään ping-komento omalle koneelle tiedetään omattavan komentojen anto-oikeus, muttei välttämättä ulospäin pääsyä verkkoon.

[2nd ed. #6] Mitä ovat noSQL-tietokannat ja miten niihin tehdään injektioita?

Chapter 6. The Lateral Pass – Moving Through the Network

7. Sami Sjöblom (2015-k): Verkossa eteneminen ilman valtuuksia ja Responder.py

Luku 6 käsittelee sitä, kuinka tunkeutuja pääsee etenemään verkossa saavuttaen ensin rajoitetut käyttöoikeudet ja päätyen lopulta koko verkon omistajaksi. Lähtökohtana on tilanne, jossa tunkeutuja on verkossa, mutta ilman oikeuksia ja valtuutuksia tunkeutuja on niin sanotusti jumissa. Luvussa käsitellään runsaasti erilaisia tekniikoita ja kuvaukset ovat varsin käytännönläheisiä. Tässä katsauksessa keskitytään ”On the network without Credentials” -osioon.

Luvussa esitellään Responder.py (Python Responder), joka on passiivinen työkalu valtuuksien keräämiseksi. Responder.py on ensimmäisiä työkaluja, joka pystyy kuuntelemaan ja vastaamaan LLMNR:lle (Link Local Multicast Name Resolution) ja NBT-NS:lle (NetBIOS? over TCP/IP Name Service). Se hyödyntää myös WPAD (Web Proxy Autodiscovery Protocol) heikkouksia.

Toimintaperiaate perustuu siihen, että siloin kun käyttäjän selain on asetettu havaitsemaan asetukset automaattisesti, ”uhri” pyrkii hakemaan konfiguraatiotiedoston verkosta. Koska tunkeutuja kuitenkin toimii samassa verkossa kuin uhri, voi tunkeutuja vastatata nimenselvitykseen (Name Resolution) ja syöttää oman PAC-tiedoston (Proxy-Auto Config file). Tämä mahdollistaa sen, että käyttäjä voidaan pakottaa autentikoimaan itsensä tunkeutujan SMB-palvelimille (Server Message Block). Tämä tarkoittaa käytännössä sitä, että tunkeutuja voi pyytää NTLM-todennusprotokollan (NT LAN Manager; Windowsin integroidun autentikoinnin oletusprotokolla, joka muun muassa varmistaa autentikoinnin, eheyden ja luotettavuuden käyttäjilleen) vaatimus-vastinesarjan (challenge-response) ilman, että käyttäjä saa hälytystä.

8. * Tässä on vapaa kohta **

[2nd ed. #7] Miksi postgresille voidaan kirjan esimerkissä syöttää salasanojen sijasta salasanan hasheja onnistuneesti?

[2nd ed. #8] Miten sticky keys -ominaisuutta voi hyödyntää hyökkäyksessä?

Chapter 7. The Screen – Social Engineering

9. Janne Tuomisto (2014-s): Social Engineering asema "pelin" kokonaisuudessa ja SMTP Attack

Luku 7 keskittyy ns. ”go to” -hyökkäyksiin. Social Engineering vaatii luovuttaa, ja erilaisia keinoja harjoittaa tätä on esimerkiksi domain-hyökkäyksistä kalastelujen jakamiseen tai jopa USB-muistitikkujen pudottamiseen.

Yksi luvussa kuvatuista tekniikoista (tai prosesseista) on ns. doppelganger domains, eli domainin ”kaksoisolento”. Tällä tarkoitetaan esimerkiksi alidomainien merkitystä domainissa; jos yritys company.com käyttää alidomainia us.company.com, mutta ei ole rekisteröinyt käyttöönsä uscompany.com, tarjoaa tämä domainin yhdennäköisyys herkullisen alustan hyökkääjälle. Tämä perustuu siihen, että piste saatetaan usein jättää vahingossa kirjoittamatta. Tämä hyökkäys perustuukin pääasiassa inhimilliselle virheelle, mikä on toisaalta sen heikkous.

Kun tällainen doppelganger domain on varattu, voidaan siihen pystyttää SMTP-palvelu, konfiguroida se kaappaamaan liikennettä ja välittämään sähköposteja. Tällöin kaappaus ei välttämättä heti tule lähettäjille huomatuksi. Esimerkkitapauksessa john@us.company.com lähettää viestin bob@rubank.com -osoitteeseen (tässä tapauksessa ru.bank.com olisi oikea). Osoitteeseen rubank.com pystytetty palvelin vastaanottaa viestin, välittää sen lähettäjänään john@uscompany.com (huomaa pisteen puutos domainissa) ja koko viestityksen, mikäli osoitteiden virheitä ei viestittelijät huomaa. Tällainen on kohtalaisen työlästä lähtökohtaisesti, mutta onnistuessaan mainio keino kaapata sähköpostiliikennettä. Toki PGP-salaus estää tällaisen hakkeroinnin hyödyntämisen, joten hyökkäystä vastaan voi suojautua.

10. Miikka Myyry (2015-K): Social Enigneering with Microsoft Excel

On tilanteita, jossa ei voi käyttää JAVA tai verkkoon perustuvia hyökkäyksiä. Näitä tilanteita voi olla, jos halutaan käyttää sähköpostia tai fyysistä laitetta (USB-tikku tai CD-levy). Tällöin hyökkääjän on saatava uhri luottamaan itseensä. Kirjoittaja on kokenut parhaaksi väärentää jonkun sellaisen sähköpostin, jonka kanssa uhri viestittelee usein ja lähettää tämän nimissä Excel tiedosto, jossa on Meterpreter tietosisältö. Metasploitilla tehdyt Excel tiedostot lauksevat yleensä virus varoituksen, joten siksi kannattaa ottaa käyttöön PowerShell?.

Seuraavaksi luodaan itse Excel tiedosto. Excel tiedostoon tehdään macro, joka nimetään Auto_Open nimiseksi. Tämä tarkoittaa, että macro käynnistetään heti tiedoston auettua. Macron sisällöksi kirjoitetaan koodi, jossa käynnistetään PowerShell? luodaksemme yhteyden Meterpreter session kuuntelijalle.

Tämän jälkeen tiedosto tallennetaan .xls-tiedostoksi, ei .xlsx, koska jälkimmäinen ei aja makroja automaattisesti. Seuraavaksi tiedosto lähetetään uhrille. Uhri tulee avatessaan näkemään turvavaroituksen, jossa mainitaan makroista. Tässä kohtaa tulee esiin miksi luottamussuhde täytyy luoda uhriin. Uhri ei varmasti hyväksyisi varoitusta, jos tiedosto olisi lähetetty jostain hänelle tuntemattomasta osoitteesta. Kun uhri hyväksyy varoituksen, saat käyttöösi Meterpreter shellin tähän hostiin. Tämä yleensä kiertää virustorjunnan, koska PowerShelli? tekee hyökkäyksen muistissa.

[2nd ed. #9] Mitä eroja on erilaisilla phishing-työkaluilla?

[2nd ed.] The Quarterback Sneak - Evading AV

[2nd ed. #10] Elias Haapamäki (2017-k) Mitä Backdoor Factorylla voi tehdä?

Luvun tarkoitus on kertoa tavoista, joilla voi estää virustorjuntaa huomaamasta haitallista koodia. Monet virustorjuntaohjelmistot etsivät ohjelmista tiettyjä digitaalisia sormenjälkiä, joilla ne tunnistavat haitalliset ohjelmat. Virustorjuntaohjelmistojen on hankala toimia, mikäli koodi on piilotettu normaalisti hyvätahtoiseen ohjelmaan. Backdoor factory(BDF) on ohjelma, jolla ohjelmatiedostoon voi syöttää omaa ohjelmakoodia, joka ajetaan kun ohjelma suoritetaan. Ohjelma on tarkoitettu kokeiluhyökkääjälle, joka on saanut jo haltuunsa esimerkiksi yhden tietokoneen ja haluaa varmistaa takaisin pääsyn jatkossakin. Yleensä koodi on esimerkiksi meterpreter shell joka yrittää yhdistää takaisin kokeiluhyökkäälle. Kokeiluhyökkääjä mahdollistaa pysyvyyden laittamalla ohjelmakoodin tiedostoon, joka ajetaan usein.

Backdoor Factory (BDF) on tarkoitettu ajettavaksi hyökkääjän omassa ympäristössä. Kokeiluhyökkääjä etsii kohteen koneelta jonkin sopivan binäärin, lataa sen itselleen ja syöttää sen BDF:lle. BDF syöttää binääriin hyökkääjän koodin ja muunnettu binääri kopioidaan takaisin kohteeseen, jossa se myöhemmin tulee suoritetuksi ja näin hyökkääjä saa takaoven kohteeseen.

Backdoor factoryn toiminta perustuu shell koodiin. Shell koodi on binäärimuodossa olevaa konekoodia. BDF muokkaa ohjelman suoritusta siten, että se suorittaa myös ohjelmaan injektoidun koodin tavallisen koodin lisäksi. Ohjelman suorittaminen ei eroa mitenkään tavallisesta versiosta. Suoritettava ohjelmatiedosto on binäärikoodia, jossa on usein tyhjiä kohtia, johon BDF voi syöttää omaa koodiaan.

Chapter 8. The Onside Kick – Attacks that Require Physical Access

11. Altti Hiironen (2014-s): Attacks that Require Physical Access "pelin" kokonaisuudessa ja kismet

Kuten luvun nimi kertoo, luvussa käsitellään hyökkäyksiä, jotka vaativat fyysisen pääsyn laitteisiin. Ne tuottavat yleensä erittäin hyödyllisiä tuloksia, mutta ongelmaksi kerrotaan, että uhrin on helppo havaita hyökkäys ja itse hyökkääjän tarvitsee olla fyysisesti lähistöllä. Näihin hyökkäyksiin kuuluu langattomien verkkojen murtaminen, pääsykorttien kopioiminen, pienen tietokoneen ujuttaminen murrettavaan ympäristöön ja CD/USB-laitteiden jättäminen siinä toivossa, että joku kytkee ne laitteisiin, jolloin medialta asentuu salaa esimerkiksi Meterpreter.

Langattoman lähiverkon murtaminen alkaa passiivisella vaiheella, jossa identifioidaan ja tiedustellaan mm. mahdolliset verkot, asiakkaat, signaalin vahvuudet ja salaustyypit. Passiivisessa vaiheessa ei olla siis vuorovaikutuksessa muihin laitteisiin.

Kali Linuxista löytyy työkalu nimeltään kismet, jolla passiivinen tiedustelu onnistuu. Käynnistyksessä kismet kysyy, mitä verkkolaitetta käytetään, jonka jälkeen työkalu listaakin jo havaitut langattomat verkot ja niiden tiedot. Listasta on helppo nopeasti identifioida verkot lukemalla värikoodeja, keltainen tarkoittaa että verkkoa ei ole salattu, punainen tehdasasetukset ovat käytössä, vihreä että verkko on salattu ja sininen tarkoittaa että kyseisen verkon SSID-mainostus on otettu pois käytöstä. Kismet osaa näyttää myös Access Pointin BSSID:n, valmistajan, salauksen tyypin, signaalinvahvuuden sekä pakettihäviön. Kaiken tämän lisäksi työkalu osaa näyttää myös kaikki asiakkaat, jotka ovat yhdistyneenä valittuun verkkoon.

Passiivisessa vaiheessa kerätty informaatio on tärkeää aktiivisessa vaiheessa, jossa siirrytään itse hyökkäykseen. Olennaista tämän tyyppisessä hyökkäyksessä on myös käyttää tarpeeksi vahvaa WLAN-antennia.

12. Joni Karvonen (2015-s): Physical "pelin" fyysinen osuus

Korttien kopiointi on hankalaa ja kallista. Välillä kuitenkin on tilanteita, jolloin tämä on helpoin tapa murtautua organisaatioon. Internetistä voi ostaa rfid-lukijoita, joita voi muokata haluamaallaan tavalla. Kirja antaa esimerkkinä Internetsivun, jonka ohjeilla voit tehdä kortinlukijan, joka lukee kortin jopa metrin päästä. Vieläpä ilman, että kortin haltija huomaa asiaa mitenkään. Tässä on yksi tapa päästä organisaatioon sisälle turvallisesti, mutta se on kallista.

Kuitenkin on yleensä helpompaa päästä sisälle käyttäjän manipuloinnilla. Lyöttäytymällä työntekijöiden sekaan, kun nämä palaavat ruokatauolta, pääsee sisään rakennukseen ihmismassan aiheuttamalla kaaoksella. Tämän jälkeen ujuttaa pienen ja halvan tietokoneen tyhjään toimistoon ja laittaa sen Internetiin kiinni. Näin saa toimivan Kalin yritykseen.

Toinen vaihtoehto, mitä kirjassa suositellaan on cd-levyjen jättäminen sinne tänne. Laittamalla sopivan nimen kanteen, kuten vaikka: "Spring break pictures [year]", niin joku katsoo levyn varmasti. Sopivan suoritteen nimeää IMG_1011.jpg.exe, jolloin on taatusti joku, joka ei huomaa tätä. Tämä on halpa ja turvallinen tapa suorittaa isku.

[2nd ed. chapter]: Special Teams - Cracking, Exploits and Tricks

[2nd ed. #11] Millaisia salasanojen murtotyökaluja kirja esittelee?

[2nd ed. #12] Kuvaile yhden uuden Powershell-skriptin toimintaa

SivuTiedotLaajennettu edit

Vaativuus Jatko
Valmius Kehitteillä
Tyyppi Atomi
Luokitus Uhkat
Mitä Muu
Miltä Tahallinen uhka
Missä Organisaatio
Kuka Titu-ammattilainen
Milloin Ennakolta
Miksi Hyvä tapa
Print version |  PDF  | History: r32 < r31 < r30 < r29 | 
Topic revision: r32 - 27 Feb 2017 - 10:46:43 - EetuVuori
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback