Генерация beacon’ов под Linux для Cobalt Strike

от автора

Вступление

Cobalt strike — это мощный фреймворк для эксплуатации и пост-эксплуатации, применяемый в проведении тестирований на проникновение и эмуляции хакерских атак.

У данного инструмента есть такие функции, как:

  • Повышение привилегий.

  • Дамп паролей.

  • Сканирование сети.

  • Pivoting.

  • Просмотр файловой системы.

  • И многое другое.

Заражение хостов происходит с помощью так называемых beacon’ов, однако из коробки Cobalt позволяет генерировать нагрузки только для систем с ОС Windows, а в связи с импортозамещением и переходом на ОС семейства Linux возникает потребность в работе именно с такими системами.

В этой статье мы расскажем о дополнении к Cobalt Strike под названием CrossC2 Framework для решения данной задачи.

Данная статья представлена исключительно в образовательных целях. Red Team сообщество «GISCYBERTEAM» не несёт ответственности за любые последствия ее использования третьими лицами.

CrossC2 framework

CrossC2 — фреймворк, включающий в себя генератор beacon’ов для различных систем (Linux, MacOS и т.п.), а также набор скриптов для Cobalt Strike.

Beacon’ы представляют собой запускаемые файлы осуществляющие соединение с С2 сервером.

Скрипты, в свою очередь, позволяют Cobalt Strike работать с такими beacon’ами. Они предоставляют функционал, аналогичный некоторым штатным утилитам(работающим с windows), а также дополнительный, предназначенный только для работы с новыми ОС. Например, для новых соединений с таргетами на ОС Linux вам всё также доступен pivoting посредством SOCKS, файловый браузер и т.п., а также дополнительный функционал, такой как дамп паролей, ssh rootkit, запуск shell-кодов, скриптов и многое другое.

Установка

Сам CrossC2 framework располагается в репозитории по адресу.

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

  • CrossC2-GithubBot-2023-11-20.cna — основной скрипт для работы с новыми beacons.

  • CrossC2Kit-GithubBot-2023-11-20.zip — набор инструментов (проводятся через один скрипт в Cobalt Strike) для новых ОС.

  • genCrossC2.<Linux/MacOS/Win> — beacon генератор для вашей рабочей ОС (далее по тексту будем использовать genCrossC2.Linux).

Распаковываем CrossC2Kit-GithubBot-2023-11-20.zip в удобное для вас место.

Далее, если мы хотим пользоваться генератором прямо из интерфейса Cobalt Strike, надо немного настроить CrossC2.cna скрипт (CrossC2-GithubBot-2023-11-20.cna).

В строке, как показано ниже, меняем путь к genCrossC2.Linux.

$genCC2 = "/xxx/xx/xx/genCrossC2.Linux";  # <------— fix

Таким образом, когда вы будете создавать слушатель в Cobalt Strike, он автоматически сгенерирует для него beacon, загрузит его и сгенерированный скрипт на web-сервер в Cobalt Strike и выдаст вам пэйлоад.

Сам пэйлоад получится в виде запуска подтягивающегося через curl-скрипта, в котором прописана загрузка и запуск исполняемого файла beacon.

Но у нас, к сожалению, так и не получилось заставить этот метод работать. Скорее всего по причине того, что даже явно используя функцию создания reverse https слушателя, она почему-то создает bind tcp-слушатель, который в свою очередь, по заявлению авторов, в текущей версии не поддерживается beacon’ами (пока имеем поддержку только https).

Следующим этапом нам необходимо войти в интерфейс Cobalt Strike. В верхнем меню, во вкладке Cobalt Strike, надо открыть Script Manager.

В появившемся снизу окне, надо загрузить 3 скрипта:

  • CrossC2-GithubBot-2023-11-20.cna.

  • CrossC2Kit.cna (где находятся распакованные объекты архива CrossC2Kit-GithubBot-2023-11-20.zip).

  • СrossC2Kit_Loader.cna (где находятся распакованные объекты архива CrossC2Kit-GithubBot-2023-11-20.zip).

Нажимаем кнопку Reload.

Если всё ок, в меню сверху появится новая вкладка «CrossC2«.

Генерация beacon и подключение

Для генерации beacon’ов вам потребуется файл .cobaltstrike.beacon_keys с сервера. Его можно найти в директории, где у вас лежат все серверные файлы. И если сервер удаленный, то требуется скачать его к себе на машину.

  • Первым делом создаем https-слушатель.

  • В появившемся окне заполняем ip-адреса и порт.

  • Теперь с помощью генератора приступаем к созданию beacon-нагрузки. Параметры:

genCrossC2 <listener-ip/domain> <listener-port> <beacon_keys> <rebind_library;config.ini;c2profile.profile> <target_platform> <target_arch> <filename>
  • Доставляем данный файл на машину жертвы и запускаем. Если всё успешно, то в интерфейсе Cobalt Strike появится новое подключение.

