Adversaries may use Valid Accounts to log into remote machines using Secure Shell (SSH). The adversary may then perform actions as the logged-on user.
SSH is a protocol that allows authorized users to open remote shells on other computers. Many Linux and macOS versions come with SSH installed by default, although typically disabled until the user enables it. The SSH server can be configured to use standard password authentication or public-private keypairs in lieu of or in addition to a password. In this authentication scenario, the user’s public key must be in a special file on the computer running the server that lists which keypairs are allowed to login as that user.
ID | Name | Description |
---|---|---|
G0087 | APT39 |
APT39 used secure shell (SSH) to move laterally among their targets.[1] |
G1023 | APT5 |
APT5 has used SSH for lateral movement in compromised environments including for enabling access to ESXi host servers.[2] |
G0143 | Aquatic Panda |
Aquatic Panda used SSH with captured user credentials to move laterally in victim environments.[3] |
G0098 | BlackTech | |
C0032 | C0032 |
During the C0032 campaign, TEMP.Veles relied on encrypted SSH-based tunnels to transfer tools and for remote command/program execution.[5] |
S0154 | Cobalt Strike |
Cobalt Strike can SSH to a remote service.[6][7] |
C0029 | Cutting Edge |
During Cutting Edge, threat actors used SSH for lateral movement.[8] |
S0363 | Empire |
Empire contains modules for executing commands over SSH as well as in-memory VNC agent injection.[9] |
G1016 | FIN13 |
FIN13 has remotely accessed compromised environments via secure shell (SSH) for lateral movement.[10] |
G0046 | FIN7 |
FIN7 has used SSH to move laterally through victim environments.[11] |
G0117 | Fox Kitten |
Fox Kitten has used the PuTTY and Plink tools for lateral movement.[12] |
G0036 | GCMAN | |
G0119 | Indrik Spider |
Indrik Spider has used SSH for lateral movement.[14] |
S0599 | Kinsing | |
G0032 | Lazarus Group |
Lazarus Group used SSH and the PuTTy PSCP utility to gain access to a restricted segment of a compromised network.[16] |
G0065 | Leviathan | |
G0045 | menuPass |
menuPass has used Putty Secure Copy Client (PSCP) to transfer data.[18] |
G0049 | OilRig | |
G0106 | Rocke | |
G0139 | TeamTNT |
TeamTNT has used SSH to connect back to victim machines.[21] TeamTNT has also used SSH to transfer tools and payloads onto victim hosts and execute them.[22] |
ID | Mitigation | Description |
---|---|---|
M1042 | Disable or Remove Feature or Program |
Disable the SSH daemon on systems that do not require it. For macOS ensure Remote Login is disabled under Sharing Preferences.[23] |
M1032 | Multi-factor Authentication |
Require multi-factor authentication for SSH connections wherever possible, such as password protected SSH keys. |
M1018 | User Account Management |
Limit which user accounts are allowed to login via SSH. |
ID | Data Source | Data Component | Detects |
---|---|---|---|
DS0028 | Logon Session | Logon Session Creation |
Monitor for user accounts logged into systems that may use Valid Accounts to log into remote machines using Secure Shell (SSH). For example, on Linux systems SSH logon activity can be found in the logs located in For Linux systems, the Audit framework (auditd) can be used to monitor any writes to SSH log files that store information about logged in accounts such as /var/log/auth.log. For macOS systems (10.12+), Unified Logs can be queried to show SSH daemon (sshd) messages that include information on logged in accounts. The following command-line can be used to query the last hour’s worth of unified logs in this manner: |
DS0029 | Network Traffic | Network Connection Creation |
Monitor for newly constructed network connections (typically port 22) that may use Valid Accounts to log into remote machines using Secure Shell (SSH). Use of SSH may be legitimate depending on the environment and how it’s used. Other factors, such as access patterns and activity that occurs after a remote login, may indicate suspicious or malicious behavior with SSH. Network Analysis Frameworks such as Zeek can be used to capture, decode, and alert on network traffic. Accordingly, they can be used to look for the creation of SSH network connections. |
DS0009 | Process | Process Creation |
Monitor for newly executed processes that may use Valid Accounts to log into remote machines using Secure Shell (SSH). For example, on macOS systems For Linux systems, the Audit framework (auditd) can be used to monitor for the creation of SSH related processes such as ssh. For macOS systems (10.12+), the above command can be used to look through the Unified Logs for SSH connection activity, though we also recommend including the "—debug" parameter to ensure that all relevant data is returned: |