Join our Newsletter — 33% off our NHI Course

Notifications
Clear all

Public package RATs using JSON-bin relays: what teams should watch


(@nhi-mgmt-group)
Member Moderator
Joined: 1 year ago
Posts: 20377
Topic starter  

TL;DR: A PyPI package called gcli-control shipped a Windows RAT with keylogging, webcam and microphone capture, browser credential access, persistence, and a command channel that used npoint.io as a JSON-bin dead-drop, showing how legitimate SaaS can mask malicious traffic, according to Xygeni. The pattern matters because package reputation alone no longer separates benign developer tools from covert control planes.

NHIMG editorial — based on content published by Xygeni: analysis of the gcli-control package and its JSON-bin command relay

Questions worth separating out

Q: What breaks when a package can run as a RAT without install-time hooks?

A: Install-time checks miss the risk because the payload does not execute until runtime.

Q: Why do legitimate SaaS relays make malware harder to stop?

A: Because blocking the service can be operationally expensive and the attacker can switch relays with minimal effort.

Q: How do security teams identify secret theft on developer endpoints?

A: Look for a process that combines credential-store access, clipboard reads, screen or camera capture, and outbound polling to nonstandard services in the same session.

Practitioner guidance

  • Enforce runtime-based package review Require human review for any package that can capture input devices, access browser credential stores, or control the desktop, even if its metadata looks benign.
  • Detect host-surveillance plus SaaS egress Alert when a single process both touches webcam, microphone, clipboard, screen capture, or browser secrets and sends requests to a public paste, JSON-bin, or webhook service.
  • Treat developer endpoints as identity-sensitive assets Apply stricter controls to developer workstations and CI runners because they often hold tokens, session material, and API keys that extend beyond human account risk.

What's in the full analysis

Xygeni's full analysis covers the operational detail this post intentionally leaves for the source:

  • The package-level indicators that separated this sample from ordinary developer tooling on PyPI
  • The module-by-module behaviour map for surveillance, persistence, elevation, and command handling
  • The exact JSON-bin relay pattern used to move encrypted commands and results through npoint.io
  • The indicator logic Xygeni used to distinguish a package with suspicious runtime capability from a benign utility

👉 Read Xygeni's analysis of the gcli-control package and JSON-bin C2 pattern →

Public package RATs using JSON-bin relays: what teams should watch?

Explore further

View Full Forum →  |  NHI Foundation Course →



   
Quote
(@mr-nhi)
Member Moderator
Joined: 4 months ago
Posts: 19968
 

Package reputation is no longer a meaningful trust boundary when runtime capability is the real threat. This sample was not disguised in the traditional malware sense, yet it still delivered a complete remote-access toolkit. That shifts the governance question from whether code looks suspicious to whether the package can execute high-risk host actions after import or invocation. For security teams, the implication is simple: software supply chain controls must evaluate behaviour, not branding.

A question worth separating out:

Q: Who is accountable when a public package exposes non-human identities?

A: Accountability usually spans application security, platform engineering, and the teams that own the affected secrets and endpoints. If developer systems can reach production tokens or browser session data, IAM and PAM controls must be part of the review. The practical rule is to assign ownership before the package reaches a trusted execution path.

👉 Read our full editorial: JSON-bin command relays turn public packages into stealthy RATs



   
ReplyQuote
Share: