hacktricks
  • 👾Welcome!
    • HackTricks
  • 🤩Generic Methodologies & Resources
    • Pentesting Methodology
    • External Recon Methodology
      • Wide Source Code Search
      • Github Dorks & Leaks
    • Pentesting Network
      • DHCPv6
      • EIGRP Attacks
      • GLBP & HSRP Attacks
      • IDS and IPS Evasion
      • Lateral VLAN Segmentation Bypass
      • Network Protocols Explained (ESP)
      • Nmap Summary (ESP)
      • Pentesting IPv6
      • Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
      • Spoofing SSDP and UPnP Devices with EvilSSDP
    • Pentesting Wifi
      • Evil Twin EAP-TLS
    • Phishing Methodology
      • Clone a Website
      • Detecting Phishing
      • Phishing Files & Documents
    • Basic Forensic Methodology
      • Baseline Monitoring
      • Anti-Forensic Techniques
      • Docker Forensics
      • Image Acquisition & Mount
      • Linux Forensics
      • Malware Analysis
      • Memory dump analysis
        • Volatility - CheatSheet
      • Partitions/File Systems/Carving
        • File/Data Carving & Recovery Tools
      • Pcap Inspection
        • DNSCat pcap analysis
        • Suricata & Iptables cheatsheet
        • USB Keystrokes
        • Wifi Pcap Analysis
        • Wireshark tricks
      • Specific Software/File-Type Tricks
        • Decompile compiled python binaries (exe, elf) - Retreive from .pyc
        • Browser Artifacts
        • Deofuscation vbs (cscript.exe)
        • Local Cloud Storage
        • Office file analysis
        • PDF File analysis
        • PNG tricks
        • Video and Audio file analysis
        • ZIPs tricks
      • Windows Artifacts
        • Interesting Windows Registry Keys
    • Brute Force - CheatSheet
    • Python Sandbox Escape & Pyscript
      • Bypass Python sandboxes
        • LOAD_NAME / LOAD_CONST opcode OOB Read
      • Class Pollution (Python's Prototype Pollution)
      • Python Internal Read Gadgets
      • Pyscript
      • venv
      • Web Requests
      • Bruteforce hash (few chars)
      • Basic Python
    • Exfiltration
    • Tunneling and Port Forwarding
    • Threat Modeling
    • Search Exploits
    • Shells (Linux, Windows, MSFVenom)
      • MSFVenom - CheatSheet
      • Shells - Windows
      • Shells - Linux
      • Full TTYs
  • 🐧Linux Hardening
    • Checklist - Linux Privilege Escalation
    • Linux Privilege Escalation
      • Arbitrary File Write to Root
      • Cisco - vmanage
      • Containerd (ctr) Privilege Escalation
      • D-Bus Enumeration & Command Injection Privilege Escalation
      • Docker Security
        • Abusing Docker Socket for Privilege Escalation
        • AppArmor
        • AuthZ& AuthN - Docker Access Authorization Plugin
        • CGroups
        • Docker --privileged
        • Docker Breakout / Privilege Escalation
          • release_agent exploit - Relative Paths to PIDs
          • Docker release_agent cgroups escape
          • Sensitive Mounts
        • Namespaces
          • CGroup Namespace
          • IPC Namespace
          • PID Namespace
          • Mount Namespace
          • Network Namespace
          • Time Namespace
          • User Namespace
          • UTS Namespace
        • Seccomp
        • Weaponizing Distroless
      • Escaping from Jails
      • euid, ruid, suid
      • Interesting Groups - Linux Privesc
        • lxd/lxc Group - Privilege escalation
      • Logstash
      • ld.so privesc exploit example
      • Linux Active Directory
      • Linux Capabilities
      • NFS no_root_squash/no_all_squash misconfiguration PE
      • Node inspector/CEF debug abuse
      • Payloads to execute
      • RunC Privilege Escalation
      • SELinux
      • Socket Command Injection
      • Splunk LPE and Persistence
      • SSH Forward Agent exploitation
      • Wildcards Spare tricks
    • Useful Linux Commands
    • Bypass Linux Restrictions
      • Bypass FS protections: read-only / no-exec / Distroless
        • DDexec / EverythingExec
    • Linux Environment Variables
    • Linux Post-Exploitation
      • PAM - Pluggable Authentication Modules
    • FreeIPA Pentesting
  • 🍏MacOS Hardening
    • macOS Security & Privilege Escalation
      • macOS Apps - Inspecting, debugging and Fuzzing
        • Introduction to x64
        • Introduction to ARM64v8
      • macOS AppleFS
      • macOS Bypassing Firewalls
      • macOS Defensive Apps
      • macOS GCD - Grand Central Dispatch
      • macOS Kernel & System Extensions
        • macOS IOKit
        • macOS Kernel Extensions
        • macOS Kernel Vulnerabilities
        • macOS System Extensions
      • macOS Network Services & Protocols
      • macOS File Extension & URL scheme app handlers
      • macOS Files, Folders, Binaries & Memory
        • macOS Bundles
        • macOS Installers Abuse
        • macOS Memory Dumping
        • macOS Sensitive Locations & Interesting Daemons
        • macOS Universal binaries & Mach-O Format
      • macOS Objective-C
      • macOS Privilege Escalation
      • macOS Process Abuse
        • macOS Dirty NIB
        • macOS Chromium Injection
        • macOS Electron Applications Injection
        • macOS Function Hooking
        • macOS IPC - Inter Process Communication
          • macOS MIG - Mach Interface Generator
          • macOS XPC
            • macOS XPC Authorization
            • macOS XPC Connecting Process Check
              • macOS PID Reuse
              • macOS xpc_connection_get_audit_token Attack
          • macOS Thread Injection via Task port
        • macOS Java Applications Injection
        • macOS Library Injection
          • macOS Dyld Hijacking & DYLD_INSERT_LIBRARIES
          • macOS Dyld Process
        • macOS Perl Applications Injection
        • macOS Python Applications Injection
        • macOS Ruby Applications Injection
        • macOS .Net Applications Injection
      • macOS Security Protections
        • macOS Gatekeeper / Quarantine / XProtect
        • macOS Launch/Environment Constraints & Trust Cache
        • macOS Sandbox
          • macOS Default Sandbox Debug
          • macOS Sandbox Debug & Bypass
            • macOS Office Sandbox Bypasses
        • macOS SIP
        • macOS TCC
          • macOS Apple Events
          • macOS TCC Bypasses
            • macOS Apple Scripts
          • macOS TCC Payloads
        • macOS Dangerous Entitlements & TCC perms
        • macOS FS Tricks
          • macOS xattr-acls extra stuff
      • macOS Users
    • macOS Red Teaming
      • macOS MDM
        • Enrolling Devices in Other Organisations
        • macOS Serial Number
      • macOS Keychain
    • macOS Useful Commands
    • macOS Auto Start
  • 🪟Windows Hardening
    • Checklist - Local Windows Privilege Escalation
    • Windows Local Privilege Escalation
      • Abusing Tokens
      • Access Tokens
      • ACLs - DACLs/SACLs/ACEs
      • AppendData/AddSubdirectory permission over service registry
      • Create MSI with WIX
      • COM Hijacking
      • Dll Hijacking
        • Writable Sys Path +Dll Hijacking Privesc
      • DPAPI - Extracting Passwords
      • From High Integrity to SYSTEM with Name Pipes
      • Integrity Levels
      • JuicyPotato
      • Leaked Handle Exploitation
      • MSI Wrapper
      • Named Pipe Client Impersonation
      • Privilege Escalation with Autoruns
      • RoguePotato, PrintSpoofer, SharpEfsPotato, GodPotato
      • SeDebug + SeImpersonate copy token
      • SeImpersonate from High To System
      • Windows C Payloads
    • Active Directory Methodology
      • Abusing Active Directory ACLs/ACEs
        • Shadow Credentials
      • AD Certificates
        • AD CS Account Persistence
        • AD CS Domain Escalation
        • AD CS Domain Persistence
        • AD CS Certificate Theft
      • AD information in printers
      • AD DNS Records
      • ASREPRoast
      • BloodHound & Other AD Enum Tools
      • Constrained Delegation
      • Custom SSP
      • DCShadow
      • DCSync
      • Diamond Ticket
      • DSRM Credentials
      • External Forest Domain - OneWay (Inbound) or bidirectional
      • External Forest Domain - One-Way (Outbound)
      • Golden Ticket
      • Kerberoast
      • Kerberos Authentication
      • Kerberos Double Hop Problem
      • LAPS
      • MSSQL AD Abuse
      • Over Pass the Hash/Pass the Key
      • Pass the Ticket
      • Password Spraying / Brute Force
      • PrintNightmare
      • Force NTLM Privileged Authentication
      • Privileged Groups
      • RDP Sessions Abuse
      • Resource-based Constrained Delegation
      • Security Descriptors
      • SID-History Injection
      • Silver Ticket
      • Skeleton Key
      • Unconstrained Delegation
    • Windows Security Controls
      • UAC - User Account Control
    • NTLM
      • Places to steal NTLM creds
    • Lateral Movement
      • AtExec / SchtasksExec
      • DCOM Exec
      • PsExec/Winexec/ScExec
      • SmbExec/ScExec
      • WinRM
      • WmicExec
    • Pivoting to the Cloud
    • Stealing Windows Credentials
      • Windows Credentials Protections
      • Mimikatz
      • WTS Impersonator
    • Basic Win CMD for Pentesters
    • Basic PowerShell for Pentesters
      • PowerView/SharpView
    • Antivirus (AV) Bypass
  • 📱Mobile Pentesting
    • Android APK Checklist
    • Android Applications Pentesting
      • Android Applications Basics
      • Android Task Hijacking
      • ADB Commands
      • APK decompilers
      • AVD - Android Virtual Device
      • Bypass Biometric Authentication (Android)
      • content:// protocol
      • Drozer Tutorial
        • Exploiting Content Providers
      • Exploiting a debuggeable application
      • Frida Tutorial
        • Frida Tutorial 1
        • Frida Tutorial 2
        • Frida Tutorial 3
        • Objection Tutorial
      • Google CTF 2018 - Shall We Play a Game?
      • Install Burp Certificate
      • Intent Injection
      • Make APK Accept CA Certificate
      • Manual DeObfuscation
      • React Native Application
      • Reversing Native Libraries
      • Smali - Decompiling/[Modifying]/Compiling
      • Spoofing your location in Play Store
      • Tapjacking
      • Webview Attacks
    • iOS Pentesting Checklist
    • iOS Pentesting
      • iOS App Extensions
      • iOS Basics
      • iOS Basic Testing Operations
      • iOS Burp Suite Configuration
      • iOS Custom URI Handlers / Deeplinks / Custom Schemes
      • iOS Extracting Entitlements From Compiled Application
      • iOS Frida Configuration
      • iOS Hooking With Objection
      • iOS Protocol Handlers
      • iOS Serialisation and Encoding
      • iOS Testing Environment
      • iOS UIActivity Sharing
      • iOS Universal Links
      • iOS UIPasteboard
      • iOS WebViews
    • Cordova Apps
    • Xamarin Apps
  • 👽Network Services Pentesting
    • Pentesting JDWP - Java Debug Wire Protocol
    • Pentesting Printers
    • Pentesting SAP
    • Pentesting VoIP
      • Basic VoIP Protocols
        • SIP (Session Initiation Protocol)
    • Pentesting Remote GdbServer
    • 7/tcp/udp - Pentesting Echo
    • 21 - Pentesting FTP
      • FTP Bounce attack - Scan
      • FTP Bounce - Download 2ºFTP file
    • 22 - Pentesting SSH/SFTP
    • 23 - Pentesting Telnet
    • 25,465,587 - Pentesting SMTP/s
      • SMTP Smuggling
      • SMTP - Commands
    • 43 - Pentesting WHOIS
    • 49 - Pentesting TACACS+
    • 53 - Pentesting DNS
    • 69/UDP TFTP/Bittorrent-tracker
    • 79 - Pentesting Finger
    • 80,443 - Pentesting Web Methodology
      • 403 & 401 Bypasses
      • AEM - Adobe Experience Cloud
      • Angular
      • Apache
      • Artifactory Hacking guide
      • Bolt CMS
      • Buckets
        • Firebase Database
      • CGI
      • DotNetNuke (DNN)
      • Drupal
      • Electron Desktop Apps
        • Electron contextIsolation RCE via preload code
        • Electron contextIsolation RCE via Electron internal code
        • Electron contextIsolation RCE via IPC
      • Flask
      • NodeJS Express
      • Git
      • Golang
      • GWT - Google Web Toolkit
      • Grafana
      • GraphQL
      • H2 - Java SQL database
      • IIS - Internet Information Services
      • ImageMagick Security
      • JBOSS
      • JIRA
      • Joomla
      • JSP
      • Laravel
      • Moodle
      • Nginx
      • PHP Tricks
        • PHP - Useful Functions & disable_functions/open_basedir bypass
          • disable_functions bypass - php-fpm/FastCGI
          • disable_functions bypass - dl function
          • disable_functions bypass - PHP 7.0-7.4 (*nix only)
          • disable_functions bypass - Imagick <= 3.3.0 PHP >= 5.4 Exploit
          • disable_functions - PHP 5.x Shellshock Exploit
          • disable_functions - PHP 5.2.4 ionCube extension Exploit
          • disable_functions bypass - PHP <= 5.2.9 on windows
          • disable_functions bypass - PHP 5.2.4 and 5.2.5 PHP cURL
          • disable_functions bypass - PHP safe_mode bypass via proc_open() and custom environment Exploit
          • disable_functions bypass - PHP Perl Extension Safe_mode Bypass Exploit
          • disable_functions bypass - PHP 5.2.3 - Win32std ext Protections Bypass
          • disable_functions bypass - PHP 5.2 - FOpen Exploit
          • disable_functions bypass - via mem
          • disable_functions bypass - mod_cgi
          • disable_functions bypass - PHP 4 >= 4.2.0, PHP 5 pcntl_exec
        • PHP - RCE abusing object creation: new $_GET["a"]($_GET["b"])
        • PHP SSRF
      • Python
      • Rocket Chat
      • Special HTTP headers
      • Source code Review / SAST Tools
      • Spring Actuators
      • Symfony
      • Tomcat
        • Basic Tomcat Info
      • Uncovering CloudFlare
      • VMWare (ESX, VCenter...)
      • WAF Bypass
      • Web API Pentesting
      • WebDav
      • Werkzeug / Flask Debug
      • Wordpress
    • 88tcp/udp - Pentesting Kerberos
      • Harvesting tickets from Windows
      • Harvesting tickets from Linux
    • 110,995 - Pentesting POP
    • 111/TCP/UDP - Pentesting Portmapper
    • 113 - Pentesting Ident
    • 123/udp - Pentesting NTP
    • 135, 593 - Pentesting MSRPC
    • 137,138,139 - Pentesting NetBios
    • 139,445 - Pentesting SMB
      • rpcclient enumeration
    • 143,993 - Pentesting IMAP
    • 161,162,10161,10162/udp - Pentesting SNMP
      • Cisco SNMP
      • SNMP RCE
    • 194,6667,6660-7000 - Pentesting IRC
    • 264 - Pentesting Check Point FireWall-1
    • 389, 636, 3268, 3269 - Pentesting LDAP
    • 500/udp - Pentesting IPsec/IKE VPN
    • 502 - Pentesting Modbus
    • 512 - Pentesting Rexec
    • 513 - Pentesting Rlogin
    • 514 - Pentesting Rsh
    • 515 - Pentesting Line Printer Daemon (LPD)
    • 548 - Pentesting Apple Filing Protocol (AFP)
    • 554,8554 - Pentesting RTSP
    • 623/UDP/TCP - IPMI
    • 631 - Internet Printing Protocol(IPP)
    • 700 - Pentesting EPP
    • 873 - Pentesting Rsync
    • 1026 - Pentesting Rusersd
    • 1080 - Pentesting Socks
    • 1098/1099/1050 - Pentesting Java RMI - RMI-IIOP
    • 1414 - Pentesting IBM MQ
    • 1433 - Pentesting MSSQL - Microsoft SQL Server
      • Types of MSSQL Users
    • 1521,1522-1529 - Pentesting Oracle TNS Listener
    • 1723 - Pentesting PPTP
    • 1883 - Pentesting MQTT (Mosquitto)
    • 2049 - Pentesting NFS Service
    • 2301,2381 - Pentesting Compaq/HP Insight Manager
    • 2375, 2376 Pentesting Docker
    • 3128 - Pentesting Squid
    • 3260 - Pentesting ISCSI
    • 3299 - Pentesting SAPRouter
    • 3306 - Pentesting Mysql
    • 3389 - Pentesting RDP
    • 3632 - Pentesting distcc
    • 3690 - Pentesting Subversion (svn server)
    • 3702/UDP - Pentesting WS-Discovery
    • 4369 - Pentesting Erlang Port Mapper Daemon (epmd)
    • 4786 - Cisco Smart Install
    • 4840 - OPC Unified Architecture
    • 5000 - Pentesting Docker Registry
    • 5353/UDP Multicast DNS (mDNS) and DNS-SD
    • 5432,5433 - Pentesting Postgresql
    • 5439 - Pentesting Redshift
    • 5555 - Android Debug Bridge
    • 5601 - Pentesting Kibana
    • 5671,5672 - Pentesting AMQP
    • 5800,5801,5900,5901 - Pentesting VNC
    • 5984,6984 - Pentesting CouchDB
    • 5985,5986 - Pentesting WinRM
    • 5985,5986 - Pentesting OMI
    • 6000 - Pentesting X11
    • 6379 - Pentesting Redis
    • 8009 - Pentesting Apache JServ Protocol (AJP)
    • 8086 - Pentesting InfluxDB
    • 8089 - Pentesting Splunkd
    • 8333,18333,38333,18444 - Pentesting Bitcoin
    • 9000 - Pentesting FastCGI
    • 9001 - Pentesting HSQLDB
    • 9042/9160 - Pentesting Cassandra
    • 9100 - Pentesting Raw Printing (JetDirect, AppSocket, PDL-datastream)
    • 9200 - Pentesting Elasticsearch
    • 10000 - Pentesting Network Data Management Protocol (ndmp)
    • 11211 - Pentesting Memcache
      • Memcache Commands
    • 15672 - Pentesting RabbitMQ Management
    • 24007,24008,24009,49152 - Pentesting GlusterFS
    • 27017,27018 - Pentesting MongoDB
    • 44134 - Pentesting Tiller (Helm)
    • 44818/UDP/TCP - Pentesting EthernetIP
    • 47808/udp - Pentesting BACNet
    • 50030,50060,50070,50075,50090 - Pentesting Hadoop
  • 🕸️Pentesting Web
    • Web Vulnerabilities Methodology
    • Reflecting Techniques - PoCs and Polygloths CheatSheet
      • Web Vulns List
    • 2FA/OTP Bypass
    • Account Takeover
    • Browser Extension Pentesting Methodology
      • BrowExt - ClickJacking
      • BrowExt - permissions & host_permissions
      • BrowExt - XSS Example
    • Bypass Payment Process
    • Captcha Bypass
    • Cache Poisoning and Cache Deception
      • Cache Poisoning to DoS
    • Clickjacking
    • Client Side Template Injection (CSTI)
    • Client Side Path Traversal
    • Command Injection
    • Content Security Policy (CSP) Bypass
      • CSP bypass: self + 'unsafe-inline' with Iframes
    • Cookies Hacking
      • Cookie Tossing
      • Cookie Jar Overflow
      • Cookie Bomb
    • CORS - Misconfigurations & Bypass
    • CRLF (%0D%0A) Injection
    • CSRF (Cross Site Request Forgery)
    • Dangling Markup - HTML scriptless injection
      • SS-Leaks
    • Dependency Confusion
    • Deserialization
      • NodeJS - __proto__ & prototype Pollution
        • Client Side Prototype Pollution
        • Express Prototype Pollution Gadgets
        • Prototype Pollution to RCE
      • Java JSF ViewState (.faces) Deserialization
      • Java DNS Deserialization, GadgetProbe and Java Deserialization Scanner
      • Basic Java Deserialization (ObjectInputStream, readObject)
      • PHP - Deserialization + Autoload Classes
      • CommonsCollection1 Payload - Java Transformers to Rutime exec() and Thread Sleep
      • Basic .Net deserialization (ObjectDataProvider gadget, ExpandedWrapper, and Json.Net)
      • Exploiting __VIEWSTATE knowing the secrets
      • Exploiting __VIEWSTATE without knowing the secrets
      • Python Yaml Deserialization
      • JNDI - Java Naming and Directory Interface & Log4Shell
    • Domain/Subdomain takeover
    • Email Injections
    • File Inclusion/Path traversal
      • phar:// deserialization
      • LFI2RCE via PHP Filters
      • LFI2RCE via Nginx temp files
      • LFI2RCE via PHP_SESSION_UPLOAD_PROGRESS
      • LFI2RCE via Segmentation Fault
      • LFI2RCE via phpinfo()
      • LFI2RCE Via temp file uploads
      • LFI2RCE via Eternal waiting
      • LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure
    • File Upload
      • PDF Upload - XXE and CORS bypass
    • Formula/CSV/Doc/LaTeX/GhostScript Injection
    • gRPC-Web Pentest
    • HTTP Connection Contamination
    • HTTP Connection Request Smuggling
    • HTTP Request Smuggling / HTTP Desync Attack
      • Browser HTTP Request Smuggling
      • Request Smuggling in HTTP/2 Downgrades
    • HTTP Response Smuggling / Desync
    • Upgrade Header Smuggling
    • hop-by-hop headers
    • IDOR
    • Integer Overflow
    • JWT Vulnerabilities (Json Web Tokens)
    • LDAP Injection
    • Login Bypass
      • Login bypass List
    • NoSQL injection
    • OAuth to Account takeover
    • Open Redirect
    • Parameter Pollution
    • Phone Number Injections
    • PostMessage Vulnerabilities
      • Blocking main page to steal postmessage
      • Bypassing SOP with Iframes - 1
      • Bypassing SOP with Iframes - 2
      • Steal postmessage modifying iframe location
    • Proxy / WAF Protections Bypass
    • Race Condition
    • Rate Limit Bypass
    • Registration & Takeover Vulnerabilities
    • Regular expression Denial of Service - ReDoS
    • Reset/Forgotten Password Bypass
    • SAML Attacks
      • SAML Basics
    • Server Side Inclusion/Edge Side Inclusion Injection
    • SQL Injection
      • MS Access SQL Injection
      • MSSQL Injection
      • MySQL injection
        • MySQL File priv to SSRF/RCE
      • Oracle injection
      • Cypher Injection (neo4j)
      • PostgreSQL injection
        • dblink/lo_import data exfiltration
        • PL/pgSQL Password Bruteforce
        • Network - Privesc, Port Scanner and NTLM chanllenge response disclosure
        • Big Binary Files Upload (PostgreSQL)
        • RCE with PostgreSQL Languages
        • RCE with PostgreSQL Extensions
      • SQLMap - Cheetsheat
        • Second Order Injection - SQLMap
    • SSRF (Server Side Request Forgery)
      • URL Format Bypass
      • SSRF Vulnerable Platforms
      • Cloud SSRF
    • SSTI (Server Side Template Injection)
      • EL - Expression Language
      • Jinja2 SSTI
    • Reverse Tab Nabbing
    • Unicode Injection
      • Unicode Normalization
    • WebSocket Attacks
    • Web Tool - WFuzz
    • XPATH injection
    • XSLT Server Side Injection (Extensible Stylesheet Language Transformations)
    • XXE - XEE - XML External Entity
    • XSS (Cross Site Scripting)
      • Abusing Service Workers
      • Chrome Cache to XSS
      • Debugging Client Side JS
      • Dom Clobbering
      • DOM Invader
      • DOM XSS
      • Iframes in XSS, CSP and SOP
      • JS Hoisting
      • Misc JS Tricks & Relevant Info
      • PDF Injection
      • Server Side XSS (Dynamic PDF)
      • Shadow DOM
      • SOME - Same Origin Method Execution
      • Sniff Leak
      • Steal Info JS
      • XSS in Markdown
    • XSSI (Cross-Site Script Inclusion)
    • XS-Search/XS-Leaks
      • Connection Pool Examples
      • Connection Pool by Destination Example
      • Cookie Bomb + Onerror XS Leak
      • URL Max Length - Client Side
      • performance.now example
      • performance.now + Force heavy task
      • Event Loop Blocking + Lazy images
      • JavaScript Execution XS Leak
      • CSS Injection
        • CSS Injection Code
  • ⛈️Cloud Security
    • Pentesting Kubernetes
    • Pentesting Cloud (AWS, GCP, Az...)
    • Pentesting CI/CD (Github, Jenkins, Terraform...)
  • 😎Hardware/Physical Access
    • Physical Attacks
    • Escaping from KIOSKs
    • Firmware Analysis
      • Bootloader testing
      • Firmware Integrity
  • 🎯Binary Exploitation
    • Basic Binary Exploitation Methodology
      • ELF Basic Information
      • Exploiting Tools
        • PwnTools
    • Stack Overflow
      • Pointer Redirecting
      • Ret2win
        • Ret2win - arm64
      • Stack Shellcode
        • Stack Shellcode - arm64
      • Stack Pivoting - EBP2Ret - EBP chaining
      • Uninitialized Variables
    • ROP - Return Oriented Programing
      • BROP - Blind Return Oriented Programming
      • Ret2csu
      • Ret2dlresolve
      • Ret2esp / Ret2reg
      • Ret2lib
        • Leaking libc address with ROP
          • Leaking libc - template
        • One Gadget
        • Ret2lib + Printf leak - arm64
      • Ret2syscall
        • Ret2syscall - ARM64
      • Ret2vDSO
      • SROP - Sigreturn-Oriented Programming
        • SROP - ARM64
    • Array Indexing
    • Integer Overflow
    • Format Strings
      • Format Strings - Arbitrary Read Example
      • Format Strings Template
    • Heap
      • Use After Free
      • Heap Overflow
    • Common Binary Exploitation Protections & Bypasses
      • ASLR
        • Ret2plt
        • Ret2ret & Reo2pop
      • CET & Shadow Stack
      • Libc Protections
      • Memory Tagging Extension (MTE)
      • No-exec / NX
      • PIE
        • BF Addresses in the Stack
      • Relro
      • Stack Canaries
        • BF Forked & Threaded Stack Canaries
        • Print Stack Canary
    • Write What Where 2 Exec
      • WWW2Exec - atexit()
      • WWW2Exec - .dtors & .fini_array
      • WWW2Exec - GOT/PLT
      • WWW2Exec - __malloc_hook
    • Common Exploiting Problems
    • Windows Exploiting (Basic Guide - OSCP lvl)
    • Linux Exploiting (Basic) (SPA)
  • 🔩Reversing
    • Reversing Tools & Basic Methods
      • Angr
        • Angr - Examples
      • Z3 - Satisfiability Modulo Theories (SMT)
      • Cheat Engine
      • Blobrunner
    • Common API used in Malware
    • Word Macros
  • 🔮Crypto & Stego
    • Cryptographic/Compression Algorithms
      • Unpacking binaries
    • Certificates
    • Cipher Block Chaining CBC-MAC
    • Crypto CTFs Tricks
    • Electronic Code Book (ECB)
    • Hash Length Extension Attack
    • Padding Oracle
    • RC4 - Encrypt&Decrypt
    • Stego Tricks
    • Esoteric languages
    • Blockchain & Crypto Currencies
  • 🦂C2
    • Salseo
    • ICMPsh
    • Cobalt Strike
  • ✍️TODO
    • Other Big References
    • Rust Basics
    • More Tools
    • MISC
    • Pentesting DNS
    • Hardware Hacking
      • I2C
      • UART
      • Radio
      • JTAG
      • SPI
    • Radio Hacking
      • Pentesting RFID
      • Infrared
      • Sub-GHz RF
      • iButton
      • Flipper Zero
        • FZ - NFC
        • FZ - Sub-GHz
        • FZ - Infrared
        • FZ - iButton
        • FZ - 125kHz RFID
      • Proxmark 3
      • FISSURE - The RF Framework
      • Low-Power Wide Area Network
      • Pentesting BLE - Bluetooth Low Energy
    • Industrial Control Systems Hacking
    • Burp Suite
    • Other Web Tricks
    • Interesting HTTP
    • Emails Vulnerabilities
    • Android Forensics
    • TR-069
    • 6881/udp - Pentesting BitTorrent
    • Online Platforms with API
    • Stealing Sensitive Information Disclosure from a Web
    • Post Exploitation
    • Cookies Policy
由 GitBook 提供支持
在本页
  • 基本概述
  • Kerberos认证
  • 备忘单
  • 侦察Active Directory(无凭证/会话)
  • 用户枚举
  • 知道一个或多个用户名
  • LLMNR/NBT-NS 毒化
  • NTML 中继
  • 窃取 NTLM 凭证
  • 使用凭证/会话枚举活动目录
  • 枚举
  • Kerberoast
  • 远程连接(RDP、SSH、FTP、Win-RM 等)
  • 本地权限提升
  • 当前会话票证
  • NTML Relay
  • 在计算机共享中查找凭证
  • 窃取 NTLM 凭证
  • CVE-2021-1675/CVE-2021-34527 PrintNightmare
  • 在具有特权凭证/会话的活动目录上提升权限
  • 提取哈希
  • 传递哈希
  • 超越传递哈希/传递密钥
  • 传递门票
  • 凭证重用
  • MSSQL 滥用 & 受信任的链接
  • 无限制委派
  • 有限制的委派
  • 基于资源的有限制委派
  • ACL 滥用
  • 打印池服务滥用
  • 第三方会话滥用
  • LAPS
  • 证书窃取
  • 证书模板滥用
  • 具有高权限帐户的后期利用
  • 转储域凭据
  • 特权升级作为持久性
  • 银票据
  • 金票据
  • 钻石票据
  • 证书帐户持久性
  • 证书域持久性
  • AdminSDHolder 组
  • DSRM 凭据
  • ACL 持久性
  • 安全描述符
  • 骨架密钥
  • 自定义 SSP
  • DCShadow
  • LAPS 持久性
  • 森林特权升级 - 域信任
  • 基本信息
  • 不同的信任
  • 外部森林域 - 单向(入站)或双向
  • 外部森林域 - 单向(出站)
  • 域信任滥用缓解
  • SID 过滤:
  • 选择性身份验证:
  • AD -> Azure & Azure -> AD
  • 一些常规防御措施
  • 保护凭据的防御措施
  • 实施欺骗技术
  • 识别欺骗
  • 绕过检测系统
  • 参考资料
  1. Windows Hardening

Active Directory Methodology

上一页Windows C Payloads下一页Abusing Active Directory ACLs/ACEs

最后更新于1年前

从零开始学习AWS黑客技术,成为专家 !

支持HackTricks的其他方式:

  • 如果您想看到您的公司在HackTricks中做广告或下载PDF格式的HackTricks,请查看!

  • 获取

  • 探索,我们的独家收藏品

  • 加入 💬 或 或 关注我们的Twitter 🐦 。

  • 通过向和 github仓库提交PR来分享您的黑客技巧。

基本概述

Active Directory作为一项基础技术,使网络管理员能够高效地在网络中创建和管理域、用户和对象。它被设计为可扩展的,便于将大量用户组织成可管理的组和子组,同时在不同层级上控制访问权限。

Active Directory的结构由三个主要层级组成:域、树和森林。域包含一组对象,如用户或设备,共享一个数据库。树是由这些域组成的群组,通过共享结构连接在一起,森林代表多个树的集合,通过信任关系相互连接,形成组织结构的最高层。在每个层级上可以指定特定的访问和通信权限。

Active Directory中的关键概念包括:

  1. 目录 – 存储有关Active Directory对象的所有信息。

  2. 对象 – 表示目录中的实体,包括用户、组或共享文件夹。

  3. 域 – 作为目录对象的容器,多个域可以共存于一个森林中,每个域维护自己的对象集合。

  4. 树 – 共享一个公共根域的域的分组。

  5. 森林 – Active Directory组织结构的最高层,由多个通过信任关系相互连接的树组成。

**Active Directory域服务(AD DS)**涵盖了网络中的集中管理和通信所必需的一系列服务。这些服务包括:

  1. 域服务 – 集中存储数据并管理用户和域之间的交互,包括认证和搜索功能。

  2. 证书服务 – 管理安全数字证书的创建、分发和管理。

  3. 轻量级目录服务 – 通过LDAP协议支持启用目录的应用程序。

  4. 目录联合服务 – 提供单点登录功能,以在单个会话中对多个Web应用程序的用户进行身份验证。

  5. 权限管理 – 通过监管未经授权的分发和使用来帮助保护版权材料。

  6. DNS服务 – 对于域名的解析至关重要。

Kerberos认证

备忘单

侦察Active Directory(无凭证/会话)

如果您只能访问AD环境但没有任何凭证/会话,您可以:

  • 对网络进行渗透测试:

  • 枚举DNS可能会提供关于域中关键服务器(如Web、打印机、共享、VPN、媒体等)的信息。

  • gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt

  • 检查SMB服务上的空和Guest访问权限(这在现代Windows版本上不起作用):

  • enum4linux -a -u "" -p "" <DC IP> && enum4linux -a -u "guest" -p "" <DC IP>

  • smbmap -u "" -p "" -P 445 -H <DC IP> && smbmap -u "guest" -p "" -P 445 -H <DC IP>

  • smbclient -U '%' -L //<DC IP> && smbclient -U 'guest%' -L //

  • 可以在此找到有关如何枚举SMB服务器的更详细指南:

  • 枚举LDAP

  • nmap -n -sV --script "ldap* and not brute" -p 389 <DC IP>

  • 可以在此找到有关如何枚举LDAP的更详细指南(特别注意匿名访问):

  • 毒害网络

  • 从内部文档、社交媒体、域环境内的服务(主要是Web)以及公开可用的地方提取公司员工的用户名/姓名。

  • 工具:

用户枚举

  • Kerbrute枚举:当请求一个无效的用户名时,服务器将使用_Kerberos错误_代码_KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_进行响应,从而使我们能够确定用户名无效。有效的用户名将在_AS-REP_响应中产生_TGT_,或者产生错误_KRB5KDC_ERR_PREAUTH_REQUIRED_,表明用户需要执行预身份验证。

./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases

nmap -p 88 --script=krb5-enum-users --script-args="krb5-enum-users.realm='DOMAIN'" <IP>
Nmap -p 88 --script=krb5-enum-users --script-args krb5-enum-users.realm='<domain>',userdb=/root/Desktop/usernames.txt <IP>

msf> use auxiliary/gather/kerberos_enumusers

crackmapexec smb dominio.es  -u '' -p '' --users | awk '{print $4}' | uniq
  • OWA (Outlook Web Access) 服务器

ipmo C:\Tools\MailSniper\MailSniper.ps1
# Get info about the domain
Invoke-DomainHarvestOWA -ExchHostname [ip]
# Enumerate valid users from a list of potential usernames
Invoke-UsernameHarvestOWA -ExchHostname [ip] -Domain [domain] -UserList .\possible-usernames.txt -OutFile valid.txt
# Password spraying
Invoke-PasswordSprayOWA -ExchHostname [ip] -UserList .\valid.txt -Password Summer2021
# Get addresses list from the compromised mail
Get-GlobalAddressList -ExchHostname [ip] -UserName [domain]\[username] -Password Summer2021 -OutFile gal.txt

知道一个或多个用户名

好的,所以您知道已经有一个有效的用户名,但没有密码... 然后尝试:

  • 请注意,您还可以喷洒 OWA 服务器,尝试访问用户的邮件服务器。

LLMNR/NBT-NS 毒化

您可能能够通过毒化网络的一些协议来获得一些挑战哈希以破解:

NTML 中继

窃取 NTLM 凭证

如果您可以使用空用户或访客用户访问其他计算机或共享,您可以放置文件(如 SCF 文件),如果某种方式访问了这些文件,将会触发对您的 NTML 认证,以便您可以窃取****NTLM 挑战以破解它:

使用凭证/会话枚举活动目录

在此阶段,您需要破解有效域帐户的凭证或会话。如果您有一些有效凭证或作为域用户的 shell,请记住之前提供的选项仍然是妥协其他用户的选项。

在开始经过身份验证的枚举之前,您应该了解Kerberos 双跳问题。

枚举

获得一个帐户的控制权是开始妥协整个域的重要一步,因为您将能够开始活动目录枚举:

  • 一个您可以使用的具有 GUI 的工具来枚举目录是来自SysInternal Suite 的AdExplorer.exe。

  • 您还可以尝试自动化工具,如:

  • 提取所有域用户

从 Windows(net user /domain,Get-DomainUser或wmic useraccount get name,sid)很容易获取所有域用户名。在 Linux 中,您可以使用:GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username或enum4linux -a -u "user" -p "password" <DC IP>

即使此枚举部分看起来很小,这是最重要的部分。访问链接(主要是 cmd、powershell、powerview 和 BloodHound 的链接),学习如何枚举域并练习直到您感到自在。在评估期间,这将是找到通往 DA 的关键时刻,或者决定无法做任何事情的关键时刻。

Kerberoast

Kerberoasting 包括获取与用户帐户绑定的服务使用的TGS 票证并离线破解其基于用户密码的加密。

有关更多信息,请参阅:

远程连接(RDP、SSH、FTP、Win-RM 等)

一旦您获得了一些凭证,您可以检查是否可以访问任何计算机。为此,您可以使用CrackMapExec尝试使用不同协议连接到多台服务器,根据您的端口扫描。

本地权限提升

如果您作为常规域用户获得了凭证或会话,并且可以使用此用户访问域中的任何计算机,您应该尝试找到提升本地权限和窃取凭证的方法。这是因为只有具有本地管理员权限,您才能在内存(LSASS)和本地(SAM)中转储其他用户的哈希。

当前会话票证

当前用户的票证中很不可能会发现允许访问意外资源的权限,但您可以检查:

## List all tickets (if not admin, only current user tickets)
.\Rubeus.exe triage
## Dump the interesting one by luid
.\Rubeus.exe dump /service:krbtgt /luid:<luid> /nowrap
[IO.File]::WriteAllBytes("ticket.kirbi", [Convert]::FromBase64String("<BASE64_TICKET>"))

NTML Relay

如果你已经枚举了活动目录,你将拥有更多的电子邮件和对网络的更好理解。你可能能够强制进行 NTML 中继攻击。

在计算机共享中查找凭证

现在你已经有了一些基本凭证,你应该检查是否可以在活动目录中找到任何共享的有趣文件。你可以手动执行此操作,但这是一项非常乏味重复的任务(尤其是如果你发现需要检查数百个文档)。

窃取 NTLM 凭证

如果你可以访问其他计算机或共享,你可以放置文件(如一个 SCF 文件),如果某种方式被访问,将会触发一个针对你的 NTML 认证,这样你就可以窃取 NTLM 挑战以破解它:

CVE-2021-1675/CVE-2021-34527 PrintNightmare

此漏洞允许任何经过身份验证的用户妥协域控制器。

在具有特权凭证/会话的活动目录上提升权限

对于以下技术,普通域用户是不够的,你需要一些特殊的特权/凭证来执行这些攻击。

提取哈希

传递哈希

超越传递哈希/传递密钥

这种攻击旨在使用用户的 NTLM 哈希请求 Kerberos 门票,作为常见的通过 NTLM 协议传递哈希的替代方法。因此,在禁用 NTLM 协议且仅允许 Kerberos 作为认证协议的网络中,这可能特别有用。

传递门票

在“传递门票(PTT)”攻击方法中,攻击者窃取用户的认证票据,而不是其密码或哈希值。然后使用这个被窃取的票据冒充用户,获取对网络中资源和服务的未授权访问。

凭证重用

如果你有本地管理员的哈希或密码,你应该尝试使用它在其他计算机上进行本地登录。

# Local Auth Spray (once you found some local admin pass or hash)
## --local-auth flag indicate to only try 1 time per machine
crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9cab376ecd08491764a0 | grep +

请注意,这可能会嘈杂,而LAPS可以减轻这种情况。

MSSQL 滥用 & 受信任的链接

如果用户具有访问 MSSQL 实例的权限,他可能能够使用它在 MSSQL 主机中(如果作为 SA 运行)执行命令,窃取 NetNTLM 哈希,甚至执行中继 攻击。 此外,如果一个 MSSQL 实例被另一个 MSSQL 实例信任(数据库链接)。如果用户对受信任的数据库具有权限,他将能够使用信任关系在另一个实例中执行查询。这些信任可以链接在一起,用户最终可能能够找到一个配置错误的数据库,从而可以执行命令。 数据库之间的链接甚至可以跨森林信任工作。

无限制委派

有限制的委派

如果允许用户或计算机进行“有限制的委派”,它将能够模拟任何用户以访问计算机中的某些服务。 然后,如果您妥协了此用户/计算机的哈希,您将能够模拟任何用户(甚至域管理员)以访问某些服务。

基于资源的有限制委派

在远程计算机的 Active Directory 对象上具有写入权限可以实现以提升权限执行代码:

ACL 滥用

受损的用户可能对一些域对象具有一些有趣的特权,这可能让您横向移动/提升特权。

打印池服务滥用

发现域中有一个监听 Spool 服务的服务可能会被滥用以获取新凭证和提升权限。

第三方会话滥用

如果其他用户访问受损的计算机,可以从内存中收集凭证,甚至在其进程中注入信标以冒充他们。 通常用户将通过 RDP 访问系统,因此您可以在这里执行一些关于第三方 RDP 会话的攻击:

LAPS

LAPS 提供了一个管理域加入计算机上的本地管理员密码的系统,确保其是随机的、唯一的,并经常更改。这些密码存储在 Active Directory 中,并且通过 ACLs 仅控制授权用户的访问。有足够权限访问这些密码,就可以进行到其他计算机的转移。

证书窃取

从受损计算机中收集证书可能是升级环境中的权限的一种方式:

证书模板滥用

如果配置了易受攻击的模板,可以滥用它们以提升权限:

具有高权限帐户的后期利用

转储域凭据

一旦获得域管理员甚至更好的企业管理员权限,您可以转储域数据库:ntds.dit。

特权升级作为持久性

之前讨论过的一些技术可以用于持久性。 例如,您可以:

Set-DomainObject -Identity <username> -Set @{serviceprincipalname="fake/NOTHING"}r
Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdentity bfarmer -Rights DCSync

银票据

银票据攻击通过使用(例如,PC 帐户的哈希)创建特定服务的合法票据授予服务 (TGS) 票据。此方法用于访问服务权限。

金票据

金票据攻击涉及攻击者获取 Active Directory(AD)环境中 krbtgt 帐户的 NTLM 哈希。此帐户特殊之处在于它用于签署所有票据授予票据 (TGTs),这对于在 AD 网络内进行身份验证至关重要。

一旦攻击者获得此哈希,他们可以为他们选择的任何帐户创建TGTs(银票据攻击)。

钻石票据

这些类似于以一种方式伪造的金票据,绕过常见的金票据检测机制。

证书帐户持久性

拥有帐户的证书或能够请求它们是一种非常好的方式,可以在用户帐户中持久存在(即使他更改密码):

证书域持久性

使用证书也可以在域内以高权限持久存在:

AdminSDHolder 组

Active Directory 中的 AdminSDHolder 对象通过在这些组上应用标准的 访问控制列表 (ACL) 来确保特权组(如域管理员和企业管理员)的安全,以防止未经授权的更改。但是,这个功能可以被利用;如果攻击者修改 AdminSDHolder 的 ACL 以授予常规用户完全访问权限,那么该用户将对所有特权组拥有广泛的控制权。这个旨在保护的安全措施可能会逆火,除非受到密切监视,否则会导致未经授权的访问。

DSRM 凭据

在每个域控制器 (DC) 中都存在一个本地管理员帐户。通过在这样的计算机上获得管理员权限,可以使用 mimikatz 提取本地管理员哈希。随后,需要进行注册表修改以启用使用此密码,从而实现远程访问本地管理员帐户。

ACL 持久性

您可以对某些特定域对象的用户授予特殊权限,这将使用户能够在将来提升权限。

安全描述符

安全描述符 用于存储对象对对象的权限。如果您可以对对象的安全描述符进行小小更改,则可以在不需要成为特权组成员的情况下获得对该对象的非常有趣的权限。

骨架密钥

在内存中更改 LSASS 以建立通用密码,从而授予对所有域帐户的访问权限。

自定义 SSP

DCShadow

它在 AD 中注册一个新的域控制器,并使用它来在指定对象上推送属性(SIDHistory、SPN...),而不会留下任何关于修改的日志。您需要 DA 权限并位于根域内。 请注意,如果使用错误的数据,将会出现非常丑陋的日志。

LAPS 持久性

之前我们已经讨论了如果您有足够的权限读取 LAPS 密码如何升级权限。但是,这些密码也可以用于保持持久性。 查看:

森林特权升级 - 域信任

微软将森林视为安全边界。这意味着入侵单个域可能导致整个森林被入侵。

基本信息

在典型情况下,如果用户打算访问受信任域中的服务,他们必须首先从自己域的 DC 请求一个称为领域间 TGT 的特殊票据。这个 TGT 使用两个域已经同意的共享密钥进行加密。然后用户将此 TGT 提交给受信任域的 DC 以获取一个服务票据 (TGS)。在受信任域的 DC 成功验证领域间 TGT 后,它会发放一个 TGS,授予用户访问服务的权限。

步骤:

  1. 域 1 中的客户计算机通过使用其NTLM 哈希从其域控制器 (DC1) 请求一个票据授予票据 (TGT) 来启动该过程。

  2. 如果客户成功验证,DC1将发放一个新的 TGT。

  3. 然后客户从 DC1 请求一个领域间 TGT,这是访问域 2 中资源所需的。

  4. 领域间 TGT 使用 DC1 和 DC2 之间共享的信任密钥进行加密,这是双向域信任的一部分。

  5. 客户将领域间 TGT 带到域 2 的域控制器 (DC2)。

  6. DC2使用其共享的信任密钥验证领域间 TGT,并在有效时发放一个用于访问客户想要访问的域 2 中的服务器的票据授予服务 (TGS)。

  7. 最后,客户将此 TGS 提交给服务器,该服务器使用其帐户哈希进行加密,以获取对域 2 中服务的访问权限。

不同的信任

重要的是要注意信任可以是单向的或双向的。在双向选项中,两个域将相互信任,但在单向信任关系中,其中一个域将是受信任域,另一个是信任域。在最后一种情况下,您只能从受信任域访问信任域内的资源。

如果域 A 信任域 B,则 A 是信任域,B 是受信任域。此外,在域 A 中,这将是出站信任;在域 B 中,这将是入站信任。

不同的信任关系

  • 父子信任:这是同一森林中常见的设置,其中子域自动与其父域建立双向传递信任。基本上,这意味着认证

Get-DomainTrust

SourceName      : sub.domain.local    --> current domain
TargetName      : domain.local        --> foreign domain
TrustType       : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : WITHIN_FOREST       --> WITHIN_FOREST: Both in the same forest
TrustDirection  : Bidirectional       --> Trust direction (2ways in this case)
WhenCreated     : 2/19/2021 1:28:00 PM
WhenChanged     : 2/19/2021 1:28:00 PM

有2个受信任的密钥,一个用于 Child --> Parent,另一个用于 Parent --> Child。 您可以使用以下命令查看当前域使用的密钥:

Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local
Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\mcorp$"'

SID-History Injection

利用SID-History注入来升级为企业管理员,滥用与SID-History注入相关的子/父域之间的信任:

利用可写的配置NC

了解如何利用配置命名上下文(NC)是至关重要的。配置NC在Active Directory(AD)环境中充当跨森林的配置数据的中央存储库。这些数据会被复制到森林中的每个域控制器(DC),可写DC会维护配置NC的可写副本。要利用这一点,必须在DC上具有SYSTEM特权,最好是子DC。

将GPO链接到根DC站点

配置NC的站点容器包含有关AD森林中所有域加入计算机站点的信息。通过在任何DC上以SYSTEM特权运行,攻击者可以将GPO链接到根DC站点。这一操作可能通过操纵应用于这些站点的策略来危害根域。

危害森林中的任何gMSA

一种攻击向量涉及针对域内特权gMSA。KDS根密钥,用于计算gMSA密码,存储在配置NC中。通过在任何DC上具有SYSTEM特权,可以访问KDS根密钥并计算森林中任何gMSA的密码。

模式更改攻击

此方法需要耐心等待新特权AD对象的创建。具有SYSTEM特权的攻击者可以修改AD模式以授予任何用户对所有类的完全控制。这可能导致对新创建的AD对象的未经授权访问和控制。

从DA到EA使用ADCS ESC5

ADCS ESC5漏洞旨在控制公钥基础设施(PKI)对象,以创建一个证书模板,使得可以作为森林中的任何用户进行身份验证。由于PKI对象驻留在配置NC中,因此攻击者可以通过妥善利用可写子DC来执行ESC5攻击。

外部森林域 - 单向(入站)或双向

Get-DomainTrust
SourceName      : a.domain.local   --> Current domain
TargetName      : domain.external  --> Destination domain
TrustType       : WINDOWS-ACTIVE_DIRECTORY
TrustAttributes :
TrustDirection  : Inbound          --> Inboud trust
WhenCreated     : 2/19/2021 10:50:56 PM
WhenChanged     : 2/19/2021 10:50:56 PM

在这种情况下,您的域受到外部域的信任,使您对其拥有未确定的权限。您需要找出您的域的哪些主体对外部域具有哪些访问权限,然后尝试利用它:

外部森林域 - 单向(出站)

Get-DomainTrust -Domain current.local

SourceName      : current.local   --> Current domain
TargetName      : external.local  --> Destination domain
TrustType       : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : FOREST_TRANSITIVE
TrustDirection  : Outbound        --> Outbound trust
WhenCreated     : 2/19/2021 10:15:24 PM
WhenChanged     : 2/19/2021 10:15:24 PM

在这种情况下,您的域正在向来自不同域的主体授予一些特权。

然而,当受信任的域信任信任域时,受信任的域会创建一个使用受信任密码作为密码的可预测名称的用户。这意味着可以访问信任域中的用户以进入受信任域进行枚举并尝试提升更多特权:

另一种妥协受信任域的方法是等待在受信任域用户可以访问的计算机上登录,然后通过RDP登录。然后,攻击者可以在RDP会话过程中注入代码并从那里访问受害者的原始域。 此外,如果受害者挂载了他的硬盘,攻击者可以在硬盘的启动文件夹中存储后门。这种技术称为RDPInception。

域信任滥用缓解

SID 过滤:

  • 通过SID过滤来减轻跨森林信任中利用SID历史属性的攻击风险,SID过滤在所有森林信任上默认激活。这是基于一个假设,即考虑到森林而不是域,将森林视为安全边界,符合微软的立场。

  • 然而,有一个问题:SID过滤可能会干扰应用程序和用户访问,导致偶尔禁用。

选择性身份验证:

  • 对于森林间的信任,使用选择性身份验证确保来自两个森林的用户不会自动验证。相反,需要为用户访问信任域或森林内的域和服务器授予明确权限。

  • 需要注意的是,这些措施并不能防止对可写配置命名上下文(NC)的利用或对信任帐户的攻击。

AD -> Azure & Azure -> AD

一些常规防御措施

保护凭据的防御措施

  • 域管理员限制: 建议只允许域管理员登录域控制器,避免在其他主机上使用他们。

  • 服务帐户特权: 服务不应以域管理员(DA)特权运行,以保持安全性。

  • 临时特权限制: 对于需要DA特权的任务,其持续时间应受限制。可以通过以下方式实现:Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)

