From 262b6e24c83387388c1ab811c8b0f430d2f4fed0 Mon Sep 17 00:00:00 2001
From: xf0r3m
+ Niektóre maÅe usÅugi sieciowe takie jak np. telnetd - + demon usÅugi telnet czy klasyczna usÅuga FTP oraz wiele + innych posiadajÄ te same lub podobne wymagania dotyczÄ ce obsÅugi + sieci, zatem żeby nie implementowaÄ tego samego kodu. Twórcy tych + usÅug stworzyli superdemona on nazwie inetd i + najproÅciej rzecz ujmujÄ c jego zadaniem jest obsÅuga poÅÄ czeÅ: + otwieranie portów oraz przekierowywanie poÅÄ czeÅ już do wÅaÅciwych + usÅug. +
++ Na przestrzenii lat dziaÅania tego rozwiÄ zania powstaÅa nowsza + implementacja xinetd posiadajÄ ca lepsze mechanizmy + obsÅugi oraz kontroli poÅÄ czeÅ. +
++ Obecnie rzadko spotyka siÄ dziaÅajÄ cy demon inet lub + xinetd, zostaÅ on wyparty przez demona systemctl, + a demony które obsÅugiwaÅ obecnie posiadajÄ wÅasne implementacje + obsÅugi poÅÄ czeÅ, z biegiem lat rozszerzaÅy swoje możliwoÅci i + finalnie staÅy siÄ bardziej samodzielne. Wiele życzenia pozostawiaja + również kwestie bezpieczeÅstwa, chociaż wiele rzeczy zostaÅo + poprawionych miÄdzy oryginalnÄ implementacjÄ a xinetd. +
++ InnÄ równie archaicznÄ rzeczÄ jest wraper TCP w postaci + demona tcpd. Jego dziaÅanie przypomina nieco + dziaÅanie filtra sieciowego. ByÅ on wykorzystywany jeszcze zanim + takie rozwiÄ zania jak iptables zostaÅy na staÅe wdrożone + jako swoisty standard i podstawowy poziom ochrony. Zanim ruch z + inetd trafiÅ do wÅaÅciwego demona przechodziÅ przez ten + wraper. tcpd rejestrowaÅ poÅÄ czenie nastÄpnie konfrontowaÅ + je z listami dostÄpu /etc/hosts.allow lub + /etc/hosts.deny, na podstawie informacji ustalonych przez + wraper byÅ dopuszczany do wÅaÅciwego procesu lub nie. +
++ Plikowe listy kontroli dostÄpu mogÄ byÄ wykorzystywane w + dystrybucjach klasy enterprise, do ustalenia dostÄpu do wybranych + komponentów systemu. Takim przykÅadem może byÄ dostÄp do cron + (harmonogramu zadaÅ). WiÄcej informacji znajduje siÄ pod tym adresem: + https://morketsmerke.github.io/articles/terminallog/RedHat_-_RHCSA.html#8.2.1.scheduleaccesscontrol +
++ Podczas analizownia dziaÅania protokoÅu HTTP, na samym koÅcu + wspomniaÅem o innym sposobie poÅÄ czenia siÄ z serwerem WWW przy + użyciu programu telnet. Program ten może byÄ programem + diagnostycznym w podczas sprawdzania uruchomienia i dostÄpnoÅci + usÅugi. W wiÄkszoÅci dystrybucji program telnet trzeba + bÄdzie zainstalowaÄ z repozytorium. Jednak możemy w systemie + naleÅºÄ co najmniej jedno narzÄdzie, które jest nam wstanie zwróciÄ + jakieÅ informacje na temat usÅug sieciowych takim program jest + już omawiany ss. +
++ Wynik dziaÅania programu ss, byÅ już omawiany podczas + omawiania transmisji TCP w warstwie transportowej. Ale poniżej + znajdujÄ siÄ najważniejsze (dla celów diagnostycznych) opcje. +
++ Jesli pamiÄtamy z rozdziaÅu 8, polecenie lsof sÅuży + do wyÅwietlania otwartych plików w systemie. Z jego pomocÄ możemy + również wyÅwietliÄ poÅÄ czenia realizowane w systemie. Rola tego + polecenia może przypominaÄ ss, jednak polecenie lsof + do dziaÅania w obrÄbie caÅego systemu wymagajÄ uprawnieÅ + administratora, w przeciwnym razie polecenie wyÅwietli tylko i + wyÅÄ cznie poÅÄ czenia utworzne przez użytkownika, który wydaÅ to + polecenie. Aby móc wyÅwietliÄ poÅÄ czenia sieciowe przy użyciu + polecenia lsof należy użyÄ opcji -i, tak + jak przedstawiono to na poniższym poleceniu. +
++xf0r3m@vm-3d6b184:/media/xf0r3m/immudex_crypt0$ sudo lsof -i +COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME +systemd 1 root 35u IPv4 11469 0t0 TCP *:sunrpc (LISTEN) +systemd 1 root 36u IPv4 11472 0t0 UDP *:sunrpc +systemd 1 root 37u IPv6 11475 0t0 TCP *:sunrpc (LISTEN) +systemd 1 root 38u IPv6 11478 0t0 UDP *:sunrpc +rpcbind 427 _rpc 4u IPv4 11469 0t0 TCP *:sunrpc (LISTEN) +rpcbind 427 _rpc 5u IPv4 11472 0t0 UDP *:sunrpc +rpcbind 427 _rpc 6u IPv6 11475 0t0 TCP *:sunrpc (LISTEN) +rpcbind 427 _rpc 7u IPv6 11478 0t0 UDP *:sunrpc +avahi-dae 476 avahi 12u IPv4 13560 0t0 UDP *:mdns +avahi-dae 476 avahi 13u IPv6 13561 0t0 UDP *:mdns +avahi-dae 476 avahi 14u IPv4 13562 0t0 UDP *:33600 +avahi-dae 476 avahi 15u IPv6 13563 0t0 UDP *:34773 +NetworkMa 675 root 26u IPv4 14371 0t0 UDP vm-3d6b184.morketsmerke.org:bootpc->DDI1184JS.mshome.net:bootps +cupsd 790 root 6u IPv6 14463 0t0 TCP localhost:ipp (LISTEN) +cupsd 790 root 7u IPv4 14464 0t0 TCP localhost:ipp (LISTEN) +cups-brow 860 root 7u IPv4 15147 0t0 UDP *:631 +chronyd 883 _chrony 5u IPv4 14538 0t0 UDP localhost:323 +chronyd 883 _chrony 6u IPv6 14539 0t0 UDP localhost:323 +ssh 60722 xf0r3m 3u IPv4 187934 0t0 TCP vm-3d6b184.morketsmerke.org:36440->ip82-117-231-222.static.awhost.cloud:2022 (ESTABLISHED) ++
+ Na powyższym przykÅadzie możemy zauważyÄ, że wyjÅcie tego polecenia + jest trochÄ bardziej podrasowanym wyjÅciem polecenia ss. + Poza tym lsof daje nam możliwoÅÄ przefiltrowania listy + dostÄpnych poÅÄ czeÅ. Ogólny format filtru wyglÄ da nastÄpujÄ co: +
++$ sudo lsof -i[wersja_IP][protokóÅ]@[komputer]:[port] ++
+ OczywiÅcie istnieje peÅna dowolnoÅÄ w stosowaniu tych elementów, aby + to pokazaÄ przedstawiÄ kilka użytecznych filtrów: +
++xf0r3m@vm-3d6b184:/media/xf0r3m/immudex_crypt0$ sudo lsof -i4 -s TCP:LISTEN +COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME +systemd 1 root 35u IPv4 11469 0t0 TCP *:sunrpc (LISTEN) +rpcbind 427 _rpc 4u IPv4 11469 0t0 TCP *:sunrpc (LISTEN) +cupsd 790 root 7u IPv4 14464 0t0 TCP localhost:ipp (LISTEN) ++
+ Powyższy przykÅad przestawia wyÅÄ
cznie otwarte porty dla transmisji
+ TCP. W tym przypadku uzyskanie stanu poÅÄ
czenia
+ (LISTEN) wymaga podania dodatkowe
+ opcji (-s) a ona ma swojÄ
skÅadniÄ
+ dla wartoÅci: PROTOKOÅ:STAN.
+
+xf0r3m@vm-3d6b184:/media/xf0r3m/immudex_crypt0$ sudo lsof -iTCP@searx.morketsmerke.org +COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME +ssh 60722 xf0r3m 3u IPv4 187934 0t0 TCP vm-3d6b184.mshome.net:36440->ip82-117-231-222.static.awhost.cloud:2022 (ESTABLISHED) ++
+ Ciekawy przypadek mamy tutaj. Ponieważ wÅród poÅÄ
czeÅ TCP wyszukujemy
+ hosta o konkretnej nazwie. Nie dostajemy informacji zwrotnej, że coÅ
+ jest nie tak, wrÄcz przeciwnie uzyskujemy odpowiedź i to prawidÅowÄ
.
+ Adres searx.morketsmerke.org jest
+ odwzrowywany do 82.117.231.222, ale jeÅli skorzystamy z zamiany
+ adresu IP na nazwÄ domenowÄ
wówczas otrzymamy taki oto wynik:
+ ip82-117-231-222.static.awhost.cloud
+ WiÄc jeÅli adres searx.morketsmerke.org
+ jest tożsamy z
+ ip82-117-231-222.static.awhost.cloud,
+ co oznacza, że filtr jest jak najbardziej poprawny. Poniżej znajduje
+ siÄ ostatni już przykÅad:
+
+xf0r3m@vm-3d6b184:/media/xf0r3m/immudex_crypt0$ sudo lsof -i6UDP:323 +COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME +chronyd 883 _chrony 6u IPv6 14539 0t0 UDP localhost:323 ++
2022; COPYLEFT; ALL RIGHTS REVERSED;
-- 2.39.5