BTB Projekti: Caldera (BLUE)

Johdanto

Tässä artikkelissa jatkamme Calderan (4.0.0 versio) käyttöä ja kokeilemme mitä sinisen puolen ominaisuuksista löytyy.

  • Tavoite: Tutustua Calderan puolustautujan ominaisuuksiin
  • Vaikeus: Helppo
  • Aika: Alle tunti
  • Hinta: 0 €

Tässä artikkelissa oletuksena on että edellisen artikkelin mukaisesti asennus on tehty ja punaisen puolen käyttö luonnistuu.

Perusajatus

Hyökkäävän puolen toimien ehkäisemiseen tarkoitettu sininen puoli asennetaan samalla tavoin kuin punaisen puolen agentti. Koneella on siis kaksi agenttia yhtäaikaa pyörimässä, joista molemmat pitää onnistua ajamaan Windows Defenderin tai muun AV-softan ohi. Sinisen puolen agentti voi käytännössä joko etsiä jos tapahtuneista toimista jälkiä tai pyrkiä estämään käynnissä oleva hyökkäys. Yhtäaikaiseen toimintaan on tarjolla Gameboard-välilehti jossa molempia agentteja voi valvoa yhtäaikaa.

Kannattaa perehtyä aluksi dokumentaatioon:

Getting started — caldera documentation

Agentin käyttö

Ikävä kyllä testatessa tuli todettua että mahdollisesti johtuen 4.0.0 pre-release versiosta tai muista tekijöistä, agentit tuppasivat hyvin nopeasti menettämään kohdekoneessa henkensä. Tämä oli etenkin selvää sinisen puolen agenttien kanssa, joissa Incident responder oli varsin herkkä lopettamaan toimintonsa. Myös yksi bugiraporttikin tuli tehtyä agentin oletuskonfiguraatioon liittyen (powershell skriptissä group on red, kun pitäisi olla blue).

Tämä siis varoituksen sanaksi niille, jotka haluavat testata hyvin toimintavarmaa softaa. Kannattaa hieman odottaa. 

Kun agentin saa käyntiin luodaan sille operaatio ja profiili samoin kuin punaisella puolella. Lisäksi käytettyyn koneeseen liittyen voi lisätä faktoja siitä mikä on sallittua toimintaa ja mikä ei, esim liittyen avoimiin portteihin. Lisäksi sininen puoli voi automaattisesti kerätä tietoa koneesta. Kohdasta fact sources ja responder löytää oletuksena esim muutamia punaisen puolen oletushakemistoja ja portteja. Niihin voi lisätä omia tunnisteitaan, mikäli haluaa erottaa selvästi omat testit oletustesteistä.

Jos (tai kun) agentin saa pysymään päällä, operaatiota voi seurata reaaliajassa.

 

Pelilauta

Kokeilin erilaisia vaihtoehtoja siihen, miten kaksi agenttia voi samalla koneella toimia ja totesin että parhaan tuloksen antoi aloittaminen punaisella agentilla ja vasta tämän jälkeen sinisen agentin lisääminen peliin, mutta käyttäen eri kansiota kuin punaisen C:/users/public. Tallensin molemmat skriptit notepadiin kohdekoneelle ja ajoin ylläpitäjän oikeuksin powershell-ikkunaa, josta sitten käynnistin agentit. Kuten mainittua, Defenderille piti kertoa että agentille saavat toimia.

Gameboard- välilehdellä valitetaan mikä operaatio on seurannassa kummallekin agentille.

Kuten kuvasta näkyy, molemmille puolille annetaan pisteitä sen mukaan onnistuuko hyökkäys tai sen havaitseminen. Lisäksi ihminen voi raportoida epäilyttävistä prosesseista, joista myös saa pisteet.

Tämä siis teoriassa, ikävä kyllä käytännössä peli tuotti aivan erilaisia lopputuloksia.

Sininen puoli voittaa ylivoimaisesti skannaamalla avoimia portteja, samalla kun punainen puoli kuoli (operaatio jatkuu ilman eläviä agentteja)!