实施欺骗技术

  • 实施欺骗技术涉及设置陷阱,如虚假用户或计算机,具有诸如不过期或标记为可委派的密码等功能。详细方法包括创建具有特定权限的用户或将其添加到高特权组中。

  • 一个实际的例子涉及使用工具:Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose

识别欺骗

  • 对于用户对象: 可疑指标包括非典型的ObjectSID、不经常的登录、创建日期和低错误密码计数。

绕过检测系统

  • Microsoft ATA检测绕过:

  • 用户枚举: 避免在域控制器上进行会话枚举以防止ATA检测。

  • 票据冒充: 利用aes密钥进行票据创建有助于通过不降级为NTLM来避免检测。

  • DCSync攻击: 建议从非域控制器执行以避免ATA检测,因为直接从域控制器执行会触发警报。

参考资料

有关更详细的解释,请查看:

要学习如何攻击AD,您需要非常了解Kerberos认证过程。

您可以访问快速查看可以运行以枚举/利用AD的命令。

扫描网络,查找机器和打开端口,尝试从中利用漏洞或提取凭证(例如,)。

查看通用以获取更多关于如何执行此操作的信息。

收集凭证

通过访问主机

通过收集凭证

:

如果找到公司员工的完整姓名,可以尝试不同的AD用户名约定()。最常见的约定有:NameSurname、Name.Surname、NamSur(每个字母3个)、Nam.Sur、NSurname、N.Surname、SurnameName、Surname.Name、SurnameN、Surname.N、3个_随机字母和3个随机数字_(abc123)。

