Technologia

Exploit KeePass pomaga odzyskać hasło główne w postaci zwykłego tekstu, poprawka wkrótce

  • 18 maja, 2023
  • 7 min read
Exploit KeePass pomaga odzyskać hasło główne w postaci zwykłego tekstu, poprawka wkrótce


Popularny menedżer haseł KeePass jest podatny na wydobycie hasła głównego z pamięci aplikacji, co pozwala atakującym, którzy złamali urządzenie, na odzyskanie hasła, nawet jeśli baza danych jest zablokowana.

Problem został odkryty przez badacza bezpieczeństwa znanego jako „vdohney”, który opublikował narzędzie do weryfikacji koncepcji, umożliwiające atakującym wyodrębnienie hasła głównego KeePass z pamięci jako dowód koncepcji (PoC).


Menedżery haseł umożliwiają użytkownikom tworzenie unikalnych haseł do każdego konta online i przechowywanie poświadczeń w łatwej do przeszukiwania bazie danych lub skarbcu haseł, dzięki czemu nie trzeba pamiętać każdego z nich. Aby jednak odpowiednio zabezpieczyć ten magazyn haseł, użytkownicy muszą pamiętać jedno hasło główne używane do jego odblokowania i uzyskania dostępu do przechowywanych poświadczeń.

To hasło główne szyfruje bazę danych haseł KeePass, uniemożliwiając jej otwarcie lub odczytanie bez uprzedniego wprowadzenia hasła. Jednak po naruszeniu hasła głównego cyberprzestępca może uzyskać dostęp do wszystkich danych uwierzytelniających przechowywanych w bazie danych.

Dlatego, aby menedżer haseł był odpowiednio zabezpieczony, bardzo ważne jest, aby użytkownicy strzegli hasła głównego i nie udostępniali go nikomu innemu.

Nowa luka KeePass śledzona jako CVE-2023-3278 umożliwia odzyskanie hasła głównego KeePass, poza jednym lub dwoma pierwszymi znakami, w formie zwykłego tekstu, niezależnie od tego, czy obszar roboczy KeePass jest zablokowany, a nawet jeśli program zamknięte.

„KeePass Master Password Dumper to proste narzędzie sprawdzające słuszność koncepcji używane do zrzucania hasła głównego z pamięci KeePass. Oprócz pierwszego znaku hasła, jest ono w większości w stanie odzyskać hasło w postaci zwykłego tekstu”, ostrzega badacz bezpieczeństwa na GitHub strona narzędzia exploita.

Warto przeczytać!  Jak korzystać z trybu Zen Air w OnePlus Buds Pro 2

„Nie jest wymagane żadne wykonanie kodu w systemie docelowym, wystarczy zrzut pamięci. Nie ma znaczenia, skąd pochodzi pamięć – może być zrzut procesu, plik wymiany (pagefile.sys), plik hibernacji (hiberfil.sys) lub zrzut pamięci RAM całego systemu. Nie ma znaczenia, czy obszar roboczy jest zablokowany”.

Luka istnieje, ponieważ oprogramowanie wykorzystuje niestandardowe pole wprowadzania hasła o nazwie „SecureTextBoxEx”, które pozostawia ślady każdego znaku wpisanego przez użytkownika w pamięci.

„KeePass 2.X używa specjalnie opracowanego pola tekstowego do wprowadzania hasła, SecureTextBoxEx. To pole tekstowe jest używane nie tylko do wprowadzania hasła głównego, ale także w innych miejscach w KeePass, takich jak pola edycji hasła (dzięki czemu atak może również zostać użyte do odzyskania ich zawartości)” wyjaśnia vdohney.

Luka dotyczy najnowszej wersji KeePass, 2.53.1, a ponieważ program jest open source, prawdopodobnie dotyczy to wszystkich forków projektu.

Według twórcy narzędzia do zrzucania haseł CVE-2023-32784 nie ma wpływu na KeePass 1.X, KeePassXC i Strongbox.

Ponadto, podczas gdy PoC był testowany w systemie Windows, exploit powinien działać również w systemach Linux i macOS, z pewnymi modyfikacjami, ponieważ problem nie jest specyficzny dla systemu operacyjnego, ale sposób, w jaki KeePass obsługuje dane wejściowe użytkownika.

Narzędzie do zrzucania haseł KeePass w akcji
źródło: vdohney

Łatwy do wykorzystania

Ponieważ zrzuty pamięci muszą zostać odzyskane w celu odzyskania hasła głównego KeePass, wykorzystanie luki CVE-2023-32784 wymaga fizycznego dostępu lub zainfekowania komputera docelowego złośliwym oprogramowaniem.