Punainen puoli kerää tietoa esteettä, samalla kun sininen puoli nukkuu (agentti alhaalla).

Incident response puoli ei ikävä kyllä onnistunut vakuuttamaan, vaikka agentteja olisi luonut useamman molemmille puolille. Entäpä threat hunter?

Ikävä kyllä varsin samaan tapaan agenttien yhtäaikainen toiminta tai toimimattomuus ei mahdollistanut testaamista.

 

Loppusanat

Calderan konsepti vaikuttaa kiinnostavalle ja selvästi alustassa on paljon mahdollisuuksia räätälöintiin, mutta ainakin tällä versiolla agenttien pysyvyys asetti haasteita. Nopealla testaamisella ei löytynyt yhdistelmää joka olisi tuottanut hyviä lopputuloksia. Siinä missä punainen agentti saattoi pysyä ylhäällä yksinään useita tunteja, sinisen Sandcatin lisääminen tappoi nopeasti joko molemmat tai toisen. Linux-alustalla olisi mahdollista käyttää kahta erilaista agenttia, joka saattaisi ratkaista ongelman.

Mahdollisesti Kalin kautta tehty manuaalinen testaus ja sininen agentti voisi olla toimiva ratkaisu, mutta testausautomaatio oli se kiinnostavin aspekti Calderan käyttöön.

Koska testaukseen tuli valittua pre-release versio, palaan asiaan myöhemmin kun stabiili versio on julkaistu.

 

BTB Projekti: Caldera (RED)

Johdanto

Tässä artikkelissa tutustumme Calderan käyttöön ja teemme hyökkäyssimulaation kotilabramme laitteita kohtaan eli käytämme punaisen puolen ominaisuuksia.

  • Tavoite: Testata kotilabran laitteiden haavoittuvuuksia ja lokituskykyä
  • Vaikeus: Helppo
  • Aika: Alle tunti – viikko, riippuen innostuksesta
  • Hinta: 0 €

Mikä on Caldera?

“CALDERA™ is a cyber security framework designed to easily run autonomous breach-and-simulation exercises. It can also be used to run manual red-team engagements or automated incident response. CALDERA is built on the MITRE ATT&CK™ framework and is an active research project at MITRE.”

mitre/caldera: Automated Adversary Emulation Platform (github.com)

Caldera (testattu 4.0.0 pre-release) sisältää siis joukon työkaluja ja viitekehyksiä (Mitre, Atomic), joiden avulla voi testata kohteen puolustuskykyä joko punaisen teamin tai sinisen teamin puolella. Sen etuihin kuuluu kyky automatisoida testausta ja mahdollisuus simuloida päätöksentekoa erilaisissa skenaarioissa. Innokkaalle harrastajalle se antaa mahdollisuuden saada palautetta vaikkapa oman kotilabran koneiden suojauksista, realististen hyökkäysten kautta. Toki vaativampia toimenpiteitä kannattaa suorittaa Metasploitin tai Cobalt Striken kautta. Aloitelllaan!

Asennus

Kerrankin asennus on suoraviivaista ja helppoa. Koska kyseessä on hyökkäyspuolen työkalu, valikoituu sen alustaksi kotilabrassa jo olemassaoleva Kali-asennus. Asennukseen löytyy Calderan dokumentaatiosta muutaman rivin ohjeet, jotka suorittamalla Caldera asentuu. Samalla kannattaa myös asentaa go- ohjelmointikielen paketit esim käyttäen ohjetta:

Installing Golang on Kali Linux – Rafe Hart (rafaelhart.com)

Asennuttuaan löytyy Caldera osoittesta localhost:8888. Tarvittavat salasanat löytyvät conf/default.yms, hieman selaamalla alaspäin red/admin.

 

Agentin käyttö

Calderan käyttö perustuu agenttiin, joka uhrikoneella suorittaa erilaisia testejä. Käytössä ovat mm. Mitren Attack tekniikat ja Red Canaryn Atomic testit:

