VoidLink: Dissecting an AI-Generated C2 Implant

Ontinue's ATO team published research on VoidLink revealing how LLM-generated malware is lowering the barrier to sophisticated Linux C2 implants with cloud…

Rhys Downing

Threat Researcher

5 min read

VoidLink: Dissecting an AI-Generated C2 Implant

Executive Summary

VoidLink is a Linux C2 framework capable of generating implant binaries for deployment across cloud and enterprise environments. This analysis focuses on the implant “the agent component” which is designed for long-term access, credential theft, and data exfiltration. Our analysis found strong indicators that the implant was built using an LLM coding agent. Structured “Phase X:” labels, verbose debug logging, and documentation patterns left in the production binary point to automated code generation with minimal human review.

Despite this, VoidLink is technically capable. It fingerprints cloud environments across AWS, GCP, Azure, Alibaba Cloud, and Tencent Cloud, harvesting credentials from environment variables, config directories, and instance metadata APIs. It detects container runtimes and includes plugins for container escape and Kubernetes privilege escalation. A kernel-level rootkit adapts its stealth approach based on the host’s kernel version.

C2 communications use AES-256-GCM over HTTPS, disguised as normal web traffic, following patterns consistent with Cobalt Strike beacon architecture. VoidLink highlights a growing concern: LLM-generated implants that combine multi-cloud targeting, container awareness, and kernel-level stealth reducing the skill barrier needed to produce functional, hard-to-detect malware.

Binary Overview

Field

Value

Filename

implant.bin

File Type

Linux ELF64 Executable

Architecture

x86-64

Language

Zig

SHA1

9cdbc16912dcf188a0f0765ac21777b23b4b2bea

SHA256

05eac3663d47a29da0d32f67e10d161f831138e10958dcd88b9dc97038948f69

Entry Point

0x0112c490

Entropy

7.24/8.0 (High – packed/encrypted)

Campaign/Family

VoidLink

VoidLink Architecture Overview

VoidLink employs a modular architecture where each component operates as an independent plugin within a shared registry framework, allowing the implant to adapt its capabilities based on the target environment and deployment context.

A flowchart illustrating the initialization phase of a system. It includes a 'VoidLink Implant ELF64 Executable' at the top, leading to 'Module Registry Initialization,' which connects to 'Load Core Modules' and branches into four modules: 'task_router,' 'stealth_manager,' 'injection_manager,' and 'debugger_detector.' The background is a dark purple color.

Execution triggers initialization of the module registry, subsequently loading four core components: the task router for command distribution, the stealth manager for evasion, the injection manager for code execution, and the debugger detector for anti-analysis.

A code editor displaying decompiled code with highlighted sections. The upper part shows the initialization of a module registry, while the lower part lists the loading of core modules. Annotations point to specific lines indicating their functions.

Intelligent Environment Detection

VoidLink conducts detailed host profiling before activating any operational capabilities, identifying the execution context and determining which stealth and exploitation mechanisms are applicable to the target environment.

A flowchart illustrating various cloud services, including Cloud Infrastructure, Custom Solutions, and Security Hosting, with subcategories listed under each main heading in a structured format.

The malware probes for cloud metadata APIs (AWS, GCP, Azure, Alibaba, Tencent), container environments (Docker, Kubernetes), and security posture (EDR/AV detection, kernel version). This intelligence drives adaptive behavior, choosing stealth mechanisms based on what it discovers.

Multi-Cloud Credential Harvesting & Environment Fingerprinting

VoidLink doesn’t just target one cloud provider it goes after them all. The implant actively searches for and exfiltrates credentials from multiple sources:

Cloud Environment Variables:

  • Amazon Web Services (AWS) – AWS_ACCESS_KEY, AWS_SECRET_ACCESS_KEY

  • Google Cloud Platform (GCP) – GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_REGION

Local Credential Stores:

  • SSH Keys – /root/.ssh/id_rsa, id_ecdsa, id_ed25519, and known_hosts

  • Git Credentials – .git-credentials files

  • Shell History – .bash_history, .zsh_history for credential leakage

  • Browser Credentials – Stored passwords and session data

