Analysis Report

0c5486f06620e26e316f4b33f318b0d646d5e1133789331aa2fed012360d1486.elf

Capability Preview

Malicious Capability Preview

The image can be inaccurate, incomplete and/or incorrect.

General Information

Sample 0c5486f06620e26e316f4b33f318b0d646d5e1133789331aa2fed012360d1486.elf
MD5 b61a098fc62a2c2696e196dca78da71a
SHA256 0c5486f06620e26e316f4b33f318b0d646d5e1133789331aa2fed012360d1486
File Type ELF64 little-endian x86-64 statically linked executable, stripped
File Size 179,632 bytes
Date/Time 2026-10-22 11:19:28 +02:00
Analysis duration 00:25:04
Mode UI

Detection

Malicious
Suspicious
Clean
Unknown
Threatname unknown
Score 98
Range 0 - 100
Confidence 95
Joe Reverser may be inaccurate, incomplete, or incorrect.

Screenshots

⊘ No Screenshots found.

AI Summary

PHP2Shell

Final Joe Reverser Analysis Report

Executive Summary

The confirmed PHP2Shell exploitation campaign delivers the supplied Mirai-like Linux payload, which supports distributed denial-of-service attacks, remote shell access, and replacement-payload downloads. Analysis recovered its exact configuration-encryption parameters and verified all 473 configuration entries against saved process memory. Existing execution evidence confirms C2 discovery and contact, system and process inspection, a local control listener, and successful process termination; it does not demonstrate an executed DDoS command, interactive shell session, or completed update.

Assessment Result
Verdict Malicious
Threatname unknown
Score 98/100
Evidence Confidence 95/100

“Mirai-like” describes the confirmed campaign context and the payload’s architecture and capabilities. A specific malware-family attribution was not independently established.

1. Confirmed Campaign Chain

PHP2Shell is the confirmed initial-access mechanism associated with this final-stage ELF.

PHP2Shell — CONFIRMED INITIAL ACCESS
  └─ Payload Delivery
      └─ Mirai-like Linux ELF
          └─ ChaCha20 Decryption
              └─ C2
                  ├─ notable sink: DDoS packet and request generation
                  ├─ notable sink: interactive shell execution
                  └─ notable sink: replacement-payload download and execution

2. Sample Identification

Property Value
File 0c5486f06620e26e316f4b33f318b0d646d5e1133789331aa2fed012360d1486.elf
SHA-256 0c5486f06620e26e316f4b33f318b0d646d5e1133789331aa2fed012360d1486
MD5 b61a098fc62a2c2696e196dca78da71a
Size 179,632 bytes
Format ELF64, little-endian, x86-64 executable
Linking Statically linked; no interpreter program header
Symbols Stripped
ELF entry point 0x400B7F
Main application routine 0x4001D0

3. Evidence and Limitations

Evidence supporting the assessment

  • Static disassembly and recovered decompilation expose command routing, attack dispatch, shell execution, update retrieval, process management, and cryptographic routines.
  • Independent ChaCha20 decryption recovered 473 configuration entries and 11 auxiliary message registrations.
  • All 473 configuration entries matched the corresponding tables in saved memory for PIDs 5267, 5270, and 5287.
  • An existing exact-hash analysis recorded the DNS answer, the transformed connection destination, local listening activity, process enumeration, and successful SIGKILL operations.

Important limitations

  • The PHP2Shell association is confirmed campaign context. The inspected artifacts do not provide the original exploit request or delivery script, so no CVE identifier, exploit syntax, or delivery command is assigned.
  • The existing execution evidence does not establish successful encrypted session negotiation, received attack commands, an interactive shell session, or a completed replacement download.
  • Tool call limits eventually constrained further decompilation and shell inspection. Substantial static analysis had already succeeded, but some attack vectors are classified by verified transport behavior rather than fully reconstructed application semantics.
  • ENS identifiers and RPC-provider strings were decrypted, but their operational use was not demonstrated. The recorded execution used the primary DNS-discovery route.
  • The identities and security roles of all terminated processes were not established.
  • No additional executable stage was recovered for analysis. Configuration decryption is established; it is not presented as executable unpacking.

