Извлечение паролей из разных браузеров

Добро пожаловать на наш форум!

Спасибо за посещение нашего сообщества. Пожалуйста, зарегистрируйтесь или войдите, чтобы получить доступ ко всем функциям.


Gibby

Автор
Команда проекта

Регистрация
Сообщений
1,635
Репутация
45
Сделок
1.png

Если пользователь забыл мастер-пароль от парольного менеджера Bitwarden, 1Password, KeepassXC, то пароли невозможно восстановить. Другое дело — встроенные парольные менеджеры браузеров Chrome и Firefox, для расшифровки которых есть специальные инструменты. Этот факт следует иметь в виду при хранении пользовательских данных — и не допускать, чтобы злоумышленник получил физический или удалённый доступ к компьютеру с правами пользователя.


Firefox Passwords Decryptor

Консольная утилита Firefox Passwords Decryptor предназначена в первую очередь для расшифровки паролей, но также проводит анализ безопасности учётных данных и предлагает дополнительные возможности по быстрому сбору информации о системе (см. ниже).

Вполне вероятно, что подобные инструменты используют сотрудники правоохранительных органов, но они также полезны в повседневной работе системного администратора и специалиста по безопасности.

Процесс расшифровки паролей Firefox включает в себя следующие этапы:

  1. Извлечение общей соли: процесс начинается с получения глобальной соли из файла key4.db, закладывая основу для генерации ключа.
  2. Генерация ключа с помощью PBKDF2: используется PBKDF2 с хэшированием SHA-256 для создания ключа дешифрования из глобальной соли.
  3. Разбор закодированных данных ASN.1: анализирует закодированные структуры ASN.1 для извлечения зашифрованных учётных данных вместе с их соответствующими алгоритмами и векторами инициализации (IV).
  4. Расшифровка AES/Triple DES: в зависимости от заданного алгоритма расшифровывает учётные данные, используя сгенерированный ключ и IV.
  5. Удаление набивки: удаление набивки из расшифрованных данных, чтобы расшифровать имена пользователей и пароли.

Дополнительные функции:

  • Информация о системе, включая имя хоста, ОС, архитектуру, количество CPU и памяти.
  • Перечисляет открытые порты и идентифицирует процессы, использующие их.
  • Выводит список подключённых USB-устройств.
  • Извлекает и отображает историю просмотров Firefox пользователя.


Browser Cookie


Ещё одна утилита Browser Cookie извлекает куки из всех популярных браузеров: Chrome, Firefox, LibreWolf, Opera, Opera GX, Edge, Chromium, Brave, Vivaldi и Safari, а пароли — только из браузеров на основе Chromium. Она представляет собой питоновский форк одноимённой программы от Ричарда Пенмана, который работает бэкенд-инженером в Google.

Как понятно из названия, изначально инструмент создавался для просмотров куков: он загружает их в просматриваемый объект cookiejar. Во всех браузерах куки хранятся в базе SQLite.

Установка:

Python:
$ pip install browser-cookie3

2.png
Использование для загрузки и просмотра куков (в данном примере пройдена авторизация на сайте Bitbucket в браузере Firefox):

Python:
#!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:
#!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:

3.png
Файл базы SQLite содержит несколько таблиц: учётные данные с паролями, а также автозаполнение, ключевые слова поиска и т. д.

Пароли хранятся в таблице logins вместе с URL сайта и именем пользователя. Вся информация в открытом виде, кроме паролей, которые зашифрованы.

Google Chrome под Windows шифрует пароль с помощью функции CryptProtectData, встроенной в Windows. Функция считается безопасной, она использует Triple DES и создаёт ключи для шифрования, но их всё равно можно расшифровать, если войти под учётной записью пользователя. У функции есть «двойник», который выполняет противоположное действие, то есть расшифровку: CryptUnprotectData. Этот компонент Windows используется в данном случае.




Браузеры периодически изменяют способ хранения паролей и защиту, а также закрывают найденные уязвимости. Поэтому некоторые функции упомянутых инструментов перестанут работать с выходом новой версии браузера. Но даже в таком случае некоторые эксперты не рекомендуют хранить важные пароли в браузере. Для этого существуют специализированные парольные менеджеры: Bitwarden, LastPass, 1Password, KeepassXC и др.
 
Сверху