TLP:CLEAR

345gs5662d34 / mdrfckr — Credential stuffing + SSH key campaign

Active, six-week-plus campaign flooding SSH honeypots with a single reused credential (plus a closely-related variant), then persisting access via a hardcoded RSA authorized_keys backdoor.

Published 2026-07-01 Source Distributed SSH/Telnet Honeypot Fleet Confidence HIGH Classification Credential-Stuffing Botnet / SSH Key Persistence

Executive summary

458K+
credential attempts
9,500+
unique source IPs
333K+
SSH key injections
42d+
active window

One password, reused across more than 9,500 machines, kept a botnet logging into our honeypots daily for six-plus weeks straight. Then, in the final days of the window covered here, that volume dropped — a real decline, though a later full-day count showed it was less severe than an initial partial-day read suggested. This report walks through how the credential-stuffing and SSH-key phases work, and what we ruled out to confirm the drop is real botnet behavior rather than a sensor artifact.

Over a 42+ day window (2026-05-21 through 2026-07-01, ongoing), sensors observed a coordinated two-phase campaign combining mass credential stuffing with SSH authorized_keys persistence. The campaign uses the credential 345gs5662d34 as both username and password, attempting 458,000+ logins across 9,500+ unique source IPs. Upon successful login, the attacker injects a single hardcoded RSA SSH key (comment: mdrfckr) into ~/.ssh/authorized_keys, establishing persistent backdoor access — observed 333,000+ times across 9,200+ IPs.

The credential stuffing and key injection are performed by the same botnet: the top IPs participate in both phases with near-identical event counts. The campaign is remarkable for its scale (9,700+ IPs), its narrow-credential approach (a primary password plus a single-digit variant, together spanning 7+ usernames), its awareness of Linux hardening (the chattr -ia pre-step to remove immutable attributes before modifying the SSH directory), and its persistence — six-plus weeks of continuous activity against the same credential family and key. Daily volume held steady at roughly 8,600-9,600 credential attempts/day through 2026-06-27, then declined to roughly 3,400-3,700 attempts/day by 2026-06-30 – 07-01 — a real drop, but to about 40% of peak, not the near-total collapse an early partial-day read of 2026-07-01 initially suggested; see Campaign Timeline for the day-by-day breakdown. The campaign's IPs were cross-checked against sensor-side collection-volume controls and none were affected, so the drop reflects real botnet behavior rather than a collection artifact — possibly a partial takedown, C2 rotation, or a shift of some nodes to a new credential/key pair not yet identified.

Threat actor profile

AttributeAssessment
Campaign name345gs5662d34 / mdrfckr (credential + key comment)
TypeCoordinated credential stuffing botnet with SSH key persistence
SophisticationMedium — large botnet, single credential, but includes chattr hardening bypass
IntentPersistent SSH access via authorized_keys for future exploitation
Botnet size~9,500 unique IPs, globally distributed
First observed2026-05-21
Last observed2026-07-01 (active, declining volume)

Phase 1 — Credential stuffing

The campaign uses the credential 345gs5662d34 as both username and password. The same botnet IPs also spray a closely-related variant password, 3245gs5662d34 (one digit longer), against a set of common system usernames. Both credentials appear programmatically generated — possibly a default password from a specific IoT firmware or a botnet credential rotation token.

Credential distribution

UsernamePasswordAttemptsUnique IPs
345gs5662d34345gs5662d34461,1119,612
root3245gs5662d34341,4369,210
ubuntu3245gs5662d3426,4485,394
admin3245gs5662d3418,6304,586
user3245gs5662d3410,6803,748
test3245gs5662d348,5693,390
ftpuser3245gs5662d346,1332,876

Top participating botnet IPs

IPCredential attemptsHoneypots hitFirst seenLast seen
102.88.137.801,338242026-05-212026-07-01
20.203.42.2041,24736 (all)2026-05-212026-06-10
182.93.50.901,11636 (all)2026-05-222026-06-29
220.247.224.226801352026-05-212026-07-01
182.93.7.19477536 (all)2026-05-212026-07-01
41.82.50.218696332026-05-212026-07-01
96.78.175.36631352026-05-222026-07-01
102.88.137.21362936 (all)2026-05-212026-07-01
103.98.176.16460536 (all)2026-05-222026-07-01
31.179.197.2657036 (all)2026-05-222026-07-01

Phase 2 — SSH key injection

Upon successful login, the attacker executes a two-command sequence to install a persistent SSH backdoor key. The attack is notable for its chattr -ia pre-step, which removes the immutable and append-only attributes that Linux hardening guides recommend setting on the ~/.ssh directory.

Attack sequence (from 102.88.137.80)

# Step 1: Remove immutable attributes (unlock .ssh directory)
cd ~; chattr -ia .ssh; lockr -ia .ssh

# Step 2: Replace authorized_keys with the mdrfckr RSA key
cd ~ && rm -rf .ssh && mkdir .ssh && echo \
  "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr" \
  >>.ssh/authorized_keys && chmod -R go= ~/.ssh && cd ~

The key injection was observed 333,379 times across 9,223 unique IPs — a near-1:1 match with the credential stuffing IPs, confirming this is a single coordinated campaign.

Campaign cross-reference

The same IPs perform both credential stuffing and key injection, confirming a single operation:

IPCredential attemptsSSH key injectionsRatio
102.88.137.801,3381,2960.97
182.93.50.901,1161,0900.98
20.203.42.2041,2479790.79
182.93.7.1947757430.96

Other notable credentials in the same window

Several other credential pairs appeared at high volume during the same 30-day period, suggesting either parallel campaigns or additional credentials deployed by the same botnet:

CredentialAttemptsUnique IPsNotes
admin / admin56,3142,596Generic default credential
support / support24,757720Support account default
solana / solana10,61944Crypto-themed — targeted, not botnet
ftpuser / J5cmmu=Kyf0-br8CsW12,46910Targeted FTP credential, 10 IPs only

MITRE ATT&CK mapping

IDTechniqueEvidence
T1110.001Password Guessing873K+ attempts across a primary credential and a single-digit variant, spanning 7+ usernames
T1110.004Credential Stuffing9,700+ unique IPs performing coordinated credential spraying
T1098.004SSH Authorized Keys333K+ injections of mdrfckr RSA key into authorized_keys
T1078Valid AccountsSuccessful logins enable the key injection phase
T1059.004Unix Shellchattr, rm -rf, echo, chmod command chain
T1562.001Impair Defenseschattr -ia .ssh removes immutable attributes (hardening bypass)

Campaign timeline

DateEvent
2026-05-21Campaign begins. Credential 345gs5662d34 first observed. SSH key injections begin same day.
2026-05-21 → 06-27Continuous daily activity from 9,500+ IPs. Top IP 102.88.137.80 hits only 2 sensors on day 1, ramping up to 24 total over the campaign.
2026-06-1020.203.42.204 (one of six IPs to hit all 36 sensors) stops activity after 1,247 attempts.
2026-06-24Campaign still active. Multiple IPs continue credential attempts and key injections.
2026-06-21 → 06-27Steady state: ~8,600-9,600 credential attempts/day, ~1,040-1,135 unique IPs/day, matched almost 1:1 by daily key-injection volume.
2026-06-28 → 06-30Decline begins: daily attempts drop 5,769 → 4,281 → 3,420, even as daily unique-IP count briefly rises (1,068 → 1,556 → 1,370) — fewer attempts per IP, not fewer participating nodes.
2026-07-013,741 attempts, 1,283 IPs (full day — an initial partial-day read at time of writing had shown only 433/233 and overstated the severity of the drop). Decline continued into 2026-07-02 (3,033/1,128) and 2026-07-03 (2,425/957, partial); volume has settled at roughly 30-40% of the 06-21 → 06-27 peak, not the ~6% an early snapshot suggested.

Indicators of compromise

Credential IOC

345gs5662d34 — used as both username and password (primary campaign credential)

SSH key IOC

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr

Command pattern IOC

cd ~; chattr -ia .ssh; lockr -ia .ssh
cd ~ && rm -rf .ssh && mkdir .ssh && echo "ssh-rsa ... mdrfckr" >> .ssh/authorized_keys && chmod -R go= ~/.ssh

Network — top botnet IPs

102.88.137.80 · 20.203.42.204 · 182.93.50.90 · 220.247.224.226 · 182.93.7.194 · 96.78.175.36 · 102.88.137.213 · 103.98.176.164 · 31.179.197.26 · 41.82.50.218 · 181.188.176.242 · 5.182.83.231 · 176.109.97.11 · 222.232.176.7 · 190.244.39.224

Detection signatures

Suricata — 345gs5662d34 credential in SSH auth

alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (
  msg:"cowrAI 345gs5662d34 credential stuffing campaign";
  flow:to_server,established;
  content:"345gs5662d34";
  threshold:type both, track by_src, count 5, seconds 60;
  classtype:attempted-admin; sid:9003020001; rev:1;
)

Suricata — mdrfckr SSH key injection

alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (
  msg:"cowrAI mdrfckr SSH authorized_keys injection";
  flow:to_server,established;
  content:"mdrfckr";
  content:"authorized_keys"; distance:0;
  content:"chattr"; nocase;
  classtype:trojan-activity; sid:9003020002; rev:1;
)

OSSEC / Wazuh — authorized_keys replacement

<rule id="100302" level="12">
  <if_sid>530</if_sid>
  <match>rm -rf .ssh</match>
  <match>authorized_keys</match>
  <description>SSH authorized_keys replacement detected (mdrfckr campaign)</description>
</rule>

Collection methodology

Data collected by a distributed honeypot fleet running SSH/Telnet protocol lures. All login attempts and post-authentication commands were captured at the application layer and ingested into a time-series database for analysis. Credential pairs, source IP addresses, and command sequences were correlated across sensors to identify the two-phase campaign structure.