Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🏠 Back to Blog

windapsearch Cheatsheet

Python tool for enumerating Active Directory via LDAP queries. Simplifies common AD enumeration tasks.


Basic Syntax

./windapsearch.py [options]

Connection Options

OptionDescriptionExample
--dc-ip IPDomain Controller IP--dc-ip 172.16.5.5
-d DOMAINDomain name-d domain.local
-u USERUsername (blank for anonymous)-u "admin" or -u ""
-p PASSPassword-p Password123
--fullReturn full LDAP attributes
-o FILEOutput to file-o results.txt

Enumeration Flags

FlagDescription
-UEnumerate all users
-GEnumerate all groups
-CEnumerate all computers
-m GROUPEnumerate members of a group
--daEnumerate Domain Admins group members
--admin-objectsEnumerate objects with admin count > 0
-PUEnumerate privileged users
--functionalityEnumerate domain functionality level
--user-spnsFind users with SPNs (Kerberoastable)
--unconstrained-usersUsers with unconstrained delegation
--unconstrained-computersComputers with unconstrained delegation
--gposEnumerate GPOs
-s SEARCHCustom LDAP search term
--custom FILTERCustom LDAP filter
--attrs ATTRSAttributes to return (comma-separated)

Anonymous Bind Examples

Enumerate All Users (Anonymous)

./windapsearch.py --dc-ip 172.16.5.5 -u "" -U

Enumerate All Groups (Anonymous)

./windapsearch.py --dc-ip 172.16.5.5 -u "" -G

Enumerate Computers (Anonymous)

./windapsearch.py --dc-ip 172.16.5.5 -u "" -C

Authenticated Examples

Enumerate Domain Admins

./windapsearch.py --dc-ip 172.16.5.5 -d domain.local -u user@domain.local -p Password123 --da

Enumerate Privileged Users

./windapsearch.py --dc-ip 172.16.5.5 -d domain.local -u user@domain.local -p Password123 -PU

Enumerate Members of Specific Group

./windapsearch.py --dc-ip 172.16.5.5 -d domain.local -u user@domain.local -p Password123 -m "IT Admins"

Full Output with All Attributes

./windapsearch.py --dc-ip 172.16.5.5 -d domain.local -u user@domain.local -p Password123 -U --full
./windapsearch.py --dc-ip 172.16.5.5 -d domain.local -u user@domain.local -p Password123 -s "admin"

Additional Enumeration

Kerberoastable Users

./windapsearch.py --dc-ip 172.16.5.5 -d domain.local -u user@domain.local -p Password123 --user-spns

Unconstrained Delegation

./windapsearch.py --dc-ip 172.16.5.5 -d domain.local -u user@domain.local -p Password123 --unconstrained-users
./windapsearch.py --dc-ip 172.16.5.5 -d domain.local -u user@domain.local -p Password123 --unconstrained-computers

GPO Enumeration

./windapsearch.py --dc-ip 172.16.5.5 -d domain.local -u user@domain.local -p Password123 --gpos

Tips

  • Blank -u "" triggers anonymous bind (only works if LDAP anonymous bind is enabled)
  • Use --full to get all attributes for deeper analysis
  • -PU performs recursive lookups for nested group membership — reveals users with excess privileges through group nesting (useful for reporting)
  • Simpler than raw ldapsearch for common AD enumeration tasks
  • Output can be saved with -o for post-processing