Jednak złośliwe oprogramowanie kradnące informacje może szybko sprawdzić, czy KeePass istnieje na komputerze lub czy jest uruchomiony, a jeśli tak, zrzucić pamięć programu i wysłać ją wraz z bazą danych KeePass z powrotem do atakującego w celu odzyskania w trybie offline hasła w postaci zwykłego tekstu ze zrzutu pamięci.

Warto przeczytać!  Współzałożyciel Apple, Steve Wozniak, hospitalizowany w Meksyku z powodu możliwego udaru: raport

BleepingComputer przetestował narzędzie vdohney „keepass-password-dumper”, instalując KeePass na urządzeniu testowym i tworząc nową bazę danych z hasłem głównym „password123”, jak pokazano poniżej.

Tworzenie testowej bazy danych KeePass
źródło: BleepingComputer

Następnie zablokowaliśmy nasz obszar roboczy KeePass, co uniemożliwia dostęp do niego, chyba że ponownie wprowadzisz hasło główne.

W naszych testach możesz użyć Process Explorer do zrzutu pamięci projektu KeePass, ale do poprawnego działania wymaga to pełnego zrzutu pamięci, a nie minizrzutu. Do zrzutu pamięci procesów nie są potrzebne żadne podwyższone uprawnienia.

Po skompilowaniu narzędzia vdohney za pomocą programu Visual Studio wykonaliśmy je na zrzucie pamięci i szybko odzyskaliśmy większość naszego hasła w postaci zwykłego tekstu, z brakującymi tylko dwiema pierwszymi literami.

Wyodrębnianie większości hasła głównego KeePass
źródło: BleepingComputer

Chociaż nie jest to pełne hasło, ustalenie, jakich znaków brakuje, byłoby dość łatwe.

Badacz ostrzega również, że hasła główne używane w przeszłości mogą pozostać w pamięci, dzięki czemu można je odzyskać, nawet jeśli KeePass nie działa już na zaatakowanym komputerze.

Poprawka już wkrótce

Twórca KeePass, Dominik Reichl, otrzymał zgłoszenie o błędzie i obiecał wprowadzić poprawkę dla CVE-2023-32784 w wersji 2.54, spodziewanej w lipcu 2023 r.

Jednak Reichl powiedział BleepingComputer, że KeePass w wersji 2.54 najprawdopodobniej zostanie udostępniony użytkownikom za około dwa tygodnie, więc powinien zostać wydany na początku czerwca.

Na podstawie dyskusji, w której Reichl rozwinął swoje przemyślenia na temat luki w zabezpieczeniach i potencjalnych strategii ograniczania, wymieniono dwa ulepszenia bezpieczeństwa dla nadchodzącej wersji KeePass:

  1. Wykonuj bezpośrednie wywołania API w celu pobrania/ustawienia tekstu pola tekstowego, unikając tworzenia zarządzanych ciągów w pamięci, które mogą ujawnić tajemnice.
  2. Twórz fikcyjne fragmenty zawierające losowe znaki w pamięci procesu, które będą miały w przybliżeniu taką samą długość jak hasło główne użytkownika, zaciemniając prawdziwy klucz.
Warto przeczytać!  Realme 11 Pro 5G vs Motorola Edge 40: cena w Indiach, porównanie specyfikacji

KeePass 2.54 dla Windows będzie miał oba, podczas gdy wersje macOS i Linux otrzymają tylko drugie ulepszenie.

Deweloper wydał wersję testową z nowymi ulepszeniami bezpieczeństwa, które łagodzą problem, więc ci, którzy mogą zaakceptować niestabilne zachowanie, mogą je pobrać stąd.

Twórca PoC potwierdził, że nie może już odtworzyć ataku z dwoma ulepszeniami bezpieczeństwa, więc poprawka wydaje się skuteczna.

Nawet po opublikowaniu nowej wersji hasło główne może nadal być przechowywane w plikach pamięci. Badacz ostrzega, że ​​aby być w 100% pewnym, że wirus nie czai się w systemie, należy usunąć pliki wymiany i hibernacji systemu, sformatować dysk twardy przy użyciu trybu „nadpisywania danych”, aby uniemożliwić odzyskanie danych, a także wykonać nowy Instalacja systemu operacyjnego.

Jednak dla większości ponowne uruchomienie komputera, wyczyszczenie pliku wymiany i plików hibernacji oraz nieużywanie KeePass do czasu wydania nowej wersji to na razie rozsądne środki bezpieczeństwa.

Nawet wtedy, aby zapewnić najlepszą ochronę, bądź bardzo czujny, aby nie pobierać programów z niezaufanych witryn i uważaj na ataki phishingowe, które mogą zainfekować twoje urządzenia, dając cyberprzestępcom zdalny dostęp do twojego urządzenia i bazy danych KeePass.


Źródło