Использование команды netstat для просмотра открытых портов

Использование утилиты Angry IP Scanner

Angry IP Scanner — это бесплатное решение по сканированию портов компьютера или сервера.

Скачать утилиту https://angryip.org/

Обращаю внимание, что для работы приложения у вас должна быть установлена Java на компьютере, где будите производить запуск вашего порт-сканера, иначе не заработает ничего

Установка Angry IP Scanner очень тривиальная ,на этом я останавливаться не буду, от вас потребуется везде нажать далее. Открываем ваш сканер портов. Я это буду делать на своем тестовом контроллере домена. Когда вы откроете свой сканер портов, у вас будет форма выбора диапазона IP адресов в вашей локальной сети. Так же вы можете указать список адресов из текстового файла.

Структура такого файла представлена на картинке, тут ip-адреса идут с новой строки.

Если вы сканируете порты у целой подсети, то вам нужно указать ее префикс (Маску). После чего нажимаем «Старт».

Наш сканер открытых портов начнет планомерно проверять каждого участника. Цветовое обозначение узлов:

  • Синий цвет означает, что данный хост доступен, но для него не заданы порты сканирования, об этом так же говорит статус «Ports n/s (Not/Scan)»
  • Зеленый цвет, что хост доступен и для него определены порты для сканирования
  • Красный цвет — не доступен

Настроим диапазон портов, которые я бы хотел проверить на предмет их прослушивания. Для этого нажмите значок шестеренки. В открывшемся окне перейдите на вкладку порты. В поле выбора порта укажите диапазон, в моем примере, это будет диапазон от 1 до 1024. Именно его мы и будем проверять.

У вас в столбце Ports изменится значение, нажимаем кнопку «Старт».

Начинается процесс обращения к портам, хочу отметить, что сама процедура не быстрая и идет в 100 потоков, но так же у каждой операционной системы свои лимиты и тайминги. В итоге вы увидите в столбце Ports список портов, которые прослушивает ip адрес сервера, к которому было обращение. Мы таким образом определяли порты Active Directory. Angry IP Scanner имеет и дополнительные встроенные утилиты, кликните правым кликом по нужному хосту и из пункта «Открыть» вы можете увидеть их:

  • Windows Shares — будет открыт проводник с сетевыми шарами сервера
  • Web Browser — откроет в браузере 80 порт для данного хоста
  • FTP — попробует подключиться к FTP
  • Telnet
  • Ping — будет открыта командная строка в которой будет запущен пинг
  • Trace route — запуск в командной строке утилиты tracert
  • Geo Locate
  • Email sample

Еще интересным моментом у Angry IP Scanner может выступать добавление дополнительных полей. Для этого нажмите кнопку в виде параллельных палочек. В открывшемся окне с помощью стрелок переместите нужные поля. Я для примера добавил TTL и MAC Address.

При необходимости программа сканера портов легко может экспортировать полученные данные в текстовый файл для дальнейшего изучения. Сделать это можно из меню «Сканирование» или нажатие клавиш Ctrl+S.

Отчет будет выглядеть вот в такой форме.

Проверка открытых портов с помощью PortQry.exe

PortQry.exe представляет собой ещё один удобный инструмент для сканирования открытых портов. Нужно скачать PortQry и распаковать для запуска через командную строку. Можно скачать PortQryUI в качестве надстройки, чтобы не использовать командную строку. Вместо неё есть графический интерфейс (GUI) для PortQry.

С помощью portqry.exe вставляются определённые параметры, доступные в папке с исполняемым файлом.

Как запустить PortQry.exe с помощью командной строки

1. Скачайте PortQry, разархивируйте файлы в выбранное место. По умолчанию это «C:\», но его можно изменить.

2. Если выбран каталог по умолчанию, введите в командной строке cd c:\PortQryV2\, чтобы указать расположение исполняемого файла.

3. Если выбран другой каталог, введите cd :\\\, подставив нужные имена. Укажите все необходимые папки.

4. Введите portqry.exe -local для запуска. Эта команда отображает используемые порты TCP и UDP для локального хоста.

