
Armor — это простой Bash-скрипт, предназначенный для создания зашифрованных полезных нагрузок для macOS, способных обходить антивирусные сканеры.
Armor — это простой Bash-скрипт, предназначенный для создания зашифрованных полезных нагрузок для macOS, способных обходить антивирусные сканеры. Ниже приведен пример GIF-изображения использования Armor с простой нагрузкой на основе Netcat.

Слушатель Netcat запущен на порту 4444. Читается файл «payload.txt», который содержит простой однострочник на Bash, который при выполнении установит TCP-соединение между целевым MacBook и слушателем Netcat атакующего. Armor используется для шифрования этого однострочника. Ncat используется для размещения ключа дешифрования на сервере атакующего. Когда стейджер выполняется на целевом MacBook (не показано на GIF), однострочник Bash расшифровывается и выполняется без записи каких-либо данных на жесткий диск. Ncat немедленно завершает слушатель после использования ключа. После установки соединения Netcat атакующий получает удаленный доступ к целевому MacBook.
Справедливости ради, шифрование большинства нагрузок, специфичных для macOS, является излишним. Этот конкретный однострочник Bash способен обходить антивирус без помощи Armor. Но это всего лишь пример. Такая же степень запутывания может быть применена к сложным скриптам на Python, Ruby и Shell, предназначенным для выполнения разнообразных продвинутых атак.
Armor полагается на LibreSSL для шифрования входного файла и создания SSL-сертификата. Если LibreSSL не найден в системе, Armor попытается установить его. Функция для этого находится в файле armor.sh. Ncat также является зависимостью и может быть установлен в Kali с помощью команды $ apt-get update && apt-get install nmap.
Armor можно склонировать и выполнить с помощью следующих команд.
git clone https://github.com/tokyoneon/Armor
cd Armor/
chmod +x armor.sh
./armor.sh /path/to/payload.txt 1.2.3.4 443
Адрес 1.2.3.4 — это IP-адрес атакующего, где будет размещен ключ дешифрования. Это может быть локальный IP-адрес или VPS. Номер порта (443) произвольный и может быть изменен по мере необходимости.
Вопросы и предложения: