FLUX FLEET — INTEL BRIEFING №67
Period: 2026-10-29 07:33 – 2026-10-30 07:33 UTC (24h, day 65 of operations)
Sources: 8 honeypot nodes (frantech-ts also runs non-flux ssh/telnet honeypots whose condensed feed lands in /data/hp-logs and is NOT part of this report) — canary-farm-1 (EU-hot), ai-devbox-1 (EU), control-1 (differential baseline), ru-edge-1 (Russia), lauterbourg-01-ts (Nextcloud/php2shell TLS profile, rebuilt 10-23 15:06Z), netcup-ts + sponge-01-ts + frantech-ts (deception-only, no canaries)
Network layer: Arkime on spark (the fleet's own pcap sensors) — step 3c, the only view of sweeps that never request a path
Confidence: High (direct observation, 65-day baseline, mint and use sides verified against Tracebit alert logs; hostile bodies quoted verbatim where captured). Times quoted as stored digits; the +4 h ingest cast applies (see Fleet Observations).
BLUF
REGISTRY-HUNT crossed the line every prior window waited for: its DigitalOcean walkers used 8 stolen canary credentials in AWS from 5 use IPs this window. Two of them (64.225.75.246, 157.230.19.140) ran a 14-operation SES and Bedrock enumeration, and AWS answered the rest with 22 denied InvokeModel and 22 denied GetSendQuota calls. XMLRPC-BRUTE set its volume record under a new operator: 10,000 system.multicall POSTs to /xmlrpc.php on canary-farm-1 in 24 minutes. Two new single-operator toolings appeared: an OpenAPI/swagger spec census (193.47.62.29, 3 sensors) and by-digest container-registry pulls under an honest docker/24.0.7 UA (147.90.255.64, 4 sensors). Fleet volume fell 14–92% below the 7-day baseline on every node because four one-off mega-crawlers from №64–№66 went quiet; underlying scan noise held steady and all four XFF forgery counters stayed at 0.
Key Judgements
- REGISTRY-HUNT is an operate-then-use pipeline, not a census. 35 walker IPs ran the 27-family walk across all 8 sensors this window, and by window close walkers used 8 of their minted credentials from 5 DigitalOcean use IPs: two full 14-operation SES/Bedrock enumerations, four
GetCallerIdentity-only checks. (High confidence on the sequence — the walk shape, the mint rows, and the Tracebit use alerts all carry the same IPs; Moderate on intent — aGetCallerIdentity-only check may be a validity test rather than exploitation, and the fleet cannot see inside the AWS account.) - Credential demand now exists; supply still dwarfs it. 51 credentials went to 30 collector IPs this window and 8 were used; 43 sit unused. The large idle hoards did not move: TechTies 1,088 (6d, static), 102.220.163.241 70, and three 41-credential AI-EXEC piles. (High confidence on the counts — the alert pull covers the window; Moderate on the interpretation — hoard-for-resale and slow consumption still look identical from outside.)
- XMLRPC-BRUTE is a kit with rotating operators, and it has volume headroom. The №65–№66 operators (8.137.104.136, 180.93.254.108) fired nothing this window, while a fresh Google LLC US address (136.80.17.156, forged Chrome/89) ran 10,000 multicall POSTs — roughly 10× the kit's registered 1,000-POST batch shape. (High confidence on the volumes and the absence; Moderate on the kit-operator model — shared template proves lineage, not the same crew.)
- Scanning themes keep moving toward cloud-native surfaces. This window added OpenAPI/swagger spec discovery and Docker-registry pulls by digest; №66 added VPN configs and Claude Code stores. (Moderate confidence — both new sightings are single-operator, single-window; a repeat promotes the trend to High.)
Active Campaigns (day 65 status)
REGISTRY-HUNT / LeakIX (l9scan template + 27-family walkers) ⟳ — FIRST CREDENTIAL USE — Hostile, active
- Actors: 34 distinct IPs hit the WebLogic console step and 35 ran the docker-registry catalog step, spread across all 8 sensors. The digest's kill-chain rows name DigitalOcean LLC for every walker listed (examples: 206.81.24.74, 147.182.149.75, 167.99.210.137, 142.93.0.66, 178.128.207.138, 167.71.81.114, 157.230.19.140, 206.189.95.232, 206.189.19.19, 46.101.111.185, 157.245.113.227, 68.183.9.16). Pool size keeps growing: 4 walkers (№66) → 15 (№64) → 34–35 (№67).
- TTPs: the walk is unchanged — tarpit → WebLogic console → server-status → Confluence login → WHM/cPanel proxy subdomains →
/v2/_catalog→ registrytags/list→manifests. The use side is new: 8 credentials used from 6 walker addresses. 64.225.75.246 (mint from canary-farm-1) and 157.230.19.140 (minted 10-24, outside this window — Tracebit is the only witness) each ran the same 14-operation enumeration:GetAccount,GetAccountSendingEnabled,GetAccountSummary,GetCallerIdentity,GetSendQuota,GetSendStatistics,InvokeModel,ListBuckets,ListEmailIdentities,ListFoundationModels,ListIdentities,ListPolicies,ListRoles,ListUsers. 206.81.24.74 (2 creds), 68.183.9.16 (2 creds), 206.189.19.19, and 46.101.111.185 stopped atGetCallerIdentity. AWS deniedGetSendQuota×22,InvokeModel×22,GetAccount×18,ListFoundationModels×12,ListEmailIdentities×6; 8 calls succeeded, allsts:GetCallerIdentity(identity leak at most). - Assessment: the walkers now check what they harvest and hand it to AWS-side operators in the same window. The denied-operation mix reads as bulk-sender staging (
ses:GetSendQuota/ses:SendEmail-shaped) plus Bedrock model inventory, followed by IAM account mapping (ListRoles/ListPolicies/ListUsers). Every use ties back to a specific mint within hours — the canary design turned a silent theft into a full attribution chain. Watch: persistence attempts after the IAM mapping, any second-stage use IP, and whether the walkers re-touch the same sensors.
XMLRPC-BRUTE (system.multicall POST floods to /xmlrpc.php) ⟳ — RECORD FLOOD, NEW OPERATOR — Hostile, active
- Actors: 136.80.17.156 (Google LLC US), canary-farm-1 only, 11:28–11:52 stored — 10,008 events on 5 paths, 10,000 of them
wp-xmlrpc-post, under forgedChrome/89.0.4389.114. Distributed wp-login legs on ru-edge-1: 163.172.46.59 (Scaleway FR, 27 probes + 27 credential POSTs), 108.174.147.120 (24 + 24), 103.47.145.13 (8 + 8), 103.47.145.17 (6 + 6). The №65–№66 operators (8.137.104.136, 180.93.254.108) did not fire. - TTPs: a short preamble (
/,/wp-includes/wlwmanifest.xml,/wp-json/wp/v2/users/,/wp-json/oembed/1.0/embed) then continuoussystem.multicallPOSTs at ~5/s for 24 minutes, ~508-byte bodies, all answered 200 by the fake WordPress. Captured body (verbatim, head; preview truncates at 120 chars):<?xml version="1.0"?><methodCall><methodName>system.multicall</methodName><param— the samewp.getUsersBlogscredential-checking multicall as №63–№66. - Assessment: largest single-IP flood on record (prior shape: 1,000-POST batches; №65's record run reached 14,438 over 1 h 44 m). The kit's flood-then-form-brute staging (№66) makes a second leg from 136.80.17.156 the immediate watch item. The fleet's fake surfaces absorbed the full volume and leaked nothing; xmlrpc is not a trap family, so no mints were possible.
WP-XRPC-WALK (distributed xmlrpc + REST user enumeration) ⟳ — IDENTICAL REPLAY, WIDER FOOTPRINT — Hostile, watch
- Actors: the two digest clusters replayed with byte-identical shape:
362522228887(33 IPs / 108 events, 7 sensors) and0a08798abff5(6 IPs / 37 events, 5 sensors) — same ordered-path signatures and same counts as №66. In total 64 distinct IPs touched/wp-json/wp/v2/usersthis window (2,876 events including their other results); the largest single-IP REST-enum count is 11 (104.131.3.242). - TTPs: unchanged — 1–2 events per IP, POST
/xmlrpc.php(wp.getUsersBlogsmulticall) alternating with GET/wp-json/wp/v2/users, fresh modern per-IP UAs, 0 mints. - Assessment: a fixed script replayed on a fixed schedule, now two windows old, with the wider 64-IP population suggesting a growing worker pool behind it. Watch IP-count growth against the WP-LOGIN-BRUTE 200-pair alarm, the first mint, and any merge with the xmlrpc floods.
CREDSWEEP class (exhaustive .env-variant + credential-file census) ⟳ — SIXTH WINDOW, ALL-8 WALK WITH MINTS — Hostile, active
- Actors: 45.138.12.16 (Tc Datacenter LT) walked all 8 sensors (417 events) and minted at
/.envon canary-farm-1 (02:59:35 stored) and ru-edge-1 (04:57:24 stored) — 5/6d per side, 0 use. 45.138.12.35 ran 768 events on ai-devbox-1 + control-1 and owns control's fake-git spike (264fake-git-miss+ 120fake-git). 45.138.12.51 ran netcup-ts + sponge-01-ts (264 events). 45.138.12.6 (260 events, aidev + farm). Marker-revision operator 176.65.144.71 (Dedik Services CH) returned on canary-farm-1: 188 events, 70 families,/kmonbase<hex>probes plus a config-hunt journey (/.git/HEAD,/.ssh/id_ecdsa,/.htpasswd,/config/secrets.yml,/docker-compose.yml,/.env.dist). 194.180.49.41 (MEVSPACE sp. z o.o. BG) ran 62 events on 5 sensors. - TTPs: unchanged census shapes; the Tc Datacenter IPs continue rotating per-sensor roles from one /24. The
/kmonbase<hex>marker revision (first seen №66) held under its known holder. - Assessment: sixth consecutive window, still zero use from this class. Watch: AWS use from the two fresh
/.envmints, and a third/kmonbaseadopter (a third sighting would establish that the revision circulates).
OPENAPI-CENSUS (API-documentation spec discovery) ⚠ NEW — Hostile, watch
- Actors: 193.47.62.29 (BestDC Limited BG), forged
Chrome/123.0.0.0Windows 10, 18:42–00:10 stored. 489 events / 150 paths / 20 families across canary-farm-1, netcup-ts, ru-edge-1. - TTPs: an OpenAPI/swagger spec-path census — owns the openapi-spec-json-skeleton spikes on all three sensors (22 hits each; 23.0× / 8.2× / 22.0× the 7-day average) and the spec-path first-seens (
/api/swagger-ui/swagger.json,/api-docs/swagger.json,/docs/swagger.json,/api/openapi.json,/swagger/v1/swagger.json, 6 hits per path per sensor). The fake surfaces answered 200 with spec skeletons. 0 mints, 0 POSTs. - Assessment: spec discovery maps a real API surface before attacking it — the fleet's skeleton answers deny the map. Single IP, single window: a second IP or node promotes it to standing.
DOCKER-DIGEST-PULL (container-registry pull by digest) ⚠ NEW — Hostile, watch
- Actors: 147.90.255.64, on canary-farm-1, ai-devbox-1, netcup-ts, ru-edge-1 (81 events total).
- TTPs: speaks the Docker registry v2 protocol under an honest client UA —
docker/24.0.7 go/go1.21.5 git-commit/311b9ff kernel/6.6.0 os/linux arch/amd64. On canary-farm-1 it pulled 10 manifests by digest for internal-named repositories:/v2/backup/db-migrator/manifests/sha256:5fdcf5302180…,/v2/internal/auth-service/manifests/sha256:faebf99bbd46…,/v2/staging/web-app/manifests/sha256:b741d0c00147…. Distinct from REGISTRY-HUNT's browser-UA catalog/tags enumeration — this is a real docker client. - Assessment: wants images, not configs — digest pulls imply a prior catalog or wordlist stage that names internal repos. Watch: token-endpoint probes, any blob GET (a blob GET would establish the full pull flow), a second IP.
CREDENTIAL-DRAIN (mint → use pipeline) ⟳ — FIRST USE IN SIX WINDOWS — Hostile, active
- Actors: mint side 51 credentials to 30 collector IPs (funnel semantics; digest
issuedrows 60: canary-farm-1 27 from 22 IPs, control-1 13 from 9, ru-edge-1 13 from 10, ai-devbox-1 7 from 6). Use side: 8 credentials from 5 use IPs, all REGISTRY-HUNT walkers (details under that campaign). 43 credentials stolen with no observed AWS use. - TTPs: standing piles per the Tracebit pull: TechTies 93.152.221.96 1,088 (6d, static; second consecutive idle window in flux logs), 102.220.163.241 70, 136.65.203.248 / 136.66.182.42 / 34.95.21.228 at 41 each. Mint failures 25×400 upstream rejections at
/.env, spread as pacing singles over 12 IPs on 4 sensors (max 2 per IP-sensor, 19:17–05:59 stored; heaviest single 150.241.66.127 with 2+2 on control-1/ai-devbox-1). No 401s, no key errors. - Assessment: the sixth-cycle streak of zero-use windows is broken, and the demand came from the REGISTRY-HUNT side while every large hoard stayed cold. Use-vs-hoard behavior is now separable per operator — the alert pull each cycle remains the check.
Light watchers
- 104.199.180.57 (Google LLC TW) — lauterbourg-01-ts 350 events / 223 paths / 20 families in 2 minutes (01:45–01:46 stored), forged
Chrome/153.0.0.0macOS: webapp-form-profile census (8) + form-login (7) + form-signup (2),graphql-introspection×3,telescope-shell×2 (Laravel Telescope probe), 3 POSTs, 0 mints. - 34.177.96.228 (Google LLC SG) — ai-devbox-1 283 events / 272 paths / 18 families in 1 minute (19:34–19:35 stored): env-variant census (
env-production-error184,phpinfo-error37,firebase-json-error9,gcp-credentials-json-error4); 1 tracebit 400. - 9.205.248.165 (Microsoft DK) — sponge-01-ts 239 events / 222 paths under honest-looking
ExposureScanner/1.0 (internal-security-audit):webshell-probe×10, openapi skeletons ×4,webshell-sweep-observed×2. The self-declared audit UA is unverified — not classified benign. - 204.76.203.237 (Pfcloud UG NL) — 261 events on all 8 sensors; the lauterbourg leg hammers 4 paths (
/index.php5×59,/index.php×64 incl. 44php2shell-index,/×59,/login×2). The MALWARE-DICT /24's sibling rotation continues in a php-probe loop shape. - Distributed pools — 82.197.193.x (~30 IPs, 4 sensors, ≤25 events each; two carried tracebit 400 singles) and 185.132.187.x (~30 IPs, 4 sensors; several minted 1 each on ru-edge-1/canary-farm-1). Low-and-slow, no shared UA string.
- Benign research class — 71.6.155.70 (8 sensors, 8 events, empty UA; Censys research range per №66), 75.127.6.2 (8 sensors, 74 events, honest
zmap-proxy-probe/1.0), 93.174.93.12 (7 sensors, 322), 89.248.172.33 (7, 416). 45.198.224.125 (8 sensors, 73 events) runs a forged Firefox/71 and stays in the hostile-light class.
Standing actors (persistence check)
- REGISTRY-HUNT DigitalOcean pool — present every window on record; escalated from walk to use this cycle.
- 45.138.12.x (Tc Datacenter LT) — sixth window; the /24 re-ran its all-8 walk with fresh per-sensor mints.
- 176.65.144.71 (Dedik CH) — second window as the
/kmonbasemarker-revision holder. - 194.180.49.41 (MEVSPACE) — recurring light census arm, 5 sensors.
- WP-XRPC-WALK population — second window; REST-enum touchers grew 39 → 64 IPs.
Absent or paused
TechTies-KIT + JNDI-FIELD-INJECT (second consecutive idle window; XFF forgery counters back to 0), SI-CENSUS 102.220.163.241 (first miss after four windows), MEGA-DICTIONARY (all three 13,776-event baseline replays idle), CALC-ORACLE-KIT (152.236.14.113 idle), 121.40.140.50 and 136.70.193.85 (lauterbourg baseline heavyweights, idle), XMLRPC №65–№66 operators (8.137.104.136, 180.93.254.108), 34.67.167.4 (№65 flood overlap, absent), PATHSCAN-CENSUS, VPN-CONF-HUNT (watch single missed), 8.217.152.4, 140.245.97.208 (second miss), AI-EXEC-HUNT (no run at the №57/№61/№64/№66 cadence), EXCHANGE-DICT, NIGHTAGENT, BUCKLOG-KIT, METADATA-HUNT named runners, KEYDROP-SCANS, CLAUDE-CRED-HUNT, CENSUS-284, CF-FRONTED CREDSWEEP, OMEGA-SWEEP, ANDROXGH0ST-KIT, CRUSADER-SWEEP, AI-CLI-VAULT (fifth), GCP-ACONF, WEBSIPHON, SES-QUOTA-PROBE (ninth), GIT-VAULT, LIBREDTAIL-KIT, ADMINER-SWARM, CONFIGBUNDLE-KIT, CVENGINE-KIT, MEVSPACE-GITWALK, SS-NET TOOLING, WP-ENUM, INFOCREST-KIT, MALWARE-DICT-2, Bochum softsec crawler 185.73.23.x (seventh window). Absence here reads from this window's tables; a low-volume one-off below table floors would not show.
Network-layer recon (Arkime) — 2026-10-29 07:33:00 → 2026-10-30 07:33:57 UTC
Fingerprint field ssh.hassh, destination port 22 · 142,456 inbound sessions · fleet IPs: ai-devbox-1 217.15.163.226, canary-farm-1 109.123.246.142, control-1 38.54.2.209, frantech-ts 209.141.62.110, lauterbourg-01-ts 89.116.25.211, netcup-ts 159.195.21.150, ru-edge-1 130.94.89.46, sponge-01-ts 89.167.72.144
Session tags: honeypot 106,480, bahrain-sponge-01-ts 49,325, sensor:bahrain-sponge-01-ts 49,325, contabo-sponge-01-ts 18,494, sensor:contabo-sponge-01-ts 18,494, sensor:lauterbourg-01-ts 15,655
| client fingerprint | sessions | src IPs | networks | countries | ports | first → last | shape |
|---|---|---|---|---|---|---|---|
f555226df1963d1d3c09daf865abdc9a |
3,926 | 629 | 256 | 70 | 22 | 2026-10-29 07:34 → 2026-10-30 07:25 | dispersed sweep (one port, many networks) |
06ff3615a51b2af343ec22abc8e30bbc |
3,103 | 164 | 67 | 36 | 22 | 2026-10-29 07:33 → 2026-10-30 07:28 | dispersed sweep (one port, many networks) |
0a07365cc01fa9fc82608ba4019af499 |
28,810 | 56 | 17 | 15 | 22 | 2026-10-29 07:33 → 2026-10-30 07:23 | distributed |
16443846184eafde36765c9bab2f4397 |
13,516 | 33 | 17 | 15 | 22 | 2026-10-29 07:33 → 2026-10-30 07:18 | single-source |
dd9bcf093c355da7000132131cb36fd0 |
32 | 32 | 1 | 1 | 22 | 2026-10-29 10:07 → 2026-10-30 05:05 | single-source |
084386fa7ae5039bcf6f07298a05a227 |
28 | 26 | 4 | 4 | 22 | 2026-10-29 09:53 → 2026-10-30 05:25 | single-source |
98f63c4d9c87edbd97ed4747fa031019 |
6,145 | 25 | 10 | 5 | 22 | 2026-10-29 07:33 → 2026-10-30 05:28 | single-source |
03a80b21afa810682a776a7d42e5e6fb |
140 | 24 | 12 | 5 | 22 | 2026-10-29 07:35 → 2026-10-30 06:43 | single-source |
Flagged sweeps (2) — one fingerprint, many networks, single port, no authentication attempted:
f555226df1963d1d3c09daf865abdc9a— client bannerssh-2.0-libssh_0.9.6, 3,926 sessions from 629 source IPs across 256 networks in 70 countries, port 22, avg 4,896 B/session. Networks: AS8075 Microsoft Corporation, AS135377 UCLOUD INFORMATION TECHNOLOGY HK LIMITED, AS16276 OVH SAS, AS31898 Oracle Corporation, AS19871 Network Solutions, LLC. Busiest sources:123.58.215.196,41.128.181.199,85.95.166.40,217.182.253.249,96.78.175.45. Last 7 days: 10-24 617 IPs, 10-25 579 IPs, 10-26 599 IPs, 10-27 653 IPs, 10-28 615 IPs, 10-29 657 IPs, 10-30 177 IPs.06ff3615a51b2af343ec22abc8e30bbc— client bannerssh-2.0-go, 3,103 sessions from 164 source IPs across 67 networks in 36 countries, port 22, avg 5,166 B/session. Networks: AS37963 Hangzhou Alibaba Advertising Co.,Ltd., AS4766 Korea Telecom, AS51167 Contabo GmbH, AS37110 moztel-as, AS7552 Viettel Group. Busiest sources:175.196.78.7,8.148.5.235,8.130.97.165,8.148.183.39,8.138.210.122. Last 7 days: 10-20 8 IPs, 10-21 70 IPs, 10-26 41 IPs, 10-27 183 IPs, 10-28 119 IPs, 10-29 164 IPs, 10-30 12 IPs.
Thresholds: dispersed = ≥50 source IPs and ≥20 networks on one port; mass = ≥200 source IPs. Fingerprint identity, never source IP: sweep operators rotate addresses and keep the tool.
Recon read: LIBSSH-MASSSWEEP holds its ~600-650-IP daily band. GO-SPRAY-SWEEP posted the biggest spread move (93 → 164 IPs) and sits at half its 192-IP peak on its 13th day. GO-SCATTER-SWEEP shed 1,799 sessions day-over-day. CTL-MASS-SSH (4e066189c3bb…) again owns control-1's inbound (26,619 sessions of 49,325). Two new fingerprints appeared below sweep thresholds (efc4646cf1f6…, 30 sessions / 8 IPs, ssh-2.0-go; aae6b9604f6f…, 26 sessions / 2 IPs, openssh_9.6p1 ubuntu banner) — both get their second window before any naming. Both flagged sweeps are already named in assets/recon-names.tsv and the campaign registry; no new network-layer names this cycle.
Fleet Observations
- Volume shift, explained. Every node fell below its 7-day baseline (ai-devbox-1 −52%, canary-farm-1 −17%, control-1 −57%, frantech-ts −92%, lauterbourg-01-ts −84%, netcup-ts −34%, ru-edge-1 −92%, sponge-01-ts −14%). Spot queries attribute the gap to four one-off crawler families from №64–№66 that did not repeat: 34.67.167.4 (9,815 events on ai-devbox-1), 93.152.221.96 (30,543) plus 169.150.211.193 (13,776) on ru-edge-1, a 13,776-event trio on frantech-ts (169.150.201.41, 155.2.191.115, 23.234.118.146), and 121.40.140.50 (20,289) / 136.70.193.85 (9,815) / 152.236.14.113 (6,101) on lauterbourg-01-ts. Underlying noise (tarpit loops, census walkers) held steady. Window overlap applies as always: events between digest runs appear in two digests.
- Canary economics. Digest
issuedrows: 60 mints (canary-farm-1 27 from 22 IPs, control-1 13, ru-edge-1 13, ai-devbox-1 7). All 25 failures are 400 upstream rejections at/.envin pacing singles across 12 IPs on 4 sensors — no 401s, no burst, no key errors; the rejection share this window is 25 of 85 mint attempts, worth watching one more window. netcup-ts, sponge-01-ts, and frantech-ts mint 0 by design (certless); lauterbourg-01-ts shipsTRACEBIT_API_KEY=empty, so its absence is config, not failure. - Attribution/TLS posture. All four XFF counters at 0 (2,328 requests carried
X-Forwarded-For; none forged, none mismatched to the socket peer). The counter's two mass-sighting windows were JNDI-FIELD-INJECT, now idle. TLS split: canary-farm-1 12,227 http / 707 https; ai-devbox-1 is the only node where https leads (1,266 vs 1,108) — the Cloudflare-fronted surface; all other nodes are http-dominant. Top Host header:sso.rightabouteverything.show11,005. - Control-1 discovery velocity. 47 days live. Most recent full day in the window (10-29): 2,048 events / 153 unique IPs. The 7-day band runs 892–16,293 events per day with unique IPs holding 102–178 — the ramp is intact, and the network layer shows the node still draws the fleet's heaviest SSH mass-scan (
4e066189c3bb…, 26,619 sessions). - First-seen caveats. All first-seen rows in this digest share one sync-batch timestamp (03:15 stored); they are an inventory, not a timeline. The spec-path and by-digest first-seens are attributed above by direct journey queries, not by the table's timestamps.
- Fleet-side fixes. None this cycle — no service, config, or fleet changes were made.
SSH/telnet honeypot (frantech-ts — single sensor, not fleet-wide)
One host, one view — never a fleet number. Funnel: 647 sources sent credentials → 489 got a shell (76%) → 449 ran a command (92% of shell-getters, 69% of sources). Event level: 26,860 credential attempts → 22,543 accepted logins → 31,149 commands. Telnet (commodity IoT botnets): 1,424 attempts.
New commands — 91 of 6,709 distinct — and all 91 belong to one source. 92.118.39.50 ran a shell-capability probe script: quoted verbatim (head): "sh -c 'printf '"'"'\n%s|%s\n'"'"' '"'"'check_3d916a01fd28b3dd0c4b2e9b55012b88_small_control'"'"' '"'"'check_3d916a01fd28b3dd0c4 — with sibling probes tagged _small_math ($((807*381+48))), _small_pid ($$), _small_done, and _arg1/_arg2 function-definition checks, one hash-tagged token per probe. This is an automated verification pass over shell arithmetic, variable expansion, and function support — a botnet QA script, not an operator session. A follow-on payload from this IP would establish staging intent.
Recurring commands are context: the echo -e "\x6F\x6B" keepalive loop from 13.140.229.150 (18,931 events), uname/lspci GPU-discovery strings (77.239.124.2, 195.178.110.218), and the chattr -ia .ssh + SSH-key-plant pair (411 and 360 sources) all held steady. Credentials: 21,511 distinct pairs offered, 0 new; concentration unchanged — 345gs5662d34/345gs5662d34 658 attempts and root/3245gs5662d34 525 (the same family, 1,183 combined), then commodity pairs.
C2 / payload endpoints (frantech-ts ssh+telnet honeypot)
Single sensor (one host), not a fleet number. Built from the raw honeypot sources — session transcripts, honeypot.log, and the capture vault — because the condensed /data/hp-logs/ feed truncates commands at 160 characters and drops any dropper line whose URL sits past that offset.
Summary
- inventory: 71 endpoints on 20 hosts, 2421 command references and 602 download attempts since 2026-09-18T10:45
- served payloads: 20 distinct artifacts over HTTP 2xx from 6 hosts (146.190.102.83, 152.42.195.115, 176.65.132.7, 176.65.139.157, 176.65.139.40, 185.228.72.128)
- this window: 0 endpoints first seen, 0 active; 27 endpoints seen in the last 7 days remain current
- inventory generated
2026-10-30T07:33:11Z
New this window
No endpoint first seen this window.
Endpoints active this window
No command or download referenced an endpoint this window.
Payload artifacts (HTTP 2xx, captured)
| sha256 | size | type | endpoint | first fetched |
|---|---|---|---|---|
7b8cd695424f |
1487 | script | http://176.65.139.40/wget.sh |
2026-10-20T08:57 |
b965f772177c |
1488 | script | http://176.65.139.40/curl.sh |
2026-10-20T08:57 |
62e3e86a7586 |
201396 | elf | http://152.42.195.115/main_arm7 |
2026-10-26T08:46 |
ec69d3e0d4d9 |
194400 | elf | http://152.42.195.115/main_mips |
2026-10-26T08:46 |
1913ed2ad175 |
194400 | elf | http://152.42.195.115/main_mpsl |
2026-10-26T08:46 |
e27e963b2b49 |
157468 | elf | http://152.42.195.115/main_arm6 |
2026-10-26T08:46 |
ba9c9d9d361d |
1615 | script | http://176.65.139.157/telnet2.sh |
2026-10-12T16:52 |
2165fae6c486 |
6738 | script | http://146.190.102.83/t2r/t2r_compat.sh |
2026-10-26T11:17 |
2d6b9901a480 |
14042 | script | http://146.190.102.83/t2r/t2r_compat.sh |
2026-10-26T12:21 |
2a7af0bb942a |
14506 | script | http://146.190.102.83/t2r/t2r_compat.sh |
2026-10-26T12:46 |
a8769ddc8139 |
16170 | script | http://146.190.102.83/t2r/t2r_compat.sh |
2026-10-26T14:04 |
f8d4dafd6b96 |
16506 | script | http://146.190.102.83/t2r/t2r_compat.sh |
2026-10-26T16:45 |
8a8189c0c67b |
5150 | script | http://146.190.102.83/t2r/t2r_compat.sh |
2026-10-26T17:37 |
c871a756510b |
5276 | script | http://146.190.102.83/t2r/t2r_compat.sh |
2026-10-26T19:22 |
0cac28cc7f78 |
4404 | script | http://146.190.102.83/t2r/w1_compat.sh |
2026-10-27T00:18 |
e06be431a8d4 |
1498 | script | http://185.228.72.128/wget.sh |
2026-10-19T21:30 |
72d835f767c8 |
1499 | script | http://185.228.72.128/curl.sh |
2026-10-19T21:30 |
0583d9e18684 |
1987 | script | http://176.65.132.7:8889/lv.sh |
2026-10-24T10:16 |
b16e15764b8b |
19 | text | http://176.65.132.7:8889/lv.sh |
2026-10-24T10:16 |
709009e02c8e |
10 | text | http://oper.atlas101.us.kg/dl.sh |
2026-10-15T04:36 |
Host != actor: a staging host can also be the operator's login source (176.65.139.40 authenticates 1,224 times). Correlate on payload sha256 and script text, not on the IP.
C2 read: a fully quiet window — no new dropper endpoints and no downloads attempted against the standing set. The inventory (71 endpoints / 20 hosts) and the 20 served artifacts stand as last recorded; the 92.118.39.50 probe script above sent no fetch this window, so its staging intent stays unestablished.
Gaps / Next Collection
- REGISTRY-HUNT use side. Pull Tracebit alerts at least daily for the 43 unused walker-held credentials; check for persistence-shaped calls after the
ListRoles/ListUsersIAM mapping. - DOCKER-DIGEST-PULL flow. Check whether the fake
/v2/surfaces saw token-endpoint (/v2/auth,/v2/token) probes or blob GETs from 147.90.255.64; a blob GET would establish the full pull flow. A registry-auth decoy is a fleet-owner decision, not a briefing change. - XMLRPC-BRUTE second leg. Watch 136.80.17.156 for the №66 pattern (flood →
/wp-login.phpform-brute) and alert if any multicall count passes ~15,000. - New-census promotion checks. OPENAPI-CENSUS (193.47.62.29) and DOCKER-DIGEST-PULL (147.90.255.64): second IP or second node promotes either to standing; also check WP-XRPC-WALK against its 64-IP footprint for a first mint.
- Mint-failure rate. The 400-rejection share rose to 25 of 85 attempts; re-run mint-health next cycle and, if it holds or grows, capture one full failure response body from the node side (read-only sink read) to name the rejection.
- TechTies hoard. 1,088 credentials idle across two windows — keep the alert pull on it; the first use from that pile is still the single highest-value alert the fleet can fire.
Visuals: /data/flux-logs/reports/flux-fleet-visuals-2026-10-30-r2.html
Plain language: /data/flux-logs/reports/flux-fleet-intel-briefing-plain-2026-10-30.md