5. В дополнение ко всем отображаемым NetStat параметрам Portqry ещё показывает количество сопоставлений портов и количество портов в каждом состоянии.

6. Можно проверить наличие открытых портов для удалённого хоста. Запустите в командной строке portqry.exe -n [имя хоста/IP]. Убедитесь, что поменяли имя хоста и IP-адрес на имя и IP-адрес удалённого хоста.

7. Чтобы найти определённый порт, можно добавить в командную строку -e .

Как запустить PortQry.exe с помощью надстройки пользовательского интерфейса

Для любителей графического интерфейса вместо команд в PortQry.exe, Microsoft предлагает надстройку PortQryUI.

PortQryUI уже содержит необходимую версию PortQry, поэтому для её использования не нужно скачивать то и другое.

1. Скачайте PortQryUI, разархивируйте файлы в выбранное место. По умолчанию это «C:\», но его можно изменить.

2. Запустите «Проводник Windows» и перейдите к местоположению файла PortQryUI.exe. Нажмите на него для запуска пользовательского интерфейса.

3. Для просмотра портов TCP и UDP локального хоста (вашего компьютера) оставьте IP-адрес назначения 127.0.0.1, чтобы он проходил через сетевые устройства и настройки конфигурации (сетевая карта, конфигурация маршрутизатора и т. д.), а не только считывался с локального ПК.

4. Для просмотра всех портов TCP и UDP нажмите «Ввод портов запроса вручную», затем введите «1-65535» в разделе «Порты для запроса». Выберите «TCP», «UDP» или «Оба» в раскрывающемся списке «Протокол».

5. Для фильтрации списка портов TCP/UDP нажмите «Запросить предопределённую службу», затем выберите службу для запроса. Можно выбирать одну за раз.

6. Можно проверить удалённый хост, изменив полное доменное имя или домен в поле запроса наверху.

7. Для проверки определённого порта введите номер в поле «Порты для запроса».

Звёздочка (*) вместо адреса или порта

Мы можем увидеть записи вроде *:80 или даже *:*

Здесь звёздочка означает любой адрес или любой порт. Например, *:80 в колонке Local Address:Port (Локальный адрес:Порт) означает, что прослушивается 80 порт сразу на всех сетевых интерфейсах, доступных в данной системе

То есть служба ответит на запрос к 80 порту откуда бы он не пришёл: из локальной сети, из глобальной сети (если есть прямое соединение и интерфейс с белым IP) или с закольцованного адреса — это неважно, служба всё равно примет это соединение.

Кстати, служба может прослушивать порт в соответствии со следующими правилами:

  • может прослушиваться конкретный порт для одного IP адреса
  • может прослушиваться конкретный порт для любого IP адреса

То есть порт должен в любом случае быть указан, поэтому для Local Address:Port (Локальный адрес:Порт) допустима запись *:80, но запись вида *:* никогда не встретится в этом столбце.

Для Peer Address:Port (Удалённый адрес:Порт) запись *:* означает, что принимаются соединения от любого IP, отправленные с любого порта.

Кстати, просто для справки: если ваш компьютер подключается к веб сайту, то веб сайты обычно работают на 80 и 443 портах. Следовательно, веб браузер подключается именно к 80 порту (или 443, если это безопасное HTTPS соединение). Но на вашем компьютере открывается новое соединение на каком угодно, но только не на 80 и 443 портах — обычно используются порты с номерами >30000, например, на вашем компьютере может быть открыто исходящее соединение с портом 42063 и оно будет адресовано к 80 порту какого-либо веб сервера.

На какие открытые порты нужно обращать внимание

Я упоминал, что если на компьютер попала вредоносная программа, которая открыла соединение для связи со злоумышленником, то она будет прослушивать один из портов. В этом случае для TCP состояние подключения будет LISTENING или ESTABLISHED. Протокол UDP является «безстатусным», поэтому для него ничего не пишется, но нужно знать, что через UDP точно также может происходить обмен информацией.

