Adversaries may interact with the Windows Registry to hide configuration information within Registry keys, remove information as part of cleaning up, or as part of other techniques to aid in persistence and execution.
Access to specific areas of the Registry depends on account permissions, some requiring administrator-level access. The built-in Windows command-line utility Reg may be used for local or remote Registry modification. [1] Other tools may also be used, such as a remote access tool, which may contain functionality to interact with the Registry through the Windows API.
Registry modifications may also include actions to hide keys, such as prepending key names with a null character, which will cause an error and/or be ignored when read via Reg or other utilities using the Win32 API. [2] Adversaries may abuse these pseudo-hidden keys to conceal payloads/commands used to maintain persistence. [3] [4]
The Registry of a remote system may be modified to aid in execution of files as part of lateral movement. It requires the remote Registry service to be running on the target system. [5] Often Valid Accounts are required, along with access to the remote system's SMB/Windows Admin Shares for RPC communication.
ID | Name | Description |
---|---|---|
S0677 | AADInternals |
AADInternals can modify registry keys as part of setting a new pass-through authentication agent.[6] |
S0045 | ADVSTORESHELL |
ADVSTORESHELL is capable of setting and deleting Registry values.[7] |
S0331 | Agent Tesla |
Agent Tesla can achieve persistence by modifying Registry key entries.[8] |
G0073 | APT19 |
APT19 uses a Port 22 malware variant to modify several Registry keys.[9] |
G0050 | APT32 |
APT32's backdoor has modified the Windows Registry to store the backdoor's configuration. [10] |
G0082 | APT38 |
APT38 uses a tool called CLEANTOAD that has the capability to modify Registry keys.[11] |
G0096 | APT41 |
APT41 used a malware variant called GOODLUCK to modify the registry in order to steal credentials.[12][13] |
S0438 | Attor | |
S0640 | Avaddon |
Avaddon modifies several registry keys for persistence and UAC bypass.[15] |
S0031 | BACKSPACE |
BACKSPACE is capable of deleting Registry keys, sub-keys, and values on a victim system.[16] |
S0245 | BADCALL |
BADCALL modifies the firewall Registry key |
S0239 | Bankshot |
Bankshot writes data into the Registry key |
S0268 | Bisonal |
Bisonal has deleted Registry keys to clean up its prior activity.[19] |
S0570 | BitPaymer |
BitPaymer can set values in the Registry to help in execution.[20] |
G0108 | Blue Mockingbird |
Blue Mockingbird has used Windows Registry modifications to specify a DLL payload.[21] |
S0348 | Cardinal RAT |
Cardinal RAT sets |
S0261 | Catchamas |
Catchamas creates three Registry keys to establish persistence by adding a Windows Service.[23] |
S0572 | Caterpillar WebShell |
Caterpillar WebShell has a command to modify a Registry key.[24] |
S0631 | Chaes |
Chaes stored its instructions in a config file in the Registry.[25] |
S0674 | CharmPower |
CharmPower can remove persistence-related artifacts from the Registry.[26] |
S0023 | CHOPSTICK |
CHOPSTICK may store RC4 encrypted configuration information in the Windows Registry.[27] |
S0660 | Clambling | |
S0611 | Clop | |
S0154 | Cobalt Strike |
Cobalt Strike can modify Registry values within |
S0126 | ComRAT |
ComRAT has encrypted and stored its orchestrator code in the Registry as well as a PowerShell script into the WsqmCons Registry key.[31][32] |
S0608 | Conficker |
Conficker adds keys to the Registry at |
S0488 | CrackMapExec |
CrackMapExec can create a registry key using wdigest.[35] |
S0115 | Crimson |
Crimson can set a Registry key to determine how long it has been installed and possibly to indicate the version number.[36] |
S0527 | CSPY Downloader |
CSPY Downloader can write to the Registry under the |
S0334 | DarkComet |
DarkComet adds a Registry value for its installation routine to the Registry Key |
S0673 | DarkWatchman |
DarkWatchman can store configuration strings, keylogger, and output of components in the Registry.[40] |
G0035 | Dragonfly |
Dragonfly has modified the Registry to perform multiple techniques through the use of Reg.[41] |
S0568 | EVILNUM |
EVILNUM can make modifications to the Regsitry for persistence.[42] |
S0343 | Exaramel for Windows |
Exaramel for Windows adds the configuration to the Registry in XML format.[43] |
S0569 | Explosive |
Explosive has a function to write itself to Registry values.[44] |
S0267 | FELIXROOT |
FELIXROOT deletes the Registry key |
S0679 | Ferocious |
Ferocious has the ability to add a Class ID in the current user Registry hive to enable persistence mechanisms.[46] |
G0061 | FIN8 |
FIN8 has deleted Registry keys during post compromise cleanup activities.[47] |
G0047 | Gamaredon Group |
Gamaredon Group has removed security settings for VBA macro execution by changing registry values |
S0666 | Gelsemium |
Gelsemium has the ability to store its components in the Registry.[50] |
S0032 | gh0st RAT | |
G0078 | Gorgon Group |
Gorgon Group malware can deactivate security mechanisms in Microsoft Office by editing several keys and values under |
S0531 | Grandoreiro |
Grandoreiro can store its configuration in the Registry at |
S0342 | GreyEnergy |
GreyEnergy modifies conditions in the Registry and adds keys.[54] |
S0697 | HermeticWiper |
HermeticWiper has the ability to modify Registry keys to disable crash dumps, colors for compressed files, and pop-up information about folders and desktop items.[55][56][57] |
G0072 | Honeybee |
Honeybee uses a batch file that modifies Registry keys to launch a DLL into the svchost.exe process.[58] |
S0376 | HOPLIGHT |
HOPLIGHT has modified Managed Object Format (MOF) files within the Registry to run specific commands and create persistence on the system.[59] |
S0203 | Hydraq |
Hydraq creates a Registry subkey to register its created service, and can also uninstall itself later by deleting this value. Hydraq's backdoor also enables remote attackers to modify and delete subkeys.[60][61] |
S0537 | HyperStack |
HyperStack can add the name of its communication pipe to |
S0260 | InvisiMole |
InvisiMole has a command to create, set, copy, or delete a specified Registry key or value.[63][64] |
S0271 | KEYMARBLE |
KEYMARBLE has a command to create Registry entries for storing data under |
G0094 | Kimsuky |
Kimsuky has modified Registry settings for default file associations to enable all macros and for persistence.[66][67][68][69] |
S0669 | KOCTOPUS | |
S0356 | KONNI |
KONNI has modified registry keys of ComSysApp, Svchost, and xmlProv on the machine to gain persistence.[71][72] |
S0397 | LoJax |
LoJax has modified the Registry key |
S0447 | Lokibot |
Lokibot has modified the Registry as part of its UAC bypass process.[74] |
S0576 | MegaCortex |
MegaCortex has added entries to the Registry for ransom contact information.[75] |
S0455 | Metamorfo |
Metamorfo has written process names to the Registry, disabled IE browser features, deleted Registry keys, and changed the ExtendedUIHoverTime key.[76][77][78][79] |
S0256 | Mosquito |
Mosquito stores configuration values under the Registry key |
S0205 | Naid |
Naid creates Registry entries that store information about a created service and point to a malicious DLL dropped to disk.[81] |
S0336 | NanoCore | |
S0691 | Neoichor |
Neoichor has the ability to configure browser settings by modifying Registry entries under |
S0210 | Nerex |
Nerex creates a Registry subkey that registers a new service.[85] |
S0457 | Netwalker |
Netwalker can add the following registry entry: |
S0198 | NETWIRE |
NETWIRE stores its configuration file within the Registry.[87] |
S0385 | njRAT |
njRAT can create, delete, or modify a specified Registry key or value.[88][89] |
G0116 | Operation Wocao |
Operation Wocao has enabled Wdigest by changing the registry value from 0 to 1.[90] |
S0229 | Orz | |
S0664 | Pandora |
Pandora can write an encrypted token to the Registry to enable processing of remote commands.[92] |
G0040 | Patchwork |
A Patchwork payload deletes Resiliency Registry keys created by Microsoft Office applications in an apparent effort to trick users into thinking there were no issues during application runs.[93] |
S0158 | PHOREAL | |
S0517 | Pillowmint |
Pillowmint has stored its malicious payload in the registry key |
S0501 | PipeMon |
PipeMon has stored its encrypted payload in the Registry.[96] |
S0254 | PLAINTEE |
PLAINTEE uses |
S0013 | PlugX |
PlugX has a module to create, delete, or modify Registry keys.[98] |
S0428 | PoetRAT |
PoetRAT has made registry modifications to alter its behavior upon execution.[99] |
S0012 | PoisonIvy |
PoisonIvy creates a Registry subkey that registers a new system device.[100] |
S0518 | PolyglotDuke |
PolyglotDuke can write encrypted JSON configuration files to the Registry.[101] |
S0441 | PowerShower |
PowerShower has added a registry key so future powershell.exe instances are spawned off-screen by default, and has removed all registry entries that are left behind during the dropper process.[102] |
S0583 | Pysa |
Pysa has modified the registry key "SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" and added the ransom note.[103] |
S0650 | QakBot |
QakBot can store its configuration information in a randomly named subkey under |
S0269 | QUADAGENT |
QUADAGENT modifies an HKCU Registry key to store a session identifier unique to the compromised system as well as a pre-shared key used for encrypting and decrypting C2 communications.[106] |
S0262 | QuasarRAT |
QuasarRAT has a command to edit the Registry on the victim’s machine.[107] |
S0662 | RCSession |
RCSession can write its configuration file to the Registry.[28][108] |
S0075 | Reg |
Reg may be used to interact with and modify the Windows Registry of a local or remote system at the command-line interface.[1] |
S0511 | RegDuke | |
S0019 | Regin |
Regin appears to have functionality to modify remote Registry information.[109] |
S0332 | Remcos |
Remcos has full control of the Registry, including the ability to modify it.[110] |
S0496 | REvil |
REvil can save encryption parameters and system information to the Registry.[111][112][113][114][115] |
S0240 | ROKRAT |
ROKRAT can modify the |
S0090 | Rover |
Rover has functionality to remove Registry Run key persistence as a cleanup procedure.[117] |
S0148 | RTM |
RTM can delete all Registry entries created during its execution.[118] |
S0596 | ShadowPad |
ShadowPad maintains a configuration block and virtual file system in the Registry.[119] |
S0140 | Shamoon |
Once Shamoon has access to a network share, it enables the RemoteRegistry service on the target system. It will then connect to the system with RegConnectRegistryW and modify the Registry to disable UAC remote restrictions by setting |
S0444 | ShimRat |
ShimRat has registered two registry keys for shim databases.[123] |
S0589 | Sibot |
Sibot has installed a second-stage script in the |
G0091 | Silence |
Silence can create, delete, or modify a specified Registry key or value.[125] |
S0692 | SILENTTRINITY |
SILENTTRINITY can modify registry keys, including to enable or disable Remote Desktop Protocol (RDP).[126] |
S0533 | SLOTHFULMEDIA |
SLOTHFULMEDIA can add, modify, and/or delete registry keys. It has changed the proxy configuration of a victim system by modifying the |
S0649 | SMOKEDHAM |
SMOKEDHAM has modified registry keys for persistence, to enable credential caching for credential access, and to facilitate lateral movement via RDP.[128] |
S0157 | SOUNDBITE | |
S0142 | StreamEx | |
S0603 | Stuxnet | |
S0559 | SUNBURST |
SUNBURST had commands that allow an attacker to write or delete registry keys, and was observed stopping services by setting their |
S0242 | SynAck | |
S0663 | SysUpdate |
SysUpdate can write its configuration file to |
S0011 | Taidoor |
Taidoor has the ability to modify the Registry on compromised hosts using |
S0467 | TajMahal |
TajMahal can set the |
S0560 | TEARDROP |
TEARDROP modified the Registry to create a Windows service for itself on a compromised host.[137] |
G0027 | Threat Group-3390 |
A Threat Group-3390 tool has created new Registry keys under |
S0665 | ThreatNeedle |
ThreatNeedle can save its configuration data as the following RC4-encrypted Registry key: |
S0668 | TinyTurla |
TinyTurla can set its configuration parameters in the Registry.[140] |
S0266 | TrickBot | |
G0010 | Turla |
Turla has used the Registry to store encrypted payloads.[142][143] |
S0263 | TYPEFRAME |
TYPEFRAME can install encrypted configuration data under the Registry key |
S0386 | Ursnif |
Ursnif has used Registry modifications as part of its installation routine.[145][146] |
S0476 | Valak |
Valak has the ability to modify the Registry key |
S0180 | Volgmer |
Volgmer stores the encoded configuration file in the Registry key |
S0670 | WarzoneRAT |
WarzoneRAT can create |
S0612 | WastedLocker |
WastedLocker can modify registry values within the |
S0579 | Waterbear |
Waterbear has deleted certain values from the Registry to load a malicious DLL.[155] |
G0102 | Wizard Spider |
Wizard Spider has modified the Registry key |
S0330 | Zeus Panda |
Zeus Panda modifies several Registry keys under |
S0350 | zwShell | |
S0412 | ZxShell |
ZxShell can create Registry entries to enable services to run.[159] |
ID | Mitigation | Description |
---|---|---|
M1024 | Restrict Registry Permissions |
Ensure proper permissions are set for Registry hives to prevent users from modifying keys for system components that may lead to privilege escalation. |
Modifications to the Registry are normal and occur throughout typical use of the Windows operating system. Consider enabling Registry Auditing on specific keys to produce an alertable event (Event ID 4657) whenever a value is changed (though this may not trigger when values are created with Reghide or other evasive methods). [160] Changes to Registry entries that load software on Windows startup that do not correlate with known software, patch cycles, etc., are suspicious, as are additions or changes to files within the startup folder. Changes could also include new services and modification of existing binary paths to point to malicious files. If a change to a service-related entry occurs, then it will likely be followed by a local or remote service start or restart to execute the file.
Monitor processes and command-line arguments for actions that could be taken to change or delete information in the Registry. Remote access tools with built-in features may interact directly with the Windows API to gather information. The Registry may also be modified through Windows system management tools such as Windows Management Instrumentation and PowerShell, which may require additional logging features to be configured in the operating system to collect necessary information for analysis.
Monitor for processes, command-line arguments, and API calls associated with concealing Registry keys, such as Reghide. [2] Inspect and cleanup malicious hidden Registry entries using Native Windows API calls and/or tools such as Autoruns [4] and RegDelNull [161].