Skip to main content
Mallory
MalwareExploits 5 CVEs

C0XMO

Share:
For your environment

Hunt this family in your stack

Mallory pivots from this family to the IOCs, detections, and named campaigns that touch your stack, and pages you when something new lands.

EXPLOITED CVES

Vulnerabilities exploited

5 CVEs Mallory has correlated with this family across public research and vendor advisories. Each row links to the full Mallory page for that vulnerability.

5 CVES
CVE-2021-27137Stack Buffer Overflow in DD-WRT UPnP via SSDP M-SEARCHExploited in the wild

In March, Labs identified a new Gafgyt botnet variant called C0XMO that spreads by exploiting CVE-2021-27137. The malware is delivered through a stack buffer overflow in vulnerable DD-WRT router firmware, triggered by malicious SSDP M-SEARCH requests sent to UDP port 1900. | In March, Labs identified a new Gafgyt botnet variant called C0XMO that spreads by exploiting CVE-2021-27137.

via gurucul threat researchcommunity.gurucul.com
CVE-2016-15047Authenticated OS Command Injection in AVTECH CloudSetup.cgiExploited in the wild

The scanner also includes numerous HTTP-based exploits for initial access, including... AVTECH DVR Vulnerability (CVE-2025-34054, CVE-2016-15047)... FortiGuard Labs provides an IPS signature against attacks exploiting... CVE-2016-15047: Avtech DVR Camera Authentication bypass and Command Execution Exploit | FortiGuard Labs discovered a new Gafgyt botnet variant, C0XMO, that spreads by exploiting CVE-2021-27137. Our analysis revealed that, unlike earlier versions, this malware separates its lateral movement into a standalone Python script.

via fortinet threat research blogfeeds.fortinet.com
CVE-2022-35914GLPI htmLawedTest.php PHP Code InjectionExploited in the wild

The scanner also includes numerous HTTP-based exploits for initial access, including... GLPI htmLawed RCE (CVE-2022-35914)... FortiGuard Labs provides an IPS signature against attacks exploiting... CVE-2022-35914: GLPI-Project.GLPI.htmLawedTest.php.Code.Injection | FortiGuard Labs discovered a new Gafgyt botnet variant, C0XMO, that spreads by exploiting CVE-2021-27137. Our analysis revealed that, unlike earlier versions, this malware separates its lateral movement into a standalone Python script.

via fortinet threat research blogfeeds.fortinet.com
CVE-2015-2051D-Link DIR-645 HNAP SOAPAction Command InjectionExploited in the wild

The scanner also includes numerous HTTP-based exploits for initial access, including... HNAP SOAP Injection (CVE-2015-2051)... FortiGuard Labs provides an IPS signature against attacks exploiting... CVE-2015-2051: D-Link.Devices.HNAP.SOAPAction-Header.Command.Execution.Vulnerability | FortiGuard Labs discovered a new Gafgyt botnet variant, C0XMO, that spreads by exploiting CVE-2021-27137. Our analysis revealed that, unlike earlier versions, this malware separates its lateral movement into a standalone Python script.

via fortinet threat research blogfeeds.fortinet.com
CVE-2025-34054Unauthenticated Command Injection in AVTECH DVR Search.cgiExploited in the wild

The scanner also includes numerous HTTP-based exploits for initial access, including... AVTECH DVR Vulnerability (CVE-2025-34054, CVE-2016-15047)... FortiGuard Labs provides an IPS signature against attacks exploiting... CVE-2025-34054: Avtech DVR Camera Authentication bypass and Command Execution Exploit | FortiGuard Labs discovered a new Gafgyt botnet variant, C0XMO, that spreads by exploiting CVE-2021-27137. Our analysis revealed that, unlike earlier versions, this malware separates its lateral movement into a standalone Python script.

via fortinet threat research blogfeeds.fortinet.com
MITRE ATT&CK

Techniques & procedures

23 distinct techniques documented for this family, organized by ATT&CK tactic.

Initial Access