匿名SMB/LDAP枚举: 查看和页面。

如果在网络中找到了这些服务器,您还可以对其执行用户枚举。例如,您可以使用工具:

您可以在和这个()中找到用户名列表。

但是,您应该在执行此步骤之前进行的侦察步骤中获得了公司员工的姓名。有了名字和姓氏,您可以使用脚本生成潜在的有效用户名。

:如果用户没有属性 DONT_REQ_PREAUTH,您可以为该用户请求 AS_REP 消息,该消息将包含由用户密码的派生加密的一些数据。

:尝试使用发现的每个用户的常见密码,也许某些用户正在使用弱密码(请记住密码策略!)。

如果您已枚举出活动目录,您将获得更多的电子邮件和对网络的更好理解。您可能能够强制进行 NTML 以访问 AD 环境。

关于,您现在可以找到每个可能易受攻击的用户,关于,您可以获取所有用户名的列表,并尝试使用被妥协帐户的密码、空密码和新的有希望的密码。

您可以使用

您还可以使用,这将更隐蔽

您还可以使用提取更详细的信息

在活动目录中进行侦察的另一个神奇工具是。它不太隐蔽(取决于您使用的收集方法),但如果您不在乎,绝对值得一试。找到用户可以 RDP 的位置,找到其他组的路径等。

