Netcat это классическая утилита Unix, позволяющая проверить открытые TCP и UDP порты на удаленном компьютере. Утилиту netcat можно использовать как в Linux, так и в Windows.
Установка netcat:
- В CentOS/RHEL:
$ sudo yum install nc
- В Debian/Ubuntu:
$ sudo apt update
$ sudo apt install netcat - В Windows: портированную версию netcat для Windows можно скачать здесь (https://eternallybored.org/misc/netcat/)
Несколько примеров использования netcat.
Проверка TCP 53 порта на удаленном компьютере:
$ nc -zv 192.168.13.10 53
[192.168.13.10] 53 (domain) open
В данном примере TCP порт 53 (DNS) отрыт.
–z
указывает, что нужно выполнить сканирование удаленного порта службы, фактически не отправляя данные-v
– включает подробный режим-n
– позволяет пропустить поиск в DNS (сканирование выполнится быстрее)
Можно просканировать несколько портов:
$ nc -nzv 192.168.13.10 445 3389 25
Или диапазон портов:
$ nc -nzv 192.168.13.10 20-30
Команда вернет список открытых портов в указанном диапазоне.
Можно проверить и UDP порты. Например, проверим открыт ли UDP порт 139 (NETBIOS Session Service):
$ nc -uv 192.168.13.10 139
В обоих случаях команда вернула, что указанный порт открыт.
Если порт закрыт, netcat вернет:
[192.168.13.12] 25 (smtp) : Connection refused.
Обратите внимание, что netcat возвращает название удаленного сервиса, если используется один из стандартных номеров портов TCP/UDP.
Утилита netcat также позволяет запустить прослушивание определенного порта на вашем компьютере. Используется команда:
nc -l 5000
В таком режиме все, что приходит на этот порт, выводится в консоль.