Определить открыты порты, сетевые соединения, можно несколькими способами с помощью netstat, nmap, lsof, ss, netcat. Давайте рассмотрим примеры.
netstat - показывает сетевые соединения (исходящие/входящие), статистику по сетевым интерфейсам, список открытых портов таблицу маршрутизации и т.д.
Покажет список всех открытых портов (TCP)
Покажет список всех открытых портов (UDP)
Покажет список только прослушиваемых портов (TCP)
Покажет статистику по всем открытым портам
Чтобы проверить порт 834
Покажет подробное отображение списка с открытыми портами - добавлен PID и имя процесса
Просмотр открытых TCP/UDP портов и имя процесса
Покажет список подключенных хостов
nmap - сканер портов
Определит, какие порты ждут TCP-соединений из сети
lsof - умеет отображать процессы, которые работают с определенным файлом или сокетом.
Посмотреть список всех сетевых соединений
Посмотреть список процессов, работающих с портом 80
Чтобы проверить порт 834, может связать открытые порты со службами
ss - умеет просматривать информацию об используемых сокетах в системе.
Команда ss и netstat схожи по функционалу. Но ss умеет фильтровать вывод по установленным соединениям с определенным портом.
Посмотреть список процессов, использующие соединения в данный момент
Посмотреть список сокетов в режиме прослушивания
Привожу пример фильтра - список всех соединений к порту 80
netcat - позволяет принимать/передавать данные через TCP/UDP соединения.
Вот шаблон вызова утилиты
Давайте откроем прием (ключ -l) данных на порте 2000 с подробным выводом информации (ключ -v) а так же с продолжением работы после разрыва соединения (ключ -k). По умолчанию nc разрывает соединение после первого дисконекта.
Подключаемся к открытому порту и отправим import wizards
Пример интересного использования nc - это передача файла.
На принимающей стороне
На отправляющей стороне
Так же можно отдавать файл любому подключившемуся.
На передающей стороне
На принимающей стороне
Вот пример открытия shell'а на определенном порте. На стороне, где нужно открыть шел
Еще один интересный пример с netcat - запуск процесса, с возможностью отслеживания его работы через сеть