GNU/Linux >> Znalost Linux >  >> Linux

Jak používat Netcat ke skenování otevřených portů v Linuxu

Netcat (ve zkratce NC) je funkčně bohatý nástroj pro počítačové sítě, ladění a vyšetřování, který podporuje širokou škálu příkazů pro správu sítí a sledování toku dat o síťovém provozu mezi systémy pomocí protokolu TCP (Transmission Control Protocol) a protokolu User Datagram Protocol. (UDP).

Netcat může být velmi užitečným nástrojem pro správce sítě a systému, který jim umožní rychle rozpoznat, jak jejich síť funguje a jaký typ síťové aktivity se v systému vyskytuje.

V tomto článku probereme, jak nainstalovat a používat tento všestranný nástroj netcat k provádění jednoduchých skenů portů k identifikaci otevřených portů v systémech Linux.

Nainstalujte Netcat v Linuxu

Netcat by měl být dostupný na téměř všech moderních linuxových distribucích pomocí výchozího správce balíčků, jak je znázorněno.

$ sudo yum install nc         [On CentOS/RHEL/Rocky Linux/AlmaLinux]
$ sudo dnf install nc         [On Fedora 22+ and RHEL 8]
$ sudo apt install Netcat     [On Debian/Ubuntu]

Linuxové skenování portů pomocí příkazů Netcat

Jakmile budete mít na svém linuxovém serveru nainstalovaný obslužný program Netcat, můžete začít provádět skenování síťových portů, které zkontroluje stav všech portů na zadané doméně nebo IP adrese, abyste mohli zjistit, zda je v systému firewall nebo jiný blokovací mechanismus. místo.

Můžeme například skenovat všechny porty až do 1000 spuštěním následujícího příkazu pomocí -z možnost, která pouze prohledá místo pokusu o otevření připojení, a -v možnost upozornit netcat, aby poskytl podrobnější informace.

$ netcat -z -v google.com 1-1000
Or
$ nc -z -v google.com 1-1000

Výstup bude vypadat takto:

netcat: connect to google.com port 1 (tcp) failed: Connection timed out
netcat: connect to google.com port 1 (tcp) failed: Network is unreachable
netcat: connect to google.com port 2 (tcp) failed: Connection timed out
netcat: connect to google.com port 2 (tcp) failed: Network is unreachable
netcat: connect to google.com port 3 (tcp) failed: Connection timed out
netcat: connect to google.com port 3 (tcp) failed: Network is unreachable
netcat: connect to google.com port 4 (tcp) failed: Connection timed out
netcat: connect to google.com port 4 (tcp) failed: Network is unreachable
netcat: connect to google.com port 5 (tcp) failed: Connection timed out
netcat: connect to google.com port 5 (tcp) failed: Network is unreachable
....

Můžete také provést skenování portu na IP adresu pomocí -n možnost definovat, že nepotřebujete překládat IP adresu pomocí DNS.

$ netcat -z -n -v 192.168.0.173 1-1000
OR
$ nc -z -n -v 192.168.0.173 1-1000

Výstup bude vypadat takto:

netcat: connect to 192.168.0.173 port 1 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 2 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 3 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 4 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 5 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 6 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 7 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 8 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 9 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 10 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 11 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 12 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 13 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 14 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 15 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 16 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 17 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 18 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 19 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 20 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 21 (tcp) failed: Connection refused
Connection to 192.168.0.173 22 port [tcp/*] succeeded!
netcat: connect to 192.168.0.173 port 23 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 24 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 25 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 26 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 27 (tcp) failed: Connection refused
...

Z výše uvedeného výstupu jasně vidíte, že tradiční port SSH je otevřený v rozsahu 1–1000 na vzdáleném počítači.

Pokud chcete pouze vytisknout otevřené porty na obrazovku, musíte výstup filtrovat pomocí příkazu grep, jak je znázorněno.

$ netcat -z -n -v 192.168.0.173 1-1000 2>&1 | grep succeeded
OR
$ nc -z -n -v 192.168.0.173 1-1000 2>&1 | grep succeeded

Výstup:

Connection to 192.168.0.173 22 port [tcp/*] succeeded!
Connection to 192.168.0.173 80 port [tcp/*] succeeded!

Můžete také skenovat jednotlivé porty.

$ nc -zv 192.168.0.173 80
$ nc -zv 192.168.0.173 22
Or
$ nc -zv 192.168.0.173 http
$ nc -zv 192.168.0.173 ssh

[ Také by se vám mohlo líbit:Jak najít a zavřít otevřené porty v Linuxu ]

Pro více informací a použití si přečtěte manuálové stránky netcat.


Linux
  1. Jak používat BusyBox na Linuxu

  2. Jak používat Netcat k přenosu souborů v systému Linux

  3. Jak otevřít port v Linuxu

  1. Jak používám cron v Linuxu

  2. Jak zjistit seznam všech otevřených portů v Linuxu

  3. Jak používat Su Command v Linuxu

  1. Jak otevřít http port 80 v Redhat Linuxu pomocí firewall-cmd

  2. Jak zobrazit seznam otevřených portů na serveru Linux/Unix

  3. jak používat netstat na konkrétním portu v Linuxu