其他自动化的 AD 枚举工具有:、、、。

可能包含有趣的信息。

您还可以使用ldapsearch在 LDAP 数据库中搜索以查找字段_userPassword_和_unixUserPassword_中的凭证,甚至是_Description_。参见以获取其他方法。

如果您使用Linux,您还可以使用枚举域。

本书中有一整页关于和一个。此外,不要忘记使用。

希望你已经成功妥协了一些本地管理员帐户,使用 AsRepRoast、Password Spraying、Kerberoast、Responder 包括中继、EvilSSDP、本地权限提升等方法。 然后,是时候在内存和本地转储所有哈希了。

一旦你有了用户的哈希,你可以使用它来冒充该用户。 你需要使用一些工具,它将使用该哈希执行 NTLM 认证,或者你可以创建一个新的 sessionlogon 并将该哈希注入 LSASS,因此当执行任何 NTLM 认证时,将使用该哈希。最后一种选择是 mimikatz 所做的。

如果发现任何具有属性 的计算机对象,并且您在计算机中具有域权限,您将能够从每个登录到计算机的用户的内存中转储 TGT。 因此,如果域管理员登录到计算机,您将能够转储他的 TGT 并使用 模拟他。 借助有限制的委派,您甚至可以自动妥协打印服务器(希望它将是 DC)。

