Skip to content

Queues, sinks, taps and console

QUEUE blocks are feedback sinks: items wired into a queue are held for the next runloop iteration, where the matching SOURCE_*_NEW block re-emits them with their "seen" flag cleared. This is how a flowgraph discovers new credentials, queues them, and tries them again on the next pass without manual intervention.

SINK blocks are terminators — TERMINATOR_SINK silently discards items, FILE_SINK writes them as JSONL, and the RERUN_TRIGGER family schedules another engine pass.

TAP_SINK is a pass-through probe used to inspect what is flowing through a wire from the results panel. CONSOLE does the same plus a formatted log line per item.


24 block type(s) in this category.


CREDENTIAL_QUEUE

Category: QUEUE

Sink: receives credentials and holds them for the next runloop iteration. SOURCE_CREDENTIALS_NEW will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
credential input credential no Credential to queue for next iteration

Parameters

No parameters.


TARGET_QUEUE

Category: QUEUE

Sink: receives targets and holds them for the next runloop iteration. SOURCE_TARGETS_NEW will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
target input scan_result no Target to queue for next iteration

Parameters

No parameters.


TARGET_QUEUE_NAMED_IN

Category: QUEUE

Sink: extracts __tid / target_id from incoming targets and appends to a named queue for TARGET_QUEUE_NAMED_OUT. Dedupes by target ID. persist=True stores across RERUN passes until resetstate; persist=False uses an ephemeral bucket cleared at each pass start.

Ports

Port Direction Type Optional Description
target input scan_result no Target item with __tid or target_id

Parameters

Parameter Type Default Required Description
name str yes Queue name — must match TARGET_QUEUE_NAMED_OUT
persist bool true no True: persistent across passes. False: ephemeral (cleared each engine pass start).

SESSION_QUEUE_KERBEROS

Category: QUEUE

Sink: receives Kerberos (KRB5) client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_KERBEROS will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_kerberos no KERBEROS session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_LDAP

Category: QUEUE

Sink: receives LDAP client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_LDAP will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_ldap no LDAP session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_SMB

Category: QUEUE

Sink: receives SMB client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_SMB will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_smb no SMB session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_SSH

Category: QUEUE

Sink: receives SSH client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_SSH will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_ssh no SSH session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_NETCAT

Category: QUEUE

Sink: receives Netcat client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_NETCAT will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_netcat no NETCAT session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_RDP

Category: QUEUE

Sink: receives RDP client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_RDP will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_rdp no RDP session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_DNS

Category: QUEUE

Sink: receives DNS client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_DNS will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_dns no DNS session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_DCEDRSUAPI

Category: QUEUE

Sink: receives DCE-DRSUAPI client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_DCEDRSUAPI will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_dcedrsuapi no DCEDRSUAPI session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_WINRM

Category: QUEUE

Sink: receives WinRM client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_WINRM will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_winrm no WINRM session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_NFS3

Category: QUEUE

Sink: receives NFS client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_NFS3 will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_nfs3 no NFS3 session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_SNMP

Category: QUEUE

Sink: receives SNMP client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_SNMP will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_snmp no SNMP session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_NTP

Category: QUEUE

Sink: receives NTP client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_NTP will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_ntp no NTP session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_MSSQL

Category: QUEUE

Sink: receives MSSQL client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_MSSQL will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_mssql no MSSQL session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_FTP

Category: QUEUE

Sink: receives FTP client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_FTP will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_ftp no FTP session reference to queue for next iteration

Parameters

No parameters.


SESSION_QUEUE_WMI

Category: QUEUE

Sink: receives WMI client session references and holds them for the next runloop iteration. SOURCE_SESSIONS_NEW_WMI will re-emit them as "new" on the next pass, bypassing the seen-ID filter.

Ports

Port Direction Type Optional Description
session input session_wmi no WMI session reference to queue for next iteration

Parameters

No parameters.


TERMINATOR_SINK

Category: SINK

Zero sink — accepts any input and silently discards it. Wire error output ports here to prevent unconnected-port warnings.

Ports

Port Direction Type Optional Description
data input any no Any item — discarded

Parameters

No parameters.


RERUN_TRIGGER

Category: SINK

Local re-run trigger — if any items arrive, schedules a re-run of the current workflow scope. At the top level this re-runs the entire flowgraph after the global delay (setdelay). Inside a composite block this re-runs only the composite's inner graph. Wire any result port here whose non-empty output should trigger another pass — e.g. new credentials discovered by DCSync, new targets found by LDAP machines enumeration. Acts as a silent sink: items are discarded, only presence matters. Has no effect outside a run() call with persistent state (use the Run button, not runloop).

Ports

Port Direction Type Optional Description
data input any no Any items — their presence triggers a re-run

Parameters

No parameters.


RERUN_TRIGGER_GLOBAL

Category: SINK

Global re-run trigger — if any items arrive, schedules a re-run of the outermost (root) flowgraph after the global delay, regardless of nesting depth. Use inside composite blocks when inner-graph discoveries (e.g. new credentials) should cause the entire parent pipeline to run again. At the top level (no composites) this behaves identically to RERUN_TRIGGER. Acts as a silent sink: items are discarded, only presence matters.

Ports

Port Direction Type Optional Description
data input any no Any items — their presence triggers a global re-run

Parameters

No parameters.


FILE_SINK

Category: SINK

Writes each incoming item as a JSON line (JSONL) to a file in the OctoPwn workdir. Append mode by default so multiple runs accumulate.

Ports

Port Direction Type Optional Description
data input any no Any item — serialised to JSON and written to file

Parameters

Parameter Type Default Required Description
filename str yes Output filename (no path — always written to workdir)
mode str append no append (default) or overwrite

TAP_SINK

Category: TAP

Pass-through probe — forwards all items unchanged while making the wire inspectable in the results panel. Insert inline on any edge to observe what is flowing through.

Ports

Port Direction Type Optional Description
data input any no Any item flowing through the wire
data output any no Same items, passed through unchanged

Parameters

No parameters.


CONSOLE

Category: CONSOLE

Pass-through logging probe. Formats each incoming item using the message template and prints it to the runtime console via self.print(). Data flows through unchanged. Use {field_name} placeholders to interpolate item fields.

Ports

Port Direction Type Optional Description
data input any no Any item — logged then forwarded
data output any no Same items, passed through unchanged

Parameters

Parameter Type Default Required Description
message str "" no Message template. Use {field_name} to interpolate. Empty = raw JSON.