Identifier / Programs / Linux and Unix
pdflatex
Compile a PDF document from LaTeX source files. tldr-pages
GTFOBins shell 1 ATT&CK technique 3 documented commands
How pdflatex is abused
shell T1059.004 Command and Scripting Interpreter: Unix Shell
--shell-escapeEach abuse is GTFOBins's category and the options and words it uses; the full write-up is on GTFOBins's page for pdflatex.
3 documented commands
file-read unprivileged, with sudo, as SUID
The read file will be part of the PDF output.
pdflatex '\documentclass{article}\usepackage{verbatim}\begin{document}\verbatiminput{/path/to/input-file}\end{document}'
pdftotext texput.pdf -Identifyfile-write unprivileged, with sudo, as SUID
The file can only be written in the current directory, and the .tex extension is mandatory.
pdflatex '\documentclass{article}\newwrite\tempfile\begin{document}\immediate\openout\tempfile=output-file.tex\immediate\write\tempfile{DATA}\immediate\closeout\tempfile\end{document}'Identifyshell unprivileged, with sudo, as SUID
pdflatex --shell-escape '\documentclass{article}\begin{document}\immediate\write18{/bin/sh}\end{document}'IdentifyNone of the 3 commands the identifier reads trips a Sigma process-creation rule. These commands are, with GTFOBins’ notes, 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 pdflatex. The identifier reads the line of each that runs pdflatex.
What detects it
Everyday use
Compile a PDF document
pdflatex source.texIdentifyCompile a PDF document specifying an output directory
pdflatex -output-directory=path/to/directory source.texIdentifyCompile a PDF document, exiting on each error
pdflatex -halt-on-error source.texIdentifyNone of the 3 examples the identifier reads matches GTFOBins abuse or trips a Sigma process-creation rule.