QLNX Linux RAT Targets Developer Workstations with Fileless Execution and Credential Theft

· Original article ↗

Summary

QLNX is a Linux RAT targeting developer and DevOps systems. The article details its fileless execution, rootkit, PAM backdoor, credential theft, and P2P communications, with detection queries and remediation guidance.

Key points

  • QLNX targets Linux developer workstations and CI/CD hosts, seeking credentials that could expose repositories, package registries, and cloud environments.
  • It executes payloads from memory, masquerades as kernel threads, and compiles embedded source code at runtime into host-specific rootkit and PAM components.
  • The malware can alter /etc/ld.so.preload and PAM configuration, capture passwords, and steal SSH keys, developer tokens, cloud credentials, and other secrets.
  • Infected hosts use a TLS-wrapped peer-to-peer mesh to relay operator commands, so isolating only one host may not disrupt the network.
  • Suggested detection combines auditd, Unix logs, file-integrity monitoring, and network telemetry to identify in-memory execution, suspicious compilation, system-library injection, PAM changes, and credential files.
  • For confirmed infections, the article recommends isolating suspected hosts together and reimaging from a verified clean image; it also advises rotating exposed credentials and auditing code, builds, and package uploads.

Article Details

Defense Focus
Detecting and containing QLNX, a Linux RAT, through correlated endpoint, authentication, filesystem, and network telemetry, with full reimaging recommended for confirmed infections.
Detection Methods
  • Hunt for memfd_create events followed by execution from /proc/self/fd, excluding common JVM, Node.js, and Python paths as suggested by the article.
  • Detect gcc, cc1, clang, or g++ compiling shared objects into suspicious locations such as /tmp or /dev/fd, especially when output paths or filenames include libsecurity.
  • Alert on writes to /etc/ld.so.preload and related dynamic-linker configuration paths.
  • Correlate filesystem events for QLNX-associated shared objects, concealed credential logs, and the mutex lock file.
  • Monitor EXECVE and PATH events involving /etc/pam.d/ and PAM-related shared objects for authentication-stack tampering.
  • Identify processes named like kernel threads that have a userspace parent process or maintain userspace network connections.
  • Inspect outbound or lateral TLS traffic for the custom protocol's fixed handshake magic value and mesh communications.
  • Correlate suspicious events across process execution, file modifications, authentication, and network telemetry rather than relying on a single alert.
Data Sources
  • Auditd SYSCALL, EXECVE, and PATH events
  • Unix default logs, including kernel and syslog messages
  • UnixSysmon
  • AgentX File Integrity Monitoring
  • Network telemetry from Zeek, NDR, or firewall flow logs
Rule Types
  • Guardsix SIEM query syntax
  • Auditd event correlation
  • File integrity monitoring path watch lists
Platforms
  • Guardsix SIEM
  • AgentX FIM
Defensive Actions
  • For hosts with confirmed indicators, wipe and reinstall the operating system from a verified clean image.
  • If immediate reimaging is not possible, isolate suspected hosts from the network simultaneously because infected peers can relay commands over a P2P mesh.
  • Empty /etc/ld.so.preload as a short-term containment step and remove known QLNX persistence artifacts, including service files, init scripts, autostart entries, cron entries, and .bashrc modifications.
  • Preserve the XOR-encrypted credential logs for forensic analysis before deleting them.
  • Monitor /etc/ld.so.preload and the listed QLNX artifact paths; alert on changes and, where feasible, block unauthorized modifications with EDR or MAC policy.
  • Restrict or remove local C compiler access on production and DevOps hosts where it is not needed.
  • Configure auditd to capture memfd_create, execveat, and writes to PAM and dynamic-linker configuration files.
  • Rotate exposed credentials, including SSH keys, NPM and PyPI tokens, Git PATs, AWS and Kubernetes credentials, .env secrets, and relevant browser session cookies.
  • Segment developer workstations to limit direct east-west connectivity.
  • Audit commits, build artifacts, and package registry uploads associated with developer accounts active on compromised hosts.

MITRE ATT&CK

T1014 · RootkitThe article reports QLNX loading an eBPF-based kernel rootkit compiled for the local kernel.T1027.004 · Compile After DeliveryQLNX embeds rootkit and PAM-module C source and compiles it at runtime against local kernel headers.T1036.005 · Match Legitimate Resource Name or LocationQLNX rewrites comm and argv[0] to imitate kernel worker thread names such as [kworker/0:0] and [migration/0].T1037.004 · RC ScriptsThe article reports QLNX dropping a persistence script at /etc/init.d/quasar_linux.T1053.003 · CronThe article reports QLNX installing @reboot cron entries.T1070 · Indicator RemovalThe article reports log rotation or truncation and journalctl --vacuum operations after persistence.T1070.004 · File DeletionQLNX unlinks its original on-disk ELF binary shortly after launching the in-memory copy.T1083 · File and Directory DiscoveryQLNX enumerates credential-related directories and project trees to locate keys and tokens.T1090.003 · Multi-hop ProxyQLNX uses a peer-to-peer mesh among infected hosts to relay operator commands through multiple nodes.T1106 · Native APIQLNX directly invokes memfd_create and execveat to execute its payload from an in-memory file descriptor.T1195 · Supply Chain CompromiseThe article maps QLNX's compromise of developer or CI/CD hosts and theft of credentials that could enable changes to source code, build pipelines, or published packages to Supply Chain Compromise.T1543.002 · Systemd ServiceThe article reports QLNX dropping quasar_linux.service under /etc/systemd/system/ and ~/.config/systemd/user/.T1546.004 · Unix Shell Configuration ModificationThe article reports QLNX appending startup commands to the user's .bashrc.T1547.013 · XDG Autostart EntriesThe article reports QLNX dropping quasar_linux.desktop in ~/.config/autostart/.T1552.001 · Credentials In FilesQLNX harvests tokens and secrets from ~/.npmrc, ~/.pypirc, ~/.aws, ~/.kube, and project-level .env files.T1552.004 · Private KeysQLNX walks ~/.ssh to steal SSH private keys.T1555.003 · Credentials from Web BrowsersThe article reports QLNX stealing browser-stored credentials.T1556.003 · Pluggable Authentication ModulesQLNX registers pam_security.so or libpam_cache.so in the PAM stack to backdoor authentication and capture cleartext passwords.T1573.002 · Asymmetric CryptographyQLNX wraps its custom command-and-control protocol in TLS.T1574.006 · Dynamic Linker HijackingQLNX adds libsecurity_utils.so.1 to /etc/ld.so.preload to load its library into newly spawned processes.T1620 · Reflective Code LoadingQLNX writes its payload to an anonymous memfd and executes it via execveat, leaving no corresponding executable on disk.

People

Malware

Vendors

Products

Tools

Related Articles