Decoy language-model services
Ollama, Langflow and an LLM proxy, presented as real. When an exploit carries a prompt, the prompt is kept verbatim and stored next to the request that delivered it.
Kinryū Labs · Honeypot telemetry
Down to every prompt sent to the decoy AI services. Around 90 fake services across a few regions: SSH, databases, industrial protocols, and some decoy Ollama and Langflow endpoints. They log whatever arrives. The AI decoys keep the prompt in full. More than 1,000,000 events on an ordinary day, all of it queryable.
Live
Ports running above their own recent baseline across the sensor fleet. Read straight from the same store the API queries.
| Port | Service | Last 24h | Conns | Sources | Change |
|---|---|---|---|---|---|
| 8291 | MikroTik Winbox | 52 | 10 | 8.9× typical | |
| 445 | SMB | 1,034 | 16 | 7.6× typical | |
| 5985 | WinRM | 174 | 47 | 4.7× typical | |
| 3306 | MySQL | 204 | 57 | 2.7× typical | |
| 389 | LDAP | 87 | 15 | 2.0× typical | |
| 2000 | Cisco SCCP | 34 | 13 | 2.0× typical | |
| 8080 | HTTP alt | 195 | 70 | 1.8× typical | |
| 7547 | TR-069 | 57 | 12 | 1.8× typical | |
| 23 | Telnet | 175 | 70 | 1.4× typical | |
| 31 ports | port sweep | 1,786 | 337 | 0.9–47.0× typical |
Sensor last reported 73 hours ago, so the figures below are not current.
The whole exchange, not the request around it. Most of it is background scanning; the baseline exists so the exceptions stand out.
Ollama, Langflow and an LLM proxy, presented as real. When an exploit carries a prompt, the prompt is kept verbatim and stored next to the request that delivered it.
Modbus, S7, DNP3 and others. Known internet-wide scanners are tagged as scanners, not counted as attacks, so the counts you get are not inflated by census traffic.
Every port on every sensor. A port that has never been touched showing up with thirty sources in a day is the kind of thing the baseline is there to catch.
Whatever an exploit tries to pull down is recorded by hash. Failed fetches are logged as well; a distribution host that refuses you is still a finding.
One endpoint, one header, pipe syntax over the full retained history. If you have written Splunk SPL or ES|QL you already know it.
# any plan with an API key curl -H "X-API-Key: $KEY" "https://portal.kinryu.sh/api/analyze?q=<query>"
event=langflow_rce_attempt earliest=-30d | stats count by ip
Who has been trying the Langflow RCE this month, and how hard.
event=ai_prompt_captured earliest=-7d | stats count by intent
What people are asking the decoy models to do, grouped by classified intent.
proto=modbus earliest=-24h scanner=false | stats dc(ip) by sensor
Distinct non-scanner sources touching Modbus per sensor, last day.
The Langflow decoys took an unauthenticated RCE that pulled a shell loader, which in turn fetched ten architecture-specific Mirai binaries. Routine so far.
Automated collection failed three times. The distribution host answered on 22 and 8080 but silently dropped cloud IP ranges on 80 and 443, so every sensor that tried to fetch the payloads from its own address got nothing and no error. Fetching from a non-cloud egress recovered all 11 hashes on the first attempt.
The failed fetches are in the record alongside the successful one. That is the point of logging them.
All write-ups →Prices in USD. Billed by Polar as merchant of record, which handles local sales tax. Cancel from your Polar receipt at any time.
Read what we publish. No account.
Free
no sign-up
For one person doing their own analysis.
$25/ month
1 account · 60 req/min
Checkout on Polar. Cancel any time.
For a team that wants the raw data and the history.
$100/ month
5 accounts · 300 req/min
Checkout on Polar. Cancel any time.
One packaged, citable collection.
$129one-off
current: IoT botnet infection chain
Before you check out
Use the email you want to sign in with. It becomes your username, and the licence key Polar emails to it is your first password. You can change both once you are in.Subscriptions are self-serve and carry no SLA. If the feed is down, it stays down until one person fixes it. That is usually quick. Rate limits are per account and are not a soft ceiling.
Polar is the merchant of record for every purchase on this site and any refund is handled under its policy, not ours. If a dataset file is faulty we fix it and reissue it to you. The full terms are at /terms.