Skip to navigation

Threat reportMalwareTL-2026-4796

Prometei Botnet Linux Binary (Linux/Prometei.B) - Modular Monero Miner and Credential-Stealing Botnet, r2 + AI Reverse Engineering Analysis

highACTIVE

Prometei is a modular, financially motivated botnet that infects Linux and Windows hosts to mine Monero and steal credentials. A Linux/Prometei.B sample dated 2025-02-02 was reverse engineered by cryptax with radare2 and AI assistance, and Unit 42 documented a resurgence of the Linux variants from March 2025. First disclosed .

Key facts for Prometei Linux botnet

IdentifiersTL-2026-4796
Also known asPrometei, Linux/Prometei.B
SeverityHIGH
First disclosed
Exploitation statusExploited in the wild
Affected productsLinux (various) Linux servers (x86_64); Microsoft Windows (SMB, Prometei Windows variant)
MalwareLinux/Prometei.B, Prometei, xmrig
ToolsETERNALBLUE, Tor - S0183, XMRig
MITRE ATT&CK techniquesT1005 Data from Local System, T1027.002 Software Packing, T1036.005 Match Legitimate Resource Name or Location, T1053.003 Cron, T1071.001 Web Protocols, T1082 System Information Discovery, T1090.003 Multi-hop Proxy, T1110 Brute Force, T1190 Exploit Public-Facing Application, T1496.001 Compute Hijacking, T1543.002 Systemd Service, T1568.002 Domain Generation Algorithms and 1 more in the attack flow
MotivationFINANCIAL
Target sectorstechnology, government administration, finance, health
Target regionsGlobal
Detection rules9 (1 shown free)
Sources8 cited sources

Detection coverage for Prometei Linux botnet

As of 2026-10-30, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-4796 across Splunk SPL, Microsoft KQL and Sigma, covering 38 indicator(s) of compromise. The whole corpus is readable without an account. Every threat comes with one complete detection in Splunk SPL, Microsoft KQL and Sigma, free for everyone; a free account adds daily TL Creds to unlock the rest. Paid plans add a larger daily allowance, correlation and the MCP server. Threadlinqs MCP server · View plans.

Free detection: Prometei Linux Dropper Download via k.php?a= (103.41.204.104) — Exploitation/Delivery

Detects HTTP GET requests to a k.php endpoint carrying an a= architecture parameter (optionally with a ,ParentId suffix), the delivery pattern used by the 2025 Prometei Linux wave to serve a 64-bit ELF (http://103.41.204.104/k.php?a=x86_64) despite the .php name. Behaviour-first: fires on the URI shape for any host and flags the known distribution IP 103.41.204.104. Maps to T1071.001 (web-protocol delivery) and T1027.002 (v3/v4 payloads are UPX-packed with a JSON config trailer).

  • Languages: Splunk SPL, Microsoft KQL, Sigma
  • ATT&CK: T1071.001, T1027.002
  • Data sources: splunk:index=web sourcetype=stream:http, CommonSecurityLog (proxy/firewall CEF), sigma:proxy
  • Severity: high
  • Confidence: high

Splunk SPL

index=web sourcetype=stream:http http_method=GET uri_path="*/k.php" uri_query="a=*"
| eval q=mvindex(split(uri_query,"a="),1), arch=mvindex(split(q,","),0), parent_id=mvindex(split(q,","),1)
| eval known_ioc=if(dest_ip=="103.41.204.104","yes","no")
| where match(arch,"^(x86_64|x86|i686|i386|aarch64|arm[a-z0-9]*|mips[a-z0-9]*)$") OR known_ioc=="yes"
| stats count min(_time) as first_seen max(_time) as last_seen values(dest_ip) as dest_ip values(arch) as arch values(parent_id) as parent_id by src_ip, known_ioc
| convert ctime(first_seen) ctime(last_seen)

Microsoft KQL

CommonSecurityLog
| where TimeGenerated > ago(24h)
| where RequestMethod =~ 'GET'
| where RequestURL contains '/k.php?a='
| extend Arch = extract(@'[?&]a=([^&,]+)', 1, RequestURL), ParentId = extract(@'[?&]a=[^&,]+,([^&]+)', 1, RequestURL)
| where Arch in~ ('x86_64','x86','i686','i386','aarch64') or DestinationIP == '103.41.204.104'
| summarize Hits = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated), Urls = make_set(RequestURL, 10) by SourceIP, DestinationIP, Arch, ParentId
| project FirstSeen, LastSeen, SourceIP, DestinationIP, Arch, ParentId, Hits, Urls