MITRE ATT&CK®

redcanaryco/atomic-red-team: Small and highly portable detection tests based on MITRE’s ATT&CK. (github.com)

Agentti tulee saada aktiiviseksi uhrikoneella, jotta testit voidaan suorittaa. Kyseessä ei siis ole skanneri, joka ulkoapäin testaisi erilaisia asetuksia, vaan kyseessä on hyökkäyssimulaatio, jossa hyökkääjä on jo saanut koneelle jalansijaa. Tyypillisimpiä keinoja tosielämässä ovat mm kalasteluhyökkäykset, vuotaneiden tunnusten käyttö tai koneen valtaaminen nollapäivähaavoittuvuuksien kautta. Keinoja löytyy.

Agentteja on useaa erilaista ja uhrien käyttöjärjestelmiksi voidaan valita Linux/Windows/Mac. Aloitetaan testaamalla Proxmoxiin asennettua Win10-konetta!

Valitaan ensin sopiva agentti.

Valitaan 54ndc47 agentti, asetetaan Proxmoxissa olevan Kalin IP-osoite ja portti 8888 ja Windows järjestelmäksi ja saamme valmiin Powershell-skriptin ajettavaksi.

Koska omassa Proxmox-labrassa ei leikepöytä toimi koneiden välillä, tiedostojakoja ei ole ja muutamia muitakin rajoituksia viestinnälle on, joudutaan skriptin tiedot viemään internetin kautta. Uhrikoneella on yhteys pastebin-palveluun, johon laitamme skriptin tiedot Kalista.Kuinka ollakaan, katoaa tämä skripti heti tallennuksen jälkeen! Automatiikka huolehtii siitä, ettei haitallista koodia levitetä palvelun kautta. Hyvä asia. Kierrämme ongelman anonpasten kautta ja postaamme anonpasten linkin pastebinin kautta (toki tämänkin olisi voinut hoitaa itsehostatun paste-sivun tai Synologyn kautta).

Päivitys: Tai otetaan uhrikoneelta suoraan yhteys Kaliin IP:8888 kautta ja kopioidaan koodi suoraan selaimesta käyttöön…

Saamme koodin koneelle ja huijaamme itsemme ajamaan sen Powershellissä (social engineering).

Puolustukset toimivat heti ja Microsoft Defender estää haitallisen skriptin suorittamisen. Vaihtoehtona on myös sallia ajaminen, jonka teemme ja ajamme skriptin uudestaan.

Toisella kerralla ongelmia ei enää esiinny ja Calderan puolella agentti löytyy. Olemme siis valmiita jatkoon!

Hyökkäys

Calderassa on monipuoliset kyvykkyydet ajaa läpi erilaisia skenaarioita tai testata suoraan yksittäisiä toimia. Kokeilemme tässä molempia.

Adversaries-puolella voi tarkastella kyvykkyyksiä ja räätälöidä tehtäviä toimenpiteitä. Voimme mennä suoraan Operations-välilehteen ja aloittaa Superspy-hyökkääjällä. Tarkoitus on havainnollistaa kykyä kerätä tietoa kohteesta.

Luodaan operaatio ja käynnistetään se. Samalla nähdään reaaliajassa kun tietoa välittyy Calderaan.

Tässä esimerkkinä vaikkapa tieto käytössä olevasta antivirus-ohjelmasta.

Kerätyt tiedot voi lopuksi ladata JSON-muodossa jatkotoimia varten. Mikäli tiedot haluaa PDF-muodossa, voi Debrief-pluginin kautta saada näppärän loppuraportin.

 

Tämän lisäksi voi nopeasti testata tiettyjä tekniikoita tai komentoja Access- pluginin kautta.

Puolustautujan analyysi

