
Framework C2 in C# incentrato sulle operazioni di Stage 1
Framework C# C2 incentrato sulle operazioni Stage 1
Atlas si basa sull'acquisizione di un punto d'appoggio in un ambiente e sul suo ulteriore utilizzo per introdurre armi C# (attualmente solo C#) tramite un impianto basato su HTTP. Al momento non è molto sicuro dal punto di vista OPSEC... per niente. Attualmente è mirato solo ad ambienti Windows
Nota: Le impostazioni di connessione predefinite sull'impianto sono impostate per connettersi a localhost sulla porta 8080; è possibile modificarle qui
Dopo aver generato un eseguibile del client, del teamserver e dell'impianto, basta eseguire Teamserver.exe per avviare il teamserver
Per avviare un nuovo listener, usa il comando StartListener. Questo comando richiede due parametri: il nome del listener e la porta su cui eseguirlo
Il comando Listeners elenca tutti i listener, ViewListener restituisce i dati sul listener specificato e RemoveListener può essere usato per rimuovere un listener dall'elenco
L'elenco degli impianti connessi può essere visualizzato usando il comando Implants
Connettersi a un impianto è semplice come Connect <ImpiantoId>. Avete colto il gioco di parole?... ok, adesso mi tolgo di mezzo. Così come il comando Connect viene usato per selezionare un impianto, ViewImplant può essere usato per visualizzare maggiori informazioni sull'impianto selezionato. Il comando Disconnect deseleziona l'impianto attualmente selezionato, come mostrato di seguito.
Per usare un'attività, questa deve prima essere selezionata usando SetTask. Le opzioni possono essere visualizzate usando TaskOpts e impostate usando SetTaskOpt. Le attività vengono eseguite usando SendTask
È possibile visualizzare l'output di un'attività eseguita in precedenza usando TaskOut. TasksOut può essere usato per visualizzare tutte le attività eseguite in precedenza relative all'impianto selezionato.
Atlas permette agli operatori di eseguire comandi sia PowerShell che Cmd usando rispettivamente le attività PSShell e CMDShell. PSShell apre un nuovo runspace ed esegue il comando, quindi anche se powershell.exe è nella lista nera, i comandi PowerShell possono comunque essere eseguiti. Questo metodo bypassa anche la Modalità Linguaggio Vincolato. CMDShell apre un processo cmd.exe e passa il comando al processo. L'esecuzione di un comando PowerShell è stata mostrata sopra, quindi non verrà ripetuta. Nota a margine su CMDShell, molti comandi comuni (inclusi, ma non limitati a, whoami, ipconfig, pwd e cd) sono stati implementati nella funzionalità dell'impianto per evitare la necessità di eseguire tali comandi tramite un processo cmd.exe.
Il caricamento degli assembly richiede alcuni passaggi, a differenza di qualcosa come CobaltStrike che fa tutto con execute-assembly. Innanzitutto, un operatore deve usare l'utilità ByteConvert (a ByteConvert va detto se il file è locale o remoto) per convertire un file archiviato localmente o remoto in un array di byte e memorizzarlo nella variabile assemBytes. Fatto ciò, l'attività Load viene usata per caricare l'assembly nel processo dell'impianto.
Per visualizzare gli assembly caricati nel processo dell'impianto, gli operatori possono usare le attività AssemQuery e AssemMethodQuery. La prima restituisce tutti gli assembly caricati, mentre la seconda restituisce tutti i metodi pubblici relativi a un assembly caricato.
Lo screenshot conferma che l'assembly TestAssem è stato effettivamente caricato nel processo dell'impianto.
AssemMethodQuery può quindi essere usato per restituire informazioni su TestAssem che un operatore può utilizzare per restituire dati utili all'esecuzione di metodi pubblici.
Atlas offre l'opzione di eseguire un assembly dal suo punto di ingresso o da un metodo esposto specifico. ExecuteAssem può essere usato per eseguire dal punto di ingresso. Questa attività richiede solo il nome dell'assembly. ExecuteAssemMethod permette l'esecuzione di altri metodi usando le informazioni recuperate da AssemMethodQuery.
Per un elenco completo delle funzionalità, visita il wiki
Apri il file .sln e compila tutti e 3 i componenti in modalità Release; le console di uscita e gli eseguibili dovrebbero essere generati in \bin\debug di ogni componente. Devo migliorare questo aspetto.
cpupload/downloadAtlas è stato progettato esclusivamente per scopi educativi/etici. Non approvo né sono responsabile per le azioni intraprese dagli utenti di Atlas.