Atlas 是一个跨平台(Windows/Linux)网络执行与安全评估工具包,构建于 TrustedSec 的 Titanis 协议库之上。其工作流程受 NetExec/CrackMapExec 启发:目标列表、凭据集、模块化枚举,以及紧凑的 [HH:mm:ss] [+] host - message 控制台输出。
本工具仅用于经授权的安全测试。请仅对您拥有明确测试许可的系统使用。
| 协议 | 能力 |
|---|---|
smb | 认证检查(NTLM/Kerberos/匿名)、通过 SRVS/SAMR 枚举共享、用户、组、磁盘、会话;通过远程注册表进行 SAM/LSA 操作;基于 SMB2/3 的文件操作;--pass-pol/--rid-brute/--gen-relay-list/--generate-krb5-file/--generate-hosts-file/--generate-tgt;快照/流/打开文件/网卡;组成员、LSA SID/名称查询、注册表查询、服务、已登录用户、任务列表/终止、EFS 强制认证;通过 wmiexec / smbexec / mmcexec(MMC DCOM)执行 |
kerberos | 用户枚举、预认证/AS-REP 检测、Kerberoasting、Key List 攻击、票据伪造(黄金/白银)、TGT 请求、密码修改、S4U2Self/Proxy(-S4UserName) |
wmi | 通过 DCOM/WMI 认证、Win32_Process.Create(-x/-X)或 --wmi-query(WQL)、命名空间列举、StdRegProv 注册表、DCOM 方法调用、EPM 端点列举 |
ldap | 通过 SASL/简单绑定认证、查询及标志(--users/--trusted-for-delegation/--pass-pol/--get-sid 等)、--kerberoasting、写操作(-AddUser/-AddComputer/-Delete/-Modify/-SetPassword)、模块、--bloodhound(-c)导出为 BloodHound CE JSON+zip |
dcsync | 通过 [MS-DRSR](DRSGetNCChanges)复制:单个对象、完整 --ntds NC 同步、拓扑(-DcInfo/-ListDomains/-ListSites/-ListRoles/-ListPartitions/-ListGcs/-Neighbors/-CrackName) |
标志风格尽可能遵循 NetExec(
--shares、--users、--pass-pol、--rid-brute、--local-groups、-d域、-H哈希、--kdcHost、-M/-o/-L模块)。Titanis 的单横线拼写(-Shares、-ud、-NtlmHash)仍然可用。注意:-x/-X不能共存(不区分大小写),因此 PowerShell 执行使用-ps;-d在所有场景(包括kerberos)中均表示域(realm 会回退到它)。
atlas <proto> -L 列出)| 模块 | 协议 | 描述 |
|---|---|---|
spider | smb | 递归共享爬取器(depth、maxfiles、match) |
shareaccess | smb | 逐共享的 READ/WRITE 访问检查 |
localadmins | smb | 通过 SAMR 枚举本地管理员 |
gpp_password | smb | 解密 Groups.xml 等文件中的 cpassword |
gpp_autologin | smb | Registry.xml 中的自动登录凭据 |
gpp_privileges | smb | GptTmpl.inf 中的权限分配 |
uac / wdigest / runasppl / install_elevated | smb | 通过 winreg 进行注册表检查 |
spooler | smb | 通过 SCM 检查打印后台处理程序状态 |
keepass / rclone / winscp / mremoteng / vnc 等 | smb | 在共享中搜索文件 |
ntlmv1 / reg-winlogon / hyperv-host | smb | LmCompatibilityLevel、Winlogon 自动登录、Hyper-V 主机 |
remote-uac / rdp / shadowrdp | smb | 读取/写入远程 UAC、RDP、RDP 影子会话(ACTION=...) |
reg-query | smb | 查询/设置/删除注册表值(PATH=...、KEY=...、VALUE=...、TYPE=...、DELETE=True) |
enum_cve | smb | 基于构建号 + UBR 的补丁级别 CVE 检查 |
enum_av | smb | 通过 LSA 服务名 + IPC$ 管道枚举 AV/EDR |
enum_dns / get_netconnections / bitlocker | smb | 通过 WMI(root\MicrosoftDNS、NIC 配置、BitLocker) |
putty / notepad / recent_files / recyclebin / snipped | smb | PuTTY 会话 + .ppk、记事本标签状态、最近使用的 LNK、回收站、截图 |
lockscreendoors | smb | 通过 FileDescription 检测被植入后门的辅助功能二进制文件 |
drop-sc / drop-library-ms / scuffy / slinky | smb | 强制认证诱饵投放 + CLEANUP=True |
webdav / smbghost / onelogon / sccm-recon6 | smb | WebClient 检查、SMBGhost 探测、VulnerableChannelAllowList、SCCM 侦察 |
wcc | smb | Windows 安全态势检查清单(UAC/LSA/RDP/Defender/LAPS/NetBIOS/...) |
change-password | smb | 通过 SAMR 自助修改密码(USER=...、OLDPASS=...、NEWPASS=...) |
maq | ldap | ms-DS-MachineAccountQuota |
pre2k | ldap | Windows 2000 之前的计算机(UAC 4128) |
laps | ldap | LAPS 密码 |
adcs | ldap | AD CS 注册服务 |
subnets | ldap | 来自配置命名上下文的站点/子网 |
daclread / badsuccessor / certipy-find 等 | ldap | 通过 Titanis 进行 LDAP 枚举 |
get-unixUserPassword / dns-nonsecure | ldap | Unix 密码、非安全 DNS 区域 |
modify-group / add-computer | ldap | 组成员身份、计算机生命周期(NAME=...、DELETE=True、...) |
所有协议共享:
a.b.c.d-e)、逗号分隔列表、@file.kirbi/.ccache 票据、PKINIT 证书、S4U、SPN 覆盖、SOCKS5仓库将 Titanis 源代码内置在 external/Titanis 下,并作为解决方案的一部分进行构建。
git clone https://github.com/<your-account>/atlas.git
cd atlas
dotnet build Atlas.sln -p:NoWarn=CS1998
生成的二进制文件是一个依赖框架的 .NET 应用程序:
dotnet src/Atlas.Cli/bin/Debug/net8.0/atlas.dll --help
atlas <protocol> <targets> [authentication] [actions] [options]
目标规范接受任意组合:HOST、10.0.0.5、192.168.1.0/24、10.0.0.1-64、逗号分隔列表或 @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'
# Key List attack against an 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 # auth check
atlas wmi dc01.corp.local -d CORP.LOCAL -u admin -p pass -x whoami # exec
# SASL (NTLM/Kerberos) bind - typical against Active Directory
atlas ldap dc01.corp.local -d CORP.LOCAL -u user -p pass -Query '(adminCount=1)' -Attrs sAMAccountName
# RFC 4511 simple bind - typical against 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)'
| 选项 | 含义 |
|---|---|
-u、-UserName | 用户名(user、DOMAIN\user 或 user@realm) |
-p、-Password | 密码 |
-d、-ud、-UserDomain | 域(NetExec 的 -d;同时作为 Kerberos realm 回退) |
-H、--hash、-NtlmHash | NT 哈希(NTLM + Kerberos RC4) |
-AesKey | AES128/AES256 Kerberos 密钥 |
-Kdc、--kdcHost | Kerberos 的 KDC 端点 |
-S4UserName | 通过 S4U 模拟的用户(Kerberos;需要 -Kdc,配套 -Spn/-GenerateSt/-Self) |
-Tgt / -TicketCache / -Tickets | .kirbi / .ccache 票据输入 |
-Keytab | keytab 文件 |
-UserCert(+-UserKey) | PKINIT 证书身份验证 |
-Anonymous | 空会话 |
-ha | 主机地址覆盖(在目标位置使用 FQDN,并在此处填写 IP,以获得正确的 SPN) |
运行 atlas <protocol> -h 查看完整的参数参考。