Skip to main content
ADscan - Active Directory Pentesting Tool for Linux

ADscan - Active Directory Pentesting Tool for Linux

PyPI version downloads GitHub stars GitHub forks License: BSL 1.1 Platform Discord

Free active directory pentesting tool for Linux. Replace your AD pentest toolchain with one CLI.

ADscan is a free Linux CLI for pentesters, red teamers, and security consultants. It covers 103 Active Directory attack techniques in a single workflow: enumeration, Kerberoasting, AS-REP roasting, ADCS/ESC exploitation, DCSync, credential harvesting, and native attack-path analysis. No Windows required.

Docs | Discord | Website


Table of Contents


Demo

asciicast

Real run, no cuts: ADscan takes HTB Forest from zero access to Domain Admin in ~3 minutes, unattended.


Quick Start

Before you start: ADscan runs inside Docker, so you need Docker Engine installed and running, and about 12 GB of free disk for the runtime image (the installer requires 15 GB free before it will pull). Host must be Linux or macOS. Native Windows and WSL are not supported.

docker version   # if this fails, install Docker first
pipx install adscan
adscan install
adscan start

Docker install steps per distribution, and everything else: adscanpro.com/docs

Once inside the shell, start an unauthenticated recon:

(ADscan) > start_unauth

This discovers domain controllers, SMB exposure, null sessions, and roastable accounts without credentials. From there, run start_auth with a domain user to enumerate LDAP, collect BloodHound data, and build the attack graph.

One command instead of the shell

adscan ci runs the whole pipeline non-interactively: preflight, recon, enumeration, exploitation, reporting, no prompts. Same engine, no shell.

# Authenticated scan of a domain
adscan ci auth --type audit --interface eth0 \
  --domain corp.local --dc-ip 10.0.0.1 -u alice -p 'S3cr3t!'

# Unauthenticated sweep
adscan ci unauth --type audit --interface eth0 --dc-ip 10.0.0.1

--type, --interface and the auth/unauth positional are required. adscan ci --help lists the rest.

adscan ci is still marked beta: it makes every decision the interactive shell would ask you about, and those defaults and its output format can change between releases. The interactive adscan start shell is the supported path for client work; ci is for pipelines, lab automation, and unattended runs.


ADscan vs Alternatives

Most AD pentesters use 5-8 separate tools. ADscan replaces the chain:

ADscan NetExec/CrackMapExec Certipy Impacket BloodHound CE
Platform Linux Linux/Win Linux Linux Linux/Win
AD enumeration Full Partial No Partial No
Kerberoasting Yes Yes No Yes No
ADCS ESC1-16 Yes (auto) No Yes (manual) No No
Attack paths Native graph No No No Yes
DCSync Yes Yes No Yes No
Single workflow Yes No No No No
Compliance reports PRO tier No No No No

ADscan is not a replacement for every tool in every scenario. It is the fastest path from credentials to a documented attack chain in a single terminal session.


Kerberoasting, ADCS and AD Attack Coverage

ADscan covers 103 Active Directory attack techniques across the kill chain — see the full technique coverage table, generated from the product catalog and mapped to MITRE ATT&CK:

LITE (Free, Source Available)

Everything a pentester could do manually, without the toolchain:

  • Three operation modes (automatic/semi-auto/manual)
  • DNS, LDAP, SMB, Kerberos enumeration
  • AS-REP Roasting and Kerberoasting
  • Password spraying
  • Native graph collection and attack-path analysis
  • Credential harvesting (SAM, LSA, DCSync)
  • ADCS detection and template enumeration
  • GPP passwords and CVE enumeration
  • Export to TXT/JSON
  • Workspace and evidence management

PRO

What takes days manually, automated:

  • Algorithmic attack graph generation
  • Auto-exploitation chains (unauthenticated to Domain Admin)
  • ADCS ESC1-16 auto-exploitation
  • MITRE-mapped PDF reports
  • Multi-domain trust spidering
  • Advanced privilege escalation chains
  • Priority enterprise support

Full comparison | Get PRO beta free


Common Pentest Workflows

  • CTF and lab auto-pwn: reproduce HTB Forest, Active, and Cicada attack chains from the docs.
  • Unauthenticated AD recon: discover domains, DNS, SMB exposure, null sessions, users, and roastable accounts.
  • Authenticated enumeration: collect LDAP, SMB, Kerberos, ADCS, attack-graph data, and credential exposure.
  • Privilege escalation: execute Kerberoasting, AS-REP Roasting, DCSync, GPP password, ADCS, and local credential workflows.
  • Evidence handling: keep workspaces isolated and export findings to TXT/JSON for reports.