2 techniques
T1078Valid AccountsEvidence1

The scanner performs weak password brute-force attacks on Telnet and SSH services. After successful authentication, it identifies the target host’s architecture and downloads the appropriate payload.

T1133External Remote ServicesEvidence1

In addition, the scanner exploits unauthorized access vulnerabilities in the Android Debug Bridge (ADB) to compromise exposed Android-based devices.

Execution

3 techniques
T1053.003CronEvidence1

The malware then creates cron jobs to run C0XMO every 15 minutes. (crontab -l 2>/dev/null | grep -v '%s'; echo ' /15 * * * %s >/dev/null 2>&1') | crontab -

T1059.006PythonEvidence1
TacticExecution

Unlike traditional botnets, C0XMO isolates its scanning function into an independent Python script. The malware fetches this script from the same IP address and port... C0XMO then executes the scanner script with the following arguments. python3 /tmp/scanner.py --rand ...

T1203Exploitation for Client ExecutionEvidence2
TacticExecution

The malware is delivered through a stack buffer overflow in vulnerable DD-WRT router firmware, triggered by malicious SSDP M-SEARCH requests sent to UDP port 1900.

Persistence

4 techniques
T1037Boot or Logon Initialization ScriptsEvidence1

C0XMO appends execution commands to multiple shell profile files such as ~/.profile, ~/.bashrc, and ~/.bash_profile, using the hidden files created earlier.

T1053.003CronEvidence1

The malware then creates cron jobs to run C0XMO every 15 minutes. (crontab -l 2>/dev/null | grep -v '%s'; echo ' /15 * * * %s >/dev/null 2>&1') | crontab -

T1078Valid AccountsEvidence1

The scanner performs weak password brute-force attacks on Telnet and SSH services. After successful authentication, it identifies the target host’s architecture and downloads the appropriate payload.

T1133External Remote ServicesEvidence1

In addition, the scanner exploits unauthorized access vulnerabilities in the Android Debug Bridge (ADB) to compromise exposed Android-based devices.

T1037Boot or Logon Initialization ScriptsEvidence1

C0XMO appends execution commands to multiple shell profile files such as ~/.profile, ~/.bashrc, and ~/.bash_profile, using the hidden files created earlier.

T1053.003CronEvidence1

The malware then creates cron jobs to run C0XMO every 15 minutes. (crontab -l 2>/dev/null | grep -v '%s'; echo ' /15 * * * %s >/dev/null 2>&1') | crontab -

T1078Valid AccountsEvidence1

The scanner performs weak password brute-force attacks on Telnet and SSH services. After successful authentication, it identifies the target host’s architecture and downloads the appropriate payload.

Stealth

5 techniques
T1036MasqueradingEvidence1
TacticStealth

It then generates multiple hidden file paths, including /tmp/.sys, /var/tmp/.sys, and /dev/shm/.sys... C0XMO copies itself to these hidden locations

T1070.004File DeletionEvidence1
TacticStealth

If it finds a match, C0XMO deletes the corresponding file from the system.

T1078Valid AccountsEvidence1

The scanner performs weak password brute-force attacks on Telnet and SSH services. After successful authentication, it identifies the target host’s architecture and downloads the appropriate payload.

T1218System Binary Proxy ExecutionEvidence1
TacticStealth

pip3 install requests paramiko beautifulsoup4 --break-system-packages 2>/dev/null || pip3 install requests paramiko beautifulsoup4 2>/dev/null || python3 -m pip install requests paramiko beautifulsoup4

T1497Virtualization/Sandbox EvasionEvidence1

After successful authentication, it identifies the target host’s architecture and downloads the appropriate payload.

T1222File and Directory Permissions ModificationEvidence1

C0XMO copies itself to these hidden locations and sets the file permissions to 755, enabling execution.

T1110Brute ForceEvidence1

C0XMO exhibits many traits typical of Gafgyt variants, including weak-credential brute-force attacks targeting Telnet and SSH... The scanner performs weak password brute-force attacks on Telnet and SSH services.

