Sessions and ID splitters
OPEN_SESSION_<CLIENT> blocks consume a target (and a protocol-typed credential where required) and emit a session_<client> reference on success or an error dict on failure. One block is generated per entry in octopwn.clients.OCTOPWN_CLIENT_TABLE. The result input port accepts a combined scan-result with both __tid and __cid set (typically straight out of an authenticated scanner like SCANNER_SMBADMIN) and opens exactly one session per item.
ID_SPLITTER and ID_SPLITTER_PAIR unpack a session or error item back into target / credential identifiers so downstream attack blocks can be wired without losing provenance. Prefer ID_SPLITTER_PAIR whenever each (target, credential) pair should run an attack exactly once.
17 block type(s) in this category.
OPEN_SESSION_KERBEROS
Category: SESSION
Opens an authenticated Kerberos (KRB5) client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential_krb |
no | KERBEROS-compatible credential (cross-product with host port) |
session |
output | session_kerberos |
no | KERBEROS session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
TGT |
no | Auth type (default: TGT) |
timeout |
int |
10 |
no | Connection timeout in seconds |
OPEN_SESSION_LDAP
Category: SESSION
Opens an authenticated LDAP client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential_ldap |
no | LDAP-compatible credential (cross-product with host port) |
session |
output | session_ldap |
no | LDAP session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
NTLM |
no | Auth type (default: NTLM) |
timeout |
int |
10 |
no | Connection timeout in seconds |
OPEN_SESSION_SMB
Category: SESSION
Opens an authenticated SMB client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential_smb |
no | SMB-compatible credential (cross-product with host port) |
session |
output | session_smb |
no | SMB session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
NTLM |
no | Auth type (default: NTLM) |
timeout |
int |
10 |
no | Connection timeout in seconds |
MITRE ATT&CK: T1021.002
OPEN_SESSION_SSH
Category: SESSION
Opens an authenticated SSH client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential_ssh |
no | SSH-compatible credential (cross-product with host port) |
session |
output | session_ssh |
no | SSH session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
PASSWORD |
no | Auth type (default: PASSWORD) |
timeout |
int |
10 |
no | Connection timeout in seconds |
MITRE ATT&CK: T1021.004
OPEN_SESSION_NETCAT
Category: SESSION
Opens an authenticated Netcat client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential |
no | NETCAT-compatible credential (cross-product with host port) |
session |
output | session_netcat |
no | NETCAT session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
NONE |
no | Auth type (default: NONE) |
timeout |
int |
10 |
no | Connection timeout in seconds |
OPEN_SESSION_RDP
Category: SESSION
Opens an authenticated RDP client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential |
no | RDP-compatible credential (cross-product with host port) |
session |
output | session_rdp |
no | RDP session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
NTLM |
no | Auth type (default: NTLM) |
timeout |
int |
10 |
no | Connection timeout in seconds |
MITRE ATT&CK: T1021.001
OPEN_SESSION_DNS
Category: SESSION
Opens an authenticated DNS client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential |
no | DNS-compatible credential (cross-product with host port) |
session |
output | session_dns |
no | DNS session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
NONE |
no | Auth type (default: NONE) |
timeout |
int |
10 |
no | Connection timeout in seconds |
OPEN_SESSION_DCEDRSUAPI
Category: SESSION
Opens an authenticated DCE-DRSUAPI client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential |
no | DCEDRSUAPI-compatible credential (cross-product with host port) |
session |
output | session_dcedrsuapi |
no | DCEDRSUAPI session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
NTLM |
no | Auth type (default: NTLM) |
timeout |
int |
10 |
no | Connection timeout in seconds |
MITRE ATT&CK: T1021
OPEN_SESSION_WINRM
Category: SESSION
Opens an authenticated WinRM client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential |
no | WINRM-compatible credential (cross-product with host port) |
session |
output | session_winrm |
no | WINRM session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
NTLM |
no | Auth type (default: NTLM) |
timeout |
int |
10 |
no | Connection timeout in seconds |
MITRE ATT&CK: T1021.006
OPEN_SESSION_NFS3
Category: SESSION
Opens an authenticated NFS client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential |
no | NFS3-compatible credential (cross-product with host port) |
session |
output | session_nfs3 |
no | NFS3 session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
NONE |
no | Auth type (default: NONE) |
timeout |
int |
10 |
no | Connection timeout in seconds |
OPEN_SESSION_SNMP
Category: SESSION
Opens an authenticated SNMP client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential |
no | SNMP-compatible credential (cross-product with host port) |
session |
output | session_snmp |
no | SNMP session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
v2c |
no | Auth type (default: v2c) |
timeout |
int |
10 |
no | Connection timeout in seconds |
OPEN_SESSION_NTP
Category: SESSION
Opens an authenticated NTP client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential |
no | NTP-compatible credential (cross-product with host port) |
session |
output | session_ntp |
no | NTP session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
NONE |
no | Auth type (default: NONE) |
timeout |
int |
10 |
no | Connection timeout in seconds |
OPEN_SESSION_MSSQL
Category: SESSION
Opens an authenticated MSSQL client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential |
no | MSSQL-compatible credential (cross-product with host port) |
session |
output | session_mssql |
no | MSSQL session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
NTLM |
no | Auth type (default: NTLM) |
timeout |
int |
10 |
no | Connection timeout in seconds |
MITRE ATT&CK: T1021
OPEN_SESSION_FTP
Category: SESSION
Opens an authenticated FTP client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential |
no | FTP-compatible credential (cross-product with host port) |
session |
output | session_ftp |
no | FTP session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
PASSWORD |
no | Auth type (default: PASSWORD) |
timeout |
int |
10 |
no | Connection timeout in seconds |
MITRE ATT&CK: T1021
OPEN_SESSION_WMI
Category: SESSION
Opens an authenticated WMI client session to a host using the provided credential.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
result |
input | scan_result |
no | Combined scan result with __tid+__cid from an authenticated scanner — opens exactly one session per item |
host |
input | scan_result |
no | Host dict with __tid (cross-product with credential port) |
credential |
input | credential |
no | WMI-compatible credential (cross-product with host port) |
session |
output | session_wmi |
no | WMI session reference: {session_id, target_id, credential_id} |
error |
output | error |
no | Error dict if session could not be opened |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
atype |
str |
NTLM |
no | Auth type (default: NTLM) |
timeout |
int |
10 |
no | Connection timeout in seconds |
MITRE ATT&CK: T1047
ID_SPLITTER
Category: SESSION
Unpacks session references and/or error dicts into separate target and credential flows. Accepts items from both the session port (OPEN_SESSION_ success output) and the error port (OPEN_SESSION_ or CMD_* error output). Emits a __tid dict on the target port and a __cid dict on the credential port for each item that carries the respective ID. Items that yield neither are silently dropped. Wire target → attack block target port, credential → attack block credential port. NOTE: emits target and credential on separate ports — downstream will cross-product them. Use ID_SPLITTER_PAIR instead if you want each (target, credential) pair to run exactly once.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
session |
input | any |
yes | Session reference from OPEN_SESSION_* success output |
error |
input | any |
yes | Error dict from OPEN_SESSION_ or CMD_ error output |
target |
output | scan_result |
no | Target dict {__tid} for each resolvable item |
credential |
output | credential |
no | Credential dict {__cid} for each resolvable item |
Parameters
No parameters.
ID_SPLITTER_PAIR
Category: SESSION
Unpacks session references and/or error dicts into paired {__tid, __cid} dicts. Unlike ID_SPLITTER (which emits on separate ports causing cross-product fan-out), this block keeps each (target_id, credential_id) pair together on a single "pair" port. Wire pair → attack block pair port so each session runs exactly once with its own credential. Items missing either ID are silently dropped. Set skip_done=true in runloop graphs to suppress pairs already emitted in a previous iteration.
Ports
| Port | Direction | Type | Optional | Description |
|---|---|---|---|---|
session |
input | any |
yes | Session reference from OPEN_SESSION_* success output |
error |
input | any |
yes | Error dict from OPEN_SESSION_ or CMD_ error output |
pair |
output | scan_result |
no | Paired {__tid, __cid} dict — one per session |
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
skip_done |
bool |
false | no | Skip (tid, cid) pairs already emitted in a previous runloop iteration |