These limitations restrict claims about exercised capabilities and attribution, rather than materially weakening the malicious verdict.

4. Malware Behavior Summary

Observed behavior

Behavior Recorded evidence
C2 discovery DNS query for thunder.godofthunder.st
Encoded DNS answer 134.154.64.199
Transformed destination Traffic to 134.199.154.64:50488
Local control socket Listener on 127.0.0.1:1234
System inspection Reads of /proc/cpuinfo and /proc/meminfo
Process discovery Reads of process status and cmdline files
Filesystem inspection Read of /proc/5287/mounts
Process termination Successful SIGKILL operations against PIDs 5270, 790, and 880
Runtime decryption All 473 recovered configuration entries matched saved memory

Statically established capabilities

The payload can parse remote attack commands, fork timed workers, generate UDP/TCP/ICMP/raw-IP traffic, and construct application-layer requests. A separate framed channel opens an interactive shell using a PTY or socket-pair fallback. Its update path selects an architecture-specific payload, downloads it over HTTP, applies executable permissions, and invokes it.

5. ChaCha20 and Plaintext Configuration

Exact cryptographic parameters

Parameter Value
Key address 0x62BA00
Key 5a3f2e7b8c9d0a6e3b4f7c8a1d5c2b0d6f1a0c3e2d8e4a091c7e5a4d3c2b6a08
Nonce address 0x62B9E8
Nonce 4a1b00ff2d7c3a1200010305
Initial counter 1
Block size 64 bytes
Rounds 20
Cipher routine 0x40D6C6
Quarter-round 0x40D677
Entry decryption 0x40D8FA
Configuration registration 0x40DBA0
Configuration-table pointer 0x62E6F0

The constant string is stored at 0x426F20, XOR-obfuscated with 0xA5:

Stored bytes:     c0ddd5c4cbc185969788c7dcd1c085ce
Decoded bytes:    657870616e642033322d62797465206b
Decoded ASCII:    expand 32-byte k
State constants:  61707865 3320646e 79622d32 6b206574

The implementation uses the characteristic 16-, 12-, 8-, and 7-bit rotations, ten double rounds, state addition, and little-endian keystream serialization.

Each configuration entry starts a fresh cipher using the same key, nonce, and counter. Independent recovery therefore decrypts each entry separately from stream offset 64.

Significant plaintext entries

Index Recovered value Context
000–007 thunder.godofthunder.st Eight primary discovery slots containing the same name
008 2sexy4u.eth Embedded ENS identifier
009 sushiconsumer.eth Embedded ENS identifier
014 00000000000C2E074eC69A0dFb2997BA6C7d2e1e Embedded 40-hex-character address
015 F29100983E058B709F3D539b0c765937B804AC15 Embedded 40-hex-character address
016–017 0178b8bf, 59d1d43c Selector-like values
018–037 ip, ip2 through ip32 Address-key strings
113 hackattackkaboom.botlesscucks.st Server consumed by the update routine
114 hik.gettingheadfromduckysmom.st Additional embedded domain
119 Bytes c4 71 29 b8 Shell-channel magic
130 /dev/ptmx PTY allocation
14F x86_64 Architecture selection
16C .upd_w Update write-test filename
194–196 bot-rx-v1, bot-tx-v1, bot-auth-v1 Cryptographic derivation labels

The full plaintext table is preserved in the text configuration artifact and JSON configuration artifact.

6. C2 Infrastructure and Protocols

IPv4 permutation

Routine 0x413189 resolves the configured discovery names and maintains a deduplicated pool of up to 32 transformed IPv4 addresses.

Routine 0x4143AE changes the octet order:

Input:   A.B.C.D
Output:  A.D.B.C

