
Strumento di esecuzione di rete multipiattaforma (SMB/Kerberos/WMI/LDAP/DCSync) basato su Titanis di TrustedSec - flusso di lavoro in stile NetExec in C#
Atlas è un toolkit multipiattaforma (Windows/Linux) per l'esecuzione di rete e la valutazione della sicurezza, costruito sulla libreria di protocolli TrustedSec's Titanis. È ispirato al flusso di lavoro di NetExec/CrackMapExec: liste di target, set di credenziali, enumerazione modulare e output console compatto nel formato [HH:mm:ss] [+] host - message.
Questo strumento è destinato a test di sicurezza autorizzati. Utilizzarlo solo contro sistemi per cui si dispone di esplicita autorizzazione al test.
| Protocollo | Capacità |
|---|---|
smb | Verifica autenticazione (NTLM/Kerberos/anonima), share, utenti, gruppi, dischi, sessioni via SRVS/SAMR; SAM/LSA via Remote Registry; operazioni su file tramite SMB2/3; --pass-pol/--rid-brute/--gen-relay-list/--generate-krb5-file/--generate-hosts-file/--generate-tgt; snapshot/stream/file aperti/NIC; membri dei gruppi, lookup SID/nome LSA, query al registro, servizi, utenti connessi, elenco/kill dei task, coercizione EFS; esecuzione via wmiexec / smbexec / mmcexec (MMC DCOM) |
kerberos | Enumerazione utenti, rilevamento pre-auth/AS-REP, Kerberoasting, attacco Key List, forgiatura di ticket (golden/silver), richiesta TGT, cambio password, S4U2Self/Proxy (-S4UserName) |
wmi | Autenticazione via DCOM/WMI, Win32_Process.Create (-x/-X) o --wmi-query (WQL), elenco namespace, registro StdRegProv, invocazione metodi DCOM, elenco endpoint EPM |
ldap | Autenticazione via bind SASL/semplice, query + flag (--users/--trusted-for-delegation/--pass-pol/--get-sid ecc.), --kerberoasting, operazioni di scrittura (-AddUser/-AddComputer/-Delete/-Modify/-SetPassword), moduli, --bloodhound (-c) verso BloodHound CE JSON+zip |
dcsync | Replica via [MS-DRSR] (DRSGetNCChanges): singoli oggetti, sincronizzazione completa della NC --ntds, topologia (-DcInfo/-ListDomains/-ListSites/-ListRoles/-ListPartitions/-ListGcs/-Neighbors/-CrackName) |
Lo stile dei flag segue NetExec dove possibile (
--shares,--users,--pass-pol,--rid-brute,--local-groups,-ddominio,-Hhash,--kdcHost, moduli-M/-o/-L). Le grafie Titanis con singolo trattino (-Shares,-ud,-NtlmHash) continuano a funzionare. Nota:-x/-Xnon possono coesistere (case-insensitive), quindi l'esecuzione PowerShell è-ps;-dè il dominio ovunque, inclusokerberos(il realm ricade su di esso).
atlas <proto> -L li elenca)| Modulo | Protocollo | Descrizione |
|---|---|---|
spider | smb | Crawler ricorsivo delle share (depth, maxfiles, match) |
shareaccess | smb | Verifica accesso READ/WRITE per share |
localadmins | smb | Amministratori locali tramite SAMR |
gpp_password | smb | Decifra cpassword da Groups.xml ecc. |
gpp_autologin | smb | Credenziali autologon da Registry.xml |
gpp_privileges | smb | Assegnazioni di privilegi da GptTmpl.inf |
uac / wdigest / runasppl / install_elevated | smb | Controlli di registro tramite winreg |
spooler | smb | Stato dello Spooler di stampa tramite SCM |
keepass / rclone / winscp / mremoteng / vnc ecc. | smb | Ricerca di file nelle share |
ntlmv1 / reg-winlogon / hyperv-host | smb | LmCompatibilityLevel, autologon Winlogon, host Hyper-V |
remote-uac / rdp / shadowrdp | smb | Lettura/scrittura UAC remoto, RDP, RDP shadowing (ACTION=...) |
reg-query | smb | Interroga/imposta/elimina valori di registro (PATH=..., KEY=..., VALUE=..., TYPE=..., DELETE=True) |
enum_cve | smb | Controllo CVE a livello di patch da build + UBR |
enum_av | smb | AV/EDR tramite nomi dei servizi LSA + pipe IPC$ |
enum_dns / get_netconnections / bitlocker | smb | Tramite WMI (root\MicrosoftDNS, configurazioni NIC, BitLocker) |
putty / notepad / recent_files / recyclebin / snipped | smb | Sessioni PuTTY + .ppk, stato delle schede di Notepad, LNK recenti, cestino, screenshot |
lockscreendoors | smb | Binari di accessibilità backdorati tramite FileDescription |
drop-sc / drop-library-ms / scuffy / slinky | smb | Esca per coercizione + CLEANUP=True |
webdav / smbghost / onelogon / sccm-recon6 | smb | Controllo WebClient, sonda SMBGhost, VulnerableChannelAllowList, ricognizione SCCM |
wcc | smb | Checklist della postura di sicurezza Windows (UAC/LSA/RDP/Defender/LAPS/NetBIOS/...) |
change-password | smb | Cambio password self-service tramite SAMR (USER=..., OLDPASS=..., NEWPASS=...) |
maq | ldap | ms-DS-MachineAccountQuota |
pre2k | ldap | Computer pre-Windows 2000 (UAC 4128) |
laps | ldap | Password LAPS |
adcs | ldap | Servizi di enrollment AD CS |
subnets | ldap | Siti/Subnet dalla Configuration NC |
daclread / badsuccessor / certipy-find ecc. | ldap | Enumerazione LDAP tramite Titanis |
get-unixUserPassword / dns-nonsecure | ldap | Password Unix, zone DNS non sicure |
modify-group / add-computer | ldap | Appartenenza ai gruppi, ciclo di vita dei computer (NAME=..., DELETE=True, ...) |
Condivisi tra tutti i protocolli:
a.b.c.d-e), liste separate da virgola, @file.kirbi/.ccache, certificati PKINIT, S4U, override SPN, SOCKS5Il repository include il codice sorgente di Titanis in external/Titanis e lo compila come parte della soluzione.
git clone https://github.com/<your-account>/atlas.git
cd atlas
dotnet build Atlas.sln -p:NoWarn=CS1998
Il binario risultante è un'applicazione .NET framework-dependent:
dotnet src/Atlas.Cli/bin/Debug/net8.0/atlas.dll --help
atlas <protocol> <targets> [authentication] [actions] [options]
La specifica del target accetta qualsiasi combinazione di: HOST, 10.0.0.5, 192.168.1.0/24, 10.0.0.1-64, elenchi separati da virgole o @targets.txt.
# Credential check only
atlas smb 10.0.0.5 -u administrator -p 'Password1!'
# Enumeration
atlas smb 10.0.0.0/24 -u admin -p 'Password1!' -Shares -Users -Groups -Disks -Sessions
# SAM / LSA dumping (requires local admin)
atlas smb 10.0.0.5 -u admin -p 'Password1!' -Sam -Lsa
# File operations
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'
# Modules and flags
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 -M gpp_password
atlas smb 10.0.0.5 -u admin -p pass -M localadmins -M uac
# Flags (NetExec-like)
atlas smb 10.0.0.5 -u admin -p pass --pass-pol --rid-brute 2000
atlas smb 10.0.0.5 --Anonymous --gen-relay-list relay.txt --generate-krb5-file krb5.conf
# Password spray
atlas smb 10.0.0.0/24 -UserList users.txt -PassList 'Password1!,Summer2024!'
# User enumeration (no credentials required)
atlas kerberos dc01.corp.local -d CORP.LOCAL -UserList users.txt
# Kerberoasting (requires any domain credential)
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'