Skip to content

Overview

The protocol a step speaks, and the full vocabulary the runtime understands.

Every step speaks a protocol. That protocol is the step’s identity, and it decides three things: what the step sends, which properties the step can use, and what shape the target takes.

A solution can mix protocols freely. One attack might start with a TLS handshake, follow with an HTTP request, and end with a read from the host. Each step result shows the protocol it used.

On a step

tls malformed-heartbeat
  meaning: send a heartbeat request claiming a payload length with zero payload bytes
  send: 1803030003014000
  recv: 70000
  assert: regex "18030[123]40"

The fields that apply depend on the protocol. http and https read encoding, payload, path, and headers; the byte-session protocols (tcp, tls, ssh, ftp, smtp, ldap, redis, mysql, postgresql, smb, telnet, and dns and snmp over UDP) plus websocket read send, recv, recv_until, and timeout; process reads command and cwd; file reads op, path, and data. Each protocol page below details its own fields. See Steps for the full step form and the authoring guide for worked scenarios.

The supported protocols

These are the identities the runtime handles today, grouped by use. Each links to its page with the full field detail.

Web and application

IdentityProtocolTarget
httpHypertext Transfer Protocolbase URL
httpsHTTP over TLSbase URL
websocketWebSocket Protocolbase URL

Transport, encryption, and security

IdentityProtocolTarget
tcpTransmission Control Protocolhost:port
tlsTransport Layer Securityhost:port
sshSecure Shellhost:port

Remote access and file sharing

IdentityProtocolTarget
telnetTelnet Protocolhost:port
ftpFile Transfer Protocolhost:port
smbServer Message Blockhost:port

Mail and directory

IdentityProtocolTarget
smtpSimple Mail Transfer Protocolhost:port
ldapLightweight Directory Access Protocolhost:port

Network services and databases

IdentityProtocolTarget
dnsDomain Name Systemhost:port
snmpSimple Network Management Protocolhost:port
redisRedis Serialization Protocolhost:port
mysqlMySQL Client/Server Protocolhost:port
postgresqlPostgreSQL Wire Protocolhost:port

Host

Host-level identities. They are not protocols; they name the operator’s own host as the surface.

IdentityProtocolTarget
processignored
fileignored

Write attacks down. Verify them.

Download the binary, point it at a target you own, and get a verified result. The corpus is open and the format is plain text.