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.