Researchers Detail QLNX Linux RAT With Rootkit, PAM Backdoor and Developer Credential Theft

· Original article ↗

Summary

Trend Micro analyzes QLNX, a previously undocumented Linux RAT that uses stealth, multiple persistence methods, rootkit and PAM backdoor capabilities, and credential harvesting to target developer and cloud access.

Key points

  • QLNX can run filelessly, spoof its process name, and persist through systemd, cron, init scripts, autostart files, shell configuration, and LD_PRELOAD.
  • Its user-space LD_PRELOAD and eBPF capabilities can hide processes, files, and network ports.
  • The malware harvests developer and cloud credentials, including NPM, PyPI, GitHub, AWS, Kubernetes, Docker, and Terraform secrets, as well as SSH keys and browser data.
  • PAM backdoors can intercept authentication credentials; one implementation supports a hardcoded master-password bypass.
  • QLNX supports remote shell access, file operations, keylogging, screenshots, tunneling, process injection, and a peer-to-peer mesh.
  • It communicates over custom TCP/TLS, HTTPS, or HTTP and supports 58 command handlers.
  • The article provides indicators of compromise and hunting queries; Trend Micro says its platform detects and blocks the listed indicators.

Article Details

Attack Vectors
  • QLNX executes from an anonymous memory-backed file, deletes its original binary, and can load shared objects directly from memory.
  • The malware persists through systemd services, crontab entries, init.d scripts, XDG autostart files, .bashrc modification, and /etc/ld.so.preload.
  • QLNX uses LD_PRELOAD hooks, PAM backdoors, and an eBPF map controller to intercept authentication and hide processes, files, or network ports.
  • The malware harvests SSH keys, browser data, cloud and developer credentials, shell history, clipboard contents, and /etc/shadow when running as root, then sends collected data to its C&C.
  • QLNX supports shell execution, payload downloads, process injection using ptrace or /proc/pid/mem, keylogging, screenshots, port scanning, SSH-based lateral movement, and TCP tunneling.
  • QLNX communicates over custom TCP/TLS, HTTPS, or HTTP and can relay C&C traffic through a peer-to-peer mesh.
Defensive Notes
  • Trend Micro states that Trend Vision One detects and blocks the specific indicators documented in the article.
  • The article says Trend Vision One customers can use the Search App and related hunting queries to search for QLNX indicators in their environments.

Indicators of compromise

TypeIndicatorContext
MD570f70743f287a837d17c56933152a8a6MD5 hash identified for the QLNX quasar-implant malware sample.
SHA1b0f2c668cbdd63a871c90592b6c93e931115872eSHA1 hash identified for the QLNX quasar-implant malware sample.
SHA256417430b2d4ae8d005224a9ff5dcb4007d452338acbcbcbb62c4e8ed1a70552ddSHA256 hash listed for the QLNX PAM credential hook module libpam_cache.so.
SHA25642d0c420eb5fe181388f2e4f0b7d7c0d302971e7a06fdc1bec481b68c8ccae1fSHA256 hash listed for the QLNX PAM backdoor module pam_security.so.
SHA25682daa93219ba40a6e41cdf3174ba57eb5d3383d1cd805584e9954eb0200182a1SHA256 hash listed for the QLNX LD_PRELOAD rootkit module libsecurity_utils.so.1.
SHA256c99cf0dc1ef1057d713cb082acaf42e4df4656809c91741752bddcab39bbfacaSHA256 hash listed for the QLNX rootkit source artifact hide_src_39ZzHo.c.
SHA256d55549d5655e2f202e215676f4bdb0994ea08a93d15ec4ded413f64cfa7facc8SHA256 hash listed for the QLNX PAM hook source artifact pcs_a3kf9x.c.
SHA256ea1d34b21b739a6bbf89b3f7e67978005cf7f3eda612cefc7eac1c8ead7c5545SHA256 hash identified for the QLNX quasar-implant malware sample.
SHA256ea89caab82181881d971be312412795051f6322b105c8b9d29cfb5729fab8d33SHA256 hash listed for the QLNX PAM backdoor source artifact pam_src_51YyC3.c.

MITRE ATT&CK

T1003.008 · /etc/passwd and /etc/shadowQLNX reads /etc/shadow when running as root.T1014 · RootkitQLNX uses LD_PRELOAD hooks and an eBPF map controller to hide its processes, files, or network ports.T1021.004 · SSHQLNX can use harvested SSH credentials to execute commands on remote hosts.T1036.005 · Match Legitimate Resource Name or LocationQLNX disguises its process using names that mimic legitimate kernel threads.T1037.004 · RC ScriptsQLNX can install an init.d script as a persistence mechanism.T1041 · Exfiltration Over C2 ChannelQLNX exfiltrates harvested credentials and other collected data over its C&C communication channels.T1046 · Network Service DiscoveryQLNX can perform multithreaded TCP port scans against a target IP range.T1053.003 · CronQLNX adds crontab entries, including reboot-triggered persistence.T1055.008 · Ptrace System CallsQLNX can inject shellcode into another process using ptrace; the article also describes injection through /proc/pid/mem.T1056.001 · KeyloggingQLNX captures keystrokes through raw /dev/input events or an X11 fallback.T1059.004 · Unix ShellQLNX can spawn an interactive bash, zsh, or sh shell and execute shell commands.T1070.002 · Clear Linux or Mac System LogsQLNX can clear auth.log, syslog, wtmp, and bash_history.T1070.004 · File DeletionQLNX deletes its original binary after copying itself into memory and can remove files through its command handlers.T1070.006 · TimestompQLNX modifies timestamps on its rootkit and PAM-related artifacts to hinder forensic timeline analysis.T1071.001 · Web ProtocolsQLNX supports HTTP and HTTPS communications with its C&C.T1095 · Non-Application Layer ProtocolThe analyzed sample uses a custom TCP-based protocol over TLS to communicate with its C&C.T1105 · Ingress Tool TransferQLNX supports downloading payloads through curl or wget.T1113 · Screen CaptureQLNX can capture screenshots and send them to its C&C.T1115 · Clipboard DataQLNX captures clipboard contents and can monitor clipboard activity.T1543.002 · Systemd ServiceQLNX installs systemd system and user services for persistence.T1546.004 · Unix Shell Configuration ModificationQLNX modifies the user's .bashrc file as a persistence option.T1547.013 · XDG Autostart EntriesQLNX can persist through XDG desktop autostart files.T1552.001 · Credentials In FilesQLNX searches developer and cloud configuration files for credentials and tokens, including .npmrc, .pypirc, .aws/credentials, and .kube/config.T1552.004 · Private KeysQLNX collects SSH private keys from the infected host.T1555.003 · Credentials from Web BrowsersQLNX collects login databases and cookies from Chrome, Chromium, and Firefox.T1556.003 · Pluggable Authentication ModulesQLNX installs PAM hooks that intercept authentication and harvest plaintext credentials.T1572 · Protocol TunnelingQLNX supports TCP tunnels and port forwarding to relay traffic.T1574.006 · Dynamic Linker HijackingQLNX compiles a shared library and registers it in /etc/ld.so.preload so it loads into dynamically linked programs.T1613 · Container and Resource DiscoveryQLNX checks indicators such as /.dockerenv and /proc/1/cgroup to determine whether the host is containerized.T1620 · Reflective Code LoadingQLNX copies and re-executes itself from an anonymous memory-backed file and supports in-memory shared-object loading.

People

Malware

Vendors

Products

Industries

Related Articles