
Модульные тесты для синих команд, помогающие создавать методы обнаружения некоторых распространенных методов пост-эксплуатации в macOS.
Юнит-тесты для синих команд, помогающие в создании детекций для некоторых распространенных методов постэксплуатации macOS. Я включил несколько примеров постэксплуатации, использующих как историю командной строки, так и вызовы API. Включенные здесь примеры постэксплуатации не являются исчерпывающими. Вместо этого это просто несколько распространенных примеров, которые, как мне показалось, будут полезны для проведения юнит-тестов. Я планирую со временем продолжать добавлять в этот проект дополнительные юнит-тесты.
Все эти тесты выполняются локально и возвращают результаты в stdout (т.е. Swift-Attack не подключается к серверу).
git clone https://github.com/cedowens/Swift-Attack && cd Swift-Attack
Убедитесь, что у вас установлены swift и инструменты разработчика (можно установить из Mac App Store)
Соберите calc.c для теста внедрения dylib:
gcc -dynamiclib -o calc.dylib calc.c
swiftc -o Swift-Attack swift-attack.swift
./Swift-Attack -h

Примечание: Другие зависимости TTP указаны ниже:
Вы можете запустить Swift-Attack с одной опцией или несколькими опциями
./Swift-Attack [option1] [option2]...
Я также включил простой файл macro.txt (необфусцированный) для тестирования отношений родитель-потомок при выполнении макросов Office в macOS. Я не обфусцировал его, так как основное внимание уделяется видимости/обнаружению отношений родитель-потомок. Если вы хотите протестировать с обфусцированным макросом, у меня есть репозиторий на github.com/cedowens/MacC2, который содержит обфусцированный макрос.
Я включил только два теста персистентности (Launch Agent и Login Item). Ознакомьтесь с репозиторием Leo Pitt persistent JXA https://github.com/D00MFist/PersistentJXA для более полного списка примеров персистентности.
Prompt с использованием бинарного файла osascript
Prompt через вызовы API
Сброс буфера обмена с использованием бинарного файла osascript
Сброс буфера обмена через вызовы API
Снимок экрана с использованием бинарного файла screencapture
Снимок экрана через вызовы API
Сброс истории zsh
Перечисление инструментов безопасности
Получение информации о системе с использованием бинарного файла osascript
Получение информации о системе через вызовы API
Сброс ключей SSH, AWS, GCP и Azure с диска
Сброс истории браузера (Chrome, Safari, Firefox)
Сброс истории карантина
Office Macro: Я включил простой макрос Office, который подключается к localhost. Примечание: макрос вызовет curl для GET-запроса через python на http://127.0.0.1/testing при выполнении (нажатие кнопки "Enable Macros"). Это позволит вам протестировать детекции отношений родитель-потомок при выполнении макросов. Примечание: этот простой тест не включает обфускацию, так как тест больше ориентирован на отношения родитель-потомок. Вы можете использовать другой мой репозиторий https://github.com/cedowens/MacC2 для тестирования с обфусцированными макросами. Чтобы использовать, просто вставьте содержимое "macro.txt" в документ Office, сохраните как документ с поддержкой макросов или в формате 97-2004 (например, .doc, .xls и т.д.) и нажмите "Enable Macros" при открытии документа для выполнения.
Пакет установщика: Я включил файл TestInstaller.pkg для тестирования детекций для базового пакета установщика. Этот пакет установщика включает скрипт preinstall, который запускается в bash и помещает com.simple.agent.plist в /Library/LaunchDaemons/ и test.js (простой всплывающий prompt) в /Library/Application Support/. Файл com.simple.agent.plist просто запускает osascript против /Library/Application Support/test.js. Он также включает скрипт postinstall, который запускается в bash и загружает com.simple.agent.plist с помощью launchctl load. Удерживая клавишу Control, нажмите Открыть на TestInstaller.pkg для запуска. TestInstaller.pkg поместит вышеупомянутые файлы от root.
Полезные нагрузки обхода CVE-2021-30657: Два образца полезных нагрузок (оба выполняют запросы curl к localhost при детонации) для тестирования двух типов полезных нагрузок, использующих CVE-2021-30657. Подробнее здесь: https://cedowens.medium.com/macos-gatekeeper-bypass-2021-edition-5256a2955508
Персистентность Launch Agent
Персистентность Login Item
Доступ/копирование базы данных пользовательской связки ключей
Внедрение dylib
Сброс куки Chrome