
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
"{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 padrão, os listeners se vinculam à interface do sistema nas portas HTTPS:443 e HTTP:80. Eles devem estar acessíveis a partir do alvo assumido do ponto de violação. Defina suas URLs de callback no contexto :> listeners antes de gerar qualquer stager.
git clone https://github.com/ARMADOinc/Atomic-Red-Team-intel-C2.gitcd ./Atomic-Red-Team-intel-C2./install.sh installOPÇÕES DE IMPLANTAÇÃO
O ARTIC-C2 permite modelos de implantação flexíveis para atender a todos os requisitos de execução de casos de teste atômicos. Embora existam algumas dependências de console do lado do cliente relacionadas ao cache, o console do cliente não precisa ser executado no mesmo sistema que o servidor da equipe. Em breve, empacotaremos e lançaremos um cliente dedicado.
NOTA: Os exemplos abaixo assumem que o ARTIC-C2 será iniciado a partir da mesma instância.
Iniciar WSS na porta padrão e produzir um log ad-hoc
artic2.py wss 127.0.0.1 Art1.c25rvr >> /var/log/artic2.log &artic2.py client wss://operator:[email protected]:5000Iniciar WSS na porta padrão em primeiro plano
artic2.py wss 127.0.0.1 Art1.c25rvrartic2.py client wss://operator:[email protected]:5000Iniciar WSS na porta 5443, vincular a 10.0.0.43, produzir log ad-hoc e conectar dois 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