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 directives 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
  # send a heartbeat request claiming a payload length with zero payload bytes
  send hex "1803030003014000"
  receive 70000 bytes
  expect the response to match "18030[123]40"

The directives that apply depend on the protocol. http and https take a method directive (get/post, plus with the header, with the cookie, expect, capture); the byte-session protocols (tcp, tls, ssh, ftp, smtp, ldap, redis, mysql, postgresql, smb, telnet, and dns and snmp over UDP) plus websocket take send, receive, receive until, and timeout; process takes run; file takes read or write. Each protocol page below details its own directives. 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 directive 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

Give exploit research a common language.

Bring a PoC, a writeup, or an AI-generated draft into an Exploitmatic solution: inspect it, validate it, and replay it against a target you own. The runtime and the corpus are open source.