chronyd 883 _chrony 6u IPv6 14539 0t0 UDP localhost:323
</pre>
<h3 id="10.5.2.tcpdump">10.5.2. tcpdump</h3>
+ <p>
+ Innym narzędziem, dzięki któremu możemy śledzić ruch sieciowy jest
+ <strong>tcpdump</strong>. Program ten działa na takiej zasadzie, że
+ rejestruje każdy pakiet, który będzie pojawiać się na kartach
+ sieciowych naszego komputera. Zakres działania urządzenia jest bardzo
+ szeroki gdyż zbiera on zarówno pakiety aplikacji takie jak DNS czy
+ inne jak komunikaty protokołu ARP.
+ </p>
+<pre class="code-block">
+xf0r3m@vm-f48088c:/media/xf0r3m/immudex_crypt0$ sudo tcpdump
+tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
+listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
+07:27:01.136396 IP DESKTOP-TMP2137.mshome.net.60948 > 239.255.255.250.1900: UDP, length 175
+07:27:01.238437 IP vm-f48088c.mshome.net.46759 > DESKTOP-TMP2137.mshome.net.domain: 9527+ PTR? 250.255.255.239.in-addr.arpa. (46)
+07:27:01.244853 IP DESKTOP-TMP2137.mshome.net.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 250.255.255.239.in-addr.arpa.local. (52)
+07:27:01.247220 IP DESKTOP-TMP2137.mshome.net.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 250.255.255.239.in-addr.arpa.local. (52)
+07:27:01.250774 IP6 DESKTOP-TMP2137.morketsmerke.org.mdns > ff02::fb.mdns: 0 PTR (QM)? 250.255.255.239.in-addr.arpa.local. (52)
+07:27:01.252918 IP6 DESKTOP-TMP2137.morketsmerke.org.mdns > ff02::fb.mdns: 0 PTR (QM)? 250.255.255.239.in-addr.arpa.local. (52)
+07:27:02.142559 IP DESKTOP-TMP2137.mshome.net.60948 > 239.255.255.250.1900: UDP, length 175
+07:27:02.241843 IP DESKTOP-TMP2137.mshome.net.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 250.255.255.239.in-addr.arpa.local. (52)
+07:27:02.242557 IP6 DESKTOP-TMP2137.morketsmerke.org.mdns > ff02::fb.mdns: 0 PTR (QM)? 250.255.255.239.in-addr.arpa.local. (52)
+</pre>
+ <p>
+ W moim przypadku zostało tylko złapanych kilka zapytań w przód do
+ usługi Multicast-DNS do serwera na którym hostuje maszynę wirtualną.
+ Uruchamiając ten program od ręki, nie dokonując żadnych zmian w
+ systemie wyłapiemy tylko pakiety adresowane do nas lub wysyłane
+ przez nas. Teoretycznie powinniśmy przełączyć nasz interfejs w tryb
+ nasłuchiwania (<em>promiscous mode</em>) możemy to zrobić za pomocą
+ poniższego polecenia:
+ </p>
+<pre class="code-block">
+xf0r3m@immudex:~$ sudo ip link set <interfejs> promisc on
+</pre>
+ <p>
+ Niestety w obecnych konfiguracjach sieci to narzędzie może sprawdzić
+ się głównie w sieciach bezprzewodowych do przechwycenia komunikatów
+ warsty łącza danych, chyba że sieć jest w pełni otwarta. Sieci
+ kablowe są obecnie zbudowane na przełącznikach, a te powodują
+ bezpośrednią komunikację w sieci, więc teoretycznie nie ma możliwości
+ aby pakiety niezaadresowane do naszej karty do niej trafiły.
+ Oczywście, tylko teoretycznie, bowiem inteligentne przełączniki
+ (większość przełączników zarządzalnych) pozwalają na
+ tzw. <em>port mirror</em>. Ustawienie portu w ten tryb oraz wybranie
+ portu docelowego spowoduje, że to coś się pojawi na porcie docelowym
+ trafi również to portu z ustawioną tą funkcją. Wówczas możemy
+ monitorować ruch z jednego komputera, chyba że będzie kopiować ruch
+ z portu, który łączy nasz przełącznik z pozostałą częścią sieci.
+ Jednak wówczas będziemy monitorować jedynie ruch wychodzący i
+ przychodzący do tego segmentu. Natomiast komunikacja między
+ komputerami tego samego segmentu może pozostać dalej nie osiągalna.
+ </p>
+ <p>
+ Nie mniej jednak jeśli już przyjdzie nam pracować z tym programem
+ to musimy wiedzieć jego działania odbywa się na zasadzie filtrów.
+ Filtry <em>tcpdump</em> składaja się (oczywiscię te proste) z
+ elementów pierwotnych (z ang. <em>primitives</em>) oraz z operatorów
+ takich jak <em>and</em>, <em>or</em> lub wykrzyknik
+ (<strong>!</strong>) powodujący negacje całego filtru. Poniżej
+ znajduje się lista elementów pierwotnych:
+ </p>
+ <ul>
+ <li><code class="code-inline">tcp</code> - transmisja TCP</li>
+ <li><code class="code-inline">udp</code> - transmisja UDP</li>
+ <li><code class="code-inline">ip4</code> - pakiety IPv4</li>
+ <li><code class="code-inline">ip6</code> - pakiety IPv6</li>
+ <li><code class="code-inline">port nr_portu</code> - port</li>
+ <li><code class="code-inline">host ip_komputera</code> - host</li>
+ <li><code class="code-inline">net adres_podsieci</code> - sieć</li>
+ </ul>
+ <p>
+ Tworząc filtr oparty na sieci jako wartość elementu
+ <code class="code-inline">net</code> podajemy adres podsieci np.
+ <em>192.168.8.0</em>. Poniższe polecenie wyświetlinam pakiety UDP,
+ połączenia HTTPS oraz połączenia SSH.
+ </p>
+<pre class="code-block">
+xf0r3m@immudex:~$ sudo tcpdump udp or port 443 or port 22
+</pre>
+ <p>
+ To co zostało przedstawione powyżej to tylko mała część możliwosci
+ filtrowania ruchu zbieranego przez <em>tcpdump</em>. Więcej
+ informacji na temat filtrów możemy znaleźć na stronie podręcznika:
+ <code class="code-inline">man pcap-filter</code> (<em>pcap</em> to
+ biblioteka odpowidzialna zbieranie pakietów).
+ </p>
+ <p>
+ <em>tcpdump</em> jest tekstowym odpowiednikiem podobnego narzędzia
+ działającego w oknie - programu <strong>Wireshark</strong>.
+ </p>
+ <h3 id="10.5.3.netcat">10.5.3. Program netcat</h3>
+ <p>
+ Jest to program sieciowy o ogromnych możliwościach. Zwany często
+ szwajcarskim scyzorykiem. Za jego pomoca możemy sprawdzić dostępność
+ usługi, czy otworzyć port a następnie przekierować dane z polecenia
+ na standardowe wyjście. Jesli ktoś się podłączy do tego i przekieruje
+ standardowe wejście, na przykład za pomoca <strong>netcata</strong>.
+ Wówczas klient będzie mógł wysyłać do serwera komunikaty tekstowe,
+ które będą się wyświetlać w terminalu serwera. Serwer również będzie
+ mógł wysyłać komunikaty wpisując bezpośrednio w to samo okno
+ terminala, w którym działa proces. Na nasze szczęście program
+ <em>nc</em> sam dokonuje takich przekierowań i wystarczy, że po
+ jednej stronie uruchomimy serwer a po drugiej stronie.
+ </p>
</div>
<p style="margin: 15px; padding: 0; outline: 0;">
2022; COPYLEFT; ALL RIGHTS REVERSED;