Recorded DNS answer:  134.154.64.199
Transformed endpoint: 134.199.154.64
Recorded port:        50488/TCP

This transformation directly explains the difference between the recorded DNS answer and contacted IP.

The main loop tracks attempted addresses in a bitmap and supports reselection following connection failures.

Port selection

Routine 0x413AAA selects from the table at 0x4287E0:

50217 50341 50488 50613 50792 50904 51127
51289 51456 51603 51871 52134 52398 52645

Only port 50488 was established as contacted in the inspected run.

The separate port-1234 mechanism at 0x412D78 provides local instance control. It is distinct from the remote C2 destination.

Encryption paths

Path Important routines Findings
X25519 and ChaCha20-Poly1305 0x410C5B, 0x411056, 0x41159E, 0x411680 Key agreement and authenticated encryption/decryption
SHA-256 derivation 0x411241, 0x4113BD Hashing and labeled expansion
Alternate encrypted records 0x4129D6, 0x412AD8, 0x412677 ChaCha20 plus 16-byte truncated HMAC-SHA-256
Legacy XOR 0x40D665 Bytewise XOR using 0xED, the low byte of supplied constant 0x0DEAFFED

The alternate record format is:

type[1] | length_BE[2] | sequence_LE[2] |
ciphertext[length] | MAC[16]

Its nonce builder at 0x41266C produces four zero bytes followed by a 64-bit little-endian sequence value. Alternate derivation labels are wrx-2\x01, wtx-2\x01, and mac-2\x01.

Bootstrap secret and static identity

Routine 0x4122E0 reconstructs the bootstrap secret from obfuscated arrays at 0x4287B0 and 0x4287A0. The resulting secret equals the configuration key.

Routine 0x411361 hashes that secret and clamps the result for X25519:

Static scalar:
20f461ac9ef11d34d833643ef2bb437d4ad083584a01332def656e1250c72959

Static public key:
c21deecda716a64ce01f540bad72116bf488fc84150aef22fd6dff238b9f2166

These are reproducibly recovered static values, not live session keys. The normal handshake also generates ephemeral material.

7. DDoS Handlers and Dispatch

The command parser at 0x400F7D extracts a big-endian duration, vector identifier, target count, IPv4/prefix records, and optional typed values. Worker creation and handler selection occur at 0x400D2B.

The dispatch table starts at 0x62B000. Its count byte at 0x62B180 is 24.

ID Address Verified classification
00 0x4081C0 UDP flooding
01 0x40844C Per-target UDP sockets
02 0x403E6A Raw TCP
03 0x404311 Raw TCP/payload variant
04 0x403B4F TCP stream/connection flooding
05 0x4086E4 Raw UDP
06 0x408B5A UDP payload variant
07 0x408D7A Configurable UDP payload
08 0x4047FA TCP stream and raw-TCP handling
09 0x402921 Raw ICMP
0A 0x4013B6 IPPROTO_RAW packet generation
0B 0x404D42 Raw TCP variant
0C 0x4090C5 Randomized UDP payload
0D 0x40939A UDP with ChaCha20 payload transformation
0E 0x405232 TCP stream/raw-packet variant
0F 0x4097D3 UDP with socket-option manipulation
10 0x405A38 Raw TCP variant
11 0x405FEE Raw TCP variant
12 0x406502 Composite TCP, UDP, and raw-TCP paths
13 0x401EA2 Wrapper to HTTP handler 0x401A5E
14 0x409DD7 Raw-IP/UDP paths
15 0x402EA5 TCP request/connection-pool handler
16 0x4078C3 Raw TCP variant
17 0x407F17 Return-only stub

The table therefore contains 24 slots, including one inert stub.

Static packet-generation features include raw sockets, IP_HDRINCL, checksums, randomized headers and payloads, configurable ports and TCP flags, prefix-based destination variation, repeated transmission, and timed worker termination. Application-related material includes GET/POST/HEAD templates, variable user agents, CitizenFX strings, /client, /info.json, and getinfo xxx.