Нужно помнить, что легитимные службы, которые открыты для доступа из вне, могут быть подвергнуты атакам, например, брут-форс пароля или эксплуатация уязвимостей. Что касается вредоносных программ, то они могут использовать любые порты

Поэтому нет готового списка портов, на которые нужно обращать внимание. Любой порт может быть признаком проблемы с безопасностью компьютера.

Нужно проверить, какие именно файлы и службы открыли соединение

Если исполнимый файл, открывший сетевого соединение, размещён в сомнительном месте, в папках, куда обычно не устанавливают программы, то нужно особое внимание обратить на этот файл.. Трояны и бэкдоры могут действовать двумя методами:

Трояны и бэкдоры могут действовать двумя методами:

  • открывать порт и ждать подключения злоумышленника;
  • самостоятельно подключаться к удалённой системе злоумышленника.

При втором варианте состояние подключения НЕ будет LISTENING — вредоносную программу можно найти только путём полного анализа всех соединений.

Как правило, службы, которые прослушивают только IP адрес 127.0.0.1, то есть слушающие на петлевых интерфейсах, предназначены для обслуживания каких-либо легитимных программ, запущенных на вашей системе.

Пример анализа открытых портов

Я начну с анализа открытых портов на Linux. Просто потому, что мне так проще, а затем мы постепенно перейдём изучить открытые порты на Windows.

Пример информации об открытых портах, полученных командой:

sudo ss -tulpn

Пример прослушиваемых портов на Linux:

Netid State   Recv-Q   Send-Q         Local Address:Port     Peer Address:Port                                                                                  
udp   UNCONN  0        0           10.0.2.15%enp0s3:68            0.0.0.0:*      users:(("NetworkManager",pid=318,fd=17))                                       
udp   UNCONN  0        0                  127.0.0.1:5300          0.0.0.0:*      users:(("tor",pid=359,fd=7))                                                   
tcp   LISTEN  0        128                127.0.0.1:9040          0.0.0.0:*      users:(("tor",pid=359,fd=8))                                                   
tcp   LISTEN  0        128                127.0.0.1:8118          0.0.0.0:*      users:(("privoxy",pid=362,fd=3))                                               
tcp   LISTEN  0        128                127.0.0.1:9050          0.0.0.0:*      users:(("tor",pid=359,fd=6))                                                   
tcp   LISTEN  0        128                127.0.0.1:9475          0.0.0.0:*      users:(("httpd",pid=553,fd=5),("httpd",pid=552,fd=5),("httpd",pid=551,fd=5),("httpd",pid=550,fd=5),("httpd",pid=549,fd=5),("httpd",pid=360,fd=5))
tcp   LISTEN  0        128                        *:80                  *:*      users:(("httpd",pid=553,fd=4),("httpd",pid=552,fd=4),("httpd",pid=551,fd=4),("httpd",pid=550,fd=4),("httpd",pid=549,fd=4),("httpd",pid=360,fd=4))
tcp   LISTEN  0        128                        *:22                  *:*      users:(("systemd",pid=1,fd=55))                                                
tcp   LISTEN  0        128                        *:443                 *:*      users:(("httpd",pid=553,fd=7),("httpd",pid=552,fd=7),("httpd",pid=551,fd=7),("httpd",pid=550,fd=7),("httpd",pid=549,fd=7),("httpd",pid=360,fd=7))
tcp   LISTEN  0        80                         *:3306                *:*      users:(("mysqld",pid=427,fd=21))            

В выводимых данных имеются следующие поля:

  • Netid — протокол udp или tcp
  • State — состояние, для протоколов TCP здесь будет LISTEN (поскольку мы явно указали в опциях показать только прослушиваемые порты), а для протоколов UDP здесь будет UNCONN, то есть состояние неизвестно, но, на самом деле, это тоже прослушиваемые порты, которые позволяют подключаться из вне
  • Recv-Q — получено
  • Send-Q — отправлено
  • Local Address:Port — локальный адрес и порт, к которому привязана служба, то есть IP адрес и порт, которые прослушиваются
  • Peer Address:Port — удалённый адрес и порт, к которым выполнено соединение.

