ctipilot.ch

RedC2

tool · tool:redc2 single-source

Modular, actively-developed cross-platform (Windows/macOS/Linux) command-and-control framework sold on Hack Forums; version 4.0 added the native RedShell Linux implant, and the framework ships an LLM-backed 'Red Agent' component that converts natural-language operator intent into an ordered chain of beacon commands — unrelated to Wiz's own defensive research tool of the same name (tool:wiz-red-agent). Delivered in August 2026 via fourteen trojanized npm packages whose loader executes at module load with no install hook (TrendAI Research, 2026-08-20).

Aliases: RedShell, RedShell Linux, Red Agent

Coverage timeline
2
first 2026-08-28 → last 2026-08-29
Peak priority
notable
2 notable
Sources cited
2
2 hosts
Sections touched
2
active-threats, research
Co-occurring entities
1
see Related entities below
ATT&CK techniques
12
pinned v19.2 · see below
2026-08-282 appearances2026-08-29

ATT&CK techniques

12 techniques observed across 2 entries — derived from entry metadata and body evidence, never asserted without a published entry behind it · pinned to MITRE ATT&CK v19.2 · compare on the matrix · Navigator layer (JSON)

Initial Access TA0001

T1195.002Supply Chain Compromise: Compromise Software Supply Chain×2

Adversaries may manipulate application software prior to receipt by a final consumer for the purpose of data or system compromise. Supply chain compromise of software can take place in a number of ways, including manipulation of the application source code, manipulation of the update/distribution mechanism for that software, or replacing compiled releases with a modified version.

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · 2026-08-28/wiz-red-agent-snowflake-github-actions-command-injection · ATT&CK page ↗

Execution TA0002

T1053.003Scheduled Task/Job: Cron×1

Adversaries may abuse the <code>cron</code> utility to perform task scheduling for initial or recurring execution of malicious code. The <code>cron</code> utility is a time-based job scheduler for Unix-like operating systems. The <code> crontab</code> file contains the schedule of cron entries to be run and the specified times for execution. Any <code>crontab</code> files are stored in operating system-specific file paths.

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · ATT&CK page ↗

T1059Command and Scripting Interpreter×1

Adversaries may abuse command and script interpreters to execute commands, scripts, or binaries. These interfaces and languages provide ways of interacting with computer systems and are a common feature across many different platforms. Most systems come with some built-in command-line interface and scripting capabilities, for example, macOS and Linux distributions include some flavor of Unix Shell while Windows installations include the Windows Command Shell and PowerShell.

Evidence: 2026-08-28/wiz-red-agent-snowflake-github-actions-command-injection · ATT&CK page ↗

T1059.004Command and Scripting Interpreter: Unix Shell×1

Adversaries may abuse Unix shell commands and scripts for execution. Unix shells are the primary command prompt on Linux, macOS, and ESXi systems, though many variations of the Unix shell exist (e.g. sh, ash, bash, zsh, etc.) depending on the specific OS or distribution. Unix shells can control every aspect of a system, with certain commands requiring elevated privileges.

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · ATT&CK page ↗

Persistence TA0003

T1053.003Scheduled Task/Job: Cron×1

Adversaries may abuse the <code>cron</code> utility to perform task scheduling for initial or recurring execution of malicious code. The <code>cron</code> utility is a time-based job scheduler for Unix-like operating systems. The <code> crontab</code> file contains the schedule of cron entries to be run and the specified times for execution. Any <code>crontab</code> files are stored in operating system-specific file paths.

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · ATT&CK page ↗

T1543.002Create or Modify System Process: Systemd Service×1

Adversaries may create or modify systemd services to repeatedly execute malicious payloads as part of persistence. Systemd is a system and service manager commonly used for managing background daemon processes (also known as services) and other system resources. Systemd is the default initialization (init) system on many Linux distributions replacing legacy init systems, including SysVinit and Upstart, while remaining backwards compatible.

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · ATT&CK page ↗

Privilege Escalation TA0004

T1053.003Scheduled Task/Job: Cron×1

