Skip to content

tls

The tls identity: TLS records over TCP. Every field and what is required.

tls speaks TLS records over TCP. The session persists across steps, so a solution can stage a handshake in one step and fire its payload in the next. The target is host:port. Send and receive raw record bytes as hex.

Fields

send field

Required. The bytes to send, written as hex, or as readable text with hex "text" (the quoted text is hex-encoded for you). TLS records are mostly binary, so raw hex is usually the clearer form.

recv field

Optional. How many bytes to read at most.

recv_until field

Optional. Stop reading once this hex marker appears, for example ServerHelloDone 0e000000.

timeout field

Optional. How long to wait, in seconds. Example: 5.

close field

Optional. When true, end the session after this step.

capture field

Optional. Pulls a value out of the received hex for later steps. The pattern runs over the hex and group 1 is hex-decoded before storing.

tls negotiate
  send: 010203...
  capture port: "(....)"
  assert: contains "..."

Later steps reference {port}.

Example

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

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.