Рассмотрим, что означает запись 127.0.0.1:9050: она говорит о том, что прослушивается порт 9050. Причём он прослушивается только для IP адреса 127.0.0.1. Адрес 127.0.0.1 относится к так называемым Loopback, то есть это замыкающийся на себя, закольцованный адрес. Сетевой интерфейс с этим адресом называется петлевым. Пакеты, которые отправляются с компьютера на этот адрес, приходят на этот же самый компьютер (точнее говоря, они никуда даже не уходят). Доступ к этому адресу может иметь только служба, работающая на этом же самом компьютере

Отсюда важное следствие: хотя порт 9050 прослушивается, никто другой не может к нему подключиться из любой сети. Это же относится и к адресам из диапазона ::1/128 — это такие же адреса, но уже для IPv6, в IPv6 аналог для 127.0.0.1 это ::1 (тоже часто можно видеть в выводимой информации).

Если прослушиваются какие-либо адреса из локальных

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
  • 127.0.0.0/8

то к таким портам могут подключиться только компьютеры, расположенные в этих самых локальных сетях (если не настроить особым образом маршрутизацию или проброску портов (port forwarding)).

Для вывода прослушиваемых портов и уже установленных сетевых подключений используйте следующую команду:

sudo ss -tupn

Методы сканирования портов

Сканирование портов отправляет тщательно подготовленный пакет на каждый номер порта назначения. Основные методы, которые может использовать программное обеспечение для сканирования портов:

Ваниль (Vanilla) — самый простой скан; попытка подключиться ко всем 65 536 портам по по очереди. Ванильное сканирование — это полное сканирование соединения, то есть оно отправляет флаг SYN (запрос на подключение) и после получения ответа SYN-ACK (подтверждение подключения) отправляет обратно флаг ACK. Этот обмен SYN, SYN-ACK, ACK включает квитирование TCP. Полное сканирование подключений является точным, но очень легко обнаруживается, поскольку все подключения всегда регистрируются брандмауэрами.

  • Сканирование SYN (SYN Scan) — также называется полуоткрытым сканированием, оно только отправляет SYN и ожидает ответа SYN-ACK от цели. Если ответ получен, сканер никогда не отвечает. Так как соединение TCP не было установлено, система не регистрирует взаимодействие, но отправитель узнал, открыт порт или нет.
  • Сканирование XMAS и FIN (XMAS and FIN Scans) — набор сканирований, используемых для сбора информации без регистрации в целевой системе. При сканировании FIN незапрошенный флаг FIN (обычно используемый для завершения установленного сеанса) будет отправлен на порт. Ответ системы на этот случайный флаг может показать состояние порта или брандмауэр. Например, закрытый порт, который получает незапрошенный пакет FIN, ответит пакетом RST (мгновенный прерывание), но открытый порт проигнорирует его. Сканирование XMAS просто отправляет набор всех флагов, создавая бессмысленное взаимодействие. Ответ системы может быть интерпретирован для лучшего понимания портов системы и брандмауэра.
  • Сканирование отказов FTP (FTP Bounce Scan) — позволяет замаскировать местоположение отправителя путем пересылки пакета через FTP-сервер. Это также предназначено для отправителя, чтобы остаться незамеченным.

Сканирование развертки (Sweep scan) — пингует один и тот же порт на нескольких компьютерах, чтобы определить, какие компьютеры в сети активны. Это не раскрывает информацию о состоянии порта, а сообщает отправителю, какие системы в сети активны. Таким образом, его можно использовать как предварительное сканирование.

Службы *.socket

В Linux вместо запуска службы на определённом порту можно настроить сокет для прослушивания порта. Схема работы следующая: сетевая служба (например, это можно настроить для SSH) по умолчанию не запущена и, следовательно, не потребляет системные ресурсы. Тем не менее её порт прослушивается системным процессом, который и без того бы работал. Как только на этот порт (допустим на 22) поступает запрос соединения, системный процесс запускает нужную службу, и она начинает работать как будто бы всегда была включена. После прекращения связи, служба вновь отключается, и порт вновь начинает прослушивать системный процесс.

