Udtrækning af krypterede legitimationsoplysninger fra Common Tools PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Udtrækning af krypterede legitimationsoplysninger fra almindelige værktøjer

flertallet af cyberangreb stole på stjålne legitimationsoplysninger - opnået ved enten at narre medarbejdere og slutbrugere til at dele dem, eller ved at høste domænelegitimationsoplysninger, der er cachelagret på arbejdsstationer og andre systemer på netværket. Disse stjålne legitimationsoplysninger giver angribere mulighed for at bevæge sig sideværts i miljøet, mens de drejer fra maskine til maskine – både på stedet og i skyen – indtil de når forretningskritiske aktiver.

I Uber brud tilbage i september, angribere fundet legitimationsoplysningerne i et specifikt PowerShell-script. Men der er masser af mindre prangende, men lige så skadelige måder, hvorpå angribere kan finde legitimationsoplysninger, der giver dem adgang til miljøet. Disse omfatter almindelige lokale legitimationsoplysninger, lokale brugere med lignende adgangskoder og legitimationsoplysninger gemt i filer på netværksshares.

I vores forskning stod vi over for spørgsmålet om, hvilken slags information der kan udtrækkes fra en kompromitteret maskine - uden at udnytte nogen sårbarheder - for at flytte sideværts eller udtrække følsom information. Alle de værktøjer, vi brugte her, er tilgængelige på vores GitHub repository.

Organisationer er afhængige af flere værktøjer til at autentificere til servere og databaser ved hjælp af SSH-, FTP-, Telnet- eller RDP-protokoller - og mange af disse værktøjer gemmer legitimationsoplysninger for at fremskynde godkendelsen. Vi ser på tre sådanne værktøjer - WinSCP, Robomongo og MobaXterm - for at vise, hvordan en angriber kunne udtrække ikke-klartekst-legitimationsoplysninger.

WinSCP: Obfuscated Credentials

Når en domænecontroller ikke er tilgængelig, kan en bruger få adgang til systemressourcer ved hjælp af cachelagrede legitimationsoplysninger, der blev gemt lokalt efter et vellykket domænelogon. Fordi brugeren tidligere var autoriseret, kan brugeren logge ind på maskinen ved hjælp af domænekontoen via cachelagrede legitimationsoplysninger, selvom den domænecontroller, der tidligere har godkendt brugeren, ikke er tilgængelig.

WinSCP giver mulighed for at gemme de legitimationsoplysninger, der bruges til at oprette forbindelse til fjernmaskiner via SSH. Mens legitimationsoplysningerne er sløret, når de gemmes i Windows-registreringsdatabasen (ComputerHKEY_CURRENT_USERSOFTWAREMartin PrikrylWinSCP 2Sessions), er de slet ikke krypteret. Enhver, der kender algoritmen, der bruges til at sløre, kan få adgang til legitimationsoplysningerne.

Da WinSCP's kildekode er tilgængelig på GitHub, var vi i stand til at finde obfuskationsalgoritmen. Vi brugte et værktøj, der implementerede den samme algoritme til at de-obfuskere legitimationsoplysningerne, og vi fik adgang til legitimationsoplysningerne i klartekst.

Implementering af en sløringsalgoritme for at sikre gemt legitimationsoplysninger er ikke bedste praksis, da det nemt kan vendes og føre til legitimationsoplysninger tyveri.

Robomongo: Ikke en hemmelig nøgle

Robomongo (nu Robo 3T) er en MongoDB-klient, der bruges til at oprette forbindelse til Mongo-databaseservere. Når du gemmer dine legitimationsoplysninger, bliver de krypteret og gemt i en robo3t.json JSON-fil. Den hemmelige nøgle, der bruges til at kryptere legitimationsoplysningerne, gemmes også lokalt i klartekst i en robo3t.nøgle fil.

Det betyder, at en angriber, der får adgang til en maskine, kan bruge nøglen gemt i klartekst til at dekryptere legitimationsoplysningerne.

Vi kiggede på Robomongos kildekode på GitHub for at forstå, hvordan nøglen bruges til at kryptere adgangskoden og lærte, at den bruger SimpleCrypt lib fra Qt. Mens Robomongo bruger kryptering til sikkert at gemme legitimationsoplysninger, er det ikke bedste praksis, at den hemmelige nøgle er gemt i klartekst. Angribere kan potentielt læse det, fordi enhver bruger med adgang til arbejdsstationen kan dekryptere legitimationsoplysningerne. Selvom informationen er kodet på en måde, som mennesker ikke kan læse, kan visse teknikker bestemme, hvilken kodning der bruges, og derefter afkode informationen.

MobaXterm: Dekryptering af adgangskoden

MobaXterm er et kraftfuldt værktøj til at oprette forbindelse til fjernmaskiner ved hjælp af forskellige protokoller såsom SSH, Telnet, RDP, FTP og så videre. En bruger, der ønsker at gemme legitimationsoplysninger i MobaXterm, vil blive bedt om at oprette en hovedadgangskode for at beskytte deres følsomme data. Som standard anmoder MobaXterm kun om hovedadgangskoden på en ny computer.

Det betyder, at hovedadgangskoden er gemt et sted, og MobaXterm vil hente den for at få adgang til de krypterede legitimationsoplysninger. Vi brugte Procmon fra Sysinternals Suite til at kortlægge alle registreringsnøgler og filer, som MobaXterm har adgang til, og vi fandt hovedadgangskoden gemt i Windows-registreringsdatabasen (ComputerHKEY_CURRENT_USERSOFTWAREMobatekMobaXtermM). Legitimationsoplysninger og adgangskoder gemmes i henholdsvis C- og P-registreringsnøglerne.

I starten var vi ikke i stand til at dekryptere hovedadgangskoden, som blev krypteret ved hjælp af DPAPI. Vi fandt til sidst ud af, at de første 20 DPAPI-bytes, som altid er de samme, når man bruger DPAPI, var blevet fjernet. Da vi tilføjede de første 20 bytes, var vi i stand til at dekryptere DPAPI-chifferet for at få SHA512-hashen til hovedadgangskoden. Denne hash bruges til at kryptere og dekryptere legitimationsoplysninger.

Her gemmes krypteringsnøglen, der bruges til sikker opbevaring af legitimationsoplysningerne, ved hjælp af DPAPI. Det betyder, at kun den bruger, der har gemt legitimationsoplysningerne, kan få adgang til dem. En bruger med administratoradgang eller en angriber, der får adgang til ofrets session, kan dog også dekryptere de legitimationsoplysninger, der er gemt på maskinen.

Kend risiciene

Udviklere, DevOps og IT bruger forskellige værktøjer til at oprette forbindelse til fjernmaskiner og administrere disse adgangsoplysninger. Leverandører skal opbevare disse følsomme oplysninger på den mest sikre måde. Kryptering er dog altid på klientsiden, og en angriber kan replikere værktøjets adfærd for at dekryptere legitimationsoplysningerne.

Som altid er der ikke en magisk løsning, der kan løse alle de problemer, vi har diskuteret her. Organisationer kan dog begynde med at undersøge de tjenester, de nu bruger. De kan konstruere en nøjagtig risikomatrix og være bedre forberedt på databrud ved at have en stærkere forståelse af de typer følsomme data og legitimationsoplysninger, de gemmer.

Tidsstempel:

Mere fra Mørk læsning