BloodHound CE ”Six Degrees of Domain Admin”

Bloodhound Community Edition

Säkerhetsverktyget Bloodhound finns nu ute i en ny utgåva vid namn BloodHound Community Edition (CE). BloodHound skapades 2016 av Rohan Vazarkar, Will Schroeder och Andy Robbins. Den har laddats ner närmare 500 000 gånger och har över 12 000 användare i BloodHound Community Slack. BloodHound har rekommenderats av US Cybersecurity, Infrastructure Security Agency (CISA) och av Microsoft för att hjälpa till att säkra Microsoft Active Directory och Azure AD.

BloodHound CE är den nya och fria, öppna versionen av BloodHound och som alltid kommer alltid att vara gratis under en Apache 2.0-licens. Den delar nu kodbas och dokumentation med BloodHound Enterprise (BHE), vilket innebär konsekventa och högkvalitativa uppdateringar. Från bl.a. SpecterOps som står bakom utvecklingen till stor del.

Nya funktioner och förbättringar

  • Ny arkitektur: BloodHound CE har en arkitektur med flera front-end och back-end komponenter, inklusive Postgres och Neo4J databaser, ett nytt REST API och en helt ny frontend-webbapplikation
  • Förenklad implementering: Alla komponenter presenteras nu i en helt containeriserad modell, vilket gör det enklare att köra BloodHound CE (se nedan)
  • Nytt GUI: Det nya gränssnittet är helt ombyggt och använder design och komponenter från BloodHound Enterprise, med diverse förbättringar
  • Säkerhet och autentisering: Nya funktioner inkluderar Cypher-inmatning, cachade frågeresultat och möjligheten att hantera användare och autentisering

Introduktion av BloodHound API

BloodHound API är en autentiserad REST API som accepterar och returnerar JSON-formaterad data. Det öppnar spännande möjligheter för att fråga BloodHound och få tillförlitlig, välformaterad data som kan användas som indata för andra verktyg.

Vad är nästa steg?

Denna första release av BloodHound CE är ett tidigt tillgänglighetsbygge. Applikationen är fullt funktionell och stabil, men det finns några kända buggar som arbetas med. Feedback är mycket välkommen, och du kan gå med i BloodHound Slack eller rapportera problem på BloodHound GitHub-repo.

Denna release markerar en helt ny era för BloodHound CE, med en helt ombyggd applikation som delar en gemensam kodbas med BHE. Detta innebär snabbare och enklare uppdateringar och community-bidrag i framtiden.

Ladda hem och testa nya BloodHound CE

Teamet tillhandahåller en docker-compose YAML-fil som enkelt kan laddas hem och startas. Ungefär något liknande bör fungera väl:

$ mkdir bloodhound-ce && cd bloodhound-ce
$ wget https://raw.githubusercontent.com/SpecterOps/BloodHound/main/examples/docker-compose/docker-compose.yml
$ docker compose up

Sen väntar du ett stund och läser texten som visas på skärmen när du kör docker compose up, där står lite intressant information som är viktig att ta del av. Bl.a. så står lösenordet till webbgränssnittet som du kan behöva. Exempelvis:

Bloodhound docker compose password

Du loggar sedan in mot localhost:8080 med din webbläsare och användarnamnet admin med lösenordet som visades upp.

Bloodhound Community Edition login

Om du inte har en demo-miljö eller liknande och vill testa lite så finns det ett github-repo med test-data som du kan importera till Bloodhound (kolla även BadBlood):

Viktigt att poängtera är att det inte finns något enkelt sätt i GUI:t att ladda upp JSON/ZIP-filer, som det fanns i tidigare versioner av Bloodhound. Det sättet jag gjorde var att använda python-programmet bloodhound import från Fox IT, installeras genom följande kommando:

pip install bloodhound_import

Sedan kan man köra:

for a in *.json; do bloodhound-import -p 7687 -dp bloodhoundcommunityedition -du neo4j $a; done

Observera att detta kräver att du exponerar port 7687 från Neo4j-containern. Det gör du enklast genom att modifiera docker-compose.yml. Viktigt att poängtera att lösenordet ovan som är bloodhoundcommunityedition bör ändras.

Nu bör demo-datat vara importerat och du kan använda API:et eller webb GUI:t. För mer information om REST API:et se apiclient.py samt följande supportsida hur du skapar upp API-nycklar.

Hur du enklast identifierar brister och tar över ett Windows AD är utanför denna guide.

Evilginx version 3.2 ute nu