В этом случае в качестве программы, открывшей порт, не указывается служба, которая фактически будет работать с поступившим соединением.

Например, для SSH netstat будет показывать примерно следующие данные (1/init вместо sshd):

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 :::22                   :::*                    LISTEN      1/init 

А ss будет показывать примерно так:

Netid       State        Recv-Q       Send-Q        Local Address:Port        Peer Address:Port
tcp         LISTEN       0            128           *:22                      *:*                    users:(("systemd",pid=1,fd=44))

Что означает 0.0.0.0 в netstat. Различные виды нотаций в netstat и ss

0.0.0.0 — это самый первый IP адрес. Но он относится к IP специального назначения (как например 127.0.0.1) и выполняет разные функции.

Обозначение 0.0.0.0 может иметь разное значение в зависимости от того, где используется. Когда говорят о прослушиваемых портах, это обозначение в Linux символизирует заполнитель, то есть означает «любой IP адрес».

Чем это отличается от * (звёздочки) или от записи :::, которые также встречаются в выводе рассматриваемых программ? В программе ss IPv6 адрес 0:0:0:0:0:0:0:0 (который является аналогом IPv4 адреса 0.0.0.0) обозначается звёздочкой (*). Следовательно, в ss запись 0.0.0.0:* обозначает «любой IPv4 адрес с любого порта». А обозначение *:* символизирует «любой IPv6 адрес с любого порта».

В программе netstat также используется запись 0.0.0.0:* которая также обозначает «любой IPv4 адрес с любого порта».

Но в netstat для обозначения «любой IPv6 адрес с любого порта» используется :::*

Помните об этих различиях, чтобы не запутаться. А также помните о том, что если показано, что прослушивается протокол tcp6 (IPv6), то одновременно может прослушиваться порт и на tcp (IPv4) — при этом данные в выводимой информации отсутствуют!

В Windows в качестве Local Address (Локального адреса), когда прослушивается любой IP адрес на определённом порту, используется запись вида 0.0.0.0:80 (в этом примере прослушивается любой IP адрес, доступный в системе, на 80 порту). Для IPv6 адресов в этом случае используется запись вида :80.

В качестве внешнего адреса, когда доступно подключения с любого IP и с любого порта, для TCP протокола пишется 0.0.0.0:0, а для UDP протокола в этих же условиях пишется *:*. Что тоже не особо логично и сбивает с толку. Точнее говоря такое различие в обозначениях вытекает из разницы протоколов TCP и UDP.

Если информация относится к IPv6, то для TCP когда имеется ввиду любой адрес на любом порту, используется запись вида :0. А для UDP используются одинаковые нотации как для IP, так и для IPv6, то есть *:*

Нужно помнить, что некоторые из этих обозначений пересекаются с нотациями из Linux, где они имеют своё собственное значение.

Чтобы чуть облегчить жизнь, я составил такую табличку, которую можно использовать в качестве шпаргалки:

Определённый локальный IPv4 адрес на определённом порту

Любой локальный IPv4 адрес на определённом порту

Определённый локальный IPv6 адрес на определённом порту

Любой локальный IPv6 адрес на определённом порту

Любой внешний IPv4 адрес на любом порту

Любой внешний IPv6 адрес на любом порту

Netstat (Windows)

127.0.0.1:9050

0.0.0.0:80

:80

:443

Для TCP: 0.0.0.0:0

Для UDP: *:*

Для TCP: :0

Для UDP: *:*

Netstat (Linux)

2a02:f680:1:1100::3d:80

:::443

0.0.0.0:*

:::*

ss (Linux)

:80

*:443

0.0.0.0:*

*:*

ИЛИ

:*

Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана

Если кратко описать мое отношение к Postgres: Использовал до того, как это стало мейнстримом.
Конкретнее: Собирал на нем сервера для компаний среднего размера (до 50 активных пользователей 1С).
На настоящий момент их набирается уже больше, чем пальцев рук пары человек (нормальных, а не фрезеровщиков).
Следуя этой статье вы сможете себе собрать такой же и начать спокойную легальную жизнь, максимально легко сделать первый шаг в мир Linux и Postgres.
А я побороться за 1. Лучший бизнес-кейс (лучший опыт автоматизации предприятия на базе PostgreSQL).
Если, конечно, статья придется вам по вкусу.

