Если пользователь забыл мастер-пароль от парольного менеджера Bitwarden, 1Password, KeepassXC, то пароли невозможно восстановить. Другое дело — встроенные парольные менеджеры браузеров Chrome и Firefox, для расшифровки которых есть специальные инструменты. Этот факт следует иметь в виду при хранении пользовательских данных — и не допускать, чтобы злоумышленник получил физический или удалённый доступ к компьютеру с правами пользователя.
Примечание: перечисленные ниже инструменты не работают с последними версиями браузеров и приведены исключительно в информационно-образовательных целях.
Firefox Passwords Decryptor
Консольная утилита Firefox Passwords Decryptor предназначена в первую очередь для расшифровки паролей, но также проводит анализ безопасности учётных данных и предлагает дополнительные возможности по быстрому сбору информации о системе (см. ниже).
Вполне вероятно, что подобные инструменты используют сотрудники правоохранительных органов, но они также полезны в повседневной работе системного администратора и специалиста по безопасности.
Процесс расшифровки паролей Firefox включает в себя следующие этапы:
-
Извлечение общей соли: процесс начинается с получения глобальной соли из файла
key4.db
, закладывая основу для генерации ключа.
-
Генерация ключа с помощью PBKDF2: используется PBKDF2 с хэшированием SHA-256 для создания ключа дешифрования из глобальной соли.
-
Разбор закодированных данных ASN.1: анализирует закодированные структуры ASN.1 для извлечения зашифрованных учётных данных вместе с их соответствующими алгоритмами и векторами инициализации (IV).
-
Расшифровка AES/Triple DES: в зависимости от заданного алгоритма расшифровывает учётные данные, используя сгенерированный ключ и IV.
- Удаление набивки: удаление набивки из расшифрованных данных, чтобы расшифровать имена пользователей и пароли.
Дополнительные функции:
- Информация о системе, включая имя хоста, ОС, архитектуру, количество CPU и памяти.
- Перечисляет открытые порты и идентифицирует процессы, использующие их.
- Выводит список подключённых USB-устройств.
- Извлекает и отображает историю просмотров Firefox пользователя.
Browser Cookie
Ещё одна утилита Browser Cookie извлекает куки из всех популярных браузеров: Chrome, Firefox, LibreWolf, Opera, Opera GX, Edge, Chromium, Brave, Vivaldi и Safari, а пароли — только из браузеров на основе Chromium. Она представляет собой питоновский форк одноимённой программы от Ричарда Пенмана, который работает бэкенд-инженером в Google.
Как понятно из названия, изначально инструмент создавался для просмотров куков: он загружает их в просматриваемый объект cookiejar. Во всех браузерах куки хранятся в базе SQLite.
Установка:
$ pip install browser-cookie3
Использование для загрузки и просмотра куков (в данном примере пройдена авторизация на сайте Bitbucket в браузере Firefox):
#!python
>>> import browser_cookie3
>>> cj = browser_cookie3.firefox()
>>> opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
>>> login_html = opener.open(url).read()
>>> get_title(login_html)
Примечание: в Python 3 модуль
urllib2
был разделён, и теперь для работы с HTTP-запросами нужно использовать urllib.request
. Соответственно, в командах нужно заменить #!python
на #!python3
, а также urllib2
на urllib.request
и др.Загрузка куков из всех браузеров:
#!python
>>> import browser_cookie3
>>> import requests
>>> cj = browser_cookie3.load()
>>> r = requests.get(url, cookies=cj)
>>> get_title(r.content)
В этом форке функциональность программы расширена в том числе на расшифровку паролей из браузеров на основе Chromium. Как отмечается в пул-реквесте, метод расшифровки паролей аналогичен методу расшифровки куков.
Chrome Password Grabber
Есть также отдельная утилита Chrome-Password-Grabber, которая создана только для извлечения паролей из Chrome.
Раньше Chrome хранил пароли во внутренней базе
Web Data
в папке текущего профиля пользователя, но в последних версиях база с паролями перенесена в новый файл Login Data
:Файл базы SQLite содержит несколько таблиц: учётные данные с паролями, а также автозаполнение, ключевые слова поиска и т. д.
Пароли хранятся в таблице
logins
вместе с URL сайта и именем пользователя. Вся информация в открытом виде, кроме паролей, которые зашифрованы.Google Chrome под Windows шифрует пароль с помощью функции
CryptProtectData
, встроенной в Windows. Функция считается безопасной, она использует Triple DES и создаёт ключи для шифрования, но их всё равно можно расшифровать, если войти под учётной записью пользователя. У функции есть «двойник», который выполняет противоположное действие, то есть расшифровку: CryptUnprotectData
. Этот компонент Windows используется в данном случае.Браузеры периодически изменяют способ хранения паролей и защиту, а также закрывают найденные уязвимости. Поэтому некоторые функции упомянутых инструментов перестанут работать с выходом новой версии браузера. Но даже в таком случае некоторые эксперты не рекомендуют хранить важные пароли в браузере. Для этого существуют специализированные парольные менеджеры: Bitwarden, LastPass, 1Password, KeepassXC и др.
Комментарии (2)
ThePaleEmperor
19.01.2025 19:51Если пользователь забыл мастер-пароль
Всем ведь и так ясно, для чего это будут использовать. Мы же все взрослые люди. Так зачем прикидываться? Почему не написать прадиво "как расшифровать украденные пароли и историю браузера жертвы"? Формальные издержки?
Тем более вот это в перечислении:
Извлекает и отображает историю просмотров Firefox пользователя.
Статья учит как красть пароли и историю, при этом пытась прикинуться белым рыцарем, чтобы сохранить репутацию автора публикации.
Те, кто хочет воразить, вы просто подумайте, что это в один день может быть использовано и против вас. Лично у меня уже крали пароли из браузеров - и статья этому только способствует и вооружает злонамеренных людей.
sena
Это извлечение будет работать только если не настроен master password?