Sigma

title: Prometei Dropper Download via k.php Architecture Parameter
id: 7c1f3a52-4b8e-4d26-9a07-5e2c81d4b6f3
status: experimental
description: Detects HTTP GET requests to a k.php endpoint with an a= architecture parameter, the delivery pattern used to serve the Prometei Linux ELF (for example http://103.41.204.104/k.php?a=x86_64, optionally with a ParentId suffix). Despite the .php name the response is a 64-bit ELF.
references:
  - https://unit42.paloaltonetworks.com/prometei-botnet-2025-activity/
  - https://rewterz.com/threat-advisory/prometei-botnet-hits-linux-for-crypto-mining-active-iocs
author: AII-Detector — ThreadLinqs Intelligence
date: 2026-10-30
tags:
  - attack.command_and_control
  - attack.t1071.001
  - attack.defense_evasion
  - attack.t1027.002
logsource:
  category: proxy
detection:
  selection_param:
    cs-method: 'GET'
    c-uri|contains: '/k.php?a='
  selection_ioc:
    c-uri|contains: '103.41.204.104/k.php'
  condition: selection_param or selection_ioc
falsepositives:
  - Legitimate internal applications that expose a k.php script with an a= parameter
level: high

Known false positives:

  • Internal web applications that legitimately expose a k.php script taking an a= parameter
  • Security scanners or sandboxes replaying the published Prometei URL for research

Tuning notes: Add the sanctioned internal web servers to an exclusion list on dest_ip. Extend the architecture regex if new builds use other values. If proxy logs hold only hostnames, pivot on the URI shape alone and keep the 103.41.204.104 flag as a high-fidelity escalation field. Feed any hit to the egress-block list and hunt the source host for /usr/sbin/uplugplay.

8 more detection rules (Splunk SPL, Microsoft KQL, Sigma) · unlock with TL Creds. Sign up free to unlock the detection rules or query them with the Threadlinqs MCP server (Purple)
  • Prometei-Style SSH Brute Force Followed by Successful Login — Exploitation · unlock with TL Creds
  • Prometei XMRig Miner updatecheckerd and Stratum Pool Activity — Post-Exploitation · unlock with TL Creds
  • Prometei TOR/I2P C2 Resolution and DGA-Like Domain Bursts — C2 · unlock with TL Creds
  • Prometei ELF Dropper Fetched via wget/curl from k.php or [indicator] — Exploitation · unlock with TL Creds
  • Prometei Module Names and Known Sample Hashes Executed on Linux — Post-Exploitation · unlock with TL Creds
  • Prometei Bot Host Reconnaissance (dmidecode, uname, cpuinfo) Spawned by Bot Binaries — C2 · unlock with TL Creds
  • Prometei uplugplay Systemd and Cron Persistence on Linux — Post-Exploitation · unlock with TL Creds
  • Prometei HTTP C2 Check-in to [indicator] and /cgi-bin/p.cgi — C2 · unlock with TL Creds

Indicators of compromise for Prometei Linux botnet

As of 2026-10-30, Threadlinqs Intelligence tracks 38 indicators of compromise for TL-2026-4796.

Sample indicators (3 of 38)

  • IP address: 103.41.204[.]104
  • Domain: p1[.]feefreepool[.]net
  • File hash: 46cf75d7440c30cbfd101dd396bb18dc3ea0b9fe475eb80c4545868aab5c578c

Defanged, TLP:CLEAR. Full set of 38 indicators: unlock with TL Creds.

38 indicators of compromise · unlock with TL Creds. Compare plans

How Prometei Linux botnet works

Prometei refers to both a malware family and the botnet it operates. Windows samples were first identified in July 2020 and a Linux version followed in December 2020. The botnet is modular: components brute-force administrator credentials, exploit remote-service vulnerabilities (on Windows, SMB flaws including EternalBlue), mine Monero, steal data and communicate with command-and-control (C2) servers.

The subject of this entry is a write-up by cryptax, 'Reversing a Prometei botnet binary with r2 and AI - Part One', which analyses a Linux/Prometei.B sample dated 2025-02-02 using radare2 and AI assistance. The article body could not be retrieved (HTTP 403), so none of its specific findings are reproduced here. The technical content below comes from corroborating public reporting on the same malware family: Unit 42 (2025 activity), CUJO AI (Linux analysis), and Rewterz (IOC advisory).

Delivery and packing: the 2025 wave is delivered by HTTP GET to hxxp://103.41.204.104/k.php?a=x86_64 (optionally with a ParentId suffix). Despite the .php name, the response is a 64-bit ELF executable. Version 2 samples are not packed; v3 and v4 samples are UPX-packed (modified UPX per Rewterz) and carry an appended custom JSON configuration trailer. The v2 trailer holds config, id and enckey. Versions 3 and 4 add ParentId, ParentHostname, ParentIp and ip, which supports parent-to-child propagation tracking. Unit 42 lists hashes for v2.87X, v3.05L, v4.02V (seven variants) and v4.08V.

Persistence and masquerading (CUJO AI analysis of the Linux bot): the main binary is named uplugplay. Root installs ('Systemmode') copy it to /usr/sbin/uplugplay, create /lib/systemd/system/uplugplay.service with a symlink under /etc/systemd/system/multi-user.target.wants/, and add a crontab entry '@reboot /usr/sbin/uplugplay -cron'. Non-root installs ('Usermode') place files under the user's home directory. Additional components include msdtc/msdtc2 (proxy client), smcard/smcard2 (TOR relay), upnpsetup, and the XMRig miner run as updatecheckerd.

C2: the bot checks in via HTTP/1.0 to /cgi-bin/prometei.cgi on clear-web, .onion and I2P endpoints. Check-in parameters are r (random integer 0-30), i (unique 16-byte victim identifier), h (hostname) and enckey (Base64 key). The 2025 samples report system information by HTTP GET to hxxp://152.36.128.18/cgi-bin/p.cgi. The collected data is /proc/cpuinfo, dmidecode output, /etc/os-release or /etc/redhat-release, uptime and uname -a. A domain generation algorithm (DGA) and a self-update capability (the updatev4 command) provide resilience. The bot supports 14 commands: chkport, debug, exec, extip, quit, quit2, set_cc, start_mining, stop_mining, sysinfo, touch, updatev4, wget and xwget. XMRig is configured with a 1% donation level and, in the 2020-era sample, the pool stratum+tcp://5.189.171.187:3333.

Attribution: reporting describes a financially motivated criminal operation with no evidence of nation-state ties. No named actor was identified in the sources reviewed.

Caveats: the cryptax article's own findings are unverified. The CUJO persistence, command and pool details were observed in 2020 Linux samples and may differ in v4 builds. BeaconBeagle returned HTTP 404 for the two 2025 IPs, so no C2 correlation was available.

MITRE ATT&CK techniques by tactic:

Collection

T1005 Data from Local System

Defense Evasion

T1027.002 Software Packing; T1036.005 Match Legitimate Resource Name or Location

Persistence

T1053.003 Cron; T1543.002 Systemd Service

Command and Control

T1071.001 Web Protocols; T1090.003 Multi-hop Proxy; T1568.002 Domain Generation Algorithms

Discovery

T1082 System Information Discovery

Credential Access

T1110 Brute Force

Initial Access

T1190 Exploit Public-Facing Application

Impact

T1496.001 Compute Hijacking

Lateral Movement

T1570 Lateral Tool Transfer

Remediation for Prometei Linux botnet

Patches

  • Apply Microsoft MS17-010 on Windows hosts to close the EternalBlue SMB exploitation vector

Immediate actions

  • Block 103.41.204.104 and 152.36.128.18 at the perimeter and alert on HTTP requests to /k.php?a=x86_64 and /cgi-bin/p.cgi
  • Hunt Linux hosts for /usr/sbin/uplugplay, /lib/systemd/system/uplugplay.service, an '@reboot /usr/sbin/uplugplay -cron' crontab entry, and an updatecheckerd (XMRig) process
  • Hunt for the published SHA-256 hashes and for UPX-packed ELF files downloaded with a .php name
  • Rotate credentials on any host where Prometei was found, since the bot brute-forces and steals credentials

Workarounds

  • Disable SMBv1 and block SMB from untrusted networks
  • Restrict direct internet exposure of SSH and administrative services

Longer-term hardening

  • Enforce strong unique passwords and MFA on SSH, RDP and SMB-exposed services, and monitor for brute-force activity
  • Deploy EDR with behavioral detection for crypto-mining and unexpected systemd or cron persistence
  • Restrict egress and alert on outbound TOR and I2P traffic from servers
  • Monitor for abnormal sustained CPU usage on servers as a cryptomining indicator

Affected and fixed versions

  • Linux (various) — Linux servers (x86_64)
    Vulnerable versions: Hosts with weak or brute-forceable credentials; Prometei v2.87X, v3.05L, v4.02V, v4.08V ELF builds observed
  • Microsoft — Windows (SMB, Prometei Windows variant)
    Vulnerable versions: Systems unpatched against EternalBlue (MS17-010)
    Fixed in: MS17-010 security update

Timeline of Prometei Linux botnet

  • Prometei botnet first identified (Windows variant). Source gives month precision only (July 2020).
  • Linux version of Prometei discovered, with the uplugplay main binary, locked-ioc-38 miner and TOR/I2P-capable modules. Source gives early December 2020.
  • CUJO AI publishes 'IoT Malware Journals - Prometei (Linux)', documenting the Linux port (uplugplay, locked-ioc-37, locked-ioc-36, updatecheckerd/locked-ioc-38, 14 commands) and noting it was ported from Windows rather than derived from Mirai or Gafgyt.
  • locked-ioc-29 sample dated 2025-02-02 analysed by cryptax with radare2 and AI assistance (per search summary of the Medium article).
  • Unit 42 reports a resurgence wave of Prometei Linux variants beginning March 2025, delivered via k.php and reporting to p.cgi. Source gives month precision only.
  • Unit 42 sample collection period (March to late April 2025) covers v2.87X, v3.05L, v4.02V and v4.08V builds. Day is approximate (late April per source).
  • Unit 42 publishes 'Prometei botnet 2025 activity' and Rewterz publishes an IOC advisory on the same date, listing v2.87X, v3.05L, v4.02V and v4.08V hashes plus locked-ioc-30 and locked-ioc-32.

Sources cited for Prometei Linux botnet

Previous and next in malware

Drafted by the Threadlinqs research pipeline from 8 sources; published ; last updated —.

Threadlinqs Intelligence — Real-Time Threat Detection Platform

[ 0 threats ] [ 0 det ] [ CRIT: 0 ] [ HIGH: 0 ]
// threat_feed
$ sort --newest
Showing all threats

Live intelligence console

Threat level

Latest Threats