。

使用户容易受到 的攻击

使用户容易受到 的攻击

授予用户 权限

您可以创建自己的 SSP 以以明文捕获用于访问计算机的凭据。

是一种安全机制,使一个域的用户能够访问另一个域中的资源。它实质上在两个域的认证系统之间创建了一个链接,允许认证验证无缝流动。当域建立信任时,它们在它们的域控制器 (DCs) 中交换并保留特定的密钥,这对信任的完整性至关重要。

要深入了解信息,可以研究有关的研究。

有关详细分析,请参阅中的讨论。

可在中找到更多阅读材料。

有关更多详细信息,请阅读。在缺乏ADCS的情况下,攻击者有能力设置必要的组件,如中所讨论的。

另一种妥协受信任域的方法是找到在域信任的相反方向上创建的(这并不常见)。

\

有关部署欺骗技术的更多信息,请访问。

一般指标: 将潜在的虚假对象的属性与真实对象的属性进行比较,可以揭示不一致之处。像这样的工具可以帮助识别这种欺骗。

从零开始学习AWS黑客技术,成为 !

支持HackTricks的其他方式:

如果您想在HackTricks中看到您的公司广告或下载PDF版HackTricks,请查看!

获取

探索,我们的独家收藏品

加入 💬 或 或在Twitter 🐦 上关注我们。