TCP и UDP

TCP и UDP это протоколы транспортного уровня. Самое главное что вам нужно о них знать: любой из них может использоваться для передачи информации.

Кстати, про протокол TCP вы практически наверняка слышали, по крайней мере должны были встречать запись TCP/IP — эта связка протоколов очень важна для Интернета. Протокол IP отвечает за то, куда отправлять данные, а TCP отвечает за непосредственную передачу данных и проверку их целостности.

Работу протокола TCP можно представить как создание соединения между двумя компьютерами, по этому соединению передаются данные. Внутри этого соединения данные проверяются на предмет повреждения — если какая-то часть повреждена, то она отправляется повторно.

Протокол UDP тоже передаёт данные, но вместо того, чтобы создавать устойчивое соединение, внутри которого данные проверяются на целостность, он только отправляет пакет данных на определённый адрес, при этом не осуществляется контроль, был ли покет доставлен без повреждений и был ли доставлен вообще. По сути это и есть главное отличие между этими протоколами.

Как в Windows узнать, какая программа прослушивает порт (используя CMD)

Открытых для прослушивания портов может оказаться достаточно много и обычно они используются легитимными программами

Поэтому при анализе полученных данных также важно знать, какая именно служба прослушивает определённый порт.. Для поиска службы, можно добавить к команде NETSTAT опцию -b, которая означает показать исполнимый файл, прослушивающий порт:

Для поиска службы, можно добавить к команде NETSTAT опцию -b, которая означает показать исполнимый файл, прослушивающий порт:

netstat -anb

Также имеется альтернативный способ определения исполнимого файла, привязанного к порту. Для него откройте Командную строку Windows. Для этого нажмите сочетание клавиш Win+x, там выберите Windows PowerShell (Администратор). В открывшемся окне введите:

cmd

чтобы переключиться на Windows Console Host (обычную командную строку).

Там запустите команду вида:

for /f "tokens=1,2,3,4,5*" %i in ('netstat -aon ^| findstr ":80" ^| findstr /i listening') do echo %j %l & @tasklist | findstr %m

Эта команда найдёт службы, которые прослушивают 80 порт. Чтобы найти информацию о другом порте, замените в команде цифру 80 на интересующий вас порт.

Пример вывода в моём случае:

C:\Windows\system32>echo 0.0.0.0:80 LISTENING   &
0.0.0.0:80 LISTENING
httpd.exe                     3576 Services                   0    16 764 КБ

C:\Windows\system32>echo :80 LISTENING   &
:80 LISTENING
httpd.exe                     3576 Services                   0    16 764 КБ

Запись 0.0.0.0:80 означает, порт 80 для любых IPv4 адресов прослушивает служба httpd.exe (веб-сервер Apache). А запись :80 — означает, что порт 80 для любых IPv6 адресов прослушивает та же самая служба httpd.exe (веб-сервер Apache). Мы ещё вернёмся к более подробному анализу данных далее в этой статье.

Менять порт в длинной команде не всегда удобно, поэтому рекомендую создать текстовый файл с именем port.bat, в этот файл скопируйте:

@ECHO OFF
for /f "tokens=1,2,3,4,5*" %%i in ('netstat -aon ^| findstr ":%1" ^| findstr /i listening') do echo %%j %%l & @tasklist | findstr %%m

Сохраните и закройте этот файл.

Теперь в Windows PowerShell или в командной строке Windows с помощью команды cd перейдите в папку, куда вы сохранили файл. Например, я его сохранил в папку C:\Users\Alex\Documents\, тогда для перехода туда я выполняю:

cd C:\Users\Alex\Documents\

Теперь запустите файл командой вида:

.\port.bat ПОРТ

Где ПОРТ замените на интересующий вас порт, например, меня интересует порт 80, тогда:

.\port.bat 80

Вновь получаю аналогичный результат.

