Mac на службе у хакера. Часть 6 – Настройка менеджера пакетов Homebrew

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 и выполните следующую команду:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Появится запрос на ввод пароля.

Рисунок 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 ~/filename.

Чтобы использовать Vim, откройте новое окно с iTerm или введите команду cd для перехода в домашнюю директорию, и запустите следующую команду (если .bashrc отсутствует, для создания этого файла введите команду touch .bashrc):

  • vim .bashrc

Далее в режиме вставки добавьте в конец файла следующую строку. Для добавления после курсора введите символ a, для добавления перед курсором – символ i.

  • export HOMEBREW_GITHUB_API_TOKEN="YOUR_TOKEN_HERE"

Строку YOUR_TOKEN_HERE необходимо заменить на созданный токен.

Рисунок 4: Содержимое файла .bashrc

Далее нажмите Esc для переключения в обычный режим и введите :wq для сохранения файла. Двоеточие означает начало команды, символы wq – сохранить изменения и завершить работу.
Затем необходимо отредактировать файл .bash_profile. Вводим следующую команду (если .bash_profile отсутствует, для создания этого файла введите команду touch .bash_profile):

  • vim .bash_profile

В конце файла добавьте следующую строку (схожим образом используйте символы a и i для добавления после и до курсора):

  • source .bashrc


Рисунок 5: Содержимое файла .bash_profile

После завершения редактирования нажмите Esc и введите команду :wq для сохранения изменений и выхода из редактора.

Далее укажем Bash, что нужно выполнить команды из файла .bashrc, как если бы эти команды запускались из командной строки:

  • source ~/.bashrc

Настройка токена завершена. Переходим к работе непосредственно с Homebrew.

Шаг 4: Использование Homebrew

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

  • brew help


Рисунок 6: Справочная информация о Homebrew

Очень простой менеджер пактов. Если вы знакомы с APT, то, возможно, найдете много общего между этими двумя приложениями.

Теперь попробуем установить какой-нибудь пакет. Я выбрал популярную утилиту Hydra, которая предназначена для брутфорса паролей. Вначале проверяем, есть ли этот пакет в репозитории, при помощи следующей команды:

  • brew search hydra

Далее смотрим информацию о найденном пакете, чтобы удостовериться, что это именно то приложение, которое мы ищем:

  • brew info hydra


Рисунок 7: Поиск и получение информации о пакете Hydra

Затем при помощи следующей команды устанавливаем пакет (я выбрал установку с графическим интерфейсом):

  • brew install hydra --with-gtk+

После завершения установки приложение готово к работе:


Рисунок 8: Графическая оболочка для приложения Hydra

Как вы могли убедиться, прочитав справку, обновление, удаление и другие операции с утилитами интуитивно понятны.

Заключение

Установка и поддержка пакетов при помощи Homebrew не составляет труда, особенно если у вас есть опыт работы с Linux. Перед установкой приложения с открытым исходным кодом я практически всегда вначале ищу в репозитории для Homebrew. Если пакет отсутствует, я скачиваю исходный текст с GitHub. Большинство нужд, связанных с приложениями, можно решить при помощи этих двух методов.


Тени в интернете всегда следят за вами

Станьте невидимкой – подключайтесь к нашему каналу.