Usage Examples

Unauthenticated recon:

adscan start
# Inside the ADscan shell:
start_unauth

Discovers domain controllers, DNS, SMB null sessions, and roastable accounts without credentials.

Authenticated scan with BloodHound collection:

# Inside the ADscan shell (after start_auth):
start_auth

Collects LDAP data, builds the attack graph, and identifies Kerberoasting targets, ADCS misconfigurations, and privilege escalation paths.

More walkthroughs:


Want the Full Client Report?

ADscan PRO client report: cover, AD exposure score with severity breakdown, and per-framework compliance mapping, generated as an audit-ready PDF

The PRO deliverable is an audit-ready PDF an executive and a sysadmin can both act on: a posture score, attack-path analysis, and per-framework compliance mapping. The pages above come from a sample engagement against a lab domain.

ADscan LITE gives you enumeration, attack paths, and findings in the terminal. ADscan PRO turns them into three client-ready PDFs in 90 seconds:

  • Security Assessment Report: the risk narrative, attack chains, and posture score a CISO and board can act on
  • AD Hardening Playbook: a 30-day remediation roadmap with effort and ownership per item
  • AD Control Coverage Report: your findings mapped to ENS Alto, NIS2, and ISO 27001 for the auditor

Beta access is free for security consultants. adscanpro.com/pro


Requirements

OS Linux (Debian/Ubuntu/Kali/Parrot) or macOS with Docker Desktop. Native Windows and WSL are not supported
Docker Docker Engine. Compose is no longer needed
Disk 15 GB free before install; the runtime image is roughly 12 GB unpacked
Privileges docker group or sudo
Network Internet (pull images) + target network

FAQ

Does ADscan work without a Windows machine? Yes. ADscan runs entirely on Linux inside Docker. No Windows VM, no RDP, no agent installation required. It connects to your target AD environment over the network using standard protocols (LDAP, SMB, Kerberos).

Is ADscan safe to run in production Active Directory environments? ADscan LITE is read-only by default for enumeration. Exploitation steps (Kerberoasting, credential dumping, DCSync) require explicit operator confirmation. Run it in a test window with your client's written authorization. See the security policy for responsible use guidelines.

How is ADscan different from BloodHound? BloodHound is a graph analysis tool that requires separate data collection (SharpHound or AzureHound). ADscan collects data, builds the attack graph, and executes the attack chain from one terminal. LITE includes native graph collection compatible with BloodHound CE. PRO adds algorithmic attack path auto-exploitation.


Developer Setup

uv sync --extra dev
uv run adscan --help
uv run adscan version

Quality checks:

uv run ruff check adscan_core adscan_launcher adscan_internal
uv run pytest -m unit

Contributing

Bug reports, lab reproductions, command-output samples, and focused pull requests are welcome. See CONTRIBUTING.md for the PR workflow and required checks.

Enterprise support: hello@adscanpro.com


License

Source available under the Business Source License 1.1.

  • Use freely for pentesting (personal or paid engagements)
  • Read, modify, and redistribute the source code
  • Cannot create a competing commercial product
  • Converts to Apache 2.0 on 2029-02-01

(c) 2024-2026 Yeray Martin Dominguez | adscanpro.com

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adscan-11.0.0.tar.gz (487.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adscan-11.0.0-py3-none-any.whl (527.2 kB view details)

Uploaded Python 3

File details

Details for the file adscan-11.0.0.tar.gz.

File metadata

  • Download URL: adscan-11.0.0.tar.gz
  • Upload date:
  • Size: 487.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.13

File hashes

Hashes for adscan-11.0.0.tar.gz
Algorithm Hash digest
SHA256 1311b597b51c0e83634b52cb8e3b27d3d77e594b68b15e0e47c829f7eaff402f
MD5 9a4d61952810700e969d93d1bc0ba6b8
BLAKE2b-256 5f64e9c5df5675ec49625614a8bfc25a3024c372a97364894640f8559b031f3f

See more details on using hashes here.

File details

Details for the file adscan-11.0.0-py3-none-any.whl.

File metadata

  • Download URL: adscan-11.0.0-py3-none-any.whl
  • Upload date:
  • Size: 527.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.13

File hashes

Hashes for adscan-11.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9992ffd9b44fc7dea172316860e5fe01429b95085bea5a9e0217452f83e8ee81
MD5 c4ca58f2793eeb26ea240666ff1bde7a
BLAKE2b-256 d77da8b57e16d50474300efd40a3f2b5b8c637516103a9284544c9b5a14e506a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page