Special zero-duration commands are:

  • Vector 0xFF: stop tracked workers through 0x400CD7.
  • Vector 0xFE: invoke the update path through 0x40C527.

8. Remote Shell and Updates

Interactive shell

Routine 0x40AA12 processes a separate shell protocol:

magic[4] | type[1] | payload_length_BE[2] | payload

The magic is c4 71 29 b8; parser 0x40B0FB limits payload length to 0x1000.

Type Action
0x01 Open or replace a shell session
0x03 Write received data to the shell descriptor
0x04 Close the session

The implementation selects a shell, attempts PTY allocation through /dev/ptmx, forks, creates a session, redirects standard descriptors, sets terminal/environment values, and executes the shell. A socket-pair fallback supports execution without successful PTY setup.

Payload replacement

The update path uses server hackattackkaboom.botlesscucks.st. Routine 0x40B5D3 selects the architecture; this build selects x86_64, producing request path /x86_64.

The downloader at 0x40B89C connects over TCP port 80, constructs an HTTP GET request, selects a writable location, tests it using .upd_w, parses the response, and writes the body. The caller at 0x40C42A applies mode 0755 and invokes execve, preserving the bot identifier.

The observed mount inspection supports filesystem-selection activity, not a completed update.

9. Evasion and Process Termination

Masquerading: Routine 0x4139D0 overwrites argument storage and calls prctl(PR_SET_NAME, ...). It selects service-like names including telnetd, udhcpc, upnpd, watchdog, syslogd, klogd, uhttpd, and uchttpd.

Daemonization: The main routine forks, calls setsid, closes standard descriptors, and starts additional workers. The recorded sample process tree contains PIDs 5267, 5268, 5269, 5270, and 5287.

Anti-debugging: Routine 0x412511 examines a process-status file for TracerPid:. Handshake routine 0x4132D0 checks this result before proceeding and directs a detected-tracer condition toward connection-reset handling.

Selective termination: Process-management routines maintain internal PID exclusions and inspect process data and paths. The termination loop at 0x415FC6 reaches kill(pid, SIGKILL) at 0x416247. Successful process killing was observed, although the roles of all targets remain unresolved.

10. Verified Control-Flow Outlines

Initialization and configuration

Application initialization: 0x4001D0
  ├─ 0x40DBA0: register encrypted configuration
  │   └─ 0x40D8FA: allocate and decrypt each entry
  │       └─ notable sink: 0x40D6C6 ChaCha20 → plaintext configuration table
  ├─ 0x413189: resolve and populate C2 address pool
  │   └─ notable sink: 0x4143AE IPv4 permutation A.B.C.D → A.D.B.C
  └─ 0x4132D0: prepare C2 handshake
      └─ 0x412511: TracerPid check before handshake progression

Remote command handling

Received-command router: 0x4138F6
  ├─ 0x40AA12: recognize shell-channel frames
  │   └─ notable sink: shell execution with PTY or socket-pair redirection
  └─ 0x400F7D: parse attack/control command
      ├─ 0x400D2B: fork and dispatch selected vector
      │   └─ notable sink: network transmission through handler table 0x62B000
      ├─ duration 0, vector 0xFF → 0x400CD7
      │   └─ notable sink: SIGKILL tracked workers
      └─ duration 0, vector 0xFE → 0x40C527
          └─ 0x40C42A → 0x40B89C
              └─ notable sink: HTTP retrieval → chmod 0755 → execve

No separate executable-unpacking outline is warranted by the recovered evidence.

11. Indicators of Compromise

