Adversaries may abuse Python commands and scripts for execution. Python is a very popular scripting/programming language, with capabilities to perform many functions. Python can be executed interactively from the command-line (via the python.exe
interpreter) or via scripts (.py) that can be written and distributed to different systems. Python code can also be compiled into binary executables.[1]
Python comes with many built-in packages to interact with the underlying system, such as file operations and device I/O. Adversaries can use these libraries to download and execute commands or other scripts as well as perform various malicious behaviors.
ID | Name | Description |
---|---|---|
G0016 | APT29 | |
G0067 | APT37 | |
G0087 | APT39 |
APT39 has used a command line utility and a network scanner written in python.[4][5] |
S0234 | Bandook |
Bandook can support commands to execute Python-based payloads.[6] |
G0060 | BRONZE BUTLER |
BRONZE BUTLER has made use of Python-based remote access tools.[7] |
S0482 | Bundlore | |
S0631 | Chaes |
Chaes has used Python scripts for execution and the installation of additional files.[9] |
G1021 | Cinnamon Tempest |
Cinnamon Tempest has used a customized version of the Impacket wmiexec.py module to create renamed output files.[10] |
S0154 | Cobalt Strike |
Cobalt Strike can use Python to perform execution.[11][12][13][14] |
S0369 | CoinTicker |
CoinTicker executes a Python script to download its second stage.[15] |
S0492 | CookieMiner |
CookieMiner has used python scripts on the user’s system, as well as the Python variant of the Empire agent, EmPyre.[16] |
C0029 | Cutting Edge |
During Cutting Edge, threat actors used a Python reverse shell and the PySoxy SOCKS5 proxy tool.[17][18] |
S0695 | Donut |
Donut can generate shellcode outputs that execute via Python.[19] |
G0035 | Dragonfly |
Dragonfly has used various types of scripting to perform operations, including Python scripts. The group was observed installing Python 2.7 on a victim.[20] |
S0547 | DropBook |
DropBook is a Python-based backdoor compiled with PyInstaller.[21] |
G1006 | Earth Lusca |
Earth Lusca used Python scripts for port scanning or building reverse shells.[22] |
S0377 | Ebury | |
S1120 | FRAMESTING |
FRAMESTING is a Python web shell that can embed in the Ivanti Connect Secure CAV Python package.[24] |
S0581 | IronNetInjector |
IronNetInjector can use IronPython scripts to load payloads with the help of a .NET injector.[25] |
S0387 | KeyBoy |
KeyBoy uses Python scripts for installing files and performing execution.[26] |
S0276 | Keydnap |
Keydnap uses Python for scripting to execute additional commands.[27] |
G0094 | Kimsuky |
Kimsuky has used a macOS Python implant to gather data as well as MailFetcher.py code to automatically collect email data.[28][29] |
S0409 | Machete |
Machete is written in Python and is used in conjunction with additional Python scripts.[30][31][32] |
G0095 | Machete |
Machete used multiple compiled Python scripts on the victim’s system. Machete's main backdoor Machete is also written in Python.[33][30][32] |
S0459 | MechaFlounder |
MechaFlounder uses a python-based payload.[34] |
G0069 | MuddyWater |
MuddyWater has developed tools in Python including Out1.[35] |
C0014 | Operation Wocao |
During Operation Wocao, threat actors' backdoors were written in Python and compiled with py2exe.[36] |
S0428 | PoetRAT |
PoetRAT was executed with a Python script and worked in conjunction with additional Python-based post-exploitation tools.[37] |
S0196 | PUNCHBUGGY |
PUNCHBUGGY has used python scripts.[38] |
S0192 | Pupy |
Pupy can use an add on feature when creating payloads that allows you to create custom Python scripts ("scriptlets") to perform tasks offline (without requiring a session) such as sandbox detection, adding persistence, etc.[39] |
S1032 | PyDCrypt |
PyDCrypt, along with its functions, is written in Python.[40] |
S0583 | Pysa | |
G1039 | RedCurl |
RedCurl has used a Python script to establish outbound communication and to execute commands using SMB port 445.[42] |
S0332 | Remcos | |
G0106 | Rocke |
Rocke has used Python-based malware to install and spread their coinminer.[44] |
S0692 | SILENTTRINITY |
SILENTTRINITY is written in Python and can use multiple Python scripts for execution on targeted systems.[45][46] |
S1035 | Small Sieve |
Small Sieve can use Python scripts to execute commands.[47] |
S0374 | SpeakUp | |
G0131 | Tonto Team |
Tonto Team has used Python-based tools for execution.[49] |
S0647 | Turian |
Turian has the ability to use Python to spawn a Unix shell.[50] |
G0010 | Turla |
Turla has used IronPython scripts as part of the IronNetInjector toolchain to drop payloads.[25] |
G0128 | ZIRCONIUM |
ZIRCONIUM has used Python-based implants to interact with compromised hosts.[51][1] |
ID | Mitigation | Description |
---|---|---|
M1049 | Antivirus/Antimalware |
Anti-virus can be used to automatically quarantine suspicious files. |
M1047 | Audit |
Inventory systems for unauthorized Python installations. |
M1038 | Execution Prevention |
Denylist Python where not required. |
M1033 | Limit Software Installation |
Prevent users from installing Python where not required. |
ID | Data Source | Data Component | Detects |
---|---|---|---|
DS0017 | Command | Command Execution |
Monitor systems for abnormal Python usage and python.exe behavior, which could be an indicator of malicious activity. Understanding standard usage patterns is important to avoid a high number of false positives. If scripting is restricted for normal users, then any attempts to enable scripts running on a system would be considered suspicious. If scripts are not commonly used on a system, but enabled, scripts running out of cycle from patching or other administrator functions are suspicious. Scripts should be captured from the file system when possible to determine their actions and intent. Scripts are likely to perform actions with various effects on a system that may generate events, depending on the types of monitoring used. Monitor executed commands and arguments that may abuse Python commands and scripts for execution. Analytic 1 - Look for unusual Python execution.
|
DS0009 | Process | Process Creation |
Monitor systems for abnormal Python usage and python.exe behavior, which could be an indicator of malicious activity. Understanding standard usage patterns is important to avoid a high number of false positives. If scripting is restricted for normal users, then any attempts to enable scripts running on a system would be considered suspicious. If scripts are not commonly used on a system, but enabled, scripts running out of cycle from patching or other administrator functions are suspicious. Scripts should be captured from the file system when possible to determine their actions and intent. Scripts are likely to perform actions with various effects on a system that may generate events, depending on the types of monitoring used. Monitor newly executed processes that may abuse Python commands and scripts for execution. |