Netskope Details TroyDen’s LuaJIT Lure Factory Across 300+ GitHub Packages

· Original article ↗

Summary

Netskope traces TroyDen’s Lure Factory to 300+ trojanized GitHub packages using paired LuaJIT components, sandbox-evasion delays and screenshot exfiltration. Analysis links three lure campaigns; credential theft is suspected, not confirmed.

Key points

  • Netskope identified more than 300 delivery packages across GitHub repositories masquerading as tools for developers, gamers and other users.
  • The packages pair a renamed LuaJIT runtime with an encrypted, obfuscated Lua script; the malicious behavior emerges when both components execute together.
  • The payload checks for analysis environments and then uses an extreme sleep delay to evade timed sandboxes.
  • After researchers patched the delay for analysis, the payload disabled WinINet proxy auto-detection, queried ip-api[.]com for geolocation, and captured and uploaded a full-desktop screenshot to Frankfurt-hosted C2 infrastructure.
  • Netskope found identical payloads and shared infrastructure across three confirmed lure campaigns, including fake OpenClaw deployment, phone-tracker and Fishing Planet tools.
  • DPAPI use and related LuaJIT loader research are consistent with credential harvesting, but the specific credentials targeted and TroyDen’s final-stage payload remain unconfirmed.
  • Netskope says its Advanced Threat Protection detected the activity through behavioral heuristics and reported the repositories to GitHub.

Article Details

Attack Vectors
  • Trojanized GitHub repositories impersonated legitimate projects and used download links to deliver malicious ZIP packages.
  • A batch file launched a renamed LuaJIT runtime together with an encrypted, obfuscated Lua payload; the components appeared benign when analyzed separately.
  • The payload checked for debugger presence, low RAM, short system uptime, SeDebugPrivilege, and the computer name, then invoked a sleep lasting roughly 29,000 years to evade timed sandbox analysis.
  • After analysis checks, the payload changed WinINet registry settings to bypass proxy auto-detection, queried ip-api.com for victim geolocation, captured a full-desktop BMP, and uploaded it over HTTP to C2 infrastructure.
  • The C2 returned encrypted task and loader blobs. DPAPI loading and cryptographic API calls were observed; browser credential harvesting was described as consistent with the behavior, but the specific credentials targeted and final payload remain unconfirmed.
Defensive Notes
  • Analyze the renamed interpreter and opaque data file together, including their execution sequence, because individual-file analysis may not reveal the malicious behavior.
  • The article reports detection by Netskope Advanced Threat Protection behavioral heuristics.
  • The article says its published indicators are suitable for deployment in EDR and network-inspection tooling.
  • Netskope reported the three identified malicious repositories to GitHub on 2026-03-20.

Indicators of compromise

