
ARTi-C2 é um framework de pós-exploração usado para executar casos de teste do Atomic Red Team com capacidades rápidas de implantação e execução de payloads via DLR do .NET.
ARTC2 é uma estrutura de execução moderna que ajuda equipes de segurança a escalar a execução de cenários de ataque a partir de alvos de ponto de violação único e múltiplo. Visa produzir inteligência de ataque acionável que melhora a eficácia dos produtos de segurança e da resposta a incidentes.
Os recursos e capacidades principais do ARTC2 são originados do SILENTTRINITY, e os testes atômicos executados via Boo são do ATOMIC-RED-TEAM. Todas as outras melhorias de funcionalidade foram construídas para garantir que a arte operacional, agilidade, escalabilidade e execução rápida não sejam comprometidas.
| CAPACIDADE | DESCRIÇÃO |
|---|---|
| Implantação Rápida | Automatize e dimensione esforços de teste a partir de pontos de violação únicos e múltiplos localizados em diferentes ambientes regionais |
| Comando e Controle Modernos | Comunicação Implant e Servidor: Utiliza os recursos de C2 criptografado ECDHE do SILENTRINITY para criptografar tráfego C2 via HTTPS. Comunicação Cliente e Servidor: Utiliza Asyncio, WebSockets e uma CLI baseada em prompt-toolkit. Recursos notáveis incluem: - Marcação de localização do implant: Útil ao gerenciar sinais e breakpoints em diferentes regiões. Integração NGROK - Ótimo para hospedar payloads e implantá-los com URLs ngrok |
| Cabeçalho de Assinatura Padrão | JSON PID: , Date(UTC), IsHighIntegrity, HostName, CurrentUser, IsUserAdmin, IPv4, IPv6 |
| Suporte a Logs JSON | Simplifique, ingira, decodifique e analise evidências com sua stack ELK ou qualquer plataforma de análise pronta para analisar JSON. |
| Execução de Código sem Estágio na Memória | Execute testes do Atomic Red Team a partir de um processo PowerShell não gerenciado com integridade baixa, média e alta. |
| Formações de Ataque Dinâmicas | Execute cadeias de ataque sem recompilar ou reiniciar o ARTC2. Atualmente suporta três funções de ataque diferentes: Cadeias de Ataque, Perfis de Ataque e Cenários de Ataque |
| Entrega Modular de Payload | ARTC2 utiliza a estrutura SILENTRINITY que usa PowerShell não gerenciado e stagers PowerShell sem estágio para compilar e executar payloads de testes atômicos do Red Team na memória, "COMO ESTÃO" |
| Gerenciamento Operacional | IDs de trabalho (Job IDs) são incluídos para execução do controlador e coleta de evidências. São ótimos para análise de eventos e correlação de evidências: "job_id": "D3l820IWpyi67" |
As organizações precisam de:
Por padrão, os logs do ARTIC-C2 são gravados no diretório de trabalho atual em ./logs/.
Os logs de sessão incluem:
utc_timestamp: timestamp UTCsession: GUID da sessão alvojob_id: ID único de execução do trabalhottp_data: ID da técnicaevidence: Evidência codificada em Base64 coletada de um alvo de ponto de violaçãoevidence_status: Status para indicar se o TTP executado foi bloqueado.
CABEÇALHO DE ASSINATURA DE EXECUÇÃO
Cabeçalhos de assinatura de execução são usados para verificar se alguma defesa bloqueia os atômicos. Às vezes, os comandos atômicos podem não retornar dados no STDOUT. No entanto, se o cabeçalho de assinatura de execução retornar informações de cabeçalho, isso indica que o código-fonte foi compilado, carregado no CLR e executado no alvo do ponto de violação. O cabeçalho de assinatura de execução inclui:
PID: usado durante a execução da técnicaDate: carimbo UTC produzido a partir do alvo do ponto de violaçãoIsHighIntegrity: status de integridade do processoHostName: hostname do alvo do ponto de violaçãoCurrentUser: usuário atual. Ótimo para rastrear quando usuários são impersonadosIsUserAdmin: status de administradorIPv4: informações de endereço IPv4IPv6: informações de endereço IPv6EXEMPLO DE LOG DE EVENTO DE EXECUÇÃO
T1069.001-2 foi executado na memória
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"}
EXEMPLO DE LOG DE COLETA DE EVIDÊNCIAS
Evidências foram coletadas do alvo do ponto de violação após executar 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"}
EXEMPLO DE CABEÇALHO DE ASSINATURA
"{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]}
EXEMPLO DE LOG DE EVIDÊNCIA DECODIFICADO EM BASE64