Nepoužívejte integrovaný správce hesel v prohlížeči, je snadné ho hacknout!

Štefan Prokop
4 min readJan 11, 2024

--

Často se mě lidi ptají, jestli je dobré používat integrovaný správce hesel v prohlížeči. Na jednu stranu je dobře, že člověk používá alespoň nějakého správce hesel. Díky tomu si nemusí hesla pamatovat a používat jedno a to samé heslo pro různé služby. Proč ale správce hesel integrovaný v prohlížeči není bezpečný? Pro útočníka je velmi snadné dostat se k uloženým heslům a jejich nezašifrovaným hodnotám.

Prohlížeče mají integrované správce hesel, které jsou nainstalovány spolu s ním. Například pokud se někam přihlásím v Google Chrome, vyskočí na mě podobné okno, jako je na obrázku níže. Pomocí něj si k dané stránce můžu uložit přihlašovací údaje.

Integrovaný správce hesel v Google Chrome.

Prvním důležitým zjištěním je informační zpráva, která se vyskytuje dole v tomto okně (Passwords are saved to Password Manager on this device.). To znamená, že všechna hesla budou uložena “někde” na daném zařízení (například počítači). To mi dává jasnou indicii, že hesla budou někde na disku C mezi aplikačními daty. Po nějaké době strávené hledáním se dostanu k souboru C:\Users\Stefan\AppData\Local\Google\Chrome\User Data\Local State.

Tento soubor není pro běžného uživatele tak snadno čitelný. Obsahuje ale velmi zajímavé údaje pro potenciálního útočníka (encrypted_key). Tento údaj slouží k šifrování a dešifrování ukládaných hesel. Jde tedy o první proměnnou na cestě k prolomení uložených hesel.

Local State soubor s šifrovacím klíčem.

Po další době strávené hledáním, je možné najít další adresář C:\Users\Stefan\AppData\Local\Google\Chrome\User Data. Konkrétně podadresář Default se souborem Login Data. Tento soubor je binární a není možné ho zobrazit v textovém editoru. Pro technicky zdatného uživatele je snadné zjistit, že jde o SQLite databázi. Tu je možné otevřít pomocí řady volně dostupných nástrojů (např. SQLite Database Browser).

Tato databáze obsahuje veškerá hesla a přihlašovací jména, která si uživatel uložil. Jsou v zašifrované podobě, takže neznáme původní hodnotu hesla. Od toho ale máme předchozí soubor s šifrovacím klíčem, pomocí kterého můžeme heslo snadno dešifrovat.

Jak to hacknout?

Nyní máme databázi hesel a šifrovací klíč. Teď stačí chvíli googlit termín typu “decrypt chrome passwords” a vyjede řada automatických skriptů, které je možné použít pro získání původní hodnoty přihlašovacích údajů.

Automatický nástroj pro dešifrování hesel uložených v integrovaném správci hesel Google Chrome.

Nástroj znázorněný na obrázku je naprogramovaný v Pythonu. Útočníkovi stačí si tento skript stáhnout a pomocí příkazu py .\decrypt_chrome_password.py ho spustit. Nástroj si sám najde potřebné soubory, které jsem popsal výše a vrátí seznam uživatelských jmen, hesel a URL adres jako je znázorněno na obrázku níže.

Dešifrovaná hesla pomocí automatizovaného nástroje.

Určitě si teď říkáte: “Jenže ty hesla jsou na mém počítači, jak se k nim útočník dostane?” Útočník má dvě možnosti:

  1. Sednout si za váš počítač a získat je manuálně přímo na něm.
  2. Vytvořit malware nebo jiný škodlivý program, který si nainstalujete (může být zakomponován do kompromitovaného oficiálního programu atd. — možností je spousta).

Druhá varianta je mnohem pravděpodobnější a snazší.

Můžeme si všimnout, že útočník nemusí mít žádnou znalost toho, kde se dané soubory nachází. Prostě si jen vygooglí nástroj, který vám podstrčí, a má, co chtěl. Je velmi jednoduché tento proces škálovat a distribuovat takový program k tisícům uživatelů. Však on se někdo z nich chytne…

Závěr

Celý proces získání takto uloženého hesla je pro útočníka velmi snadný. Problém se netýká jen Google Chrome, ale všech prohlížečů nebo nástrojů, které ukládají hesla podobným způsobem na disk. Útočník sice neví, jaký prohlížeč nebo nástroj používáte, ale díky automatizaci může vytvořit program, který zkusí najít hesla jak v Chromu, tak ve Firefoxu a dalších.

Co z toho plyne? Používejte správce hesel, které neukládají hesla na vašem zařízení — např. 1password, Bitwarden a další. Ty jsou mnohem bezpečnější a poskytují víc vrstev ochrany.

— — —

Jsem Štefan Prokop, zakladatel portálu Bezpečný kód. Školím vývojáře a management v oblasti bezpečného vývoje software.

Sledujte mě na LinkedInu a YouTube nebo se pojďme rovnou propojit.

Zajímá vás kybersecurity a aplikační bezpečnost? Odebírejte můj newsletter, vychází jednou měsíčně a je zdarma.

--

--

Štefan Prokop
Štefan Prokop

Written by Štefan Prokop

0 Followers

AppSec Specialist & Software Developer

No responses yet