
Если пользователь забыл мастер-пароль от парольного менеджера 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 и др.
Комментарии (10)
 - ThePaleEmperor19.01.2025 19:51- Если пользователь забыл мастер-пароль - Всем ведь и так ясно, для чего это будут использовать. Мы же все взрослые люди. Так зачем прикидываться? Почему не написать прадиво "как расшифровать украденные пароли и историю браузера жертвы"? Формальные издержки? - Тем более вот это в перечислении: - Извлекает и отображает историю просмотров Firefox пользователя. 
 - Статья учит как красть пароли и историю, при этом пытась прикинуться белым рыцарем, чтобы сохранить репутацию автора публикации. - Те, кто хочет воразить, вы просто подумайте, что это в один день может быть использовано и против вас. Лично у меня уже крали пароли из браузеров - и статья этому только способствует и вооружает злонамеренных людей.  - vikarti19.01.2025 19:51- Внезапно не только. - Функционал миграции логинов и паролей между браузера по прямому запросу(тот что после установки ЯндексБраузера или Firefox позволяет подтянуть пароли Chrome) - как иначе сделать? Да, логичнее сделать нормальный API с запросом пользователя ну так где он? 
  - Nansch19.01.2025 19:51- У вас и жизненный опыт быть обворованным и информация о методах воровства. Будете дальше упорствовать, сохраняя пароли в браузере? - Правдиво писать в данном случае даже глупо, т.к. оценка тут зависит от накрученности оценивающего. На войну идут не только родину защищать, но и законно поучаствовать в массовых убийствах. 
 
 - Traveller096819.01.2025 19:51- Я до сих пор не понимаю, а почему у браузеров нет такой функции что бы при запуске он запрашивал пароль на открытие, или это совсем лишний функционал? Современные встроенные в браузеры менеджеры паролей мне почему то напоминают вот это:  - sena19.01.2025 19:51- Не знаю про все браузеры, но Мозилла так и делает - при старте спрашивает мастер-пароль. А статья, судя по всему, про тот случай, когда мастер-пароль не установлен. Иначе уже поднялся бы шум на весь Интернет.  - Traveller096819.01.2025 19:51- Ну да, FireFox можно на это настроить, а вот в Chrome вообще ни каких защит не предусмотрено, я когда то им пользовался, было там одно расширение которое как раз устанавливало защиту на открытие, но потом его почему то посчитали небезопасным и заблокировали, ага, а просто так что бы открывалось со всем исподним, это типа вверх безопасности... :)))  - sena19.01.2025 19:51- Разработчики Мозиллы тоже убрали мастер-пароль, но только из Андроида, после того как в Андроиде ввели шифрование данных и контейнеризацию. А если ты не настроил пароль на свой телефон, то ССЗБ. - Это, конечно, плохо. Что сказать, пользуйтесь Мозиллой. 
 
 
 
 - PNAGAEV19.01.2025 19:51- Как-то раз помогал пользователю удалённо и заметил, что она использовала сохранённые пароли. Когда начал ей рассказывать, что пароль может быть "угнан". Она сказала, что это прекрасно понимает, поэтому хранит там только первую часть пароля, а вторую часть она вбивает руками. :-) 
 
           
 
sena
Это извлечение будет работать только если не настроен master password?
yrub
вопрос актуальный, т.к. я тоже пользуюсь master password, но такое чувство что автор репостнул, но сам не знает деталей ;) если знает, то ждем ответа