Identifier / Programs / Linux and Unix
m4
Macro processor. tldr-pages
GTFOBins command, file-read, shell 3 documented commands
How m4 is abused
command
file-read
shell
Each abuse is GTFOBins's category and the options and words it uses; the full write-up is on GTFOBins's page for m4.
3 documented commands
command unprivileged, with sudo, as SUID
echo 'esyscmd(/path/to/command)' | m4Identifyfile-read unprivileged, with sudo, as SUID
m4 /path/to/input-fileIdentifyshell unprivileged, with sudo, as SUID
echo 'esyscmd(/bin/sh 0<&2 1>&2)' | m4IdentifyNone of the 3 commands the identifier reads trips a Sigma process-creation rule. These commands are from GTFOBins, at commit acd524623f9c of 2026-05-27, under the GPL-3.0, with no warranty. Changed: Markdown is shown formatted. The source is in lolbas-gtfobins-commands.json.gz, and the full entry is on GTFOBins’s page for m4. The identifier reads the line of each that runs m4.