Security
April 2, 2019

Удаленно сохраняем пароли из браузера Firefox

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

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

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

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

Итак, перейдём к сути.

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

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

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

Шаг 2. Скачиваем Dumpzilla

Все нужные пакеты на месте, качаем dumpzilla.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пока 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.

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

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

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

Сохраненные данные браузеров, содержащие десятки адресов электронной почты и паролей, свободно распространяются в сети. Если хакеры не продают ваши данные, то они наносят ущерб вашим учетным записям просто из развлечения.

Используйте мастер-пароль. Если сохранение паролей в Firefox — это удобство, которое вы не хотите терять, то используйте сильный мастер-пароль. Это создаст защиту умеренной силы против таких хакерских атак. Используйте хороший менеджер паролей. Менеджеры паролей предлагают улучшенную защиту сохраненных паролей.

Хакеры все еще могут извлекать данные с вашего компьютера и проводить брутфорс-атаки по базам данных менеджера паролей, но с сильным и уникальным паролем злоумышленникам придется потратить недели (или месяцы) на взлом базы данных.