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
426,001
lifetime · since the sensor went live
Last 24 hours
7,692
≈ one every 11 seconds
Distinct sources
11,697
lifetime · pseudonymized at ingest
First attack after going live
23 seconds
nobody was told this machine exists

updated 2026-09-22 09:52 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,409 / hour · UTC
last 30 days · peak 38,737 / 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
01United States187,65944.1%
02Netherlands90,40621.2%
03Germany18,6044.4%
04Singapore15,4473.6%
05China14,1903.3%
06France11,0472.6%
07United Kingdom10,1822.4%
08Indonesia7,7971.8%
09India7,0811.7%
10Andorra6,4961.5%

Top source networks (ASN)

AS197170TechTies Inc.210,700
AS398101GoDaddy.com, LLC181,882
AS14061DigitalOcean, LLC142,657
AS198364BANATSYNC SRL90,191
AS47890UNMANAGED LTD62,987
AS4837CHINA UNICOM China169 Backbone32,883
AS213790Limited Network LTD30,556
AS48090TECHOFF SRV LIMITED26,561
AS206264Amarutu Technology Ltd23,651
AS24940Hetzner Online GmbH20,548

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

IPv4 versus IPv6

login attempts · last 24 hours
IPv4100.0%of observed traffic
IPv60.0%of observed traffic

The sensor listens on both address families. IPv4 is scanned by mature botnets that can sweep its smaller address space cheaply; IPv6 is vast enough that blind scanning is far less practical. This is a comparison of traffic that reached this one sensor, not a measure of either protocol's security.

05

What they try

most-attempted credentials
#Username / passwordTries
01enable\x00/linuxshell\x0045,198
02system\x00/shell\x0040,974
03sh\x00//bin/busybox UNSTABLE\x0014,875
04admin/admin4,407
05root/xc35114,001
06root/admin3,707
07root/root3,670
08root/vizxv3,636
09support/support3,336
10root/1234562,698
11root/8888882,320
12root/default2,182
13root/123452,176
14root/xmhdipc2,039
15root/juantech2,033
16root/1,982
17root/543211,958
18user/user1,933
19admin/password1,901
20admin/1,535

Top usernames

01root135,341
02enable\x0045,788
03system\x0040,974
04admin27,085
05sh\x0014,875
06ubuntu7,354
07user6,666
08support3,890
09deploy3,080
10test3,011

Top passwords

01linuxshell\x0045,198
02shell\x0040,974
0312345615,282
04/bin/busybox UNSTABLE\x0014,875
05admin8,899
061236,622
07password6,554
0812346,524
09root5,718
10123455,217

Attack tooling (SSH client banners)

01SSH-2.0-Go184,044
02SSH-2.0-libssh_0.9.644,996
03SSH-2.0-libssh_0.11.12,844
04SSH-2.0-PuTTY_Release_0.842,359
05SSH-2.0-libssh2_1.11.01,388
06SSH-2.0-AsyncSSH_2.1.0966
07SSH-2.0-libssh_0.12.0634
08SSH-2.0-libssh2_1.11.1235

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.

06

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 Access426,001
T1021.004 Remote Services: SSHLateral Movement254,192
T1059.004 Command and Scripting Interpreter: Unix ShellExecution143,717
T1021 Remote Services (Telnet)Lateral Movement92,724
T1078.001 Valid Accounts: Default AccountsInitial Access19,641
T1082 System Information DiscoveryDiscovery14,917
T1222.002 File and Directory Permissions ModificationDefense Evasion8,816
T1105 Ingress Tool TransferCommand and Control6,686
T1057 Process DiscoveryDiscovery1,751
T1098.004 Account Manipulation: SSH Authorized KeysPersistence1,317
T1053.003 Scheduled Task/Job: CronPersistence1,270
T1003.008 OS Credential Dumping: /etc/passwd and /etc/shadowCredential Access65
T1016 System Network Configuration DiscoveryDiscovery50
T1070 Indicator RemovalDefense Evasion9

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.

07

What would have stopped this

per attack class, the boring control that works
Password guessing · observed 426,001×

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 19,641×

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 15,502×

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 2,587×

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 16,783×

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.

08

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. It uses Vercel Web Analytics for anonymous, aggregate page-view statistics. Geolocation for attack traffic is resolved from database files held on the server, so an observed attack 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.