11 Malicious NuGet Game-Tool Packages Download Windows Payloads with Surveillance and Remote-Control Features

· Original article ↗

Summary

Socket researchers analyzed 11 NuGet game-tool packages that download and execute Windows payloads. The malware collects host and hardware data; three variants also support Telegram screenshots and remote commands.

Key points

  • All 11 .NET command-line tools pose as game utilities and download pepesoft.exe from GitHub Releases or Hugging Face; their built-in BitTorrent fallback is dormant in the analyzed samples.
  • Ten downloaders request elevation to resync the Windows clock, and the downloaders resolve GitHub hosts through Google DNS-over-HTTPS.
  • The payloads retrieve remote configuration and use Google Sheets for telemetry, licensing, hardware binding, and a remote device ban-list.
  • Three variants include Telegram commands that can capture and send screenshots and control game-related actions; the other eight do not contain these handlers.
  • Eight PyArmor-protected payloads can route Google Sheets traffic through an authenticated proxy if direct connections fail.
  • The three direct-bytecode variants can modify Windows Installer policy values and include an optional cleanup path that may delete files and folders in the application's working directory.
  • Socket reported the packages to NuGet and requested their removal and the publisher account's suspension; the article also provides indicators and remediation guidance.

Article Details

Attack Vectors
  • Eleven malicious NuGet DotnetTool packages masquerade as game utilities and download and execute pepesoft.exe from attacker-controlled GitHub Releases or Hugging Face resources.
  • The downloaders resolve GitHub hosts through Google DNS-over-HTTPS rather than the system resolver. Ten of the eleven also request elevation to resynchronize the Windows clock before downloading.
  • The payload retrieves configuration through a Cloudflare Worker and falls back to an operator bucket on Selectel S3-compatible storage. Eight PyArmor-protected payloads can route Google Sheets traffic through a hardcoded authenticated HTTP proxy.
  • The payloads report licensing and host information to Google Sheets and check hardware identifiers against a remote ban-list. In the Albion, Calculator, and Throne builds, Telegram bot commands can capture and send screenshots and control game-related functions.
  • In the direct-bytecode Albion, Calculator, and Throne builds, an exit option can alter Windows Installer registry values and conditionally delete files and subdirectories from the application’s current directory.
Defensive Notes
  • Avoid installing NuGet tools advertised as game cheats, trainers, or panels; inspect DotnetTool package contents and vet dependencies before installation.
  • Alert on unknown dotnet tool install activity, hidden PowerShell children of .NET tools invoking w32tm /resync, .NET processes requesting dns.google/resolve, and processes reading AWS_CONFIG_KEY.
  • Block the listed payload-staging URLs, Cloudflare Worker endpoint, Selectel S3-compatible endpoint, authenticated proxy IP, and operator storefront or channel resources where appropriate.
  • Hunt for the shared mutex GUID and key values, pepesoft.exe, the listed hashes, and the article’s noted paths including %LOCALAPPDATA%\Windows Src, %APPDATA%\pepesoft, ./libgg/chat_ids.txt, and ./token.txt.
  • If a package was installed, uninstall it, remove associated payload and working directories, and rotate credentials that were entered into the tool or may have appeared in captured screenshots.

Indicators of compromise