Adversaries may abuse the <code>cron</code> utility to perform task scheduling for initial or recurring execution of malicious code. The <code>cron</code> utility is a time-based job scheduler for Unix-like operating systems. The <code> crontab</code> file contains the schedule of cron entries to be run and the specified times for execution. Any <code>crontab</code> files are stored in operating system-specific file paths.

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · ATT&CK page ↗

T1543.002Create or Modify System Process: Systemd Service×1

Adversaries may create or modify systemd services to repeatedly execute malicious payloads as part of persistence. Systemd is a system and service manager commonly used for managing background daemon processes (also known as services) and other system resources. Systemd is the default initialization (init) system on many Linux distributions replacing legacy init systems, including SysVinit and Upstart, while remaining backwards compatible.

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · ATT&CK page ↗

Stealth TA0005

T1620Reflective Code Loading×1

Adversaries may reflectively load code into a process in order to conceal the execution of malicious payloads. Reflective loading involves allocating then executing payloads directly within the memory of the process, vice creating a thread or process backed by a file path on disk (e.g., Shared Modules).

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · ATT&CK page ↗

Credential Access TA0006

T1552.001Unsecured Credentials: Credentials In Files×1

Adversaries may search local file systems and remote file shares for files containing insecurely stored credentials. These can be files created by users to store their own credentials, shared credential stores for a group of individuals, configuration files containing passwords for a system or service, or source code/binary files containing embedded passwords.

Evidence: 2026-08-28/wiz-red-agent-snowflake-github-actions-command-injection · ATT&CK page ↗

T1552.004Unsecured Credentials: Private Keys×1

Adversaries may search for private key certificate files on compromised systems for insecurely stored credentials. Private cryptographic keys and certificates are used for authentication, encryption/decryption, and digital signatures. Common key and certificate file extensions include: .key, .pgp, .gpg, .ppk., .p12, .pem, .pfx, .cer, .p7b, .asc.

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · ATT&CK page ↗

T1555.003Credentials from Password Stores: Credentials from Web Browsers×1

Adversaries may acquire credentials from web browsers by reading files specific to the target browser. Web browsers commonly save credentials such as website usernames and passwords so that they do not need to be entered manually in the future. Web browsers typically store the credentials in an encrypted format within a credential store; however, methods exist to extract plaintext credentials from web browsers.

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · ATT&CK page ↗

Command and Control TA0011

T1090.001Proxy: Internal Proxy×1

Adversaries may use an internal proxy to direct command and control traffic between two or more systems in a compromised environment. Many tools exist that enable traffic redirection through proxies or port redirection, including HTRAN, ZXProxy, and ZXPortMap. Adversaries use internal proxies to manage command and control communications inside a compromised environment, to reduce the number of simultaneous outbound network connections, to provide resiliency in the face of connection loss, or to ride over existing trusted communications paths between infected systems to avoid suspicion. Internal proxy connections may use common peer-to-peer (p2p) networking protocols, such as SMB, to better blend in with the environment.

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · ATT&CK page ↗

T1572Protocol Tunneling×1

Adversaries may tunnel network communications to and from a victim system within a separate protocol to avoid detection/network filtering and/or enable access to otherwise unreachable systems. Tunneling involves explicitly encapsulating a protocol within another. This behavior may conceal malicious traffic by blending in with existing traffic and/or provide an outer layer of encryption (similar to a VPN). Tunneling could also enable routing of network packets that would otherwise not reach their intended destination, such as SMB, RDP, or other traffic that would be filtered by network appliances or not routed over the Internet.

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · ATT&CK page ↗

T1573Encrypted Channel×1

Adversaries may employ an encryption algorithm to conceal command and control traffic rather than relying on any inherent protections provided by a communication protocol. Despite the use of a secure algorithm, these implementations may be vulnerable to reverse engineering if secret keys are encoded and/or generated within malware samples/configuration files.

Evidence: 2026-08-29/redc2-npm-supply-chain-redshell-linux-implant · ATT&CK page ↗

