Taggat med: REST API

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.

Test av MISP, threat sharing

MISP är ett projekt som startades av den belgiska försvarsmakten runt 2011 för att sedan fångas upp och vidareutvecklas av NATO. Projektet är i dagsläget oberoende men finansieras helt eller delvis av CIRCL – Computer Incident Response Center Luxembourg samt EU. Förkortningen MISP stod från början för Malware Information Sharing Project men numera heter projektet enbart: MISP, threat sharing.

Men vad är då MISP kanske du undrar? Jo det är ett verktyg för att underlätta lagring, sökning och kategorisering av cyberunderrättelser, främst olika former av IOC:Er (Indicators of Compromise). Men du kan skriva hela rapporter i MISP:en och länka direkt till IOC:er inom MISP.

När du arbetar mot MISP:en manuellt så kan man säga att du genomför tre steg för att lägga in information om en händelse, eller Event som det heter på MISP-språk. Dessa tre steg är:

  • Skapa Event
  • Lägg till attribut och attachment
  • Publicera eventet

Video som förevisar dessa steg:

Attributen som du kopplar till händelser kan vara checksummor till skadliga filer, textsträngar som återfinnes i exploits, skadlig kod, IP-adresser, domännamn och mycket mer. Här kan du se en lista med samtliga attribut.

Relativt nytt är också att du kan skriva rapporter under event, dessa rapporter kan sedan länka vidare till olika typer av attribut. Rapporterna skrivs i märkspråket markdown.

Exempel på en rapport för Winnti Group:

Och styrkan i MISP är att att dela med sig av denna information. Därav finns det ett avancerat system för vilken information du kan dela med dig av till vem. Det går även att koppla ihop flertalet MISP:ar så dessa synkroniserar information löpande. Även kan MISP:en hämta in olika former av former av feeds i format såsom csv, misp och fritext. Standard så följer 63 olika externa feeds med i MISP som du kan slå på.

Du kan sedan konfigurera dina säkerhetssystem att hämta IOC:er från din lokala MISP, det finns exempelvis stöd i Zeek (fd Bro). Även kan du koppla MISP mot andra system såsom OpenCTI, TheHIVE och MITRE ATT&CK.

När jag testade att starta upp en instans av MISP så var detta mycket enkelt med hjälp av Docker. Men tänk på hur du publicerar din MISP-instans mot internet, för sårbarheter finns det gott om i MISP. Bara detta året har 15 st CVE:er publicerats, men om detta är ett bra mätetal för säkerhet är en helt annan diskussion.

Om Er organisation verkar inom en viss bransch så rekommenderar jag att ni sätter upp en gemensam MISP inom just Er bransch. Men tänk också på att ni måste ha kompetens och en förmåga att underhålla och lägga in information i MISP:en. Här i Sverige har exempelvis Sunet en MISP-installation som Sunet-anslutna lärosäten kan använda sig av.

Är ni en stor organisation med egen ThreatHunting-kapacitet eller en CERT så kan det också vara läge att sätta upp en egen MISP där ni kan lägga in IOC:er och bygga upp er CTI, Cyber threat intelligence.

För API kan man använda PyMISP eller REST-gränssnittet, här testar jag en sökning med hjälp av curl och söker efter 89.203.249.203:

Svaret returnerar ett event info som säger Benkow.cc RAT feed.

Under huven så drivs MISP av en PHP-baserad applikation som använder sig av Apache, MySQL och Redis. MISP:en stödjer även ZeroMQ, Yara och kan exportera/importera STIX 1+2.

Test av Holm Security

Sårbarhetsanalyser har över 20 år varit en hörnsten i ett bra IT-säkerhetsarbete. Allt fler organisationer stärker upp sin säkerhet. Då landskapet ändras snabbt växer behovet av kontinuerliga skanningar. Historiskt har många inte gjort skanningar alls, eller bara enstaka skanningar internt eller externt.

Marknaden har historiskt dominerats av ett par aktörer från USA såsom Nessus från Tenable, men nu finns en alternativ produkt från svenska Holm Security.

Genom att göra kontinuerliga och automatiserade skanningar upptäcker du t.ex. löpande utdaterad mjukvara, felkonfigureringar, bristfällig kryptering och svaga lösenord. Dessutom är det ett effektivt sätt att upptäcka det man kallar blank spots, alltså delar i er IT-miljö som kan vara förbisedda.
Sårbarhetsanalyser ger dig bra kontroll på din IT-säkerhet och kombineras med fördel med mer traditionell penetrationstestning.

Skärmdump från Holm Securitys administrationsgränssnitt Security Center:

Holms backend bygger på två olika skannings-motorer som kan ses i gränssnittet ovan. En motor för webbskanningar och en för nätverksskanningar.

För den som gillar API:er och programnära gränssnitt så finns det ett REST API med exempelkod på Github här: https://github.com/holmsecurity/api-examples och dokumentation för API:et kan du hitta här.

När jag testade produkten så så körde jag tester mellan 2019-06-10 – 2019-07-06. Jag skannade en testmiljö med 37 IP-nummer och 1 st så kallad Damn Vulnerable Web Application/DVWA. Nätverksskanningen tog i snitt 13 minuter och webapplikationsskanningen 7 minuter. Rekommenderat är att köra automatiska scanningar så ofta som möjligt utan att det påverkar prestanda i applikationer eller nätverk.

Om du vill testa lokala nätverk innanför brandväggar eller liknande så finns det en Scanner Appliance (SA) som går att ladda hem som en virtuell server. Obegränsat med SA går att använda och prissättningen är satt utifrån antalet IP-adresser eller webbsajter/tjänster du vill skanna av.

Prisexempel:

Skanning av 100 IPn och 5 webbappar kostar 53 356 kr/år exkl moms.

En annan intressant produkt förutom intern och extern scanning är att du kan göra phishing-tester via E-post. Det finns ett antal standardmallar du kan använda och sedan skicka ut till organisationen och mäta statistik. Inga inviduella personer pekas därmed ut.

Skärmdump på assessments/riskanalys:

Riskanalys av användare för 250 e-postadresser kostar runt 21 000 kr/år exkl moms.

Bakom Holm Security står gänget som startade Stay Secure och som således till J2 Group år 2014. Och en annan sak de har lagt mycket krut på är onboarding-processen för nya organisationer, att det ska vara så snabbt och enkelt att komma igång.

Holm Security får 4/5 Enigmor:

Transparens: Jag sitter med i Advisory Board hos Holm Security samt äger en pytteliten andel i företaget.