]> gitweb.morketsmerke.org Git - mmdev.git/commitdiff
Tworzenie rozdziału 10. Kontynuacja pisania podrozdziału 10.5/10.5.3.netcat
authorxf0r3m <jakubstasinski@protonmail.com>
Wed, 30 Aug 2023 12:07:41 +0000 (14:07 +0200)
committerxf0r3m <jakubstasinski@protonmail.com>
Wed, 30 Aug 2023 12:07:41 +0000 (14:07 +0200)
articles/terminallog/Linux.Podstawy.html

index fd722bce61485584fb9e5b3821688cda5c3a731c..55f588336c8d2f5e8e3c993992ecc5eb5fb87490 100644 (file)
@@ -8906,6 +8906,110 @@ COMMAND PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
 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 &gt; 239.255.255.250.1900: UDP, length 175
+07:27:01.238437 IP vm-f48088c.mshome.net.46759 &gt; 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 &gt; 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 &gt; 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 &gt; 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 &gt; 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 &gt; 239.255.255.250.1900: UDP, length 175
+07:27:02.241843 IP DESKTOP-TMP2137.mshome.net.mdns &gt; 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 &gt; 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 &lt;interfejs&gt; 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;