Mac на службе у хакера. Часть 1 – Шифрование диска
Первая статья будет посвящена шифрованию диска, что поможет защититься от всех интересующихся нашими битами и байтами.
Так повелось, что большая часть руководств по взлому и пентестам пишется с позиции Linux-пользователя. Существуют, конечно, исключения из этого правила, но в целом складывается впечатление, что ОС Linux единственная система, которая пригодна для подобного рода задач. На самом деле эта идея не далека от истины, поскольку правильная настройка систем от компании Apple для нужд специалиста по безопасности – не такая простая задача.
До появления macOS (когда была система OS X) проведение исследований, связанных с безопасностью, на машинах от Apple было немного комичным. Подходящих инструментов было мало, а аппаратная часть была заточена под специфические нужды. Как итог, у разработчиков не было особой мотивации для адаптации своих творений, поскольку OS X занимала небольшую долю рынка и была малопригодна для серьезных дел. В тот момент на сцене господствовали Windows и Linux.
Но времена изменились, и теперь macOS – серьезный конкурент в борьбе за внимание специалистов по безопасности. На данный момент эта система занимает 7,4 и 13% рынка в мире и США соответственно.
На Apple-машинах работает вариант ОС UNIX, совместимый со стандартном POSIX, а аппаратная часть ничем не отличается от начинки современных компьютеров, что позволяет запускать большинство утилит, используемых пентестерами, в ОС Mac. Кроме того, на Apple-машинах можно с легкостью запускать и Windows и Linux. Короче говоря, на систему macOS, которой к тому же легко пользоваться и обслуживать, как минимум, стоит обратить свое внимание.
Эта серия статей была задумана с целью помочь вам преодолеть первоначальные препятствия, связанные с настройкой системы macOS. Как только среда будет готова, при работе с утилитами не возникнет никаких сложностей.
Кроме того, будет совершенно нелишним изучать азы текстового редактора Vim, функционал которого схож и в Linux и в Mac.
После ознакомления и выполнения инструкций из всех руководств, у вас будет настроенный Mac, пригодный для выполнения тестов на проникновение. К тому же, вы поймете, почему эти вещи жизненно важны. Если базовые утилиты для настройки системы могут отличаться в зависимости от платформы, основные концепции остаются неизменными. Вы получите знания, которые пригодятся не только при работе с macOS, но и со всеми остальными платформами.
Начиная повествование первой части, я предполагаю, что у вас есть чистая система с macOS. В противном случае, могут возникнуть некоторые расхождения в процедуре настройки.
Первая статья будет посвящена шифрованию диска, что поможет защититься от всех интересующихся нашими битами и байтами. Кроме того, использование шифрование уже стало стандартом вне зависимости о того, на какой стороне вы находитесь, темной или светлой. После того как методы шифрования стали доступны повсеместно, причины работать в открытую просто отсутствуют.
Мы будем использовать FileVault (средство, встроенное в ОС Mac), которое позволяет полностью зашифровать диск в 128-битном режиме XTS-AES. Эта схема шифрования рекомендуется Национальным институтом стандартов и технологий (NIST), совместима с Федеральным стандартом по обработке информации и пригодна к использованию в подотчетных отраслях, таких как правительство и медицина. То есть схема достаточно надежная.
Шаг 1: Переход во вкладку FileVault
Зайдите в System Preferences и в первом ряду выберите Security & Privacy. В качестве альтернативного варианта можно воспользоваться следующей командой (просто скопируйте команду в терминал и нажмите Enter). Опция –b (bundle identifier; идентификатор набора) говорит о том, что нужно открыть файл Security.prefPane с системными настройками.
- open -b com.apple.systempreferences /System/Library/PreferencePanes/Security.prefPane
Рисунок 1: Панель системных настроек
Далее зайдите в раздел Security & Privacy и выберите вкладку FileVault. Чтобы внести изменения, вам потребуется кликнуть на замок в левой нижней части окна и во всплывающем окне и ввести параметры (имя и пароль) административной учетной записи.
Рисунок 2: Вкладка для настройки шифрования диска
Шаг 2: Включение FileVault
Перед тем как нажать на кнопку «Turn On FileVault», необходимо ознакомиться с предупреждением, которое отображено на экране.
Предупреждение: Для доступа к данным вам необходим пароль для входа или ключ восстановления. Ключ восстановления автоматически генерируется во время настройки. Если вы забудете пароль и ключ восстановления, информация будет утеряна.
Перечитайте предыдущий абзац еще раз. Потеря пароля и ключа эквивалентна удалению всей информации, поскольку нужно сделать именно такую операцию, чтобы ваш Mac стал снова в рабочем состоянии.
Далее нажмите на кнопку «Turn On FileVault».
В зависимости от того, вошли ли вы через iCloud или нет (для версий Yosemite и выше), появится диалоговое окно с вопросом о том, хотите ли вы использовать учетную запись в iCloud или ключ восстановления для обнуления пароля в случае утери. Я предпочитаю хранить копию ключа в надежном месте, поскольку облако, по сути своей, является чьим-то компьютером. (Если вы не залогинились в iCloud, то сразу же увидите ключ восстановления).
После того как вы определились со способом хранения ключа, нажмите Continue.
Рисунок 3: Выбор способа разблокировки диска
Чтобы сохранить ключ в безопасности, перед тем как продолжить, я скопирую текст в документ, распечатаю на бумаге и уберу распечатку в безопасное место. Никогда не храните ключ на машине. Если вы забудете пароль, у вас не будет доступа к ключу, и вы не сможете разблокировать систему.
После того как ключ сохранен в надежном месте, еще раз нажмите Continue.
Рисунок 4: Ключ для восстановления системы в случае утери пароля
Если в системе есть другие пользователи, появится диалоговое окно, где можно выдать разрешение нужным пользователям. Для разблокировки диска соответствующий пользователь должен ввести свой пароль. Естественно, нужно разрешить разблокировку для административной учетной записи. Остальные пользователи — на ваше усмотрение. Далее опять нажмите на кнопку Continue.
Рисунок 5: Разрешение на разблокировку диска для пользователей
Шаг 3: Перезагрузка системы
По окончанию настройки появится сообщение о перезагрузке. Если нужно, сохраните ранее сделанную работу, и выполните перезагрузку систему.
После инициации перезагрузки FileVault начнет шифровать диск в фоновом режиме, что может вызвать серьезные замедления до тех пор, пока весь процесс не закончится. Время шифрования зависит от размера диска. Наблюдать степень завершения процесса можно во вкладке FileVault.
Рисунок 6: Шифрование диска
Примечание: Если у вас современная система с SSD процесс шифрования и дешифрования будет происходить значительно быстрее по сравнению с HDD дисками. Если скорость загрузки для вас важна, вы находитесь на темной стороне и должны шифроваться в обязательном порядке, то вероятно вам будет полезен этот совет.
Шаг 4: Проверка ключа
Завершающий шаг – проверка ключа, чтобы убедиться, что вы можете расшифровать диск в любой момент (этот функционал доступен в версиях Mavericks и выше). Для проверки мы будем использовать приложение Terminal из папки Utilities внутри директории Applications.
Рисунок 7: Командная строка в терминале
В окне терминала введите следующую команду и нажмите Enter:
sudo fdesetup validaterecovery
Появится запрос на ввод административного пароля. Во время ввода символы пароля не будут видны. После ввода нажмите Enter.
Затем появится запрос на ввод ключа восстановления, который должен быть в формате xxxx-xxxx-xxxx-xxxx-xxxx-xxxx. Как и в случае с административным паролем, вводимые символы ключа вы не видите. Поэтому либо вводите медленно, либо скопируйте в текстовый документ, а потом вставьте в терминал и нажмите Enter.
Если ключ корректный, шелл вернет значение true.
Рисунок 8: Результаты проверки ключа
Причин неудачной проверки может быть несколько: либо ключ набран неверно, либо скопирован неверно, либо поврежден. Если вы уверены, что ключ верный, необходимо зайти в настройки File Vault, отключить эту функцию и повторить весь процесс, начиная с шага 2.
Теперь ваш диск готов к работе
После завершения процесса ваш диск стал зашифрован. Только не забывайте, что диск защищен только, когда компьютер выключен.
Росс Ульбрихт (Ross Ulbricht), один из известных операторов проекта Silk Road, использовал шифрование диска для защиты ноутбука, но не придерживался других правил безопасности. Агенты ФБР перед захватом дождались, когда Росс авторизуется, и диск расшифруется. В итоге Ульбрихт получил пожизненное заключение.
Старайтесь не повторять подобного рода ошибок.
В следующих статьях мы поговорим о шифровании образов дисков, об использовании приложений KeePass, Terminal и т. д.
Источник
Mac на службе у хакера. Часть 6 – Настройка менеджера пакетов Homebrew
Половина пути по настройке Mac для нужд пентестера уже пройдена, и теперь, после ознакомления с основами Git, настало время научиться использовать менеджер пакетов.
Автор: Barrow
Половина пути по настройке Mac для нужд пентестера уже пройдена, и теперь, после ознакомления с основами Git, настало время научиться использовать менеджер пакетов.
Без помощи менеджера пакетов в среде Linux/Unix вы будете делать много дополнительной работы. То есть, если вы захотите опробовать новую утилиту, то придется выполнять компиляцию исходников. Конечно, можно воспользоваться Mac App Store, однако большинство нужных нам утилит с открытым исходным кодом, которыми пользуются хакеры и профессионалы по безопасности, там отсутствуют.
Чтобы приложение появилось в Mac App Store разработчик должен заплатить деньги, а код утилиты пройти проверку со стороны сотрудников Apple, что, как вы понимаете, вносит дополнительные сложности. В общем, нам нужен альтернативный менеджер пакетов для загрузки и установки свободного программного обеспечения такого как Hydra, Aircrack-ng, GNU Coreutils (если вы, как и я, тяготеете больше к Linux, чем к Unix) или некоторые зависимости для утилит, которые размещаются на GitHub.
Почему без менеджера пакетов жизнь становится сложнее
Если бы я захотел скомпилировать Aircrack-ng из исходных текстов на моей машине с macOS, то вначале мне нужно было бы удостовериться, что присутствуют в нужных местах и работают корректно все необходимые зависимости. Затем мне потребовалось бы загрузить и сконфигурировать Aircrack-ng, выполнить компиляцию и попутно решить все возникающие проблемы.
Через несколько месяцев мне потребовалось бы обновить скомпилированное приложение. То есть нужно было бы удалить ранее установленное приложение, проверить, все ли библиотеки последних версий и повторить процесс заново.
атем проверить, есть ли зависимости, которые больше не используются (пришлось бы отслеживать, что установлено ранее).
В случае с менеджером пакетов, все вышеупомянутые операции выполняются в автоматическом режиме.
Выбор подходящего менеджера пакетов
Существует несколько менеджеров пакетов для macOS (например, Macports и Nix), но я предпочитаю Homebrew, поскольку у этого приложения интуитивно понятный синтаксис, высокая скорость и хорошая поддержка пакетов. Кроме того, Homebrew больше использует стандартные библиотеки, встроенные в macOS, вместо установки новых. Еще одно удобство: можно работать от имени обычного пользователя, и нет необходимости в использовании sudo. И самый главный плюс: Homebrew хранит всю информацию внутри своей песочницы в папке /usr/local.
При скачивании исходных текстов и бинарных файлов этот менеджер пакетов попутно скачивает все необходимые зависимости. Далее Homebrew отслеживает все, что установлено, и в какой директории. Кроме того, отслеживается информация о конфигурации. Короче говоря, поддержка программного обеспечения сильно упрощается.
Вначале я буду искать нужный мне пакет в резпозитории Homebrew прежде чем клонировать с GitHub и компилировать исходные тексты. Если пакет не найден через Homebrew, можно попробовать создать новую формулу для отсутствующего пакета. Хотя в резпозитории Homebrew не особо много приложений, используемых пентестерами, однако много библиотек и других полезных утилит с открытым исходным кодом.
Шаг 1: Установка Homebrew
Первый шаг – скачать Homebrew с сайта http://brew.sh. Перед установкой нелишним будет проверить исходный код установочного скрипта. В целом, я не очень люблю пользоваться скриптами из интернета, но в случае с Homebrew я доверяю коду, который хранится в репозитории. Во-первых, исходники хранятся на GitHub и доступны для изучения. Во-вторых, у автора нет доступа к внутренней кухне GitHub, и нет возможности поиска и подключения к каналам, используемым cURL.
Откройте iTerm и выполните следующую команду:
Появится запрос на ввод пароля.
Рисунок 1: Установка Homebrew
Шаг 2: Создание токена доступа
Если вы выполняете поиск в репозитории brew достаточно часто, вам понадобится токен доступа поскольку GitHub API имеет ограничение на количество запросов.
Рисунок 2: Ошибка при поиске в репозитории, связанная с ограничением количества запросов
Чтобы настроить токен, нужно перейти по ссылке из терминала, залогиниться на GitHub и удостовериться, что сняты все флажки, поскольку нам нужен только токен.
Рисунок 3: Настройка нового токена
В самом низу страницы нажмите на «Generate Token». Далее нужно добавить созданный токен в Homebrew.
Шаг 3: Добавление токена
Чтобы добавить созданный токен, нужно отредактировать файлы .bashrc и .bash_profile, которые находятся в вашей домашней директории. Файл .bash_profile представляет собой персональный файл для инициализации, используемый во время авторизации в шелле (через SSH или консоль), в то время как .bashrc используется при каждом открытии нового экземпляра шелла после авторизации.
Мы можем один раз связать .bash_profile с .bashrc и затем все настройки перенести в .bashrc. В этом случае, если, например, мы подключимся к системе через SSH, то будем иметь среду с теми же настройками, что и в локальном терминале.
Для редактирования файлов я буду использовать Vim, однако вы можете работать с любым привычным вам текстовым редактором, либо стандартным редактором, если в терминале введете команду open
Чтобы использовать Vim, откройте новое окно с iTerm или введите команду cd для перехода в домашнюю директорию, и запустите следующую команду (если .bashrc отсутствует, для создания этого файла введите команду touch .bashrc):
Далее в режиме вставки добавьте в конец файла следующую строку. Для добавления после курсора введите символ a, для добавления перед курсором – символ i.
Строку YOUR_TOKEN_HERE необходимо заменить на созданный токен.
Рисунок 4: Содержимое файла .bashrc
Далее нажмите Esc для переключения в обычный режим и введите :wq для сохранения файла. Двоеточие означает начало команды, символы wq – сохранить изменения и завершить работу.
Затем необходимо отредактировать файл .bash_profile. Вводим следующую команду (если .bash_profile отсутствует, для создания этого файла введите команду touch .bash_profile):
В конце файла добавьте следующую строку (схожим образом используйте символы a и i для добавления после и до курсора):
Рисунок 5: Содержимое файла .bash_profile
После завершения редактирования нажмите Esc и введите команду :wq для сохранения изменений и выхода из редактора.
Далее укажем Bash, что нужно выполнить команды из файла .bashrc, как если бы эти команды запускались из командной строки:
Настройка токена завершена. Переходим к работе непосредственно с Homebrew.
Шаг 4: Использование Homebrew
Homebrew во многом схож с другими менеджерами пакетов, используемыми в Linux. Перед началом работы ознакомимся со справочной информацией при помощи следующей команды:
Рисунок 6: Справочная информация о Homebrew
Очень простой менеджер пактов. Если вы знакомы с APT, то, возможно, найдете много общего между этими двумя приложениями.
Теперь попробуем установить какой-нибудь пакет. Я выбрал популярную утилиту Hydra, которая предназначена для брутфорса паролей. Вначале проверяем, есть ли этот пакет в репозитории, при помощи следующей команды:
Далее смотрим информацию о найденном пакете, чтобы удостовериться, что это именно то приложение, которое мы ищем:
Рисунок 7: Поиск и получение информации о пакете Hydra
Затем при помощи следующей команды устанавливаем пакет (я выбрал установку с графическим интерфейсом):
- brew install hydra —with-gtk+
После завершения установки приложение готово к работе:
Рисунок 8: Графическая оболочка для приложения Hydra
Как вы могли убедиться, прочитав справку, обновление, удаление и другие операции с утилитами интуитивно понятны.
Заключение
Установка и поддержка пакетов при помощи Homebrew не составляет труда, особенно если у вас есть опыт работы с Linux. Перед установкой приложения с открытым исходным кодом я практически всегда вначале ищу в репозитории для Homebrew. Если пакет отсутствует, я скачиваю исходный текст с GitHub. Большинство нужд, связанных с приложениями, можно решить при помощи этих двух методов.
Источник