TypeIndicatorContext
EMAILcoteynumer@gmail[.]comEmail retained in the commit history of the GitHub account linked by the article to the phone-tracker campaign.
IPV4213[.]176[.]73[.]130C2 address reported among Frankfurt infrastructure that returned the campaign's task and loader data.
IPV4213[.]176[.]73[.]159Identified as a C2 server used by the campaign.
IPV4217[.]119[.]129[.]118Identified as a campaign C2 server.
IPV4217[.]119[.]129[.]121Identified as a campaign C2 server.
IPV4217[.]119[.]129[.]122C2 server confirmed in an OpenClaw delivery package.
IPV4217[.]119[.]129[.]76C2 server confirmed in an OpenClaw delivery package.
IPV489[.]169[.]12[.]241C2 server confirmed in an OpenClaw delivery package.
IPV494[.]156[.]154[.]6C2 server confirmed in an OpenClaw delivery package.
SHA25611c06aab7aa3f1857cc9add05b392ba6bd62a7fd2d168e41d9ba5557a96c78f0SHA-256 hash of the malicious OpenClaw delivery ZIP docker-openclaw-v3.8.zip.
SHA25628d09366dc7842fe42f44a27cb54c6e1ba6769f42a27b99f5d455efb1e6de454SHA-256 hash of the malicious Fishing Planet enhancement delivery ZIP.
SHA25630694a0101abfeea642cb9de7fb7eb66789eea74d8d7257b39822d7dab59445dSHA-256 hash of unc.exe, the renamed LuaJIT runtime distributed with the payload.
SHA256357cd0a1601d24bbb7949637b352b0ace1f30f51f788a03cafa98316068938e0SHA-256 hash of the encrypted, obfuscated Lua payload license.txt.
SHA256398ea394f9a4242ebe9fd67a5ca62445fc4a34b1731d4f99b8eea5e65a98ddcbSHA-256 hash of the malicious phone-tracker delivery ZIP location_number_tracking_tool_phone_v2.5.zip.
SHA25639d39e6726408e778c8ad3d85010e1db0a686ebec1f8807f96cf80be59dfdd59SHA-256 hash of Launcher.cmd, a malicious execution trigger in phone-tracker delivery packages.
SHA2563fc5816afde3e58bf9fcaa1b3873f2d4bc8629ee7a8341a4a4979d2729cad5e6SHA-256 hash of the malicious phone-tracker delivery ZIP location-tracking-tool-phone-number-v3.3.zip.
SHA2565343326fb0b4f79c32276f08ffcc36bd88cde23aa19962bd1e8d8b80f5d33953SHA-256 hash of luajit.exe distributed in malicious phone-tracker and game-cheat packages.
SHA256593916916552ce87cd6fde7353875e023cd8a89f13d222fc636634a43ff65cdbSHA-256 hash of clib.txt, a payload component in a Fishing Planet delivery package.
SHA25666ee4143e50c42b26f1059a33860d49513194c6b049245c9a68a45dbefa40ec1SHA-256 hash of the malicious Fishing Planet delivery ZIP fishing_planet_enhanced_menu_3.9.zip.
SHA2568e322af81744217427abef3cab949aee1de70f1506f40e4e2d672af9e1f6ef0bSHA-256 hash of Application.bat, a malicious execution trigger in an OpenClaw delivery package.
SHA256964dfb63ff140149ed8b310dba63fd8d82a82dc9979348e93b3dd7206fd71d13SHA-256 hash of Launcher.cmd, a malicious execution trigger in a Fishing Planet delivery package.
SHA256b1d3e7e81016561faddf7b0a6cb9a3bd0174064b3b309c6948f5f1e6688a1381SHA-256 hash of lua.exe, a LuaJIT runtime distributed in an OpenClaw delivery package.
SHA256b1f9c4d82eb5f73b9081c3d414b3c053c1550e46fa21d30079134be3c0040ddbSHA-256 hash of the malicious OpenClaw delivery ZIP openclaw-docker-v1.6.zip.
SHA256b54ea465f77f1eb726d3244aa52d13c103ad9c4fc5a15061b7067347896b433cSHA-256 hash of a malicious Launch.bat execution trigger distributed in campaign packages.
SHA256b5c571363632a6887c6e9471435ab0fdcbf16bae6dbdf28d0fc755a9d467e859SHA-256 hash of cdef.txt, a payload component in phone-tracker delivery packages.
SHA256b6e81d95c0c336e8b8bde3889f4df4ee17639f6ff055c631de19cab3c7efb63bSHA-256 hash of the malicious phone-tracker delivery ZIP tracking-tool-location-number-phone-3.2.zip.
SHA256c58720dcb30e5c887ff5bfd41bb46a611f2655128f1ef1a771e1745f24349dfeSHA-256 hash of base.txt, a payload component in OpenClaw delivery packages.
SHA256c655c2d410e6b36d9ef1359aef67183bf76c193c609697492e41d30622f7ebd4SHA-256 hash of the malicious OpenClaw delivery ZIP docker-openclaw-v1.8.zip.
SHA256c7a657af5455812fb215a8888b7e3fd8fa1ba27672a3ed9021eb6004eff271acSHA-256 hash of lua51.dll distributed as part of malicious phone-tracker and game-cheat packages.
URLhxxps[:]//t[.]me/NumberLocationTrackTelegram channel used to advertise the phone-location service under the TroyDen operator name.

MITRE ATT&CK

T1027 · Obfuscated Files or InformationThe Lua payload is encrypted and obfuscated, including with Prometheus Obfuscator.T1041 · Exfiltration Over C2 ChannelThe payload uploads the victim's screenshot to C2 over the same HTTP channel used for task and loader exchanges.T1059.003 · Windows Command ShellLaunch.bat or a similar batch trigger runs a command that launches the renamed LuaJIT runtime with the payload.T1059.011 · LuaThe LuaJIT runtime executes the encrypted and obfuscated Lua payload.T1071.001 · Web ProtocolsThe malware communicates with its C2 over HTTP using POST and GET endpoints.T1082 · System Information DiscoveryThe payload queries system characteristics including RAM, uptime, and computer name.T1105 · Ingress Tool TransferThe C2 responds with encrypted task and loader blobs that the payload saves to the victim's Documents directory.T1112 · Modify RegistryThe payload writes registry settings that disable WinINet proxy auto-detection and alter related proxy settings.T1113 · Screen CaptureThe payload captures a full-desktop BMP screenshot.T1204.002 · Malicious FileThe delivery relies on a user downloading and executing the malicious package and its batch trigger.T1497.001 · System ChecksThe payload checks RAM, system uptime, and other environment characteristics to identify analysis systems.T1497.003 · Time Based ChecksThe payload invokes a sleep of roughly 29,000 years to outlast timed sandbox analysis.T1622 · Debugger EvasionOne of the payload's anti-analysis checks queries for debugger presence.

Threat Actors

Vendors

Products

Tools

Related Articles