Evilginx version 3.2

Nu finns det en ny version av phishing-ramverket Evilginx. Evilginx är utvecklat av Kuba Gretzky och var det första ramverket som var öppet och hade möjlighet att kringgå multifaktorsautentisering genom att utföra man-i-mitten-attacker (MITM). Jag kan även rekommendera denna artikel då jag testar ett annat liknande verktyg.

Nyheter i version 3.2

Den första och största nyheten har och göra med hur redirect_url fungerar. När väl en sessionstoken har spelats in vid en phishing-sida så har det tidigare varit svårt att göra ompekningar när sidorna har varit SPA:er (Single Page Applications). Men genom att injicera ett javascript i webbsidan som MITM:as så går det nu att göra en redirect enklare.

När en ny phishing-kampanj skickas ut via E-post så brukar de första som besöker phishing-sidorna vara automatiserade scanners som automatiskt försöker lista ut om länken i ett E-post är en phishing-sida. Genom att nu använda följande konfigurations-direktiv så är det möjligt att pausa phishing-sidan temporärt och således försvåra för dessas automatiserade scanningar och säkerhetsprodukter:

lures pause <id> <time_duration>

Det går nu att finjustera proxy-anropen som går via Evilginx och returnera egna fel-koder eller svar på HTTP-förfrågningar. Exempelvis:

intercept:
  - {domain: 'www.linkedin.com', path: '^\/report_error$', http_status: 200, body: '{"error":0}'', mime: "application/json"}
  - {domain: 'app.linkedin.com', path: '^\/api\/v1\/log\/.*', http_status: 404}

Det finns många andra nyheter och buggfixar i Evilginx, se följande inlägg för alla nyheter.

Skydd mot MITM/proxy phishing-attacker

Kuba som utvecklar Evilginx höll ett föredrag på konferensen x33fcon om hur man kan skydda sig mot denna typ av phishing-attacker där angriparen gör MITM/proxy-attacker för att stjäla sessions-cookies.

Föreläsningen hittar du inbäddad här:

Fortinet SSL-VPN sårbarheter

Flertalet sårbarheter har identifierats i FortiOS som är operativsystemet som bl.a används för Fortinet SSL-VPN och FortiProxy. Flera av dessa sårbarheter utnyttjas även aktivt på internet och är således viktiga att åtgärda snarast.

Volt Typhoon Campaign är namnet på en pågående operation där antagonister utnyttjar sårbarheten CVE-2022-40684 som ej listas nedan, och som CVE:n antyder så är det en äldre sårbarhet från 2022. Microsoft har även en bra write-up gällande Volt Typhoon här.

Det är inte första gången som allvarliga sårbarheter uppdagats i Fortinets produkter, var inte så länge sedan som jag bloggade om denna sårbarhet.

Lista med nya sårbarheter i FortiOS:

Incident ID NVD CVEProductSeverityDescription
FG-IR-23-097CVE-2023-27997FortiOS9.2 (Critical)Heap buffer overflow in SSL-VPN pre-authentication
FG-IR-23-111CVE-2023-29180FortiOS7.3 (High)Null pointer de-reference in SSLVPNd
FG-IR-22-475CVE-2023-22640FortiOS7.1 (High)FortiOS – Out-of-bound-write in SSLVPNd
FG-IR-23-119CVE-2023-29181FortiOS8.3 (High)Format String Bug in Fclicense daemon
FG-IR-23-125CVE-2023-29179FortiOS6.4 (Medium)Null pointer de-reference in SSLVPNd proxy endpoint
FG-IR-22-479CVE-2023-22641FortiOS4.1 (Medium)Open redirect in SSLVPNd

Rekommenderad åtgärd från Fortiguard är att uppgradera till senaste FortiOS samt genomföra härdning av sina enheter, se till att inte använda enheter som är End-of-life.

Barracuda varnar för ny zero-day

Barracuda Networks

Företaget Barracuda går ut och varnar för en sårbarhet som aktivt utnyttjas. Sårbarheten återfinnes i dess produkt Email Security Gateway (ESG).

Sårbarheten har CVE-2023-2868 klassificeras som en Remote Code Injection-sårbarhet som finns i versionerna 5.1.3.001 till 9.2.0.006.

Företaget har 200000 kunder globalt men det är oklart i dagsläget hur många av dessa kunder som har sårbara enheter exponerade mot internet. Amerikanska CISA har lagt till sårbarheten till sin katalog med sårbarheter som aktivt utnyttjas ”Known Exploited Vulnerabilities Catalog”.

Sårbarheten har och göra med hur .tar-filer hanteras med perls qx-funktion.

Mer information finns på Barracudas status-sida.

Ny lokal sårbarhet i Linux Netfilter

Netfilter

Netfilter är generellt den del i Linux-kerneln som handhar brandväggsfunktionalitet. Sårbarheten är av typen heap out of bounds write och medger att lokala användare kan eskalera sina behörigheter till root (administratör). Sårbarheten har fått CVE-2023-32233 reserverat och identifierades av Patryk Sondej samt Piotr Krysiuk

Denna sårbarhet är framförallt extra allvarlig för att den går att använda för så kallade ”container escape” attacker där det går att bryta sig ur en container-baserad miljö. Sårbarheten gäller samtliga nuvarande Linux-kernelversioner inklusive version 6.3.1. Oklart i dagsläget huruvida Android är sårbart för denna säkerhetsbrist.

Sårbarhet för att utnyttja denna kod har av misstag publicerats via en E-postlista. Observera också att även om kernelmodulen nf_tables som är sårbar, ej är laddad så tillåter många Linux-distros att automatiskt ladda in kernel-moduler som en vanlig användare.

Många brister blir det

Det har uppdagats en hel del intressanta brister på senare tid så jag tänkte försöka skriva en kortare sammanställning på vad som kan vara bra att hålla koll på:

CVE-2023-23415 – Vilket är en sårbarhet i Windows som gör att en lyssnare på en RAW-socket kan troligtvis utföra RCE via ett ICMP-paket. Exempelvis på mjukvara som nyttjar RAW-sockets i Windows är Wireshark. Mer info här.

CVE-2023-24033 – Sårbarheter i Samsungs Exynos basbandsmodem. Möjliggör att en angripare kan få fotfäste i flertalet Google Pixel-telefoner såsom Pixel 6 och 7 samt flertalet Samsungmodeller. Voice-over-LTE (VoLTE) eller WiFi-samtal kan slås av för att mitigera sårbarheterna temporärt. Project Zero hos Google har skrivit här.

CVE-2023-21036 (acropalypse) – När crop-funktionen används i Android så tas inte den croppade delen bort. Det går att återskapa delar eller delen av bilden som har beskurits bort. Men observera att flertalet tjänster såsom Signal gör en konvertering av filen innan, således försvinner metadata. Intressant root-cause.

CVE-2023-23397 – Elevation-of-privilege i Outlook, utnyttjas aktivt just nu. Attacken upptäckes av CERT-UA, läs mer här. ”This attack vector, which leads to NTLM harvesting,”

Kali Purple från OffSec

Kali Purple

Förutom att Offensive Security numera går under namnet OffSec så har företaget även släppt en ny version av Kali Linux som heter Kali Purple.

Som det nya namnet lite avslöjar så handlar det om en Linux-distribution som är anpassad för Purple-Teaming eller Blue-Teaming, dvs mer defensiv cybersäkerhet än offensiv som Kali Linux är mest känt för.

Och givetvis så är Kali Purple proppad med över 100 st olika verktyg, och för att nämna några:

  • Arkime full packet capture (tidigare Moloch)
  • Cyberchef
  • Elasticsearch SIEM
  • GVM vulnerability scanner
  • TheHive incident response platform
  • Malcolm
  • Suricata IDS
  • Zeek IDS

Även så följer alla andra verktyg som vi är bekanta med från Kali Linux med också.

Menystrukturen följer NIST CSF:

  1. Identify
  2. Protect
  3. Detect
  4. Respond
  5. Recover

Med följer även Kali Autopilot som låter dig bygga olika attackscenarion samt en community Wiki som låter dig läsa på om olika defensiva verktyg och hur du använder dessa.

Skärmdumpar

Kali Autopilot

Kali Autopilot

SOC-in-a-box

Kali Purple Soc in a box

Efter LOLBAS kommer LOLAPPS

LOLBAS som står för Living Off The Land Binaries, Scripts and Libraries är ett projekt som funnits i många år nu. Projektet LOLBAS går ut på att lista ”dual use” binärer, script och bibliotek som gör att en angripare som vill försvåra upptäckt eller inte har verktyg installerade på en hackad enhet kan använda sig av sådant som redan är befintligt installerade (tidigare hette projektet LOLBIN). För Unix-system så finns även projektet GTFOBins.

För några veckor sedan så släpptes projektet LOLAPPS som är snarlikt men istället listar mjukvaror eller ”appar” som också går att använda för illasinnade funktioner såsom att ladda ner- eller exekvera kod.

Initiativtagare bakom LOLAPPS är John Jackson aka ”Mr Hacking”.

Redan nu finns det ett antal mjukvaror listade såsom:

LOLAPPS hittar du här:

Och Github-sidan med templates för den som vill bidra kan hittas här:

OpenSSH Pre-Auth Double Free

OpenSSH

En ny sårbarhet har uppdagats i OpenSSH. Denna sårbarhet återfinnes innan autentisering (pre-auth) och beror på att allokerat minne frigörs dubbelt. Sårbarheten har CVE-2023-25136 och den version som av OpenSSH som åtgärdar sårbarheten släpptes 2:a Februari 2023, version 9.2.

Det är i dagsläget möjligt att genomföra en DoS (krasha opensshd) men oklart om det skulle vara möjligt att göra något mer såsom RCE (Remote Code Execution). Dock så använder opensshd Privilege Separation på många plattformar samt sandboxning (pledge, chroot osv). Proof-of-concept kod är släppt för att utför DoS av opensshd version < 9.2.

Eftersom OpenSSH är så otroligt populärt så kommer troligtvis en hel del resurser läggas på att försöka utnyttja denna sårbarhet.

OpenSSH 9.2 release notes.

ChatGPT och cybersäkerhet

Att verktyget ChatGPT som verkar inom området artificiell intelligens (AI) blivit poppis råder ingen tvekan om. Men precis som många andra intressanta och nya innovationer så finns det som oftast ett ”dual use”, dvs där innovationen eller verktyget kan användas av såväl sådana som vill gott och sådana som har onda avsikter.

Just inom området cybersäkerhet och ChatGPT så har jag testat några olika områden där ChatGPT kan användas för offensiva och defensiva syften.

ChatGPT för offensiv cybersäkerhet

Precis som Github CoPilot som jag själv använder så kan du säga till ChatGPT att utveckla skadlig kod såsom kod som utför ransomware och krypterar filer.

Om jag berättar för ChatGPT att den ska skriva några olika programstycken som var för sig inte gör illasinnade sakar och sedan berättar att den ska utveckla koden vidare så klagar den inte:

ChatGPT Ransomware

Men om vi rakt ut skriver att ChatGPT ska skapa ransomware i python så vägrar den:

Det är även möjligt att ställa frågor om vilka verktyg som är bra att använda för olika offensiva syften såsom portscanning av internet så får jag förslag på fyra verktyg: nmap, masscan, zmap och fscan. Så den har någorlunda rätt.

Antagonister kan även använda ChatGPT för att skriva phishing-meddelanden i olika språk och föda in information om målet till ChatGPT för att göra phishingen ännu mer effektiv. Det är även möjligt att till viss del skala upp nyttjandet av ChatGPT, eller använda OpenAI:s API som tillhandahåller GPT3.

Ett annat område är att AI:t utger sig för att vara någon annan och således försöka fiska till sig information genom exempelvis chattar. En vidareutveckling på sådant som vi har sett tidigare där kapade Facebook-konton nyttjas till att ”be en vän om hjälp med BankID” eller berätta om en knipa där pengar behövs.

Dock är AI:t inte felfritt, men min upplevelse är att ungefär i hälften av fallen så blir det korrekt eller att du måste korrigera och fixa koden.

Bild från ett chattforum för kriminella där någon lyckats att skapa en mjukvara för att exfiltrera (sno) filer med en viss filändelse:

Bildcredd: Checkpoint

ChatGPT för defensiv cybersäkerhet

ChatGPT kan analysera loggfiler och se mönster i text eller andra former av kod såsom assembler och således hjälpa till att förstå analyser av skadlig kod. Det finns redan nu flertalet plugins till reverse-engineering verktygen IDA Pro och Ghidra för att göra just detta.

ChatGPT har även förmågan att skapa YARA-regler på sådant som man kan uppge, ett exempel:

Det finns även möjlighet att fråga saker om olika grupperingar, men dock finns det begränsningar eftersom informationen som ChatGPT är tränad på är från år 2021 och tidigare:

Och precis som botten skriver ovan så är listan inte komplett. Men ger en bra fingervisning iallafall och jag tycker att vi är på god väg när det gäller utvecklingen inom AI och dess möjligheter inom cybersäkerhet.

Uppdatering: Ett annat område jag glömde att skriva om är att ChatGPT kan göra enklare kodgranskningar och identifiera sårbarheter: