The Data Transform Language allows you to chain multiple encoding/decoding operations. You can combine any number of statements in sequence, but you must end the chain with exactly one termination statement.
Common transformations include:
base64 / base64url: Base64 or URL-safe Base64 encoding/decoding.mask: XOR mask with a random key.netbios / netbiosu: NetBIOS encoding (case-sensitive).append "string" / prepend "string": Adding or removing characters from the start or end.
Termination Statements determine where the transformed data is stored:
header "header": Stores data in a specific HTTP header.parameter "key": Stores data in a URI parameter.print: Sends data as the transaction body (used in http-get.server.output, http-post.server.output, and http-stager.server.output).uri-append: Appends data to the URI.
If you use header, parameter, uri-append, or print within a client block (e.g., http-post.client.output), Beacon will automatically chunk the response to fit within a reasonable transaction length.
append "string" | Append "string" | Remove last LEN("string") characters
base64 | Base64 Encode | Base64 Decode
base64url | URL-safe Base64 Encode | URL-safe Base64 Decode
mask | XOR mask w/ random key | XOR mask w/ same random key
netbios | NetBIOS Encode 'a' | NetBIOS Decode 'a'
netbiosu | NetBIOS Encode 'A' | NetBIOS Decode 'A'
prepend "string" | Prepend "string" | Remove first LEN("string") characters