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.
updated 2026-08-27 15:27 UTC · refreshes automatically
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.
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.
| # | Source country | Attempts | Share |
|---|---|---|---|
| 01 | Netherlands | 60,627 | 36.6% |
| 02 | United States | 32,028 | 19.4% |
| 03 | Germany | 15,436 | 9.3% |
| 04 | Singapore | 13,694 | 8.3% |
| 05 | China | 11,416 | 6.9% |
| 06 | United Kingdom | 4,446 | 2.7% |
| 07 | Andorra | 3,217 | 1.9% |
| 08 | India | 2,626 | 1.6% |
| 09 | Indonesia | 2,042 | 1.2% |
| 10 | Brazil | 1,878 | 1.1% |
| AS197170 | TechTies Inc. | 144,792 |
| AS398101 | GoDaddy.com, LLC | 67,313 |
| AS198364 | BANATSYNC SRL | 51,985 |
| AS14061 | DigitalOcean, LLC | 40,156 |
| AS47890 | UNMANAGED LTD | 30,570 |
| AS4837 | CHINA UNICOM China169 Backbone | 28,060 |
| AS213790 | Limited Network LTD | 22,254 |
| AS206264 | Amarutu Technology Ltd | 21,322 |
| AS48090 | TECHOFF SRV LIMITED | 13,175 |
| AS4134 | Chinanet | 7,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.
| # | Username / password | Tries |
|---|---|---|
| 01 | enable\x00/linuxshell\x00 | 14,721 |
| 02 | system\x00/shell\x00 | 12,307 |
| 03 | sh\x00//bin/busybox UNSTABLE\x00 | 3,909 |
| 04 | admin/admin | 1,925 |
| 05 | root/root | 1,889 |
| 06 | support/support | 1,378 |
| 07 | root/xc3511 | 1,317 |
| 08 | root/admin | 1,312 |
| 09 | root/vizxv | 1,299 |
| 10 | telecomadmin/admintelecom | 1,021 |
| 11 | user/user | 988 |
| 12 | root/123456 | 937 |
| 13 | guest/guest | 847 |
| 14 | root/888888 | 763 |
| 15 | root/12345 | 748 |
| 16 | enable/shell | 742 |
| 17 | sh//bin/busybox ECCHI | 742 |
| 18 | shell/sh | 736 |
| 19 | root/default | 734 |
| 20 | enable/system | 723 |
| 01 | root | 54,846 |
| 02 | enable\x00 | 15,025 |
| 03 | system\x00 | 12,307 |
| 04 | admin | 11,730 |
| 05 | sh\x00 | 3,909 |
| 06 | user | 3,032 |
| 07 | ubuntu | 2,137 |
| 08 | support | 1,617 |
| 09 | guest | 1,481 |
| 10 | enable | 1,468 |
| 01 | linuxshell\x00 | 14,721 |
| 02 | shell\x00 | 12,307 |
| 03 | 123456 | 6,088 |
| 04 | /bin/busybox UNSTABLE\x00 | 3,909 |
| 05 | admin | 3,552 |
| 06 | root | 2,912 |
| 07 | 123 | 2,873 |
| 08 | 1234 | 2,845 |
| 09 | password | 2,715 |
| 10 | 12345 | 2,226 |
| 01 | SSH-2.0-Go | 68,419 |
| 02 | SSH-2.0-libssh_0.9.6 | 20,591 |
| 03 | SSH-2.0-libssh_0.11.1 | 1,157 |
| 04 | SSH-2.0-PuTTY_Release_0.84 | 1,003 |
| 05 | SSH-2.0-libssh2_1.11.0 | 672 |
| 06 | SSH-2.0-AsyncSSH_2.1.0 | 609 |
| 07 | SSH-2.0-libssh_0.12.0 | 422 |
| 08 | SSH-2.0-libssh2_1.11.1 | 102 |
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.
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).
| Technique | Tactic | Observed |
|---|---|---|
| T1110.001 Brute Force: Password Guessing | Credential Access | 165,436 |
| T1021.004 Remote Services: SSH | Lateral Movement | 98,490 |
| T1059.004 Command and Scripting Interpreter: Unix Shell | Execution | 83,308 |
| T1021 Remote Services (Telnet) | Lateral Movement | 41,567 |
| T1078.001 Valid Accounts: Default Accounts | Initial Access | 10,151 |
| T1222.002 File and Directory Permissions Modification | Defense Evasion | 6,294 |
| T1082 System Information Discovery | Discovery | 6,074 |
| T1105 Ingress Tool Transfer | Command and Control | 4,009 |
| T1057 Process Discovery | Discovery | 969 |
| T1098.004 Account Manipulation: SSH Authorized Keys | Persistence | 552 |
| T1053.003 Scheduled Task/Job: Cron | Persistence | 531 |
| T1003.008 OS Credential Dumping: /etc/passwd and /etc/shadow | Credential Access | 31 |
| T1016 System Network Configuration Discovery | Discovery | 20 |
| T1070 Indicator Removal | Defense Evasion | 4 |
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.
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.
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.
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.
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.
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.
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.
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.
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.