Kubernetes Secrets:

  • Service account tokens from “/var/run/secrets/kubernetes.io/serviceaccount/”

  • Namespace information for lateral movement context

Cloud Fingerprinting:

  • Alibaba Cloud & Tencent Cloud – Metadata API queries for environment identification

A screenshot displaying code in a programming environment, featuring highlighted sections in red. The code shows various case statements related to specific parameters, including references to metadata and network addresses.

VoidLink queries cloud metadata APIs at 169.254.169.254 (AWS, Azure, Alibaba) and provider-specific endpoints (metadata.google.internal, metadata[.]tencentyun[.]com) for environment fingerprinting. The implant retrieves:

  • Region and availability zone

  • Instance ID and instance type

  • Cloud provider identification

This reconnaissance enables VoidLink to adapt its behavior based on the target environment – selecting appropriate stealth mechanisms and persistence methods for each cloud provider. Notably, the implant does not query the AWS IAM security-credentials endpoint “/latest/meta-data/iam/security-credentials/<role-name>”, meaning it relies on environment variables rather than instance role credentials for AWS access.

Container Escape & Kubernetes Exploitation

VoidLink performs runtime detection across Docker, Podman, and Kubernetes container environments. When a container boundary is identified, the implant loads dedicated escape plugins from the module registry to attempt privilege boundary violations:

docker_escape_v3 – Exploits container misconfigurations to access the host system

k8s_privesc_v3 – Escalates privileges within Kubernetes clusters

Code snippet showing a C2 opcode dispatcher with conditions for container escape. Highlights the use of the escape plugin (docker_escape_v3/k8s_privesc_v3) in plugin_load.

The malware specifically targets Kubernetes service account tokens stored at /var/run/secrets/kubernetes.io/serviceaccount/. These tokens can provide cluster-wide access, allowing lateral movement across containerized workloads.

A screenshot of code snippets showing variable assignments and function calls in a programming context, with several lines highlighted in red. The code appears to involve Kubernetes and Linux file paths.

Kernel-Level Rootkit Capabilities

Perhaps the most technically impressive aspect of VoidLink is its adaptive rootkit functionality. The malware deploys different stealth mechanisms based on the detected kernel version:

A flowchart illustrating the adaptive business environment. It includes branches for API mode and UI mode, detailing actions such as displaying data, loading layouts, and modifying output.
  • Kernel ≥ 5.5: eBPF Mode – Modern stealth using hide_ss.bpf.o for system call interception

  • Kernel 4.x – 5.x: LKM Mode – Loadable kernel modules (vl_stealth.ko, stealth_netstat.ko)

  • Kernel < 4.0: LD_PRELOAD Mode – Userland hooking via shared object injection

Command and Control Infrastructure

Flowchart illustrating C2 communication, showing C2 Server, Agent with Heartbeat and Task Poll APIs, and Traffic Camouflage managing Fake JS Requests, API Mimicry, and Cookie Sessions.

AES-256-GCM encryption for all C2 communications

  • HTTP/HTTPS protocol camouflage with legitimate-looking API endpoints

  • Traffic camouflage: Fake JS requests, API mimicry, cookie sessions

A computer code display showing a decompiled function with variable assignments and stack operations. The code appears in a programming or debugging interface, indicating a technical development environment.

We identified a hard-coded C2 IP address: 8.149.128[.]10

A screenshot of code in a decompiling tool, featuring highlighted text indicating a hardcoded IP address '128.128.120.107' and port '8080'. The code includes hexadecimal values and variable assignments, showcasing programming elements.

The rootkit exposes a command interface that allows operators to dynamically hide specific ports, processes, and files from forensic tools during operations, providing selective concealment rather than blanket hiding.

AI-Powered Malware Development

During analysis, we identified a phasing routine embedded in the binary’s initialization sequence, with labelled phases numbering up to 8. Phase 7 is absent from the sequence entirely, and Phase 5 is assigned to two distinct functions. Combined with verbose debug logging and structured documentation left in the production binary, these artefacts are consistent with LLM-generated code produced across separate prompts without enforced continuity between outputs.

AI-Pattern-Matching Results

