- NTLM / Kerberos password auth: provide
username,password,domain. Setuse_kerberos: trueto add the-kflag to netexec commands (requires time sync viasudo_password). - Kerberos ccache auth: set
use_kcache: trueand provide theccache_filefilename (basename only). The ccache file must exist inrecon/ccache/. The username and domain are extracted from the ccache automatically.
POST /api/bloodhound/run
Collects BloodHound data vianetexec ldap ... --bloodhound --collection All. The resulting .zip file is automatically moved from ~/.nxc/logs/ to recon/ after completion.
Request Body
Domain account username. Required for NTLM/Kerberos password auth.
Account password. Required for NTLM/Kerberos password auth.
Active Directory domain. Falls back to stored network info if omitted.
Add
-k flag to use Kerberos with password credentials. Requires sudo_password for time sync.Authenticate using a Kerberos ccache file. Requires
ccache_file and sudo_password.Basename of the ccache file in
recon/ccache/ (e.g. administrator.ccache).Required when
use_kerberos or use_kcache is true (for ntpdate time sync).Response
"success" on completion.UUID of the scan record.
Completion summary including DC hostname.
NetExec command executed (password redacted).
POST /api/kerberoast/run
Enumerates and extracts Kerberos TGS hashes for service accounts vianetexec ldap ... --kerberoasting. Hashes are automatically parsed and stored in the credentials database with source = "kerberoast".
Request Body
Domain account username.
Account password.
Domain name. Falls back to stored network info.
Use Kerberos protocol with password credentials.
Use ccache file for authentication.
ccache filename in
recon/ccache/.Required when time sync is needed.
Response
"success" on completion.Scan UUID.
Includes count of hashes imported to credentials database.
POST /api/asreproast/run
Enumerates accounts with Kerberos pre-authentication disabled and captures their AS-REP hashes vianetexec ldap ... --asreproast. Hashes are automatically stored with source = "asreproast".
Request Body
Same parameters as/api/kerberoast/run: username, password, domain, use_kerberos, use_kcache, ccache_file, sudo_password.
Response
"success" on completion.Scan UUID.
Includes count of hashes found and imported.
Raw netexec output.
POST /api/adcs/run
Enumerates Active Directory Certificate Services vulnerabilities usingcertipy-ad find. Parses the JSON output and stores discovered ESC vulnerabilities in the adcs_vulns database table.
Request Body
Domain account username.
Account password.
Domain. Falls back to stored network info.
DC IP to target. Falls back to stored DC IP.
Pass
-vulnerable to certipy-ad to only return vulnerable templates. Defaults to true.Use Kerberos protocol.
Use ccache file.
ccache filename.
Required for time sync with Kerberos.
Response
"success" on completion.Scan UUID.
Summary including target and whether ADCS was found.
GET /api/adcs/vulns
Returns all ADCS vulnerability records stored in the database from the last certipy scan.Response
Array of ADCS vulnerability objects.
POST /api/adcs/esc1/run
Executes the full automated Certipy ESC1 privilege escalation chain in three steps:- Sid — Query
objectSidof the target account usingcertipy-ad account ... read. - Req — Request a certificate from the vulnerable template using
certipy-ad req. - Auth — Authenticate with the certificate to obtain an NTLM hash using
certipy-ad auth.
source = "certipy-ESC1".
Request Body
Domain account username to authenticate as.
Account password.
Active Directory domain.
Domain controller IP.
Hostname of the Certificate Authority server.
CA name as it appears in certipy output (e.g.
corp-DC01-CA).Name of the vulnerable certificate template to abuse.
User Principal Name to impersonate in the certificate (typically
administrator).Response
"success" when the attack chain was launched.UUID for polling with
/api/adcs/esc1/status?scan_id=<id>.GET /api/adcs/esc1/status
Returns the current state of a running or completed ESC1 attack chain.Query Parameter
UUID returned by
/api/adcs/esc1/run.Response
running, completed, error, or not_found.Current attack phase:
sid, req, or auth.Accumulated log output from all three certipy steps.
The captured NTLM hash (populated on completion), or
null.Error message if status is
error, otherwise null.POST /api/domain-info/run
Collects domain controller information by running four netexec LDAP queries in parallel:--dc-list(DC enumeration)--pass-pol(password policy)-M maq(Machine Account Quota)--get-sid(domain SID)
scan_id.
Request Body
Same parameters as BloodHound:username, password, domain, target, use_kerberos, use_kcache, ccache_file, sudo_password.
Response
"success" when background tasks were launched.Scan UUID for polling.
"Domain info scan started in background".POST /api/domain-info/delegation/run
Enumerates Kerberos delegation (unconstrained, constrained, and resource-based) vianetexec ldap ... --find-delegation. Results are stored in the delegation table.
Request Body
Same auth parameters as BloodHound:username, password, domain, use_kerberos, use_kcache, ccache_file, sudo_password.
Response
"success" on completion.Count of delegation entries found.
Array of delegation objects returned directly in the response.
GET /api/domain-info/delegation/data
Returns all delegation records stored in the database from the last delegation scan.Response
"success" on success.Array of delegation objects (same schema as above), ordered by account name.
GET /api/domain-info
Returns all domain controller records stored in the database.Response
"success" on success.Array of DC info objects.
GET /api/password-policy
Returns the domain password policy stored from the last domain info scan.Response
"success" on success.Password policy fields.
POST /api/users/rid-brute
Enumerates domain user and group accounts by cycling RIDs over SMB (netexec smb ... --rid-brute). No domain credentials are required — a valid SMB session (even null/guest) is sufficient. Results are stored in the users and groups tables.
Request Body
IP or hostname of the target DC or domain-joined host.
SMB username (use empty string or
"guest" for unauthenticated).SMB password (empty string for null session).
Response
"success" when the background task was launched.Scan UUID.
Path to the raw netexec output file.
POST /api/users/export
Enumerates domain user accounts with full attributes (last password set, bad password count, description) vianetexec smb ... --users. Results are stored in the users table.
Request Body
Target DC IP or hostname.
Authenticated domain account username.
Account password.
Response
"success" on completion."User enumeration completed".Scan UUID.
POST /api/zerologon/run
Tests for the Zerologon vulnerability (CVE-2020-1472) vianetexec smb <target> -M zerologon. No credentials required. If target is not provided, the stored DC IP is used.
Request Body
DC IP to test. Falls back to stored DC IP if omitted.
Response
"success" on completion.Completion message.
Full netexec output including vulnerability verdict.
Scan UUID.
POST /api/coerce/run
Runs thecoerce_plus NetExec module to force NTLM authentication from a target host to your listener. Supports all coercion methods (PetitPotam, PrintSpooler, DFSCoerce, etc.) and can set ALWAYS=true to attempt all methods even after a successful response.
Request Body
IP or hostname of the machine to coerce (typically the DC).
IP address of your listener (Responder/ntlmrelayx). Maps to
LISTENER= module option.Domain account username for the SMB session. Use empty string for unauthenticated attempts.
Account password.
Domain name. Falls back to stored network info.
Set
ALWAYS=true to continue attempting all coercion methods even after one succeeds. Defaults to false.Restrict to a specific coercion method (e.g.
"PetitPotam", "PrintSpooler"). When omitted, all methods are attempted.Response
"success" on completion.Completion summary.
Full netexec output.
Scan UUID.
NetExec command executed.