Использование

По нажатию правой кнопки мыши по beacon появляется меню. Там есть как стандартные функции, так и функции из CrossC2 Kit.

Pivoting

Работает также, как и в стандартной нагрузке Cobalt Strike.

ElevateKit

Работать не будет, поддерживается только под операционные системы Windows.

CrossC2 Kit

Основной дополнительный функционал от модуля находится во вкладке CrossC2 Kit.

В данном фреймворке полностью поддерживается функционал файлового браузера.

И список текущих процессов.

Если же перейти в интерактивный режим (interact), у вас откроется специальная ssh-сессия. SSH тут со своей оболочкой и понимает некоторые команды. По большей части, все функции из графического интерфейса — это просто продублированные команды из данного CLI.

Описание доступных команд:

Command                   Description -------                   ----------- !                         Запустить команду из истории bash                      CrossC2 Bash Script - Запустить скрипт в памяти cancel                    Отменить текущую загрузку cat                       Отобразить содержимое файла cc2_auth                  CrossC2 auth rootkit - Получить пароль для аутентификации (sshd/sudo/su/passwd...). cc2_frp                   CrossC2 proxy frp  -  Запустить Linux/MacOS SOCKS5 proxy {TCP/KCP(UDP)} cc2_iMessage_dump         CrossC2 iMessage dump - дамп сообщений из iMessage. cc2_inject                CrossC2 inject процесса cc2_job                   CrossC2 joblist - Управление запущенными задачами cc2_keychain_dump         CrossC2 Keychain dump (root) - Дамп login username & password из Keychain. cc2_keylogger             CrossC2 keylogger - Слушать строку, введенную пользователем с клавиатуры. cc2_mimipenguin           CrossC2 mimipenguin - Дамп login, password с текущего рабочего стола Linux cc2_prompt_spoof          CrossC2 prompt_spoof - (AppStore) Всплывающий интерфейс предлагает пользователю ввести пароль, похищая введенный пароль cc2_safari_dump           CrossC2 safari dump - Дамп истории браузера из Safari(default 500). cc2_script                CrossC2 Script - Запустить скрипт в памяти cc2_shellcode             CrossC2 Запустить шеллкод cc2_ssh                   CrossC2 SSH rootkit - Получить пароль ssh для входа в другие целевые объекты. cd                        Сменить директорию clear                     Очистить очередь задач connect                   Подключиться к Beacon peer по TCP download                  Скачать файл downloads                 Посмотреть файлы в процессе загрузки exit                      Завершите этот сеанс getsystem                 Повысить уровень сеанса с временными правами доступа uid=0 к root-сеансу head                      Напечатать первые 10 строк файла help                      Help меню history                   Показать историю команд note                      Заметка к сессии perl                      CrossC2 Perl Script - Запустить Perl скрипт в памяти php                       CrossC2 PHP Script - Запустить PHP скрипт в памяти pwd                       Текущая директория python                    CrossC2 Python Script - Запустить Python скрипт в памяти python-import             aaa rportfwd                  Установить обратную переадресации порта rportfwd_local            Установить обратную переадресации порта через Cobalt Strike client ruby                      CrossC2 Ruby Script - Запустить Ruby скрипт в памяти setenv                    Установить переменные виртуального окружения shell                     Запустить команду в shell sleep                     Установить время ожидания родительского beacon socks                     Запуск/остановка сервера SOCKS4a для ретрансляции трафика spawn                     Создать новую сессию sudo                      Запустить команду от sudo tail                      Напечатать последние 10 строк файла unlink                    отключить дочерний сеанс TCP-beacon upload                    Загрузить файл

Важно отметить, что помимо всех выше перечисленных команд от скриптов CrossC2 Kit, работают ещё два скрипта: cc2FilesColor.cna и cc2ProcessColor.cna.

Они видоизменяют вывод команд ls и ps, таким образом, что там появляются полезные хайлайты.

ls:

[] Colors scheme: [] --------------------------- [] Directories:  YELLOW [] Cobalt Strike Uploaded Files: BLUE [] Sensitive files:  RED [] Configuration files:  DARK GREEN [] Archives:  ORANGE [] Source codes:  DARK BLUE [] Executables:  MAGENTA [] Documents:  GREEN 

ps:

[] Process List with process highlighting [] Current Running PID:  Yellow 1250305 [] Explorer/Winlogon:  BLUE [] Admin Tools:  LIGHT BLUE [] Browsers:  GREEN [] AV/EDR:  RED  

Заключение

В данной статье мы рассмотрели замечательный фреймворк CrossC2, который решает проблему подключения к Cobalt Strike хостов с операционными системами на базе Linux и MacOS не предусмотренных стандартным функционалом данного решения.

Подписывайтесь на наш Telegram-канал https://t.me/giscyberteam


ссылка на оригинал статьи https://habr.com/ru/articles/797277/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *