Ceplin Command Identifier

Identifier / Programs / Linux and Unix

rustc

The Rust compiler. Rust projects usually use cargo instead of invoking rustc directly. tldr-pages

GTFOBins file-write, inherit 3 documented commands

Opens the identifier with your command. It is read in your browser and sent nowhere.

How rustc is abused

documented by GTFOBins

file-write

-o

inherit

--explain

Each abuse is GTFOBins's category and the options and words it uses; the full write-up is on GTFOBins's page for rustc.

3 documented commands

from GTFOBins, each read by the identifier

file-read unprivileged, with sudo

The compiler leaks some file lines in the compiler error.

rustc /path/to/input-file
Identify

file-write unprivileged, with sudo

The comment appears in the compiled program.

echo 'fn main() { println!("DATA"); }' >/path/to/temp-file
rustc /path/to/temp-file -o /path/to/output-file
Identify

inherit unprivileged, with sudo

rustc --explain E0001
Identify

None 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 rustc. The identifier reads the line of each that runs rustc.

Everyday use

from tldr-pages, CC BY 4.0

Compile a binary crate

rustc path/to/main.rsIdentify

Compile with optimizations (s means optimize for binary size; z is the same with even more optimizations)

rustc --codegen lto --codegen opt-level=0 path/to/main.rsIdentify

Compile with debugging information

rustc [-g|--codegen debuginfo=2] path/to/main.rsIdentify

None of the 3 examples the identifier reads matches GTFOBins abuse or trips a Sigma process-creation rule.