hunang
Live honeypot telemetrySSH + Telnet sensorHelsinki, Finland

Put a machine online.
Count what happens.

This site is wired to a honeypot, a decoy server that accepts the internet's unsolicited login attempts and writes them down. Nobody was told it exists. The first attack arrived 23 seconds after it went live, and it has not been quiet since. Nothing here is targeted; every attempt comes from a bot working its way through the whole internet.

01

The numbers

lifetime · since 2026-08-06 13:53 UTC
Login attempts captured
165,436
lifetime · since the sensor went live
Last 24 hours
3,512
≈ one every 25 seconds
Distinct sources
5,869
lifetime · pseudonymized at ingest
First attack after going live
23 seconds
nobody was told this machine exists

updated 2026-08-27 15:27 UTC · refreshes automatically

Read this before the charts

Everything on this page is automated background noise. No human chose this machine; botnets scan the entire internet and try default passwords on whatever answers. This machine just wrote it down. If you put a server online with password authentication and a guessable credential, this traffic finds it, usually within the hour.

So none of this took a skilled attacker, and the numbers below are not threat intelligence. What they measure is the baseline: how hostile the open internet is, and how little it takes to get compromised by accident.

02

Around the clock

login attempts over time
last 48 hours · peak 1,171 / hour · UTC
last 30 days · peak 19,083 / day · UTC

There is no quiet hour. The botnets doing this are spread across every timezone and never stop; the dips and spikes come from campaigns starting and ending, not from anyone's working day.

03

Where it comes from

aggregate counts only
fewermore none recorded
#Source countryAttemptsShare
01Netherlands60,62736.6%
02United States32,02819.4%
03Germany15,4369.3%
04Singapore13,6948.3%
05China11,4166.9%
06United Kingdom4,4462.7%
07Andorra3,2171.9%
08India2,6261.6%
09Indonesia2,0421.2%
10Brazil1,8781.1%

Top source networks (ASN)

AS197170TechTies Inc.144,792
AS398101GoDaddy.com, LLC67,313
AS198364BANATSYNC SRL51,985
AS14061DigitalOcean, LLC40,156
AS47890UNMANAGED LTD30,570
AS4837CHINA UNICOM China169 Backbone28,060
AS213790Limited Network LTD22,254
AS206264Amarutu Technology Ltd21,322
AS48090TECHOFF SRV LIMITED13,175
AS4134Chinanet7,913

Country and network tell you where infected machines and cheap VPSes are, not where an “attacker” sits. A large share of this traffic is compromised devices whose owners have no idea.

04

What they try

most-attempted credentials
#Username / passwordTries
01enable\x00/linuxshell\x0014,721
02system\x00/shell\x0012,307
03sh\x00//bin/busybox UNSTABLE\x003,909
04admin/admin1,925
05root/root1,889
06support/support1,378
07root/xc35111,317
08root/admin1,312
09root/vizxv1,299
10telecomadmin/admintelecom1,021
11user/user988
12root/123456937
13guest/guest847
14root/888888763
15root/12345748
16enable/shell742
17sh//bin/busybox ECCHI742
18shell/sh736
19root/default734
20enable/system723

Top usernames

01root54,846
02enable\x0015,025
03system\x0012,307
04admin11,730
05sh\x003,909
06user3,032
07ubuntu2,137
08support1,617
09guest1,481
10enable1,468

Top passwords

01linuxshell\x0014,721
02shell\x0012,307
031234566,088
04/bin/busybox UNSTABLE\x003,909
05admin3,552
06root2,912
071232,873
0812342,845
09password2,715
10123452,226

Attack tooling (SSH client banners)

01SSH-2.0-Go68,419
02SSH-2.0-libssh_0.9.620,591
03SSH-2.0-libssh_0.11.11,157
04SSH-2.0-PuTTY_Release_0.841,003
05SSH-2.0-libssh2_1.11.0672
06SSH-2.0-AsyncSSH_2.1.0609
07SSH-2.0-libssh_0.12.0422
08SSH-2.0-libssh2_1.11.1102

There is no clever exploit here, just dictionaries. The bots try root/123456 because somewhere out there it still works often enough to keep a botnet growing.

05

Mapped to MITRE ATT&CK

observed behavior → technique

Each captured behavior is classified against MITRE ATT&CK, the shared vocabulary defenders use to talk about attacker techniques. The mapping is deliberately conservative: a technique is only counted when the event is direct evidence of it (the classifier and its tests are open source).