通过向和 github仓库提交PR来分享您的黑客技巧。

🪟
htARTE(HackTricks AWS红队专家)
订阅计划
官方PEASS和HackTricks周边产品
PEASS家族
NFT
Discord群
电报群
@carlospolopm
HackTricks
HackTricks Cloud
TechTerms - Active Directory定义
如果您仍不了解其工作原理,请阅读此页面。
https://wadcoms.github.io/
打印机可能是非常有趣的目标
渗透测试方法论
139,445 - Pentesting SMB
389, 636, 3268, 3269 - Pentesting LDAP
模拟使用Responder的服务
暴露带有evil-S的虚假UPnP服务
SDP
OSINT
阅读此内容
w0Tx/generate-ad-username
urbanadventurer/username-anarchy
渗透测试SMB
渗透测试LDAP
MailSniper
此 GitHub 存储库
statistically-likely-usernames
namemash.py
ASREPRoast
密码喷洒
Password Spraying / Brute Force
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
Places to steal NTLM creds
Kerberos Double Hop Problem
ASREPRoast
密码喷洒
用于侦察的 PowerShell
powerview
BloodHound
AD 的 DNS 记录
PayloadsAllTheThings 上的 AD 用户评论中的密码
pywerview
tomcarver16/ADSearch
61106960/adPEAS
Kerberoast
Windows 中的本地权限提升
清单
WinPEAS
Places to steal NTLM creds
PrintNightmare
阅读此页面了解获取哈希的不同方法。
Over Pass the Hash/Pass the Key
Pass the Ticket
MSSQL AD Abuse
ADS_UF_TRUSTED_FOR_DELEGATION
传递票据
Unconstrained Delegation
Constrained Delegation
Resource-based Constrained Delegation
Abusing Active Directory ACLs/ACEs
Abusing Active Directory ACLs/ACEs
RDP Sessions Abuse
LAPS
AD CS Certificate Theft
AD CS Domain Escalation
有关 DCSync 攻击的更多信息,请参阅此处
有关如何窃取 NTDS.dit 的更多信息,请参阅此处
Kerberoast
ASREPRoast
Silver Ticket
Golden Ticket
Diamond Ticket
AD CS Account Persistence
AD CS Domain Persistence
DSRM Credentials
Abusing Active Directory ACLs/ACEs
Security Descriptors
Skeleton Key
Custom SSP
DCShadow
LAPS
域信任
SID-History Injection
绕过SID过滤
Golden gMSA Trust Attacks
Schema Change Trust Attacks
From DA to EA with ESC5
从子域管理员升级为企业管理员
External Forest Domain - OneWay (Inbound) or bidirectional
External Forest Domain - One-Way (Outbound)
RDP Sessions Abuse
有关域信任的更多信息,请访问ired.team。
了解如何保护凭据的更多信息。
GitHub上的Deploy-Deception
HoneypotBuster
http://www.harmj0y.net/blog/redteaming/a-guide-to-attacking-domain-trusts/
https://www.labofapenetrationtester.com/2018/10/deploy-deception.html
https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain
htARTE(HackTricks AWS红队专家)
订阅计划
官方PEASS & HackTricks周边产品
PEASS家族
NFTs
Discord群
电报群
@carlospolopm
HackTricks
HackTricks Cloud
DCSync
滥用中继攻击
中继攻击
有关 AdminDSHolder 组的更多信息,请点击此处。
了解什么是 SSP(安全支持提供程序)请点击此处。
Azure AD Connect - Hybrid IdentityHackTricks Cloud
AD Explorer
ADRecon
Group3r
PingCastle
Logo
CMD 执行基本侦察
阅读此页面获取更多信息。
点击此链接了解可使用的工具。
SQL受信任链接