TypeIndicatorContext
DOMAINbots[.]pepesoft[.]ruOperator storefront associated with the paid game-automation operation behind the packages.
DOMAINcalm-voice-9797[.]888c888x888[.]workers[.]devOperator Cloudflare Worker endpoint used to retrieve payload configuration.
DOMAINs3[.]ru-3[.]storage[.]selcloud[.]ruS3-compatible endpoint used by the payload to retrieve configuration from the operator’s bucket.
IPV4196[.]16[.]3[.]71Hardcoded authenticated proxy used by eight payloads as a fallback route for Google Sheets traffic.
SHA256011926de3d0cc2b970627b9bf0de003e731f8576602dff756d2ab54a9de61972SHA-256 hash of the rmrp.dll first-stage downloader.
SHA25601d2afea0f2201a3b59765a1a60ba324ff4b8fdd25f23a0e05824b97f195b27cSHA-256 hash of the recovered PyArmor-protected Trigger gtaobus.pyc entrypoint.
SHA25617b1d836c2f15a97be0350879943b04e14bc076cf09e31df0d73258ee10f7e7cSHA-256 hash of the recovered PyArmor-protected Russian Fishing 4 gtaobus.pyc entrypoint.
SHA25623808e7638f7a00b1ef9b9f4ca524f8a46cf63be6f6b79fec8e4a3fd1cc82a1eSHA-256 hash of the trigger.dll first-stage downloader.
SHA25623e4d8af5425dae022793450190c8d30809b2986dd879eb4bff557cdacf49c86SHA-256 hash of the recovered PyArmor-protected GrandRP gtaobus.pyc entrypoint.
SHA2562a4fed04d792b9c2fdf9c1456a08ca23eda5fef50c0b409ab294ad489e12d801SHA-256 hash of the recovered PyArmor-protected Lineage 2 gtaobus.pyc entrypoint.
SHA256476c6f36a22156e53548a87291989a21d6c905dcbd9e1bf68ff5bc12e5c8bb07SHA-256 hash of the Throne payload’s gtaobus.pyc entry module.
SHA2564d13f1136b13c871c65141b77ec7208488334ac4be511800196adcd328666305SHA-256 hash of the majestic.dll first-stage downloader.
SHA256567952daf0ab7b36b017aac9963791188dea0fbf2e99c7cc6f6652ee540f4840SHA-256 hash of the Albion payload’s gtaobus.pyc entry module.
SHA2565d9843126db4223dc2a8a9cd4a627286fe1a6345e33b28e9c98b5fe56fe89da6SHA-256 hash of the RMRP pepesoft.exe second-stage payload.
SHA2565f3a9ebf7039097b3cdbca8609b5b68af07eeb1dbf716ba2817a97fc7c543854SHA-256 hash of the setup.dll first-stage downloader in the Throne package.
SHA2566c1f828e4d8395dde8293868c65ba8d86b3b9672ebbbb16e932624706d37d832SHA-256 hash of the Lineage 2 pepesoft.exe second-stage payload.
SHA2566cbd4bc491deb11040e2b2f91b0b4e129af551a802fc78cb42e0e985297ef44cSHA-256 hash of the Majestic pepesoft.exe second-stage payload.
SHA2566eefe9d5f030d403c72bd4e4caf5bbb9dbc2bd5e15ebb07de153494f458e5eb9SHA-256 hash of the GrandRP pepesoft.exe second-stage payload.
SHA256774e40046f353e3f916f39e3d13d6499da35705a479cfb89288c21017aaf5461SHA-256 hash of the recovered PyArmor-protected Amazing RP gtaobus.pyc entrypoint.
SHA25679c09e1ffb4804c14ff27d41ec08d4390455c92d65717be0aeeec2697297d76aSHA-256 hash of the rusfish4.dll first-stage downloader.
SHA2567e42d25e707d29d5d185a4c5dc71019f744e88a30b66bbf06949194ff32dbc48SHA-256 hash of the recovered PyArmor-protected Majestic gtaobus.pyc entrypoint.
SHA2568ab256dd839aec6638cd46374f4a6664e534b9341bbcdfd9b763e5a27c51ddb7SHA-256 hash of the GTA5RP pepesoft.exe second-stage payload.
SHA256900ddb81d27e03967209fee4d17d13deb68eef0e1f10936eb520ca10575cb49eSHA-256 hash of the calculator.dll first-stage downloader.
SHA25695577498d23fe750221a5badfc25b5e9f020dcf4d80c79a019b090e3c3b0a32aSHA-256 hash of the recovered PyArmor-protected GTA5RP gtaobus.pyc entrypoint.
SHA2569a2091e6625fc11cfd8f39c17aa271604e66322ee045028946274b988103e35bSHA-256 hash of the amazingrp.dll first-stage downloader.
SHA256a2a5e473dba85959b21b7e8a184bc255d5f2dacdf7411b91d212fb1217d2518bSHA-256 hash of the Trigger pepesoft.exe second-stage payload.
SHA256ab58a90eb3682c6dc3389cd700a64f68a19c0dac3d0fa8e3df97ae041f96d4e1SHA-256 hash of the grandrp.dll first-stage downloader.
SHA256c9f3e7766dbe728d84a1243447faa5f5eba0645bf13089074d128ea7663e7f5bSHA-256 hash of the Russian Fishing 4 pepesoft.exe second-stage payload.
SHA256cc853b3e4504c890d275ac2327f18acd7e4c5b99ca056181f3f5694781f2cf45SHA-256 hash of the Calculator payload’s gtaobus.pyc entry module.
SHA256d5385526f2f3e52c7d96087611c6cd4e479bf61828400efdb3ca09406d981609SHA-256 hash of the albion.dll first-stage downloader.
SHA256d59e1914d76499fa51bf861f418c84bda0b48913dc39bd2e73756e326e4ccbb0SHA-256 hash of the recovered PyArmor-protected RMRP gtaobus.pyc entrypoint.
SHA256d9f7ca9f93a7d188d51db308877b15d0beae932ca0bf4705384fbedf54b454c1SHA-256 hash of the lineage2.dll first-stage downloader.
SHA256e6e1049158ceb1971c61388349c81fa6047a7aecb4ff2089ef54a50dcc35dbc0SHA-256 hash of the gta5rp.dll first-stage downloader.
SHA256e8c2618565aa31d7ffe909ebc99040bafcc0ea8df7f5d92fa673bb7ffacb14c9SHA-256 hash of the Amazing RP pepesoft.exe second-stage payload.
URLhxxps[:]//github[.]com/pepegit666/123f53y45ysdf34Operator GitHub repository used to stage the campaign’s second-stage payloads.
URLhxxps[:]//github[.]com/pepegit666/123f53y45ysdf34/releases/download/albion[.]onlinepanel/pepesoft[.]exeSpecific GitHub Releases payload-download URL used by a campaign downloader.
URLhxxps[:]//huggingface[.]co/buckets/pepegit666Operator Hugging Face resource used as a mirror for payload staging.
URLhxxps[:]//huggingface[.]co/buckets/pepegit666/albion[.]onlinepanel/resolve/pepesoft[.]exe?download=trueSpecific Hugging Face payload-download URL used by a campaign downloader.