TechniqueTacticObserved
T1110.001 Brute Force: Password GuessingCredential Access165,436
T1021.004 Remote Services: SSHLateral Movement98,490
T1059.004 Command and Scripting Interpreter: Unix ShellExecution83,308
T1021 Remote Services (Telnet)Lateral Movement41,567
T1078.001 Valid Accounts: Default AccountsInitial Access10,151
T1222.002 File and Directory Permissions ModificationDefense Evasion6,294
T1082 System Information DiscoveryDiscovery6,074
T1105 Ingress Tool TransferCommand and Control4,009
T1057 Process DiscoveryDiscovery969
T1098.004 Account Manipulation: SSH Authorized KeysPersistence552
T1053.003 Scheduled Task/Job: CronPersistence531
T1003.008 OS Credential Dumping: /etc/passwd and /etc/shadowCredential Access31
T1016 System Network Configuration DiscoveryDiscovery20
T1070 Indicator RemovalDefense Evasion4

Counts are events, not incidents. A single bot session typically produces one connection, a burst of password guesses, and, if it gets a shell, a short scripted run of discovery, payload download, and persistence attempts. The shell it gets here is fake.

06

What would have stopped this

per attack class, the boring control that works
Password guessing · observed 165,436×

Credential spraying

Endless dictionaries of common passwords against root and admin. Volume does the work.

Stopped by: disabling password authentication entirely (PasswordAuthentication no) and using SSH keys. Fail2ban and rate limiting cut the noise, but key-only auth is what ends the game.

Default accounts · observed 10,151×

Factory credentials

pi/raspberry, ubnt/ubnt: devices shipped with documented logins and never changed.

Stopped by: changing or disabling default accounts before the machine ever faces the network. Treat first boot as part of deployment, not a TODO.

Tool transfer · observed 10,303×

Malware staging

After a “successful” login: wget a payload to /tmp, chmod 777, run it. Usually a Mirai variant or a cryptominer.

Stopped by: egress filtering (servers rarely need arbitrary outbound HTTP), noexec on world-writable mounts, and alerting on new executables.

Persistence · observed 1,083×

Keys and cron jobs

Appending an attacker key to authorized_keys or installing a cron entry, so the bot can come back even after a password change.

Stopped by: file-integrity monitoring on ~/.ssh and cron directories (auditd, Wazuh), and alerting on authorized_keys changes you didn't make.

Discovery · observed 7,094×

Scripted recon

uname -a, cat /proc/cpuinfo, cat /etc/passwd: the bot sizing up the machine for mining profitability or botnet duty.

Stopped by: everything above. Once recon runs, the machine is already compromised; prevention happens at authentication and exposure. What this row gives you is a tripwire.

Exposure · the root cause

The open port itself

All of this traffic exists because port 22 answered. Most machines don't need SSH reachable from the entire internet.

Stopped by: not exposing SSH publicly. Use WireGuard, an IP allowlist, or a bastion host. Moving to a nonstandard port only reduces the noise; scanners check those too.

07

Method & data handling

how this works, and what it stores

How it works

The sensor is Cowrie, an established honeypot that emulates an SSH/Telnet server with a fake shell, so attackers interact with a recording rather than a real system. It runs on an isolated, disposable host with outbound traffic firewalled to a single telemetry channel, and holds no credentials for anything real.

Events flow one way: sensor → authenticated ingest API → database → pre-aggregated rollups → this page. The site you are reading never connects to the honeypot and renders only aggregate data. Full architecture, threat model, and runbook are on GitHub.

Data handling

Source IP addresses are personal data under GDPR and are treated accordingly: at ingest they are replaced with a keyed pseudonym (HMAC) and a truncated network prefix (/24 or /48). Raw IPs are never stored or displayed. Raw event records are deleted after 30 days; the numbers on this page are anonymous lifetime aggregates, folded once from each event and kept with no per-source data behind them.

Captured usernames, passwords, and commands shown here were typed by automated tooling at a decoy machine. This site sets no cookies and runs no analytics. Geolocation is resolved from database files held on the server, so an observed address is never sent to a third party; the pseudonymized event store is hosted on Kastro Labs' self-managed Coolify infrastructure in the EU. Country and network data from DB-IP (CC BY 4.0). Questions: andri.is.