A screenshot of a coding interface showing log outputs related to module initialization and cleanup processes. Each line contains a phase status with corresponding codes and messages indicating system status.

Another indicator is excessive use of the equals character. Generated code sometimes adds multiple equals characters for comments, as shown in the image below. Using another pattern-matching script, I identified more potential indicators embedded in the binary that follow the same pattern.

AI Pattern Matching Separator

A screenshot of decompiled code, with highlighted sections indicating errors related to loading plugins and execution routes. The text includes code annotations and error messages about missing plugin data.

This leads me to believe there is little oversight over the development of the generated implants.

Professional malware developers typically:

  • Use minimal or cryptic logging

  • Avoid structured documentation in code

  • Prioritize stealth over readability

  • Strip debug information

VoidLink exhibits the opposite pattern:

  • Verbose, descriptive phase labels

  • Complete initialization sequence documentation

  • Debug logging left in production binary

  • Formal status messages (“successfully”, “initialized”, etc.)

Conclusion

VoidLink is a fully functional Linux implant that covers the key requirements for a sustained intrusion cloud credential harvesting, container-aware lateral movement, adaptive kernel-level stealth, and encrypted C2 communications. It targets five major cloud providers, escapes container boundaries, and hides its presence from standard forensic tools.

What sets it apart is how it was built. The “Phase X:” labels, verbose logging, and structured documentation embedded in the binary are consistent with LLM-generated code. Professional malware developers strip this kind of artifact out. Its presence in a production implant suggests the author relied heavily on an AI coding agent with little manual cleanup.

This matters because VoidLink is not a proof of concept. It is a deployable implant with real C2 infrastructure behind it. The barrier to producing this level of capability has dropped. Defenders should expect to see more implants built this way functional, modular, and assembled faster than traditional development allows.

Indicators of Compromise

GitHub Link

Recommended next.

All resources

eBook

1H 2026 Threat Intelligence Report

1H 2026 findings reveal growing abuse of trusted identities, AI-assisted tooling, SaaS platforms, and business workflows as attackers achieve greater impact…

20 min read

Read

eBook

1H 2026 Threat Intelligence Report

1H 2026 findings reveal growing abuse of trusted identities, AI-assisted tooling, SaaS platforms, and business workflows as attackers achieve greater impact…

20 min read

Read

eBook

1H 2026 Threat Intelligence Report

1H 2026 findings reveal growing abuse of trusted identities, AI-assisted tooling, SaaS platforms, and business workflows as attackers achieve greater impact…

20 min read

Read

Beyond the Perimeter: What Security Teams Are Missing

Blog

Beyond the Perimeter: What Security Teams Are Missing

Exposed credentials from a 3rd party breach and brand impersonation are two ways threat actors are exploiting organizations.

5 min read

Read

Beyond the Perimeter: What Security Teams Are Missing

Blog

Beyond the Perimeter: What Security Teams Are Missing

Exposed credentials from a 3rd party breach and brand impersonation are two ways threat actors are exploiting organizations.

5 min read

Read

Beyond the Perimeter: What Security Teams Are Missing

Blog

Beyond the Perimeter: What Security Teams Are Missing

Exposed credentials from a 3rd party breach and brand impersonation are two ways threat actors are exploiting organizations.

5 min read

Read

Ontinue Offers new Dark Web Monitoring service for ION MXDR Customers

Webinar

Ontinue Offers new Dark Web Monitoring service for ION MXDR Customers

Exposed credentials and lookalike domains surface long before an attacker moves. See how ION for Dark Web Monitoring brings those findings into your MXDR…

23 min watch

Watch

Ontinue Offers new Dark Web Monitoring service for ION MXDR Customers

Webinar

Ontinue Offers new Dark Web Monitoring service for ION MXDR Customers

Exposed credentials and lookalike domains surface long before an attacker moves. See how ION for Dark Web Monitoring brings those findings into your MXDR…

23 min watch

Watch

Ontinue Offers new Dark Web Monitoring service for ION MXDR Customers

Webinar

Ontinue Offers new Dark Web Monitoring service for ION MXDR Customers

Exposed credentials and lookalike domains surface long before an attacker moves. See how ION for Dark Web Monitoring brings those findings into your MXDR…