Vaikka hyökkääminen onkin hauskaa, on puolustautujan puolella tärkeää myös katsoa miten tekniikat näkyivät uhrin koneella ja millaisia hälytyksiä luotiin. Yleensä suurin yllätys on se, miten vähän tietoa saa perus Windows-koneen logeista. Mikäli sysmon ei ole päällä tai lokitusta ei ole suunniteltu, jää pitkäkin hyökkäys usein ilman mitään jälkiä.

Muutamia skenaarioita:

  • Missä vaiheessa Wazuh / Security Onion saa tiedon hyökkäyksestä?
  • Missä vaiheessa käyttäjä voisi havaita asian?
  • Millaisia uhkia Windows Defender esti? Millainen oli tilanne Defender + VoodooShield yhdistelmällä?
  • Mitä jälkiä koneelle jää? Millaista forensiikkaa voi harrastaa?
  • Mitä Mitren vastatoimista olisi mahdollista ottaa käyttöön? Mikäli tilanne on tämän jälkeen?

Esimerkkinä käytetyssä kampanjassa koitettiin hakea salasanoja Mimikatz.A varianttia käyttäen. Aiheellisesti toiminta estettiin ja käyttäjälle esitettiin asiasta varoitus.

Analyysityökaluja: Velociraptor

Analyysiin sopii esimerkiksi Velociraptor, ilmainen avoimen lähdekoodin työkalu:

Documentation :: Velociraptor – Digging deeper!

Sen avulla voi koota yhteen lokeja ja tietoa isostakin joukosta koneita.

Meillä on epäilys siitä että Powershelliä olisi ajettu kohdekoneella, joten valitaan artifaktaksi Powershell ja katsotaan mitä löytyy.

 

Hyökkäyksen ajankohtaan sopivia shell-komentoja löytyykin. On tietysti mahdollista myös pyyhkiä lokit ja peittää omat jälksensä, joka olisi ollut mahdollista Calderan kautta.

Eräs vastakeino tätä vastaan on tallentaa PowerShellin käyttö paikallisesti ja tämän jälkeen lähettää tiedot edelleen keskitettyyn paikkaan. Tässä esimerkki paikallisista kopioista.

Ajankohtaisesti, myös Log4Shell haavoittuvuudesta voi etsiä tietoja:

Generic.Detection.log4jRCE :: Velociraptor – Digging deeper!

Ohjeet löytyvät esim: Enhanced PowerShell Logging and Sysmon Logs to ElasticSearch and Visualization/Dashboarding using Kibana – Part 1 of Series (malwarenailed.blogspot.com)

Taitava hyökkääjä voi luonnollisesti pyrkiä lamauttamaan kaikki palvelut, jotka lokitietoja lähettävät eteenpäin, mutta tämäkin vaatii hieman tiedustelutietoa taakseen. Tässä ajassa osaava puolustaja kykenee omiin vastatoimiinsa. Ja näin kilpajuoksu jatkuu.

Analyysityökaluja: Thor

Nextronin APT skanneri Thor on varsin vakuuttava työkalu, josta on tarjolla community edition Thor Lite.

THOR Lite – Nextron Systems (nextron-systems.com)

Se toimii hyvin paikallistason analytiikkaan ja löytää myös jälkiä epäilyttävästä toiminnasta. Skannaus on perinpohjainen ja vie jonkinverran aikaa.

 

Loppusanat

Calderan (RED) ominaisuudet ovat hyvät ja varsin monipuoliset simuloimaan hyökkäystä testikoneelle. Parhaan hyödyn ohjelmasta saa kun testaa sen avulla systemaattisesti erilaisia tekniikoita ja harjoittelee niihin varautumista ja lokitusta testikoneella. Proxmoxissa voi ajaa rinnakkain konetta perusasetuksilla ja kovennetuilla asetuksilla, jolloin ero on selvä. Hyökkäyksen jälkeen voi tutkia forensiikkapuolella mitä jälkiä hyökkääjä jätti.

Suosittelen kokeilemaan ohjelmaa!

Seuraavalla kerralla kokeillaan mitä Calderan Blue-ominaisuuksista löytyy.