MITRE ATT&CK

T1016 · System Network Configuration DiscoveryPayloads collect network-related information, including local connection counts, internet status, IP address, and geolocation when available.T1027.002 · Software PackingThe payloads are PyInstaller-packed, and eight entry modules are additionally protected with PyArmor.T1057 · Process DiscoveryThe direct-bytecode payloads record visible-window metadata including process names and window titles.T1059.001 · PowerShellTen downloaders launch hidden PowerShell to start Windows Time and force a clock resynchronization.T1059.003 · Windows Command ShellThe downloader launches the payload through cmd.exe, and payload shutdown routines generate batch-file commands.T1070.004 · File DeletionThe exitadaptive cleanup branch deletes files and directories from the application’s current directory.T1071.001 · Web ProtocolsThe downloaders and payloads use web requests for staging, configuration, Google Sheets traffic, and related communications.T1082 · System Information DiscoveryPayloads collect host and hardware details including Windows version, hostname, CPU, motherboard, GPU, and hardware identifiers.T1090.002 · External ProxyEight PyArmor-protected payloads use a hardcoded authenticated HTTP proxy when direct Google Sheets access fails.T1105 · Ingress Tool TransferThe NuGet downloaders retrieve pepesoft.exe from the operator’s GitHub or Hugging Face staging resources.T1112 · Modify RegistryThe direct-bytecode payloads can delete DisableLogging and DisableMSI values from Windows Installer policy registry keys.T1113 · Screen CaptureThe Albion, Calculator, and Throne payloads capture game-window, program-window, or full-screen screenshots.T1140 · Deobfuscate/Decode Files or InformationThe direct-bytecode payloads base64-decode, decompress, and decrypt embedded Python source before executing it.T1195.002 · Compromise Software Supply ChainThe malicious downloader packages were published to NuGet as DotnetTool game utilities.T1567 · Exfiltration Over Web ServiceRecovered code sends telemetry and host state to Google Sheets; the direct-bytecode builds also send screenshots through Telegram.T1608.001 · Upload MalwareThe operator staged pepesoft.exe as GitHub Releases assets and Hugging Face resources.

Vendors

Products

DotnetToolSocket’s Threat Research Team analyzed 11 malicious NuGet packages published as .NET command-line tools (DotnetTool package type) that present themselves as game utilities, bots, and “panels”. Every package is aGitHub Releasesdownloader that fetches and executes a second-stage Windows payload named pepesoft.exe from GitHub Releases and Hugging Face paths under the username pepegit666, with dormant BitTorrent fallback code built in.Google Sheetsuse downloader-supplied AWS-style key material to retrieve remote configuration, authenticate to Google Sheets, bind activations to hardware, and honor a remote HWID/UUID ban-list. In the three direct-bytecodeHugging Facethat fetches and executes a second-stage Windows payload named pepesoft.exe from GitHub Releases and Hugging Face paths under the username pepegit666, with dormant BitTorrent fallback code built in.Microsoft Windowsbots, and “panels”. Every package is a first-stage downloader that fetches and executes a second-stage Windows payload named pepesoft.exe from GitHub Releases and Hugging Face paths under the username pepegit666,NuGetSocket’s Threat Research Team analyzed 11 malicious NuGet packages published as .NET command-line tools (DotnetTool package type) that present themselves as game utilities, bots, and “panels”. Every package is aPowerShellBefore any network activity, 10 of the 11 downloader assemblies spawn a hidden PowerShell process with the runas verb to start the Windows Time service and force a resync. The runas verb requests elevation, and thePyArmorto a single toolchain. The payload corpus contains recovered original pepesoft.exe files for the eight PyArmor-protected release tags, and each has a distinct hash. Three payloads, Albion, Calculator, and Throne,PyInstallerA PyInstaller-packed Python payload (pepesoft.exe). The recovered payloads use downloader-supplied AWS-style key material to retrieve remote configuration, authenticate to Google Sheets, bind activations to hardware,

Industries

Related Articles