Story timeline

  1. 2026-08-29Fourteen trojanized npm packages drop RedC2 4.0's RedShell Linux implant from a module-load-time loader that needs no install hook, defeating --ignore-scripts entirely
    active-threatsA plain `import` of a trojanized npm package is the whole exploit — no install hook, no exported call, no coverage from --ignore-scripts
  2. 2026-08-28Wiz's autonomous AI red-teaming agent found and exploited a GitHub Actions command-injection flaw in Snowflake's public connector repo, exfiltrating live Jira credentials via an out-of-band callback
    researchAn AI red-team agent hit a syntax error mid-exploit, diagnosed it, fixed its own payload, and retried — without a human in the loop

Where this entity is cited

  • research1
  • active-threats1

Source distribution

  • trendaisecurity.com1 (50%)
  • wiz.io1 (50%)

Co-occurring entities

Derived — referenced by the same focused operational entries (weekly summaries and report roundups don't count); ×N counts the shared entries.

Entries about RedC2 (2)

2026-08-29 · view entry permalink →

NOTABLENATOB2

Fourteen trojanized npm packages drop RedC2 4.0's RedShell Linux implant from a module-load-time loader that needs no install hook, defeating --ignore-scripts entirely

TrendAI (Trend Micro) Research published a technical analysis, dated 2026-08-20, of a cluster of fourteen trojanized npm packages — small, functional calendar/streak date-math utilities such as streak-metrics-math, kit-map-vim and streak-map-cache — that each bundle a Linux ELF binary alongside genuine, working date-helper code (TrendAI Research, 2026-08-20). The package's loader re-exports the genuine helpers so the package works as advertised, then runs an async IIFE (immediately invoked function expression) evaluated at module load: it marks the bundled binary executable, verifies its hash against a hardcoded constant, and spawns it detached so it outlives the importing Node process (TrendAI Research, 2026-08-20). No install hook or exported function call is involved, so --ignore-scripts provides no coverage, and a single transitive import anywhere in a dependency graph — even one the developer never directly selected — is sufficient to trigger execution (TrendAI Research, 2026-08-20).

The dropped binary is RedShell, the native Linux implant for RedC2 4.0, a modular, actively-developed cross-platform (Windows/macOS/Linux) command-and-control framework marketed on Hack Forums. On execution, RedShell ignores SIGPIPE, double-forks to daemonize, and connects to a hardcoded primary C2 host over TCP with aggressive keepalive tuning, wrapping the session in TLS with certificate verification explicitly disabled — accepting any server certificate, self-signed or otherwise, without validation — and TLS 1.2 enforced as the minimum version (TrendAI Research, 2026-08-20). A persistent per-host installation ID is cached in a dotfile under $HOME so re-infection state survives restarts. RedShell exposes a broad Linux-native command set to the operator: interactive shell execution, SSH-key and browser-credential harvesting, database discovery, bulk exfiltration over HTTP or to third-party file-sharing services, fileless ELF execution via memfd_create, arbitrary shellcode execution via mmap, dlopen-based shared-library loading, SOCKS5 proxying and TCP port forwarding, and cross-network reverse-shell tunnelling brokered through the C2 server; persistence is established through cron, .bashrc, a user-level systemd service, or an XDG autostart entry (TrendAI Research, 2026-08-20). The framework additionally ships an LLM-backed component RedC2's own documentation calls Red Agent — a different tool from Wiz's own similarly-named "Red Agent" autonomous red-teaming tool, an unrelated defensive research product — exposed via a /ra command in the beacon terminal, described as trained on the framework's command set to break a single natural-language operator prompt into an ordered chain of beacon commands (TrendAI Research, 2026-08-20).

Detection concept: process-creation telemetry showing a Node.js/npm-installed package's module import immediately spawning a detached, double-forking child process that opens an outbound TLS session accepting an invalid or self-signed certificate without validation — legitimate npm packages that bundle native binaries (for example via prebuilt node-gyp addons) do so at install time through a documented hook, not as a side effect of a plain import with no exported function called. Triage: a package with a bundled native binary that is invoked only from install-time hooks is routine; one invoked from a plain module-load side effect, with no install hook present at all, is the discriminator.

One import anywhere in the dependency graph is sufficient, including from a transitive dependency the developer never selected.

Certificate verification is explicitly disabled via SSL_VERIFY_NONE, meaning the malware will accept any server certificate without validation, allowing the C&C operator to use self-signed or otherwise invalid certificates freely.

RedC2 ships with an AI assistant called Red Agent, an LLM-backed command execution layer that turns natural-language intent into framework beacon commands. It is exposed through /ra in any beacon terminal, in both the web UI and the EXT client.

TrendAI Research
threat29 Aug 04:09Zsingle-sourceOpen finding ↗

2026-08-28 · view entry permalink →

NOTABLENATOB2

Wiz's autonomous AI red-teaming agent found and exploited a GitHub Actions command-injection flaw in Snowflake's public connector repo, exfiltrating live Jira credentials via an out-of-band callback

Wiz Research's autonomous "Red Agent" AI red-teaming tool independently discovered and exploited a GitHub Actions script-injection vulnerability in Snowflake's public snowflake-connector-net repository, introduced via PR #1218 (18 June 2026) and undetected by GitHub Advanced Security despite the flaw sitting directly in the analysed workflow. The injectable pattern entered the jira_issue.yml workflow in commit 094038e and went live when PR #1218 was squash-merged as commit 4a1b8ce: "the injectable pattern was added to jira_issue.yml in commit 094038e and became live when PR #1218 was squash-merged as commit 4a1b8ce" (Wiz Research, 2026-08-17), allowing an unauthenticated actor to inject shell commands via a crafted GitHub issue title interpolated unsanitised into the workflow's shell step.

When the agent's initial payload (using # to comment out the rest of the line) hit an unexpected bash syntax error — the comment character also consumed the closing parenthesis of the shell's TITLE=$(...) construct — it did not stop or fail. Instead it "autonomously analyzed the syntax execution error" and "adjusted its payload to use ; echo ' to properly close the shell block, and" (Wiz Research, 2026-08-17) retried — recovering from its own exploitation error without human direction. Within seconds, Wiz's listener received an out-of-band callback from the GitHub Actions runner carrying base64-encoded Jira API credentials tied to a qa@snowflake.net account: "within seconds, our listener received the callback from a GitHub Actions runner containing base64-encoded credentials" (Wiz Research, 2026-08-17). Snowflake patched the workflow the same day of disclosure (23 June 2026, commit 1dc7766/PR #1402), restoring safe env: variable interpolation and jq --arg parsing.

This is a further, vendor-independent data point in the CI/CD trust-boundary thread already covered here around GitHub Actions script injection. The autonomous-error-recovery behaviour — diagnosing a failed exploitation attempt and adjusting the payload without human intervention — is itself a capability marker worth tracking regardless of which side deploys it: the same recovery loop that let Wiz's defensive tool self-correct mid-exploit is available to an offensive operator running comparable tooling against any organisation's own public CI/CD workflows. Triage: GitHub Actions workflows that interpolate untrusted issue or pull-request titles directly into shell steps, rather than passing them through env: variables with jq --arg-style safe parsing, are the systemic pattern this flaw exemplifies — an audit of any organisation's public-repository workflows for this exact interpolation shape is the actionable takeaway, independent of this specific incident.

The injectable pattern was added to jira_issue.yml in commit 094038e and became live when PR #1218 was squash-merged as commit 4a1b8ce.

autonomously analyzed the syntax execution error

adjusted its payload to use ; echo ' to properly close the shell block, and

Within seconds, our listener received the callback from a GitHub Actions runner containing base64-encoded credentials.

Snowflake patched the workflow on June 23, 2026 (1dc7766, PR #1402), fully restoring the safe env: variable and jq --arg parsing pattern.

Wiz Research 2026-08-17
research28 Aug 06:34Zsingle-sourceOpen finding ↗
Sources: Wiz Research