Discovery

3 techniques
T1046Network Service DiscoveryEvidence1
TacticDiscovery

python3 /tmp/scanner.py --rand --rand-ports 23,22,80,443,8080,5555,5511,5554,4443,81,8000,7547,8081,8443,8888 ... The script then creates numerous worker threads... Scan whether the target ports are open Detect the service type Execute Telnet, SSH, HTTP, and ADB exploitation attempts

T1057Process DiscoveryEvidence1
TacticDiscovery

The malware scans all active processes in /proc, comparing their names to an internal blacklist.

T1497Virtualization/Sandbox EvasionEvidence1

After successful authentication, it identifies the target host’s architecture and downloads the appropriate payload.

Lateral Movement

3 techniques
T1021Remote ServicesEvidence1

These packages are primarily used for network communication, including sending HTTP requests, receiving responses, and performing SSH- and Telnet-based interactions.

T1210Exploitation of Remote ServicesEvidence2

In March, Labs identified a new Gafgyt botnet variant called C0XMO that spreads by exploiting CVE-2021-27137.

T1570Lateral Tool TransferEvidence2

Unlike earlier variants, C0XMO uses a separate Python script for lateral movement, improving propagation across different devices and architectures.

T1071Application Layer ProtocolEvidence1

After completing the local persistence setup, C0XMO establishes a connection to the C2 server at 85[.]215[.]131[.]70... C0XMO performs a custom handshake after connecting.

T1095Non-Application Layer ProtocolEvidence1

The server then responds with the string HANDSHAKE_OK. Next, C0XMO sends the string BOT to identify itself as a botnet node... In the final stage of the handshake, the bot sends the hexadecimal sequence FF FF FF FF 75 as the final magic value to the C2 server.

T1105Ingress Tool TransferEvidence2

After compromise, the malware was downloaded to the `/tmp/.cache` directory on the affected host.

Impact

2 techniques
T1489Service StopEvidence1
TacticImpact

If a process name matches an entry on the blacklist, C0XMO immediately terminates that process.

T1499Endpoint Denial of ServiceEvidence1
TacticImpact

C0XMO supports 19 different DDoS attack methods for various scenarios... UDP Bypass Flood, TCP Flood, Hybrid TCP + UDP Flood, TCP SYN Flood... HTTP Request Storm, Slow/IO Exhaustion, HTTP GET Flood

Other

1 technique
T1562Impair DefensesEvidence1

If a process name matches an entry on the blacklist, C0XMO immediately terminates that process... It not only deletes rival malware binaries but also tries to remove associated persistence mechanisms such as cron jobs, rc.local, init.d services, system services, and shell profile scripts.

INDICATORS OF COMPROMISE

IOCs tracked for this family

18 indicators attributed across vendor reports, sandbox runs, and researcher write-ups. Full values are available in Mallory.

View more in app
Network
3 tracked

IPs, domains, and DNS infrastructure linked to this family.

Hashes
15 tracked

File hashes (MD5, SHA-1, SHA-256) from samples and reports.

TypeValueLatest sighting
hash.sha256●●●●●●●●●●●●View more in app1 day ago
hash.sha256●●●●●●●●●●●●View more in app1 day ago
hash.sha256●●●●●●●●●●●●View more in app1 day ago
hash.sha256●●●●●●●●●●●●View more in app1 day ago
hash.sha256●●●●●●●●●●●●View more in app1 day ago
hash.sha256●●●●●●●●●●●●View more in app1 day ago
What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets match these IOCs, which detections are missing, which campaigns to expect next, and what to do in the next 30 minutes.
IOC matching18

Match every observed IP, domain, and hash against your live telemetry.

Threat actor attribution

Named campaigns wielding this family, with evidence pinned to each claim.

Exploited vulnerabilities5

CVEs this family uses for access and lateral movement.

Detection signatures

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

MITRE ATT&CK mapping23

Every documented technique, ranked by evidence weight.

Researcher chatter

Reddit, Mastodon, and CTI community discussion around this family.