Type Value Source context
SHA-256 0c5486f06620e26e316f4b33f318b0d646d5e1133789331aa2fed012360d1486 Analyzed ELF
MD5 b61a098fc62a2c2696e196dca78da71a Analyzed ELF
Domain thunder.godofthunder.st Decrypted primary discovery domain; observed query
IP 134.154.64.199 Recorded encoded DNS answer
IP:port 134.199.154.64:50488 Recorded connection destination
Domain hackattackkaboom.botlesscucks.st Configured update server
HTTP path /x86_64 Statically constructed update request
Domain hik.gettingheadfromduckysmom.st Embedded domain; operational role unresolved
ENS identifier 2sexy4u.eth Decrypted configuration
ENS identifier sushiconsumer.eth Decrypted configuration
Local socket 127.0.0.1:1234 Observed local instance-control listener
Filename .upd_w Update write test
Protocol magic c4 71 29 b8 Shell-frame recognition
Cryptographic identifier Key and nonce in Section 5 Configuration decryption and bootstrap material

The decrypted table also contains ethereum.publicnode.com, ethereum-rpc.publicnode.com, eth.drpc.org, 1rpc.io, eth-mainnet.blockreq.com, ethereum-public.nodies.app, and rpc.mevblocker.io. These are embedded provider references, not established attacker-owned infrastructure or observed destinations.

12. False Positive Analysis

Individual features such as static linking, encryption, process enumeration, PTYs, and HTTP downloads can occur in legitimate software. Here, their combination is materially different: remote attack dispatch, raw-packet flooding loops, interactive shell control, executable replacement, concealed configuration, process-name camouflage, and selective termination form a coherent malicious bot implementation.

The verdict does not depend on the reputation of public RPC providers, a family label, or the presence of a single suspicious string. It is supported by verified code behavior and independent runtime corroboration.

13. Existing Joe Sandbox Analysis

Source Run Verdict Score Key Evidence Report URL
Joe Sandbox 0 Suspicious 24/100 Exact-hash match; transformed C2 destination, local listener, process enumeration, successful SIGKILL https://www.joesandbox.com/analysis/1990431/0/html

The Joe Reverser assessment is Malicious, 98/100, based on the combined reverse-engineering and execution evidence. The sandbox’s 24/100 result reflects its recorded run and is retained separately.

14. Analysis Workflow

Submitted ELF investigation
  ├─ Identify architecture, entry point, sections, and hashes
  ├─ Inspect application routines with disassembly and decompilation
  ├─ Locate existing exact-hash analysis 1990431, run 0
  │   └─ Retrieve 22 saved memory-region dumps
  ├─ Recover ChaCha20 parameters and decrypt configuration
  │   └─ Verify all 473 entries against three process-memory tables
  ├─ Trace C2, attack dispatch, shell, update, and process-control paths
  └─ Correlate static findings with recorded execution
      └─ Separate demonstrated behavior from unexercised capabilities

Conclusion

The confirmed PHP2Shell exploitation chain culminates in a malicious Linux bot with encrypted configuration, transformed C2 addressing, multiple flooding implementations, remote shell execution, and payload replacement. The exact key and nonce, matching memory-resident plaintext, and observed destination permutation provide particularly strong technical anchors. Operational evidence confirms host inspection, C2 contact, local control activity, and process killing; the broader attack and remote-control features remain verified code capabilities rather than demonstrated outcomes of the inspected run.

IOCs

Type Name Status SHA256
file 0c5486f06620e26e316f4b33f318b0d646d5e1133789331aa2fed012360d1486.elf
Malicious 0c5486f06620e26e316f4b33f318b0d646d5e1133789331aa2fed012360d1486
domain thunder.godofthunder.st
Malicious —
ip 134.154.64.199
— —
ip 134.199.154.64
Malicious —
ip_port 134.199.154.64:50488
Malicious —
domain hackattackkaboom.botlesscucks.st
Malicious —
http_path /x86_64
— —
domain hik.gettingheadfromduckysmom.st
— —
ens_identifier 2sexy4u.eth
— —
ens_identifier sushiconsumer.eth
— —
domain ethereum.publicnode.com
— —
domain ethereum-rpc.publicnode.com
— —
domain eth.drpc.org
— —
domain 1rpc.io
— —
domain eth-mainnet.blockreq.com
— —
domain ethereum-public.nodies.app
— —
domain rpc.mevblocker.io
— —
embedded_blockchain_address 00000000000C2E074eC69A0dFb2997BA6C7d2e1e
— —
embedded_blockchain_address F29100983E058B709F3D539b0c765937B804AC15
— —
embedded_selector 0178b8bf
— —
embedded_selector 59d1d43c
— —
local_socket 127.0.0.1:1234
— —
filename .upd_w
— —
shell_protocol_magic c47129b8
— —
chacha20_key_and_bootstrap_secret 5a3f2e7b8c9d0a6e3b4f7c8a1d5c2b0d6f1a0c3e2d8e4a091c7e5a4d3c2b6a08
— —
chacha20_configuration_nonce 4a1b00ff2d7c3a1200010305
— —
derived_static_x25519_scalar 20f461ac9ef11d34d833643ef2bb437d4ad083584a01332def656e1250c72959
— —
derived_static_x25519_public_key c21deecda716a64ce01f540bad72116bf488fc84150aef22fd6dff238b9f2166
— —

MITRE ATT&CK

Tactic Technique ID Technique Name Evidence
Initial Access T1190
Exploit Public-Facing Application
PHP2Shell exploitation is the user-established confirmed initial-access context associated with the supplied final-stage ELF; original exploit requests were not inspected.
Defense Evasion T1027
Obfuscated Files or Information
Configuration registration at 0x40DBA0 uses ChaCha20-encrypted entries, with constants additionally XOR-obfuscated at 0x426F20.
Defense Evasion T1140
Deobfuscate/Decode Files or Information
0x40D8FA invokes ChaCha20 routine 0x40D6C6 to decrypt configuration; all 473 recovered entries matched saved memory for PIDs 5267, 5270, and 5287.
Command and Control T1095
Non-Application Layer Protocol
Direct TCP C2 communication is implemented in the main loop; the existing run recorded traffic to 134.199.154.64:50488 after DNS-answer permutation.
Command and Control T1573.001
Encrypted Channel: Symmetric Cryptography
Static C2 code implements ChaCha20-Poly1305 and an alternate ChaCha20 plus truncated HMAC-SHA-256 record path; successful encrypted session establishment was not demonstrated.
Execution T1059.004
Command and Scripting Interpreter: Unix Shell
Shell handler 0x40AA12 supports session opening, stdin delivery, descriptor redirection, and shell execution using PTY or socket-pair fallback; interactive use was not observed.
Command and Control T1105
Ingress Tool Transfer
Update chain 0x40C527 to 0x40C42A to 0x40B89C retrieves an architecture-specific payload over HTTP from hackattackkaboom.botlesscucks.st, then applies executable permissions and invokes execve; completion was not observed.
Defense Evasion T1036.004
Masquerading: Masquerade Task or Service
0x4139D0 overwrites argument storage and invokes PR_SET_NAME with service-like names including telnetd, udhcpc, watchdog, syslogd, and uhttpd.
Defense Evasion T1622
Debugger Evasion
0x412511 parses TracerPid from process status; handshake routine 0x4132D0 checks its result and branches toward connection-reset handling when tracing is detected.
Discovery T1057
Process Discovery
The process-management subsystem enumerates /proc entries; the existing run recorded reads of process status and cmdline files.
Discovery T1082
System Information Discovery
The existing run recorded reads of /proc/cpuinfo and /proc/meminfo, consistent with host-information collection in the handshake preparation code.
Impact T1498.001
Network Denial of Service: Direct Network Flood
Dispatch table 0x62B000 contains UDP, raw TCP, ICMP, and raw-IP packet-generation handlers with repeated transmission loops and timed workers; one of its 24 slots is a return-only stub. Attack execution was not observed.
Impact T1499
Endpoint Denial of Service
Static application/request-generation handlers include HTTP handler 0x401A5E reached by dispatch slot 0x13, with GET/POST request generation and connection-pool behavior; application-layer attack execution was not observed.