Extrahera krypterade referenser från Common Tools PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Extrahera krypterade autentiseringsuppgifter från vanliga verktyg

Smakämnen majoriteten av cyberattackerna lita på stulna autentiseringsuppgifter – erhållna genom att antingen lura anställda och slutanvändare att dela dem, eller genom att samla in domänuppgifter som cachelagrats på arbetsstationer och andra system i nätverket. Dessa stulna referenser ger angripare möjligheten att röra sig i sidled inom miljön när de svänger från maskin till maskin – både på plats och i molnet – tills de når affärskritiska tillgångar.

I Uber-brott tillbaka i september, angripare hittade referenserna i ett specifikt PowerShell-skript. Men det finns många mindre flashiga, men lika skadliga sätt som angripare kan hitta referenser som skulle ge dem tillgång till miljön. Dessa inkluderar vanliga lokala referenser, lokala användare med liknande lösenord och referenser lagrade i filer på nätverksresurser.

I vår forskning ställdes vi inför frågan om vilken typ av information som kan extraheras från en komprometterad maskin – utan att utnyttja några sårbarheter – för att flytta i sidled eller extrahera känslig information. Alla verktyg vi använde här finns tillgängliga på vår GitHub förvaret.

Organisationer förlitar sig på flera verktyg för att autentisera till servrar och databaser med SSH-, FTP-, Telnet- eller RDP-protokoll - och många av dessa verktyg sparar autentiseringsuppgifter för att påskynda autentiseringen. Vi tittar på tre sådana verktyg – WinSCP, Robomongo och MobaXterm – för att visa hur en angripare kan extrahera autentiseringsuppgifter som inte är klartext.

WinSCP: Obfuscated Credentials

När en domänkontrollant inte är tillgänglig kan en användare komma åt systemresurser med hjälp av cachade autentiseringsuppgifter som sparades lokalt efter en lyckad domäninloggning. Eftersom användaren tidigare var auktoriserad kan användaren logga in på maskinen med hjälp av domänkontot via cachade autentiseringsuppgifter även om domänkontrollanten som autentiserade användaren tidigare inte är tillgänglig.

WinSCP erbjuder alternativet att spara autentiseringsuppgifterna som används för att ansluta till fjärrdatorer via SSH. Även om referenserna fördunklas när de sparas i Windows-registret (ComputerHKEY_CURRENT_USERSOFTWAREMartin PrikrylWinSCP 2Sessions), är de inte alls krypterade. Alla som känner till algoritmen som används för att fördunkla kan få tillgång till referenserna.

Eftersom WinSCP:s källkod är tillgänglig på GitHub, kunde vi hitta obfuskeringsalgoritmen. Vi använde ett verktyg som implementerade samma algoritm för att de-obfuskera referenserna, och vi fick tillgång till referenserna i klartext.

Att implementera en obfuskeringsalgoritm för att säkra lagrade autentiseringsuppgifter är inte bästa praxis, eftersom det enkelt kan vändas och leda till stöld av autentiseringsuppgifter.

Robomongo: Inte en hemlig nyckel

Robomongo (nu Robo 3T) är en MongoDB-klient som används för att ansluta till Mongos databasservrar. När du sparar dina referenser krypteras de och sparas i en robo3t.json JSON-fil. Den hemliga nyckeln som används för att kryptera autentiseringsuppgifterna sparas också lokalt, i klartext, i en robo3t.nyckel fil.

Det betyder att en angripare som får tillgång till en maskin kan använda nyckeln som sparats i klartext för att dekryptera autentiseringsuppgifterna.

Vi tittade på Robomongos källkod på GitHub för att förstå hur nyckeln används för att kryptera lösenordet och lärde oss att den använder SimpleCrypt lib från Qt. Medan Robomongo använder kryptering för att säkert lagra autentiseringsuppgifter, är det faktum att den hemliga nyckeln sparas i klartext inte bästa praxis. Angripare kan potentiellt läsa den, eftersom alla användare med åtkomst till arbetsstationen kan dekryptera referenserna. Även om informationen är kodad på ett sätt som människor inte kan läsa, kan vissa tekniker avgöra vilken kodning som används och sedan avkoda informationen.

MobaXterm: Dekrypterar lösenordet

MobaXterm är ett kraftfullt verktyg för att ansluta till fjärrmaskiner med olika protokoll som SSH, Telnet, RDP, FTP och så vidare. En användare som vill spara inloggningsuppgifter inom MobaXterm kommer att bli ombedd att skapa ett huvudlösenord för att skydda sin känsliga data. Som standard begär MobaXterm endast huvudlösenordet på en ny dator.

Det betyder att huvudlösenordet sparas någonstans, och MobaXterm kommer att hämta det för att komma åt de krypterade referenserna. Vi använde Procmon från Sysinternals Suite för att kartlägga alla registernycklar och filer som MobaXterm har åtkomst till, och vi hittade huvudlösenordet sparat i Windows-registret (ComputerHKEY_CURRENT_USERSOFTWAREMobatekMobaXtermM). Autentiseringsuppgifter och lösenord sparas i registernycklarna C respektive P.

Till en början kunde vi inte dekryptera huvudlösenordet, som krypterats med DPAPI. Så småningom kom vi på att de första 20 DPAPI-bytena, som alltid är desamma när man använder DPAPI, hade tagits bort. När vi lade till de första 20 byten kunde vi dekryptera DPAPI-chifferet för att få SHA512-hash för huvudlösenordet. Denna hash används för att kryptera och dekryptera autentiseringsuppgifter.

Här sparas krypteringsnyckeln som används för att säkert lagra referenserna med hjälp av DPAPI. Det betyder att endast användaren som sparat inloggningsuppgifterna kan komma åt dem. En användare med administratörsbehörighet, eller en angripare som får tillgång till offrets session, kan dock också dekryptera autentiseringsuppgifterna som är lagrade på maskinen.

Känn till riskerna

Utvecklare, DevOps och IT använder olika verktyg för att ansluta till fjärrmaskiner och hantera dessa åtkomstdetaljer. Leverantörer måste lagra denna känsliga information på det säkraste sättet. Kryptering är dock alltid på klientsidan, och en angripare kan replikera verktygets beteende för att dekryptera referenserna.

Som alltid finns det inte en magisk lösning som kan lösa alla problem som vi har diskuterat här. Organisationer kan dock börja med att undersöka de tjänster de nu använder. De kan konstruera en korrekt riskmatris och vara bättre förberedda på dataintrång genom att ha en bättre förståelse för vilka typer av känsliga uppgifter och referenser de lagrar.

Tidsstämpel:

Mer från Mörk läsning