| name | T1614.001_system-language-discovery |
| description | Adversaries may attempt to gather information about the system language of a victim in order to infer the geographical location of that host. |
| category | information-gathering |
| version | 18.1 |
| author | cyberstrike-official |
| tags | ["mitre-attack","enterprise","t1614.001","discovery","linux","macos","windows","sub-technique"] |
| technique_id | T1614.001 |
| tactic | discovery |
| all_tactics | ["discovery"] |
| platforms | ["Linux","macOS","Windows"] |
| mitre_url | https://attack.mitre.org/techniques/T1614/001 |
| tech_stack | ["linux","macos","windows"] |
| cwe_ids | ["CWE-200"] |
| chains_with | ["T1614"] |
| prerequisites | ["T1614"] |
| severity_boost | {"T1614":"Chain with T1614 for deeper attack path"} |
T1614.001 System Language Discovery
Sub-technique of: T1614
High-Level Description
Adversaries may attempt to gather information about the system language of a victim in order to infer the geographical location of that host. This information may be used to shape follow-on behaviors, including whether the adversary infects the target and/or attempts specific actions. This decision may be employed by malware developers and operators to reduce their risk of attracting the attention of specific law enforcement agencies or prosecution/scrutiny from other entities.
There are various sources of data an adversary could use to infer system language, such as system defaults and keyboard layouts. Specific checks will vary based on the target and/or adversary, but may involve behaviors such as Query Registry and calls to Native API functions.
For example, on a Windows system adversaries may attempt to infer the language of a system by querying the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language or parsing the outputs of Windows API functions GetUserDefaultUILanguage, GetSystemDefaultUILanguage, GetKeyboardLayoutList and GetUserDefaultLangID.
On a macOS or Linux system, adversaries may query locale to retrieve the value of the $LANG environment variable.
Kill Chain Phase
Platforms: Linux, macOS, Windows
What to Check
How to Test
Atomic Red Team Tests
The following tests are from Atomic Red Team and provide actionable ways to test this technique:
Atomic Test 1: Discover System Language by Registry Query
Identify System language by querying the registry on an endpoint.
Upon successful execution, result in number format can be looked up to correlate the language.