• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Статья Сетевой порт - отражение вашей безопасности

КОМПЬЮТЕРНЫЕ СЕТИ

<< Начало

5. Сетевой порт - отражение вашей безопасности.

Наш парусник, груженный отборным индийским хлопком, мчится по бескрайним просторам Атлантического океана к берегам Новой Англии. Однако, порт Бостона, в котором принимают хлопок, закрыт в связи с разразившейся эпидемией неизвестного ранее вируса, а все близлежащие порты принимают лишь вино и чай. Наша задача - сбыть хлопок и нагрузить трюмы колумбийскими клубнями, чтобы отправиться с ними обратно в далекую Индию.

5d5NBSS-I0I.png


Как мы уже рассматривали в предыдущей статье, каждое вычислительное устройство в сети имеет свой уникальный IP-адрес. Однако, для полноценной передачи информации, одних только IP-адресов недостаточно, так как передачу данных осуществляют не сами вычислительные машины, а работающие на них приложения, такие как FTP-сервер, почтовый SMTP-сервер и другие. Каждое из этих приложений отправляет и принимает наборы данных под определенным номером, являющимся номером порта. Набором правил стека протоколов TCP/IP, среди прочих, предусмотрен транспортный уровень, в который входят протоколы TCP и UDP. О них следует поговорить отдельно, так как именно они отвечают за "пропускной режим" на нашей машине. На транспортном уровне к пакету данных добавляется порт отправителя и порт получателя.

Сетевой порт представляет собой своего рода виртуальный вход, предназначенный для пропуска входящего и исходящего набора пакетов данных. Порты могут быть открытыми, закрытыми или ограниченными с регулируемым доступом. Стандартные серверные приложения, как правило, имеют свои стандартные номера, почтовый SMTP-сервер имеет порт 25, FTP-сервер - 21 и так далее.

Поставим перед собой задачу - загрузить данные на сервер посредством FTP-соединения через 21 порт. Условием задачи предусмотрено, что 21 порт нашего сервера заблокирован файрволом. По аналогии с предисловием, допустим, что Новая Англия - это сервер со своим IP-адресом, Бостон - FTP-порт, а хлопок - пакеты данных, которые необходимо загрузить на сервер. Для решения задачи мы можем просто открыть порт, но как быть, если этого сделать не удается.

Переадресация портов на маршрутизаторе.

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

Кроме того, в настройках можно указать внешний IP-адрес, запросы с которого будут допущены к нашему серверу на определенном порту. Запросы направленные со всех других IP-адресов, соответственно, будут блокироваться.
Важно понимать, что в качестве обозначения порта мы можем использовать любое числовое значение от 0 до 65535, в пределах 16-битного диапазона, но только лишь в том случае, если оно еще не занято другим портом в нашей системе. Существует правило - в рамках указанного диапазона, порты подразделяются еще на три поддиапазона: системные, для распространенных сетевых служб и серверных приложений - 0-1023 (закреплены стандартами RFC 1700 и RFC 3232), пользовательские, для клиентских приложений - 1024-49151 (являются динамическими и присваиваются операционной системой) и частные 49152-65535. Однако, как и во всех правилах, здесь тоже бывают исключения. Из этого следует, что мы можем обойти закрытый FTP-порт со значением 21, открыв другой FTP-порт с числовым значением 50508 (или с любым другим значением, отличным от уже используемых).

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

Знание данной информации позволит вам определить подозрительную сетевую активность на вашей вычислительной машине, например в том случае, когда без вашего ведома на ней работает стилер, собирающий и передающий конфиденциальные данные третьей стороне (злоумышленнику). Для этого заходим в консоль и набираем в ней следующую команду (работает одинаково, как для Windows, так и для Linux):

Код:
netstat -an

При выполнении команды мы получаем список сетевых соединений сокетов, в которых указаны открытые на нашем компьютере порты, с удаленными устройствами. К примеру, вы увидели запущенное соединение на 25 порту, принадлежащем почтовому SMTP-серверу. Однако, в данный момент на вашей вычислительной машине не запущено никаких почтовых клиентов. Данный факт может свидетельствовать о том, что на вашей машине работает стороннее приложение, "сливающее " конфиденциальную информацию по указанному удаленному IP-адресу, либо рассылающее спам.

02.png


Закрыть "светящие наружу" порты можно при помощи файрвола, для Windows это стандартный Брандмауэр (Панель управления > Брандмауэр защитника Windows > Дополнительные параметры > Правила для входящих подключений). Для Linux, к примеру, можно воспользоваться файрволом UFW.

03.png


Также, для решения нашей задачи, мы можем создать правило для файрвола, открыв порт 50508 на нашей машине и пустив по нему FTP-данные.

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

<< Начало
 
Последнее редактирование:

DeathDay

Green Team
18.04.2019
149
1 095
BIT
0
Наверное, лучшее повествование о портах, которое я когда-то видел - великолепно, сударь. Особенно порадовал пример в начале статьи.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!