TI-2026-049B โ The Command Language
๐ 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?"
PHASE 2 โ HARDWARE PROFILING: "Is this worth mining on?"
PHASE 3 โ COMPETITOR EVICTION: "Clear the ground"
PHASE 4 โ PERSISTENCE: "This is mine now"
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:
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:
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