Identifier / Programs / Linux and Unix
rsync
Transfer files either to or from a remote host (but not between two remote hosts), by default using SSH. To specify a remote path, use user@host:path/to/file_or_directory. tldr-pages
GTFOBins shell 1 Sigma rule name it 2 ATT&CK techniques 1 documented command
How rsync is abused
Each abuse is GTFOBins's category and the options and words it uses; the full write-up is on GTFOBins's page for rsync.
1 documented command
shell unprivileged, with sudo, as SUID
rsync -e '/bin/sh -c "/bin/sh 0<&2 1>&2"' x:xIdentifyAs SUID:
rsync -e '/bin/sh -p -c "/bin/sh -p 0<&2 1>&2"' x:x
Trips 1 Sigma rule: highShell Execution via Rsync - Linux by Li Ling, Andy Parkidomo, Robert Rakowski, Blake Hartstein (Bloomberg L.P.), Florian Roth
The command the identifier reads trips a Sigma process-creation rule. This command is 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 rsync. The identifier reads the line that runs rsync.
What detects it
Everyday use
Transfer a file (use --dry-run to simulate the transfer)
rsync path/to/source path/to/destinationIdentifyUse archive mode (recursively copy directories, copy symlinks without resolving, and preserve permissions, ownership, and modification times)
rsync --archive path/to/source path/to/destinationIdentifyCompress the data as it is sent to the destination, display verbose and human-readable progress, and keep partially transferred files if interrupted
rsync [-zvhP|--compress --verbose --human-readable --partial --progress] path/to/source path/to/destinationIdentifyNone of the 3 examples the identifier reads matches GTFOBins abuse or trips a Sigma process-creation rule.