23 min watch

Watch

This is Nonstop SecOps.

Ontinue

European HQ

Grubenstrasse 54
8045 Zürich

North America HQ

450 Maple Street
Redwood City, CA 94063

UK Office

9 Holborn
London, EC1N 2LL

APAC Office

World Trade Tower, Sector 16
Noida, Uttar Pradesh 201301

Düsseldorf Office

Speditionstraße 2
40221 Düsseldorf, Germany

Vienna Office

Kohlmarkt 8-10
1010 Wien, Austria

Toronto Office

6060-3080 Yonge St
Toronto, ON M4N 3N1

Ontinue

© 2026 Ontinue. All rights reserved.

Ontinue offers nonstop SecOps through an AI-powered managed extended detection and response (MXDR) service. Ontinue ION MXDR combines powerful proprietary AI with the industry’s first collaboration with Microsoft Teams to continuously build a deep understanding of our customers’ environments, informing how we prevent, detect, and respond to threats.

Continuous protection. AI-powered Nonstop SecOps. That’s Ontinue.

This is Nonstop SecOps.

Ontinue

European HQ

Grubenstrasse 54
8045 Zürich

North America HQ

450 Maple Street
Redwood City, CA 94063

UK Office

9 Holborn
London, EC1N 2LL

APAC Office

World Trade Tower, Sector 16
Noida, Uttar Pradesh 201301

Düsseldorf Office

Speditionstraße 2
40221 Düsseldorf, Germany

Vienna Office

Kohlmarkt 8-10
1010 Wien, Austria

Toronto Office

6060-3080 Yonge St
Toronto, ON M4N 3N1

Ontinue

© 2026 Ontinue. All rights reserved.

Ontinue offers nonstop SecOps through an AI-powered managed extended detection and response (MXDR) service. Ontinue ION MXDR combines powerful proprietary AI with the industry’s first collaboration with Microsoft Teams to continuously build a deep understanding of our customers’ environments, informing how we prevent, detect, and respond to threats.

Continuous protection. AI-powered Nonstop SecOps. That’s Ontinue.

This is Nonstop SecOps.

Ontinue

European HQ

Grubenstrasse 54
8045 Zürich

North America HQ

450 Maple Street
Redwood City, CA 94063

UK Office

9 Holborn
London, EC1N 2LL

APAC Office

World Trade Tower, Sector 16
Noida, Uttar Pradesh 201301

Düsseldorf Office

Speditionstraße 2
40221 Düsseldorf, Germany

Vienna Office

Kohlmarkt 8-10
1010 Wien, Austria

Toronto Office

6060-3080 Yonge St
Toronto, ON M4N 3N1

Ontinue

© 2026 Ontinue. All rights reserved.

Ontinue offers nonstop SecOps through an AI-powered managed extended detection and response (MXDR) service. Ontinue ION MXDR combines powerful proprietary AI with the industry’s first collaboration with Microsoft Teams to continuously build a deep understanding of our customers’ environments, informing how we prevent, detect, and respond to threats.

Continuous protection. AI-powered Nonstop SecOps. That’s Ontinue.

This is Nonstop SecOps.

Ontinue

European HQ

Grubenstrasse 54
8045 Zürich

North America HQ

450 Maple Street
Redwood City, CA 94063

UK Office

9 Holborn
London, EC1N 2LL

APAC Office

World Trade Tower, Sector 16
Noida, Uttar Pradesh 201301

Düsseldorf Office

Speditionstraße 2
40221 Düsseldorf, Germany

Vienna Office

Kohlmarkt 8-10
1010 Wien, Austria

Toronto Office

6060-3080 Yonge St
Toronto, ON M4N 3N1

Ontinue

© 2026 Ontinue. All rights reserved.

Ontinue offers nonstop SecOps through an AI-powered managed extended detection and response (MXDR) service. Ontinue ION MXDR combines powerful proprietary AI with the industry’s first collaboration with Microsoft Teams to continuously build a deep understanding of our customers’ environments, informing how we prevent, detect, and respond to threats.

Continuous protection. AI-powered Nonstop SecOps. That’s Ontinue.