Adversaries may modify host software binaries to establish persistent access to systems. Software binaries/executables provide a wide range of system commands or services, programs, and libraries. Common software binaries are SSH clients, FTP clients, email clients, web browsers, and many other user or server applications.
Adversaries may establish persistence though modifications to host software binaries. For example, an adversary may replace or otherwise infect a legitimate application binary (or support files) with a backdoor. Since these binaries may be routinely executed by applications or the user, the adversary can leverage this for persistent access to the host. An adversary may also modify a software binary such as an SSH client in order to persistently collect credentials during logins (i.e., Modify Authentication Process).[1]
An adversary may also modify an existing binary by patching in malicious functionality (e.g., IAT Hooking/Entry point patching)[2] prior to the binary’s legitimate execution. For example, an adversary may modify the entry point of a binary to point to malicious code patched in by the adversary before resuming normal execution flow.[3]
After modifying a binary, an adversary may attempt to Impair Defenses by preventing it from updating (e.g., via the yum-versionlock command or versionlock.list file in Linux systems that use the yum package manager).[1]
| ID | Name | Description |
|---|---|---|
| C0025 | 2016 Ukraine Electric Power Attack |
During the 2016 Ukraine Electric Power Attack, Sandworm Team used a trojanized version of Windows Notepad to add a layer of persistence for Industroyer.[4] |
| G1023 | APT5 |
APT5 has modified legitimate binaries and scripts for Pulse Secure VPNs including the legitimate DSUpgrade.pm file to install the ATRIUM webshell for persistence.[5][6] |
| S1136 | BFG Agonizer |
BFG Agonizer uses DLL unhooking to remove user mode inline hooks that security solutions often implement. BFG Agonizer also uses IAT unhooking to remove user-mode IAT hooks that security solutions also use.[7] |
| S1184 | BOLDMOVE |
BOLDMOVE contains a watchdog-like feature that monitors a particular file for modification. If modification is detected, the legitimate file is backed up and replaced with a trojanized file to allow for persistence through likely system upgrades.[8] |
| S0486 | Bonadan |
Bonadan has maliciously altered the OpenSSH binary on targeted systems to create a backdoor.[9] |
| S1118 | BUSHWALK |
BUSHWALK can embed into the legitimate |
| C0029 | Cutting Edge |
During Cutting Edge, threat actors trojanized legitimate files in Ivanti Connect Secure appliances with malicious code.[12][13][10] |
| S0377 | Ebury |
Ebury modifies the |
| S1120 | FRAMESTING |
FRAMESTING can embed itself in the CAV Python package of an Ivanti Connect Secure VPN located in |
| S0604 | Industroyer |
Industroyer has used a Trojanized version of the Windows Notepad application for an additional backdoor persistence mechanism.[4] |
| S0487 | Kessel |
Kessel has maliciously altered the OpenSSH binary on targeted systems to create a backdoor.[9] |
| S0641 | Kobalos |
Kobalos replaced the SSH client with a trojanized SSH client to steal credentials on compromised systems.[16] |
| S1119 | LIGHTWIRE |
LIGHTWIRE can imbed itself into the legitimate |
| S1121 | LITTLELAMB.WOOLTEA |
LITTLELAMB.WOOLTEA can append malicious components to the |
| C0056 | RedPenguin |
During RedPenguin, UNC3886 peformed a local memory patching attack to modify the snmpd and mgd Junos OS daemons.[17] |
| S1104 | SLOWPULSE |
SLOWPULSE is applied in compromised environments through modifications to legitimate Pulse Secure files.[6] |
| S0595 | ThiefQuest |
ThiefQuest searches through the |
| G1048 | UNC3886 |
UNC3886 has trojanized Fortinet firmware and replaced the legitimate |
| S1116 | WARPWIRE |
WARPWIRE can embed itself into a legitimate file on compromised Ivanti Connect Secure VPNs.[12] |
| S1115 | WIREFIRE |
WIREFIRE can modify the |
| S0658 | XCSSET |
XCSSET uses a malicious browser application to replace the legitimate browser in order to continuously capture credentials, monitor web traffic, and download additional modules.[21] |
| ID | Mitigation | Description |
|---|---|---|
| M1045 | Code Signing |
Ensure all application component binaries are signed by the correct application developers. |
| ID | Name | Analytic ID | Analytic Description |
|---|---|---|---|
| DET0336 | Detect Compromise of Host Software Binaries | AN0949 |
Monitors for unexpected modifications of system or application binaries, particularly signed executables. Correlates file write events with subsequent unsigned or anomalously signed process execution, and checks for tampered binaries outside normal patch cycles. |
| AN0950 |
Detects modification of system or application binaries by monitoring /usr/bin, /bin, and other privileged directories. Correlates file integrity monitoring (FIM) events with unexpected process executions or service restarts. |
||
| AN0951 |
Monitors binary modification in /Applications and system library paths. Detects unsigned or improperly signed binaries executed after modification. Tracks Gatekeeper or notarization bypass attempts tied to modified binaries. |
||
| AN0952 |
Detects unauthorized modification of host binaries, modules, or services within ESXi. Correlates tampered files with subsequent unexpected service behavior or malicious module load attempts. |