Identifier / Programs / Linux and Unix
troff
Typesetting processor for the groff (GNU Troff) document formatting system. tldr-pages
GTFOBins file-read 1 documented command
How troff is abused
file-read
Each abuse is GTFOBins's category and the options and words it uses; the full write-up is on GTFOBins's page for troff.
1 documented command
file-read unprivileged, with sudo, as SUID
The file is typeset but text is still readable in the output, alternatively the output can be read with man -l.
troff /path/to/input-fileIdentifyThe command the identifier reads trips no Sigma process-creation rule. This command is, 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 troff. The identifier reads the line that runs troff.
Everyday use
Format output for a PostScript printer, saving the output to a file
troff path/to/input.roff | grops >path/to/output.psIdentifyFormat output for a PostScript printer using the me macro package, saving the output to a file
troff -me path/to/input.roff | grops >path/to/output.psIdentifyFormat output as ASCII text using the man macro package
troff -T ascii -man path/to/input.roff | grottyIdentifyNone of the 3 examples the identifier reads matches GTFOBins abuse or trips a Sigma process-creation rule.