Minaki Scan

Threat wiki / XorDDoS

XorDDoS

Also known as XorDdos.

Back up and rebuild

This threat hides itself inside the system, so a server that has it can't be trusted after a cleanup. The honest fix is to save your data and reinstall.

What it isDDoS botnet trojan with an optional loadable kernel module rootkit
Goes afterLinux servers and devices across several CPU architectures, including exposed Docker servers
Our verdictBack up and rebuild
Last reviewed2026-10-15

What it is

XorDDoS takes over Linux servers and devices and uses them to flood websites and networks with traffic on command (a DDoS attack). It runs on several kinds of processor and has also been found on exposed Docker servers. Some versions load a kernel module (an add-on that runs inside the core of the operating system) that works as a rootkit, a tool that hides an attacker's presence: it hides files, processes and network ports. Because of that hiding, a server with XorDDoS can't be trusted to check itself.

How it gets in

By guessing weak SSH passwords on Linux machines reachable from the internet. One report also describes it reaching Docker servers whose management interface was left open.

Close the door: Disable SSH password login for root and use key-based authentication; where possible restrict SSH to trusted networks. Never expose the Docker daemon API without TLS client-certificate authentication or SSH. Where supported, enforce Secure Boot and signed kernel modules, which the cited report says can block the rootkit's installation.

How to tell if you have it

Signs published for this threat. One sign alone proves little: names get reused, and newer versions change them. Look for several together.

KindSign
File location/lib/libudev.so
File location/var/run/gcc.pid
File location/etc/cron.hourly/gcc.sh
File location/proc/rs_dev
File namelibudev.so
File namegcc.pid
File namegcc.sh
Scheduled task line/etc/cron.hourly/gcc.sh
Startup entry/etc/init.d/HFLgGwYfSC.elf
Startup entry/etc/rc<run_level>.d/S90<base_file_name>

These commands only look. They change nothing.

Look for the known file locations:

sudo ls -la /etc/cron.hourly/gcc.sh /etc/init.d/HFLgGwYfSC.elf /lib/libudev.so /proc/rs_dev /var/run/gcc.pid 2>/dev/null

Search for the known file names (slow on big disks):

sudo find / -xdev \( -name 'libudev.so' -o -name 'gcc.pid' -o -name 'gcc.sh' \) 2>/dev/null

List running programs that live in a temporary folder (real software almost never does):

sudo ls -l /proc/[0-9]*/exe 2>/dev/null | grep -E '/(tmp|var/tmp|dev/shm)/'

Check every scheduled task for the known lines:

sudo grep -rnF -e '/etc/cron.hourly/gcc.sh' /etc/crontab /etc/cron.d /var/spool/cron 2>/dev/null

Fingerprint a suspect file and compare it with the list below:

sudo sha256sum /path/to/suspect-file

Known file fingerprints (SHA-256). A match identifies that exact file; newer builds differ.

b8c4d68755d09e9ad47e0fa14737b3d2d5ad1246de5ef1b3c794b1339d8fe9f8 265a38c6dee58f912ff82a4e7ce3a32b2a3216bffd8c971a7414432c5f66ef11 1e823ae1e8d2689f1090b09dc15dc1953fa0d3f703aec682214750b9ef8795f1 989a371948b2c50b1d45dac9b3375cbbf832623b30e41d2e04d13d2bcf76e56b 20f202d4a42096588c6a498ddb1e92f5b7531cb108fca45498ac7cd9d46b6448 9c5fc75a453276dcd479601d13593420fc53c80ad6bd911aaeb57d8da693da43 ce0268e14b9095e186d5d4fe0b3d7ced0c1cc5bd9c4823b3dfa89853ba83c94f aeb29dc28699b899a89c990eab32c7697679f764f9f33de7d2e2dc28ea8300f5

How sure these signs are: Some versions hide files, processes and ports, so a check run on the infected server can miss it, and finding nothing does not prove the server is clean. libudev.so and gcc.sh copy real names: the real libudev lives in a different folder with a version number, so only a file at exactly /lib/libudev.so is a sign. /proc/rs_dev only exists while the rootkit is loaded, and the rootkit hides itself, so not seeing it proves nothing. Startup script names change with each copy: /etc/init.d/HFLgGwYfSC.elf is one example, so look for S90 links in /etc/rc1.d to /etc/rc5.d pointing at scripts you don't recognise. It changes each copy of itself so every file has a different fingerprint, which means a fingerprint that doesn't match proves nothing. These signs come from 2022 to 2023 reports, and one report saw it still active in February 2025.

How to deal with it

Removing it in place isn't safe. Here is what to do instead, in order:

  1. Don't try to clean it in place. Plan to rebuild the server from a fresh install.
  2. Cut the server off from the internet, but keep a way to log in, such as your hosting provider's web console. Save evidence: /etc/cron.hourly/gcc.sh and the line in /etc/crontab that runs it, the scripts in /etc/init.d and their S90 links, /lib/libudev.so, /var/run/gcc.pid, and the SHA-256 fingerprint of each suspect file. If you can, collect them from a rescue disk, because the infected system can hide things from you.
  3. Copy off your data: databases, website files and documents. Don't copy programs, startup scripts, scheduled tasks or kernel modules; any of those could bring it back.
  4. Reinstall from a fresh image, install all updates, then restore only the data you copied and checked.
  5. From a clean computer, change every SSH key, password and token that was on the server, and cancel the old ones.
  6. Before you reconnect, turn off password logins for root over SSH and use keys instead, and allow SSH only from networks you trust. Never leave Docker's management interface open without certificate logins or SSH. Where your system supports it, turn on Secure Boot and allow only signed kernel modules; the report says this can stop the rootkit installing. Keep checking for the signs above.
These steps are provided as-is, without warranty. Run them at your own risk, and back up first. If you're unsure, rebuild from a known-good install.

What Minaki Scan does about it

Minaki Scan looks for this threat and reports it only when at least two signs agree. It never tries to remove it: it tells you to back up your data and rebuild.

Minaki Scan checks your server every day for this and the other threats in this wiki. $1 per server a month. Downloads open soon.

Sources

This page is written by MinakiLabs in our own words. The facts above come from this published research; credit and thanks to its authors.