North Korea's HOPLIGHT trojan targets Windows systems globally
Free public brief. The indicators, the detections with Splunk SPL already written (plus Elastic and KQL where they apply), and a Slack alert the next time this touches a vendor you run are in the app — free account, no card.
CISA documents HOPLIGHT, a North Korean trojan with remote access and credential theft capabilities, deployed via proxy malware and custom TLS obfuscation.
This CISA Malware Analysis Report documents HOPLIGHT, a trojan attributed to North Korea's HIDDEN COBRA cyber operations. The analysis covers twenty malicious executable files, sixteen functioning as SSL/TLS proxy applications that mask communications between malware and remote operators. HOPLIGHT itself is a 32-bit Windows trojan that collects system information, enumerates drives, executes processes, modifies registry settings, and communicates with command-and-control servers. The malware uses stolen SSL certificates (including one from Naver.com) and default PolarSSL keys for initial TLS handshakes, then switches to custom Linear Feedback Shift Register (LFSR) encryption for obfuscated post-handshake communications. A 64-bit variant hooks the Windows Local Security Authority (lsass.exe) and injects rdpproto.dll to load credential-theft APIs common in Pass-the-Hash toolkits. Infrastructure analysis reveals command servers in Zimbabwe, Ecuador, South Korea, and the United Kingdom, many using compromised or bulletproof-hosting providers. The malware drops configuration files containing hardcoded IP addresses and socket pairs, persists via registry modifications and service creation, and is capable of remote file exfiltration and arbitrary code execution.
Mentioned in this report
Detection guidance
LSASS Loading rdpproto.dll Module
lsass.exe loading a DLL named rdpproto.dll, matching the HOPLIGHT 64-bit variant that hooks LSASS and injects rdpproto.dll to load credential-theft APIs. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.
title: LSASS Loading rdpproto.dll Module
id: bbbc2ca2-a0bc-51a4-9f13-c7dad49d0215
status: experimental
description: Detects lsass.exe loading a module named rdpproto.dll, consistent with
the HOPLIGHT 64-bit variant that hooks LSASS and injects this DLL to expose Pass-the-Hash
style credential APIs. Rule keys on the LSASS-as-host relation, not on a hash.
tags:
- attack.persistence
- attack.credential-access
- attack.t1547.008
- attack.t1550.002
logsource:
category: image_load
product: windows
detection:
selection:
Image|endswith: \lsass.exe
ImageLoaded|endswith: \rdpproto.dll
condition: selection
falsepositives:
- Unlikely; no known legitimate Windows component named rdpproto.dll loads into LSASS
level: high
author: Vorant
references:
- https://www.cisa.gov/news-events/analysis-reports/ar20-045g
Reg.exe Adding Run Key Pointing to User-Writable Path
reg.exe adding a Run/RunOnce autostart value whose data points to a user-writable directory, a persistence pattern consistent with HOPLIGHT registry-based persistence. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.
title: Reg.exe Adding Run Key Pointing to User-Writable Path
id: 9d9d03eb-940a-5b52-acbe-e49a6c337c76
status: experimental
description: Detects reg.exe add against a Run or RunOnce key where the value data
references a user-writable location such as AppData, Temp, ProgramData or Users\Public.
Generalises on the persistence technique used by trojans like HOPLIGHT, not on specific
value names.
tags:
- attack.persistence
- attack.t1547.001
- attack.t1112
logsource:
category: process_creation
product: windows
detection:
selection_img:
Image|endswith: \reg.exe
CommandLine|contains|all:
- ' add '
- \CurrentVersion\Run
selection_path:
CommandLine|contains:
- \AppData\
- \Temp\
- \ProgramData\
- \Users\Public\
filter_known:
CommandLine|contains:
- \Microsoft\OneDrive\
- \AppData\Local\Programs\Microsoft VS Code\
condition: selection_img and selection_path and not filter_known
falsepositives:
- Per-user software installers or login scripts that register autostart entries from
AppData
- IT deployment scripts that set Run keys for tools installed under ProgramData
level: medium
author: Vorant
references:
- https://www.cisa.gov/news-events/analysis-reports/ar20-045g
4 more detections for this report are in the app — the rules that match its indicators, plus the Sigma rules already converted to Splunk SPL, to Elastic where their fields map onto Elastic's integrations and to Microsoft Defender XDR KQL wherever Defender records the activity, and the YARA and Suricata. Three days of it free, no card.
Behavioural rules are generated from public reporting — validate in your environment before deploying.
Source reporting: https://www.cisa.gov/news-events/analysis-reports/ar20-045g
What this brief leaves out
This page is the free tier: the write-up, the severity, the names. In the app the same report carries its extracted indicators, its detections (Splunk SPL already written, plus Elastic and Microsoft KQL where they apply), the actors and CVEs it names as live profiles, and the vendor research on the same campaign — the primary source the news paraphrased, cited and read directly.
It sits in a corpus of 13,854 reports from 146 sources, 616 of them written in the last seven days, and it grows through the day.
A new account starts with three days of all of it, no card, then keeps the government and CERT reporting free. Name the vendors you run and Slack hears about the reports that touch them — about forty a week that are yours, not the four hundred that are not.
Create a free account What it costs