
ARTi-C2 es un marco de post-explotación utilizado para ejecutar casos de prueba de Atomic Red Team con capacidades rápidas de despliegue y ejecución de payloads a través del DLR de .NET.
ARTC2 es un marco de ejecución moderno que ayuda a los equipos de seguridad a escalar la ejecución de escenarios de ataque desde objetivos de punto de brecha único y múltiple. Su objetivo es producir inteligencia de ataque procesable que mejore la efectividad de los productos de seguridad y la respuesta a incidentes.
Las características y capacidades principales de ARTC2 provienen de SILENTTRINITY, y las pruebas atómicas ejecutadas a través de Boo provienen de ATOMIC-RED-TEAM. Todas las demás mejoras de funciones se construyeron para garantizar que la destreza operativa, la agilidad, la escalabilidad y la ejecución rápida no se vean comprometidas.
| CAPACIDAD | DESCRIPCIÓN |
|---|---|
| Despliegue Rápido | Automatiza y escala los esfuerzos de prueba desde puntos de brecha únicos y múltiples ubicados en diferentes entornos regionales |
| Mando y Control Moderno | Comunicaciones Implant y Servidor: Utiliza las capacidades de comunicación C2 cifradas con ECDHE de SILENTRINITY para cifrar el tráfico C2 sobre HTTPS. Comunicaciones Cliente y Servidor: Utiliza Asyncio, WebSockets y una CLI con prompt-toolkit. Las características notables incluyen: - Etiquetado de ubicación del implant: útil para gestionar señales y puntos de interrupción en diferentes regiones. Integración con NGROK - Ideal para preparar payloads y desplegarlos con URLs de ngrok |
| Encabezado de Firma Estándar | JSON PID: , Date(UTC), IsHighIntegrity, HostName, CurrentUser , IsUserAdmin, IPv4, IPv6 |
| Soporte de Registro JSON | Optimice, ingiera, decodifique y analice evidencia con su stack ELK o cualquier plataforma de análisis preparada para analizar JSON. |
| Ejecución de Código en Memoria sin Stager | Ejecute pruebas de Atomic Red Team desde un proceso de PowerShell no administrado con integridad baja, media y alta. |
| Formaciones de Ataque Dinámicas | Ejecute cadenas de ataque sin recompilar ni reiniciar ARTC2. Actualmente soporta tres funciones de ataque diferentes: Attack Chains, Attack Profiles y Attack Scenarios |
| Entrega Modular de Payloads | ARTC2 aprovecha el framework de SILENTRINITY que utiliza stagers de unmanaged powershell y stageless powershell para compilar y ejecutar payloads de pruebas atómicas de Red Team en memoria, "TAL CUAL" |
| Gestión Operativa | Los IDs de trabajo están incluidos para la ejecución del controlador y la recolección de evidencia. Son excelentes para el análisis de eventos y la correlación de evidencia. "job_id": "D3l820IWpyi67" |
Las organizaciones necesitan:
Por defecto, los registros de ARTIC-C2 se escriben en el directorio de trabajo actual de ARTIC-C2 en ./logs/. Los registros de sesión incluyen:
utc_timestamp: Marca de tiempo UTCsession: GUID de sesión objetivojob_id: ID único de ejecución de trabajottp_data: ID de técnicaevidence: Evidencia codificada en Base64 recolectada desde un punto de brecha objetivoevidence_status: Estado que indica si la TTP ejecutada fue bloqueada.
ENCABEZADO DE FIRMA DE EJECUCIÓN
Los encabezados de firma de ejecución se utilizan para verificar si alguna defensa bloquea los atómicos. A veces, los comandos atómicos pueden no devolver datos en STDOUT. Sin embargo, si el encabezado de firma de ejecución devuelve información de encabezado, esto indica que el código fuente se compiló, cargó en el CLR y se ejecutó en el punto de brecha objetivo. El encabezado de firma de ejecución incluye:
PID: utilizado durante la ejecución de la técnicaDate: sello UTC producido desde el punto de brecha objetivoIsHighIntegrity: Estado de integridad del procesoHostName: nombre de host del punto de brecha objetivoCurrentUser: Usuario actual. Excelente para rastrear cuando los usuarios son suplantadosIsUserAdmin: Estado de administradorIPv4: información de dirección IPv4IPv6: información de dirección IPv6EJEMPLO DE REGISTRO DE EVENTO DE EJECUCIÓN
T1069.001-2 se ejecutó en 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"}
EJEMPLO DE REGISTRO DE RECOLECCIÓN DE EVIDENCIA
Se recolectó evidencia del punto de brecha objetivo después de ejecutar 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"}
EJEMPLO DE FIRMA DE ENCABEZADO
"{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]}
EJEMPLO DE REGISTRO DE EVIDENCIA DECODIFICADA EN BASE64
"{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...
"
Por defecto, los listeners se enlazan a la interfaz del sistema con HTTPS:443 y HTTP:80. Deben ser accesibles desde el punto de brecha objetivo supuesto. Configure sus URLs de Callback en el contexto :> listeners antes de generar cualquier stager.
git clone https://github.com/ARMADOinc/Atomic-Red-Team-intel-C2.gitcd ./Atomic-Red-Team-intel-C2./install.sh installOPCIONES DE DESPLIEGUE
ARTIC-C2 permite modelos de despliegue flexibles para satisfacer todos los requisitos de ejecución de casos de prueba atómicos. Si bien existen algunas dependencias de consola del lado del cliente relacionadas con el almacenamiento en caché, la consola del cliente no es necesario que se ejecute en el mismo sistema que el servidor del equipo. Pronto empaquetaremos y lanzaremos un cliente dedicado.
NOTA: Los ejemplos a continuación asumen que ARTIC-C2 se iniciará desde la misma instancia.
Iniciar WSS en el puerto predeterminado y generar un registro ad-hoc
artic2.py wss 127.0.0.1 Art1.c25rvr >> /var/log/artic2.log &artic2.py client wss://operator:[email protected]:5000Iniciar WSS en el puerto predeterminado en primer plano
artic2.py wss 127.0.0.1 Art1.c25rvrartic2.py client wss://operator:[email protected]:5000Iniciar WSS en el puerto 5443, enlazar a 10.0.0.43, generar registro ad-hoc y conectar dos clientes
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