Adversaries may abuse Unix shell commands and scripts for execution. Unix shells are the primary command prompt on Linux and macOS systems, though many variations of the Unix shell exist (e.g. sh, bash, zsh, etc.) depending on the specific OS or distribution.[1][2] Unix shells can control every aspect of a system, with certain commands requiring elevated privileges.
Unix shells also support scripts that enable sequential execution of commands as well as other typical programming operations such as conditionals and loops. Common uses of shell scripts include long or repetitive tasks, or the need to run the same set of commands on multiple systems.
Adversaries may abuse Unix shells to execute various commands or payloads. Interactive shells may be accessed through command and control channels or during lateral movement such as with SSH. Adversaries may also leverage shell scripts to deliver and execute multiple commands on victims or as part of payloads used for persistence.
ID | Name | Description |
---|---|---|
S0504 | Anchor | |
S0584 | AppleJeus |
AppleJeus has used shell scripts to execute commands after installation and set persistence mechanisms.[4][5] |
G0096 | APT41 |
APT41 used Linux shell commands for system survey and information gathering prior to exploitation of vulnerabilities such as CVE-2019-19871.[6] |
G0143 | Aquatic Panda |
Aquatic Panda used malicious shell scripts in Linux environments following access via SSH to install Linux versions of Winnti malware.[7] |
S1161 | BPFDoor |
BPFDoor can create a reverse shell and supports vt100 emulator formatting.[8] |
S0482 | Bundlore |
Bundlore has leveraged /bin/sh and /bin/bash to execute commands on the victim machine.[9] |
S0077 | CallMe |
CallMe has the capability to create a reverse shell on victims.[10] |
S0220 | Chaos |
Chaos provides a reverse shell connection on 8338/TCP, encrypted via AES.[11] |
S1105 | COATHANGER |
COATHANGER provides a BusyBox reverse shell for command and control.[12] |
S0369 | CoinTicker |
CoinTicker executes a bash script to establish a reverse shell.[13] |
S0492 | CookieMiner |
CookieMiner has used a Unix shell script to run a series of commands targeting macOS.[14] |
S1153 | Cuckoo Stealer |
Cuckoo Stealer can spawn a bash shell to enable execution on compromised hosts.[15] |
S0021 | Derusbi |
Derusbi is capable of creating a remote Bash shell and executing commands.[16][17] |
S0600 | Doki | |
S0502 | Drovorub |
Drovorub can execute arbitrary commands as root on a compromised system.[19] |
S0377 | Ebury |
Ebury can use the commands |
S0401 | Exaramel for Linux |
Exaramel for Linux has a command to execute a shell command on the system.[21][22] |
S0410 | Fysbis |
Fysbis has the ability to create and execute commands in a remote shell for CLI.[23] |
S0690 | Green Lambert |
Green Lambert can use shell scripts for execution, such as |
S0601 | Hildegard | |
S0265 | Kazuar |
Kazuar uses /bin/bash to execute commands on the victim’s machine.[27] |
S0599 | Kinsing |
Kinsing has used Unix shell scripts to execute commands in the victim environment.[28] |
S0641 | Kobalos |
Kobalos can spawn a new pseudo-terminal and execute arbitrary commands at the command prompt.[29] |
C0035 | KV Botnet Activity |
KV Botnet Activity utilizes multiple Bash scripts during botnet installation stages, and the final botnet payload allows for running commands in the Bash shell.[30] |
S0451 | LoudMiner |
LoudMiner used shell scripts to launch various services and to start/stop the QEMU virtualization.[31] |
S1016 | MacMa |
MacMa can execute supplied shell commands and uses bash scripts to perform additional actions.[32][33] |
S0198 | NETWIRE |
NETWIRE has the ability to use |
S1107 | NKAbuse |
NKAbuse is initially installed and executed through an initial shell script.[36] |
S0402 | OSX/Shlayer |
OSX/Shlayer can use bash scripts to check the macOS version, download payloads, and extract bytes from files. OSX/Shlayer uses the command |
S0352 | OSX_OCEANLOTUS.D |
OSX_OCEANLOTUS.D uses a shell script as the main executable inside an app bundle and drops an embedded base64-encoded payload to the |
S1109 | PACEMAKER | |
S0587 | Penquin | |
S1123 | PITSTOP |
PITSTOP has the ability to receive shell commands over a Unix domain socket.[45] |
S0279 | Proton |
Proton uses macOS' .command file type to script actions.[46] |
S1108 | PULSECHECK |
PULSECHECK can use Unix shell script for command execution.[43] |
G0106 | Rocke |
Rocke used shell scripts to run commands which would obtain persistence and execute the cryptocurrency mining malware.[47] |
S0468 | Skidmap |
Skidmap has used |
G0139 | TeamTNT | |
S0647 | Turian |
Turian has the ability to use |
G1017 | Volt Typhoon |
Volt Typhoon has used Brightmetricagent.exe which contains a command- line interface (CLI) library that can leverage command shells including Z Shell (zsh).[52] |
S0466 | WindTail |
WindTail can use the |
S0658 | XCSSET |
XCSSET uses a shell script to execute Mach-o files and |
S1114 | ZIPLINE |
ZIPLINE can use |
ID | Mitigation | Description |
---|---|---|
M1038 | Execution Prevention |
Use application control where appropriate. |
ID | Data Source | Data Component | Detects |
---|---|---|---|
DS0017 | Command | Command Execution |
Monitor executed commands and arguments that may abuse Unix shell commands and scripts for execution. Unix shell usage may be common on administrator, developer, or power user systems, depending on job function. If scripting is restricted for normal users, then any attempt 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. Note: this analytic does not include an exhaustive list of potentially suspicious commands that could be executed through a shell interpreter. Instead, it is meant to serve as an example of types of commands that can warrant further investigation. Analytic 1 - Unusual command execution
|
DS0009 | Process | Process Creation |
Monitor for newly executed processes that may abuse Unix shell commands and scripts for execution. Analytic 1 - Look for unusual Unix shell process creation.
|