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.
+ jednej stronie uruchomimy serwer a po drugiej stronie podłączymy się
+ do niego, wygląda to mniej więcej tak:
+ </p>
+<pre class="code-block">
+xf0r3m@server:~$ nc -l 9595
+test
+test2
+Server: To jest wiadomość testowa. Proszę o odpowiedź.
+Klient: Odpowiedź na wiadomość testową.
+xf0r3m@client:~$ nc -N 172.24.171.253 9595
+test
+test2
+Server: To jest wiadomość testowa. Proszę o odpowiedź.
+Klient: Odpowiedź na wiadomość testową.
+</pre>
+ <p>
+ Na powyższym przykładzie zmieniłem nazwy hostów w znakach zachęty,
+ aby było wiadomo kto jest kim w tej komunikacji. Do uruchomienia
+ serwera na prawdę nie potrzeba wiele wystarczy podanie opcji
+ <code class="code-inline">-l</code>, która powoduje nasłuchiwanie
+ następnie ja podałem port, z tego co można wyczytać nas stronie
+ podręcznika tego narzędzia, to że możemy pominąć opcję odpowiedzialną
+ za wskazanie portu i podać sam numer portu oraz dodać do opcji adres
+ IP interfejsu, na którym serwer ma nasłuchiwać w tym przypadku opcję
+ opowiedzialną za ten funkcję też możemy pominąć.
+ </p>
+ <p>
+ Opcja <code class="code-inline">-N</code> podana przez klienta
+ powoduje, że jeśli wyślemy znak EOF (<em>End of File</em>, Ctrl+d),
+ to połaczenie zostanie zakończone i serwerów również zakończy swoją
+ pracę.
+ </p>
+ <p>
+ Domyślnie otwieranymi portami są porty TCP, jeśli jednak chcemy użyć
+ transmisji UDP należy podać <em>-u</em>.
+ </p>
+ <p>
+ W przypadku programu <em>netcat</em> naprawdę warto zapoznać się z
+ stroną podręcznika, po opisie wszystkich obsługiwanych opcji
+ znajdują się przykłady zastosowania tego narzędzia.
+ </p>
+ <h3 id="10.5.4.nmap">10.5.4. Program nmap - skanowanie portów</h3>
+ <p>
+ Program <strong>nmap</strong> jest dość ważnym narzędzie w rękach
+ większości administratorów, ma on masę możliwości jednak nas na
+ tym etapię będzie interesować możliwość odpytania hosta na różnych
+ portach i określenie czy możliwe jest połączenie z tymi portami.
+ Ta czynność nosi nazwę <strong>skanowania portów</strong> i w
+ niektórych sieciach bywa <em>nielegalna</em> (Więcej o tym w
+ podrozdziale dotyczącym bezpieczeństwa). Istnieje wiele metod
+ skanowania. A samo skanowanie może zostać rozszerzone np. próbę
+ zmuszenia usługi do powiedzenia czegoś więcej o sobie przez co
+ można poznać jaki system operacyjny jest zainstalowany na hoście,
+ które porty skanujemy.
+ </p>
+ <p>
+ Rodzajów skanowania jest kilka. Jednym z
+ prostszych i szybszych jest SYN. Polega ono na wysłaniu pakietu
+ inicjalizacji połączenia i kiedy uzyskamy odpowiedź na ten pakiet,
+ możemy uznać (oczywiście tylko wedle tej metody), że port jest
+ otwarty.
+ </p>
+<pre class="code-block">
+xf0r3m@searx:~$ sudo nmap -sS ftp.morketsmerke.org
+Starting Nmap 7.80 ( https://nmap.org ) at 2023-08-31 08:39 CEST
+Nmap scan report for ftp.morketsmerke.org (195.164.150.92)
+Host is up (0.040s latency).
+Not shown: 993 filtered ports
+PORT STATE SERVICE
+80/tcp open http
+113/tcp closed ident
+443/tcp open https
+2000/tcp open cisco-sccp
+2022/tcp open down
+5060/tcp open sip
+9090/tcp open zeus-admin
+
+Nmap done: 1 IP address (1 host up) scanned in 4.43 seconds
+</pre>
+ <p>
+ Na powyższym przykładzie przeskanowałem za pomocą metody
+ SYN jeden ze swoich serwerów. Program podczas skanowania może działać
+ znacznie dłużej niż tym przypadku w zależności od tego ile hostów
+ ma do przeskanowania lub jaki ma zakres portów. Zatem po uruchomieniu
+ skanowania zostanie nam przedstawiona tylko pierwsza linia. Po
+ zakończeniu skanowania zostanie nam zwrócony raport. Pierwsza linia
+ raportu zawienie nazwę hosta oraz jego adres IP.
+(<code class="code-inline">Nmap scan report for ftp.morketsmerke.org (195.164.150.92)</code>)
+ Następnie informacje o tym, że host jest dostępny opóźnieniach jakie
+ mogą wystąpić podczas komunikacji.
+ (<code class="code-inline">Host is up (0.040s latency).</code>)
+ Trzecia linia zawiera informacje o pokazywanych portach/usługach, ze
+ względu na to, że nie udało się uzyskać od nich żadnej odpowiedzi.
+ Nmap rozpoznaje trzy stany portu:
+ </p>
+ <ul>
+ <li><strong>open</strong> - Port jest otwarty, komunikacja jest
+ możliwa.</li>
+ <li><strong>closed</strong> - Port jest zamknięty, komunikacja nie
+ jest możliwa. Ten stan jest ustawiany kiedy strona zdalna
+ odpowiedziała, że taki port nie jest czynny na tym hoście</li>
+ <li><strong>filtered</strong> - Port jest filtrowany lub jego stan
+ jest nieznany. Ten stan jest ustawiany kiedy minie okres ważności
+ wysyłanych pakietów a strona skanująca nie dostanie żadnej
+ odpowiedzi. Stan ten jest ustawiany także dla niedostępnych portów
+ protokołu UDP ze zględu na charakterystykę tej transmisji.</li>
+ </ul>
+ <p>
+ Za pomocą skanowania portów możemy zauważyć różnicę miedzy akcjami
+ <em>drop</em> oraz <em>reject</em>, pakietu zapory <em>iptables</em>.
+ W przypadku akcji <em>drop</em>, stan portu będzie określony jako
+ <em>filtered</em>, a w przypadku <em>reject</em> <em>closed</em>.
+ </p>
+ <p>
+ Polecenie <em>nmap</em> poza wykrywanie dostępnych na hostach usług,
+ może zostać wykorzystane do odkrywania hostów w sieci, za pomocą
+ opcji <em>-sP</em> jako argument podając adres sieci w notacji
+ CIDR.
+ </p>
+ <p>
+ Opcji skanowania jest masa, funkcjonalność programu <em>Nmap</em>
+ można rozszerzyć za pomoca skryptów Lua. Więc jeśli nie mielśmy
+ styczności z tym programem warto się zapoznać stroną podręcznika.
</p>
+ <h2 id="10.6.rpc">10.6. Zdalne wywołanie procedury - RPC</h2>
</div>
<p style="margin: 15px; padding: 0; outline: 0;">
2022; COPYLEFT; ALL RIGHTS REVERSED;