
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) Toolkit für Netzwerkausführung und Sicherheitsbewertung, das auf der Protokollbibliothek TrustedSec's Titanis aufbaut. Es ist vom Workflow von NetExec/CrackMapExec inspiriert: Ziellisten, Anmeldedatensätze, modulare Enumeration und kompakte Konsolenausgabe im Format [HH:mm:ss] [+] host - message.
Dieses Tool ist für autorisiertes Sicherheitstesting gedacht. Verwende es nur gegen Systeme, für die du eine ausdrückliche Testgenehmigung hast.
| Protokoll | Fähigkeiten |
|---|---|
smb | Auth-Prüfung (NTLM/Kerberos/anonym), Freigaben, Benutzer, Gruppen, Datenträger, Sitzungen via SRVS/SAMR; SAM/LSA via Remote Registry; Dateioperationen über SMB2/3; --pass-pol/--rid-brute/--gen-relay-list/--generate-krb5-file/--generate-hosts-file/--generate-tgt; Snapshots/Streams/Open-Files/NICs; Gruppenmitglieder, LSA-SID/Name-Lookup, Registry-Abfrage, Dienste, angemeldete Benutzer, Task-Liste/Kill, EFS-Coercion; Ausführung via wmiexec / smbexec / mmcexec (MMC DCOM) |
kerberos | Benutzer-Enumeration, Pre-Auth/AS-REP-Erkennung, Kerberoasting, Key-List-Angriff, Ticket-Forging (Golden/Silver), TGT-Anfrage, Passwortänderung, S4U2Self/Proxy (-S4UserName) |
wmi | Auth via DCOM/WMI, Win32_Process.Create (-x/-X) oder --wmi-query (WQL), Namespace-Auflistung, StdRegProv-Registry, DCOM-Methodenaufruf, EPM-Endpunkt-Auflistung |
ldap | Auth via SASL/Simple Bind, Abfragen + Flags (--users/--trusted-for-delegation/--pass-pol/--get-sid usw.), --kerberoasting, Schreiboperationen (-AddUser/-AddComputer/-Delete/-Modify/-SetPassword), Module, --bloodhound (-c) zu BloodHound CE JSON+zip |
dcsync | Replikation via [MS-DRSR] (DRSGetNCChanges): einzelne Objekte, vollständige --ntds-NC-Synchronisierung, Topologie (-DcInfo/-ListDomains/-ListSites/-ListRoles/-ListPartitions/-ListGcs/-Neighbors/-CrackName) |
Der Flag-Stil folgt nach Möglichkeit NetExec (
--shares,--users,--pass-pol,--rid-brute,--local-groups,-dDomain,-HHash,--kdcHost,-M/-o/-LModule). Titanis-Schreibweisen mit einfachem Bindestrich (-Shares,-ud,-NtlmHash) funktionieren weiterhin. Hinweis:-x/-Xkönnen nicht koexistieren (Groß-/Kleinschreibung wird ignoriert), daher ist PowerShell-Exec-ps;-dist überall die Domain, auch beikerberos(der Realm fällt darauf zurück).
atlas <proto> -L listet sie auf)| Modul | Protokoll | Beschreibung |
|---|---|---|
spider | smb | Rekursiver Share-Crawler (depth, maxfiles, match) |
shareaccess | smb | Lese-/Schreibzugriffsprüfung pro Share |
localadmins | smb | Lokale Administratoren über SAMR |
gpp_password | smb | Entschlüsselt cpassword aus Groups.xml usw. |
gpp_autologin | smb | Autologon-Anmeldeinformationen aus Registry.xml |
gpp_privileges | smb | Privilegzuweisungen aus GptTmpl.inf |
uac / wdigest / runasppl / install_elevated | smb | Registry-Prüfungen über winreg |
spooler | smb | Status des Druckwarteschlangendienstes über SCM |
keepass / rclone / winscp / mremoteng / vnc usw. | smb | Dateisucher auf Shares |
ntlmv1 / reg-winlogon / hyperv-host | smb | LmCompatibilityLevel, Winlogon-Autologon, Hyper-V-Host |
remote-uac / rdp / shadowrdp | smb | Remote-UAC, RDP, RDP-Shadowing lesen/schreiben (ACTION=...) |
reg-query | smb | Registry-Werte abfragen/setzen/löschen (PATH=..., KEY=..., VALUE=..., TYPE=..., DELETE=True) |
enum_cve | smb | CVE-Prüfung auf Patch-Ebene anhand von Build + UBR |
enum_av | smb | AV/EDR über LSA-Dienstnamen + IPC$-Pipes |
enum_dns / get_netconnections / bitlocker | smb | Über WMI (root\MicrosoftDNS, NIC-Konfigurationen, BitLocker) |
putty / notepad / recent_files / recyclebin / snipped | smb | PuTTY-Sitzungen + .ppk, Notepad-Tab-Status, zuletzt verwendete LNKs, Papierkorb, Screenshots |
lockscreendoors | smb | Mit Backdoors versehene Barrierefreiheits-Binärdateien über FileDescription |
drop-sc / drop-library-ms / scuffy / slinky | smb | Ablage von Coercion-Ködern + CLEANUP=True |
webdav / smbghost / onelogon / sccm-recon6 | smb | WebClient-Prüfung, SMBGhost-Sonde, VulnerableChannelAllowList, SCCM-Recon |
wcc | smb | Checkliste zur Windows-Sicherheitslage (UAC/LSA/RDP/Defender/LAPS/NetBIOS/...) |
change-password | smb | Selbstbedienungs-Passwortänderung über SAMR (USER=..., OLDPASS=..., NEWPASS=...) |
maq | ldap | ms-DS-MachineAccountQuota |
pre2k | ldap | Computer aus der Zeit vor Windows 2000 (UAC 4128) |
laps | ldap | LAPS-Passwörter |
adcs | ldap | AD CS-Registrierungsdienste |
subnets | ldap | Sites/Subnets aus dem Configuration NC |
daclread / badsuccessor / certipy-find usw. | ldap | LDAP-Enumeration über Titanis |
get-unixUserPassword / dns-nonsecure | ldap | Unix-Passwörter, nicht sichere DNS-Zonen |
modify-group / add-computer | ldap | Gruppenmitgliedschaft, Computer-Lebenszyklus (NAME=..., DELETE=True, ...) |
Gemeinsam für alle Protokolle:
a.b.c.d-e), kommagetrennte Listen, @file.kirbi/.ccache-Tickets, PKINIT-Zertifikate, S4U, SPN-Overrides, SOCKS5Das Repository liefert den Titanis-Quellcode unter external/Titanis mit und baut ihn als Teil der Solution.
git clone https://github.com/<your-account>/atlas.git
cd atlas
dotnet build Atlas.sln -p:NoWarn=CS1998
Die resultierende Binärdatei ist eine framework-abhängige .NET-Anwendung:
dotnet src/Atlas.Cli/bin/Debug/net8.0/atlas.dll --help
atlas <protocol> <targets> [authentication] [actions] [options]
Die Zielangabe akzeptiert jede Mischung aus: HOST, 10.0.0.5, 192.168.1.0/24, 10.0.0.1-64, kommagetrennten Listen oder @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'