
ARTi-C2 è un framework di post-exploitation utilizzato per eseguire casi di test Atomic Red Team con capacità di distribuzione ed esecuzione rapida di payload tramite DLR di .NET.
ARTC2 è un framework di esecuzione moderno che aiuta i team di sicurezza a scalare l'esecuzione di scenari di attacco da singoli e molteplici punti di violazione. L'obiettivo è produrre intelligence d'attacco utilizzabile per migliorare l'efficacia dei prodotti di sicurezza e la risposta agli incidenti.
Le funzionalità e capacità principali di ARTC2 provengono da SILENTTRINITY, e i test atomici eseguiti tramite Boo provengono da ATOMIC-RED-TEAM. Tutti gli altri miglioramenti funzionali sono stati sviluppati per garantire che l'arte operativa, l'agilità, la scalabilità e l'esecuzione rapida non siano compromesse.
| CAPACITÀ | DESCRIZIONE |
|---|
| Distribuzione rapida | Automatizza e scala gli sforzi di test da singoli e molteplici punti di violazione situati in diversi ambienti regionali |
| Comando e controllo moderni | Comunicazioni Implant e Server: Utilizza le capacità di comunicazione C2 crittografata ECDHE di SILENTRINITY per crittografare il traffico C2 su HTTPS. Comunicazioni Client e Server: Utilizza Asyncio, WebSockets e una CLI basata su prompt-toolkit. Caratteristiche notevoli: - Etichettatura della posizione dell'implant: utile per gestire segnali e punti di interruzione in diverse regioni. Integrazione NGROK - Ottimo per preparare i payload e distribuirli con URL ngrok |
| Intestazione di firma standard | JSON PID: , Date(UTC), IsHighIntegrity, HostName, CurrentUser , IsUserAdmin, IPv4, IPv6 |
| Supporto per logging JSON | Semplifica, inserisci, decodifica e analizza le prove con il tuo stack ELK o qualsiasi piattaforma di analisi pronta per analizzare JSON. |
| Esecuzione di codice in memoria senza stager | Esegui i test di Atomic Red Team da un processo PowerShell non gestito con integrità bassa, media e alta. |
| Formazioni d'attacco dinamiche | Esegui catene d'attacco senza ricompilare o riavviare ARTC2. Attualmente supporta tre diverse funzioni d'attacco: Attack Chains, Attack Profiles e Attack Scenarios |
| Consegna di payload modulare | ARTC2 sfrutta il framework SILENTRINITY che utilizza stager unmanaged powershell e stageless powershell per compilare ed eseguire i payload dei test atomici Red Team in memoria, "COSÌ COM'È" |
| Gestione operativa | Gli ID di lavoro sono inclusi per l'esecuzione del controllo e la raccolta delle prove. Sono utili per l'analisi degli eventi e la correlazione delle prove. "job_id": "D3l820IWpyi67" |
Le organizzazioni devono:
Per impostazione predefinita, i log di ARTIC-C2 vengono scritti nella directory di lavoro corrente di ARTIC-C2 in ./logs/. I log di sessione includono:
utc_timestamp: Timestamp UTCsession: GUID della sessione targetjob_id: ID univoco di esecuzione del lavorottp_data: ID della tecnicaevidence: Prove codificate in Base64 raccolte da un punto di violazioneevidence_status: Stato per indicare se il TTP eseguito è stato bloccato.
INTESTAZIONE DI FIRMA DI ESECUZIONE
Le intestazioni di firma di esecuzione vengono utilizzate per verificare se eventuali difese bloccano gli atomici. A volte, i comandi atomici potrebbero non restituire dati in STDOUT. Tuttavia, se l'intestazione di firma di esecuzione restituisce informazioni di intestazione, ciò indica che il codice sorgente è stato compilato, caricato nel CLR ed eseguito sul punto di violazione target. L'intestazione di firma di esecuzione include:
PID: utilizzato durante l'esecuzione della tecnicaDate: timbro UTC prodotto dal punto di violazioneIsHighIntegrity: stato di integrità del processoHostName: hostname del punto di violazioneCurrentUser: utente corrente. Ottimo per tracciare quando gli utenti vengono impersonatiIsUserAdmin: stato di amministratoreIPv4: informazioni sull'indirizzo IPv4IPv6: informazioni sull'indirizzo IPv6LOG DI ESECUZIONE DI ESEMPIO
T1069.001-2 è stato eseguito in memoria
2021-08-21 07:42:21,146 - {"utc_timestamp": "2021-08-21T07:42:21Z", "msg": "Technique executed:", "controller": "Discovery/T1069.001-2", "last_updated_by": "ARMADO, Inc.",
"ttp_id": "T1069.001", "ttp_opts": {"OutString": {"Description": "Appends Out-String to the PowerShellCode", "Required": false, "Value": true}, "BypassLogging":
{"Description": "Bypasses ScriptBlock and Techniques logging", "Required": false, "Value": true}, "BypassAmsi": {"Description": "Bypasses AMSI", "Required": false, "Value": true}},
"decompressed_file": "n/a", "file_name": "n/a", "gzip_file": "n/a", "language": "boo", "references": ["System.Management.Automation"], "run_in_thread": "n/a", "job_id": "B5ppBWed5NF6c"}
LOG DI RACCOLTA PROVE DI ESEMPIO
Le prove sono state raccolte dal punto di violazione target dopo l'esecuzione di T1069.001-2.
2021-08-21 07:42:25,076 - {"utc_timestamp": "2021-08-21T07:42:25Z", "session": "17ed378a-8cb9-4690-9087-e894c2b1e0a2", "job_id": "B5ppBWed5NF6c", "ttp_data": "T1069.001", "evidence": "IntQSUQ6IDU1NTYsIERhdGUoVVRDKTogMjAyMS0wOC0yMVQwNzo0MjoyNC45MDczMjQ5WiwgSXNIaWdoSW50ZWdyaXR5OiB0cnVlLCBIb3N0TmFtZTogYWQtZGMxLCBDdXJyZW50VXNlcjogZGVlcHJvb3RcXHJ1c3NlbF9oYW5jb2NrLCBJc1VzZXJBZG1pbjogdHJ1ZSwgSVB2NDogWzEwLjEuMC4xMDAsIDE2OS4yNTQuMTM0LjExMV0sIElQdjY6IFtmZTgwOjpkZGUxOjIyYTo3YmEzOmZlMGIlNSwgZmU4MDo6YjhmODpiNDIxOjI3Yzg6ODY2ZiUxMV19XHJcbk5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4tLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuQ2VydCBQdWJsaXNoZXJzICAgICAgICAgICAgICAgICAgICAgICAgIE1lbWJlcnMgb2YgdGhpcyBncm91cCBhcmUgcGVybWl0dGVkIHRvIHB1Ymxpc2ggY2VydGlmaWNhdGVzIHRvIHRoZSBkaXJlY3RvcnkgICAgXHJcblJBUyBhbmQgSUFTIFNlcnZlcnMgICAgICAgICAgICAgICAgICAgICBTZXJ2ZXJzIGluIHRoaXMgZ3JvdXAgY2FuIGFjY2VzcyByZW1vdGUgYWNjZXNzIHByb3BlcnRpZXMgb2YgdXNlcnMgICAgICAgICAgICAgIFxyXG5BbGxvd2VkIFJPREMgUGFzc3dvcmQgUmVwbGljYXRpb24gR3JvdXAgTWVtYmVycyBpbiB0aGlzIGdyb3VwIGNhbiBoYXZlIHRoZWlyIHBhc3N3b3JkcyByZXBsaWNhdGVkIHRvIGFsbCByZWFkLW9ubHkgZG8uLi5cclxuRGVuaWVkIFJPREMgUGFzc3dvcmQgUmVwbGljYXRpb24gR3JvdXAgIE1lbWJlcnMgaW4gdGhpcyBncm91cCBjYW5ub3QgaGF2ZSB0aGVpciBwYXNzd29yZHMgcmVwbGljYXRlZCB0byBhbnkgcmVhZC1vbmx5Li4uXHJcbiI=",
"evidence_status": "1"}
INTESTAZIONE DI FIRMA DI ESEMPIO
"{PID: 5556, Date(UTC): 2020-01-02T06:55:47Z, IsHighIntegrity: true, HostName: ad-dc1, CurrentUser: artic\\c2operator, IsUserAdmin: true,
IPv4: [10.1.0.100, 169.254.134.111], IPv6: [fe80::dde1:22a:7ba3:fe0b%5, fe80::b8f8:b421:27c8:866f%11]}
LOG DI PROVE DECODIFICATE IN BASE64 DI ESEMPIO
"{PID: 5556, Date(UTC): 2021-08-21T07:42:24.9073249Z, IsHighIntegrity: true, HostName: ad-dc1, CurrentUser: deeproot\\russel_hancock, IsUserAdmin: true,
IPv4: [10.1.0.100, 169.254.134.111], IPv6: [fe80::dde1:22a:7ba3:fe0b%5, fe80::b8f8:b421:27c8:866f%11]}
Name Description
---- -----------
Cert Publishers Members of this group are permitted to publish certificates to the directory
RAS and IAS Servers Servers in this group can access remote access properties of users
Allowed RODC Password Replication Group Members in this group can have their passwords replicated to all read-only do...
Denied RODC Password Replication Group Members in this group cannot have their passwords replicated to any read-only...
"
Per impostazione predefinita, i listener si legano all'interfaccia del sistema con HTTPS:443 e HTTP:80. Devono essere accessibili dal punto di violazione presunto. Imposta gli URL di callback nel contesto :> listeners prima di generare qualsiasi stager.
git clone https://github.com/ARMADOinc/Atomic-Red-Team-intel-C2.gitcd ./Atomic-Red-Team-intel-C2./install.sh installOPZIONI DI DISTRIBUZIONE
ARTIC-C2 consente modelli di distribuzione flessibili per soddisfare tutti i requisiti di esecuzione dei casi di test atomici. Sebbene ci siano alcune dipendenze della console lato client relative alla cache, la console client non deve necessariamente essere eseguita sullo stesso sistema del server. Presto impacchetteremo e rilasceremo un client dedicato.
NOTA: Gli esempi seguenti presuppongono che ARTIC-C2 venga avviato dalla stessa istanza.
Avvia WSS sulla porta predefinita e produce un log ad-hoc
artic2.py wss 127.0.0.1 Art1.c25rvr >> /var/log/artic2.log &artic2.py client wss://operator:[email protected]:5000Avvia WSS sulla porta predefinita in primo piano
artic2.py wss 127.0.0.1 Art1.c25rvrartic2.py client wss://operator:[email protected]:5000Avvia WSS sulla porta 5443, vincolato a 10.0.0.43, produce log ad-hoc e connetti due client
artic2.py wss 10.0.0.43:5443 Art1.c25rvr >> /var/log/artic2.log &artic2.py client wss://operator1:[email protected]:5443artic2.py client wss://operator2:[email protected]:5443