Если у вас множество портов прослушивает процесс svchost.exe, то чтобы разобраться, какие именно это службы, смотрите статью «Почему svchost.exe прослушивает много портов? Как узнать, какие именно программы открыли порты».

Что такое сканер портов?

Сканер портов относится к программному приложению, которое сканирует сервер на наличие открытых портов. Он позволяет аудиторам и сетевым администраторам проверять сетевую безопасность, в то время как злоумышленники и хакеры используют ее для определения открытых портов для использования или запуска вредоносных служб на компьютере или сервере.

Сканирование портов представляет собой способ определения, какие порты в сети открыты. Поскольку порты на компьютере — это место, где информация отправляется и принимается, сканирование портов аналогично стуку в дверь, чтобы увидеть, находится ли кто-то дома. Выполнение сканирования портов в локальной сети или на сервере позволяет определить, какие порты открыты и находятся в режиме прослушивания (listening) (получения информации), а также выявить наличие таких устройств безопасности, как межсетевые экраны, которые находятся между отправителем и целью. Этот метод известен как дактилоскопия (fingerprinting). Это также полезно для тестирования сетевой безопасности и надежности брандмауэра системы. Благодаря этой функциональности, это также популярный инструмент разведки для злоумышленников, ищущих слабую точку доступа для проникновения в компьютер или сервер.

Порты различаются по своим назначениям. Они пронумерованы от 0 до 65535, но определенные диапазоны используются чаще. Порты с 0 по 1023 идентифицируются (https://ru.wikipedia.org/wiki/Список_портов_TCP_и_UDP), как «общеизвестные порты» или стандартные порты и были назначены для определенных служб, агентством по присвоению номеров в Интернете (IANA). Некоторые из наиболее известных портов и назначенных им служб включают в себя:

  • Порт 20 (UDP) — протокол передачи файлов (FTP) для передачи данных
  • Порт 22 (tcp) — протокол Secure Shell (SSH) для безопасного входа, FTP и переадресации портов
  • Порт 23 (tcp) — протокол Telnet для не зашифрованных текстовых коммутаций
  • Порт 53 (UDP) — Система доменных имен (DNS) переводит имена всех компьютеров в Интернете в IP-адреса
  • Порт 80 (tcp) — Всемирная паутина HTTP

LISTENING, ESTABLISHED, CLOSE_WAIT и другие состояния

Как вы можете увидеть в выводе команды netstat для протокола TCP доступны разные варианты состояний.

Самые популярные из них это LISTENING — означает, что порт прослушивает запущенное на данном компьютере приложение, что оно готово принять соединение, например, от другого компьютера или от другой службы, запущенной на этом же компьютере. Также применяются термины «открытый порт», «привязка порта».

ESTABLISHED означает уже установленное соединение. Пример такого соединения: веб-браузер инициализировал загрузку страницы сайта и пока данные передаются по этому соединению, у этого соединения статус ESTABLISHED.

Имеются и другие виды состояний, но для наших целей они не очень важны

По большому счёту нас интересует только LISTENING, так как это означает открытые порты на нашем компьютере и возможность подключаться к нему. Также нам важно состояние ESTABLISHED, поскольку оно означает, что данные уже передаются по сетевому соединению.

Что такое сетевой порт?

Первое, что вам следует знать, это то, что порты, о которых мы говорим, являются виртуальными . Это не имеет ничего общего с физическими портами сетевого оборудования на вашем маршрутизаторе, телевизоре, консолях или компьютерах. Порты — это просто способ для вашего сетевого оборудования и программного обеспечения организовать информационный трафик. 

Представьте себе зарезервированные полосы на дороге. Тротуар для пешеходов. Там может быть выделенная велосипедная полоса. Автопоезда и автобусы тоже имеют свои полосы движения. Порты выполняют ту же функцию. Один порт может использоваться для приема электронных писем, а другой — для передачи запросов на передачу файлов или трафика сайта. 

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Существует два распространенных типа портов, которые требуют краткого объяснения, прежде чем мы перейдем к проверке, какие порты в вашей системе открыты, а какие нет.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: