What is an smb port + ports 445 and 139 explained

Содержание:

Служба сеанса (NetBIOS-SSN)

Режим сеанса позволяет двум компьютерам устанавливать соединение, позволяет сообщениям охватывать несколько пакетов и обеспечивает обнаружение и восстановление ошибок. В NBT служба сеанса работает через порт TCP 139.

Примитивы службы сеанса, предлагаемые NetBIOS:

  • Call — открывает сеанс для удалённого имени NetBIOS.
  • Listen — прослушивание попыток открыть сеанс с именем NetBIOS.
  • Hang Up — закрыть сеанс.
  • Send — отправляет пакет на компьютер на другом конце сеанса.
  • Send No Ack — как Send, но не требует подтверждения.
  • Receive — ожидание поступления пакета от отправки на другом конце сеанса.

В исходном протоколе, используемом для реализации сервисов NetworkBIOS в сети PC-Network, для установления сеанса инициирующий компьютер отправляет запрос Open, на который отвечает подтверждение Open. Компьютер, запустивший сеанс, затем отправит пакет запроса сеанса, который запросит либо пакет подтверждения сеанса, либо пакет отклонения сеанса.

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

За что отвечают порты 445 и 139 в ОС Windows

Данные порты используются в системе Windows для совместной работы с файлами и принтерами. Первый порт отвечает за работу протокола Server Message Blocks (SMB), а через второй работает протокол Network Basic Input-Output System (NetBIOS). Оба протокола позволяют компьютерам под управлением Windows подключаться по сети к «расшаренным» папкам и принтерам поверх основных протоколов TCP и UDP.

Начиная с Windows 2000, совместная работа с файлами и принтерами по сети осуществляется в основном через порт 445 по прикладному протоколу SMB. Протокол NetBIOS использовался в более ранних версиях системы, работая через порты 137, 138 и 139, и данная возможность сохранилась в более поздних версиях системы в качестве атавизма.

Что такое NetBIOS

NetBIOS (Network Basic Input/Output System) — протокол для работы в локальных сетях на персональных ЭВМ типа IBM/PC, разработан в виде интерфейса, который не зависит от фирмы-производителя. Был разработан фирмой Sytek Corporation по заказу IBM в 1983 году. Он включает в себя интерфейс сеансового уровня (англ. NetBIOS interface), в качестве транспортных протоколов использует TCP и UDP.

Приложения могут найти через NETBIOS нужные им ресурсы, установить связь и послать или получить информацию. NETBIOS использует для службы имён порт 137, для службы дейтаграмм — порт 138, а для сессий — порт 139. Любая сессия начинается с NETBIOS-запроса, задания IP-адреса и определения TCP-порта удаленного объекта, далее следует обмен NETBIOS-сообщениями, после чего сессия закрывается. Сессия осуществляет обмен информацией между двумя NETBIOS-приложениями. Длина сообщения лежит в пределах от 0 до 131071 байт. Допустимо одновременное установление нескольких сессий между двумя объектами. При организации IP-транспорта через NETBIOS IP-дейтаграмма вкладывается в NETBIOS-пакет. Информационный обмен происходит в этом случае без установления связи между объектами. Имена NETBIOS должны содержать в себе IP-адреса. Так, часть NETBIOS-адреса может иметь вид IP.**.**.**.**, где IP указывает на тип операции (IP через Netbios), а **.**.**.** — IP-адрес. Система NETBIOS имеет собственную систему команд (call, listen, hang up, send, receive, session status, reset, cancel, adapter status, unlink, remote program load) и примитивов для работы с дейтаграммами (send datagram, send broadcast datagram, receive datagram, receive broadcast datagram). Все оконечные узлы NETBIOS делятся на три типа:

  • широковещательные («b») узлы;
  • узлы точка-точка («p»);
  • узлы смешанного типа («m»).

IP-адрес может ассоциироваться с одним из указанных типов. B-узлы устанавливают связь со своим партнёром посредством широковещательных запросов. P- и M-узлы для этой цели используют netbios сервер имён (NBNS) и сервер распределения дейтаграмм (NBDD).

NetBIOS обеспечивает:

  • регистрацию и проверку сетевых имён;
  • установление и разрыв соединений;
  • связь с подтверждением доставки информации;
  • связь без подтверждения доставки информации;
  • поддержку управления и мониторинга драйвера и сетевой карты.

Как проверить открыт ли порт

С понятием «порта» более или менее разобрались, теперь давайте узнаем, как проверить, открыт ли порт на компьютере или нет. Способов проверки доступности или недоступности порта(ов) существует несколько. Самый простой и очевидный – воспользоваться онлайновыми сервисами PortScan.ru или 2ip.ru. Чтобы определить, открыт ли явно порт или нет, нужно ввести его номер в специальное поле и нажать кнопку «Проверить».

PortScan.ru и подобные ему сервисы также нередко предоставляют услуги сканера открытых портов на компьютере.

Посмотреть открытые порты в Windows 7/10 можно и с помощью обычной командной строки или консоли PowerShell, запущенной с правами администратора. Для этого выполняем в консоли команду следующего вида:

netstat -aon | more

При этом вы получите список активных подключений. В колонке «Локальный адрес» будут указаны IP и собственно номер открытого в данный момент порта

Обратите также внимание на состояние подключения. LISTENING означает, что порт просто прослушивается (ожидает соединения), ESTABLISHED – идет активный обмен данными между узлами сети, CLOSE_WAIT – ожидает закрытия соединения, TIME_WAIT указывает на превышение времени ответа

В качестве альтернативы для определения используемых портов можно воспользоваться бесплатной утилитой CurrPorts от известного разработчика NirSoft.

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

How To Keep These Ports Secure

Leaving network ports open to enable applications to function is a security risk. So how do we manage to keep our networks secure and maintain application functionality and uptime? Here are some options to secure these two important and well-known ports.

  1. Enable a firewall or endpoint protection to protect these ports from attackers. Most solutions include a blacklist to prevent connections from known attackers IP addresses.
  2. Install a VPN to encrypt and protect network traffic.
  3. Implement VLANs to isolate internal network traffic.
  4. Use MAC address filtering to keep unknown systems from accessing the network. This tactic requires significant management to keep the list maintained.

In addition to the network specific protections above, you can implement a data centric security plan to protect your most important resource – the data that lives on your SMB file shares.

Understanding who has access to your sensitive data across your SMB shares is a monumental task. Varonis maps your data and access rights and discovers your sensitive data on your SMB shares. Monitoring your data is essential to detect attacks in progress and protect your data from breaches. Varonis can show you where data is at-risk on your SMB shares and monitor those shares for abnormal access and potential cyberattacks.  Get a 1:1 demo to see how Varonis monitors CIFS on NetApp, EMC, Windows, and Samba shares to keep your data safe.

Виды shell: полезная нагрузка meterpreter и другие

В настоящее время считается, что полнофункциональный Meterpreter (МР) существует только под Windows, но на самом деле это не совсем так. Существует еще несколько версий MP, реализованных на PHP и JAVA. Впрочем, ты и сам можешь стать автором «полезной нагрузки» — например, скомпилировать TCL-сценарий shell-кода для Cisco IOS с помощью утилиты tclpro.exe и в дальнейшем использовать его для жестоких игр с железными кошками. Как так? Сам не понимаю :).

Стандартную полезную нагрузку MP можно использовать почти со всеми Windows-эксплойтами, включенными в Metasploit Framework, выбрав одну из следующих полезных нагрузок:

Кратко поясню суть каждой.

  1. bind_meterpreter— резервирует порт на целевой машине и ожидает соединения. После установления соединения происходит загрузка Meterpreter’a на целевой хост, текущее соединение продолжает использоваться для связи с удаленной машиной.
  2. reverse_meterpreter— сама соединяется с предварительно заданным хостом по указанному порту для дальнейшей загрузки Meterpreter’a. Затем установленное соединение используется для связи с удаленной машиной. Все хорошо, но для успешной реализации данного метода нам понадобится реальный IP-адрес (или устанавливай проброс нужных тебе портов через NAT).
  3. find_tag— осуществляет поиск дескриптора службы, обработанной эксплойтом, и использует его для загрузки Meterpreter’a на удаленную машину, после чего существующее соединение будет использовано для связи с ней. Этот вид полезной нагрузки является особенно интересным, поскольку тут не требуется открывать новое соединение — таким образом, существует возможность обхода практически любых конфигураций брандмауэров.
  4. bind_tcp— это обычный командный интерпретатор типа cmd.exe, естественно, без всяких дополнительных наворотов, как у Meterpreter`a. Он просто резервирует порт на целевой машине и загружает стандартную оболочку.

В зависимости от цели исследования системы может быть использована любая из этих полезных нагрузок. Так чего же мы ждем? Выбираем цель из списка, полученного в результате сканирования nmap, и подключаемся к ней. Для простоты эксперимента будем использовать простой командный интерпретатор в качестве полезной нагрузки.

Если уязвимость на удаленной машине существует, то мы получим доступ к шеллу (cmd.exe) этого компьютера, и в окне появится сообщение о том, что сессия успешно установлена. В случае, когда msf определил ОС как Windows 7, можно попробовать использовать 64-разрядные полезные нагрузки, которые имеются в соответствующем разделе (ищем через меню GUI), или вызвать нагрузку через консоль. Пример работы эксплойта с полезной нагрузкой можно посмотреть на видео (ищи ролик на нашем диске).

Закрываем порты 135-139 и 445 в Виндовс

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

Используем командную строку

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

Для того чтобы запустить командную строку, необходимо:

  1. Одновременно нажать сочетание клавиш Win+R
  2. В появившейся командной строке ввести CMD
  3. Нажать на кнопку «ОК»

Появится рабочее окно с чёрным фоном, в котором необходимо поочередно вводить нижеприведенные команды. После каждой введенной строчки нажимайте клавишу Enter для подтверждения действия.netsh advfirewall firewall add rule dir=in action=block protocol=tcp localport=135 name=»Block1_TCP-135″
(команда для закрытия порта 135)netsh advfirewall firewall add rule dir=in action=block protocol=tcp localport=137 name=»Block1_TCP-137″
(команда для закрытия порта 137)netsh advfirewall firewall add rule dir=in action=block protocol=tcp localport=138 name=»Block1_TCP-138″
(команда для закрытия порта 138)netsh advfirewall firewall add rule dir=in action=block protocol=tcp localport=139 name=»Block_TCP-139″
(команда для закрытия порта 139)netsh advfirewall firewall add rule dir=in action=block protocol=tcp localport=445 name=»Block_TCP-445″
(команда для закрытия порта 445)netsh advfirewall firewall add rule dir=in action=block protocol=tcp localport=5000 name=»Block_TCP-5000″

Шесть приведенных нами команд необходимы для: закрытия 4х уязвимых TCP-портов Windows (открытых по умолчанию), закрытия UDP-порта 138, а также закрытия порта 5000, который отвечает за выведение списка доступных сервисов.

Закрываем порты сторонними программами

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

По мнению наших пользователей, самой популярной программой для этих целей является Windows Doors Cleaner. Она поможет с лёгкостью закрыть порты на компьютере с ОС Windows 7/8/8.1/10. Более старые версии операционных систем, к сожалению, не поддерживаются.

Заключительные советы

Приведенные выше методы (за исключением третьего) позволяют закрыть не только порт 445, но и порты 135, 137, 138, 139. Для этого при выполнении процедуры просто заменяйте номер порта на нужный.

Если вам впоследствии понадобится открыть порты, просто удалите созданное правило в брандмауэре Windows или измените значение созданного в реестре параметра с 0 на 1, а потом включите обратно службу Windows Server, выбрав в списке Тип запуска значение Автоматически вместо Отключена.

Важно! Необходимо помнить, что порт 445 в Windows отвечает за совместный доступ к файлам, папкам и принтерам. Таким образом, если вы закроете данный порт, вы больше не сможете «расшарить» общую папку для других пользователей или распечатать документ по сети

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

Выполняя приведенные выше рекомендации, можно обезопасить себя от незаметной, но серьезной уязвимости в Windows и защитить свои данные от многочисленных видов зловредного программного обеспечения, которое способно проникнуть в систему через порты 139 и 445.

Службы

NetBIOS/NetBEUI предоставляет три несвязанных службы:

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

В протоколе NBF реализованы все три упомянутые службы.

Служба имен

Прежде чем начать сессию или доставить датаграмму приложение должно зарегистрировать свое имя NetBIOS/NetBEUI, используя службу имен. Для осуществления этого в сеть посылаются широковещательные пакеты Add Name Query (англ. запрос нового имени) и Add Group Name Query (англ. запрос нового группового имени). В случае, когда выбранное имя NetBIOS/NetBEUI уже занято, служба имен на хосте, использующем это имя, отправляет в сеть широковещательное сообщение Node Conflict (англ. конфликт узлов).

Чтобы установить сессию или доставить датаграмму на определенный хост вместо широковещательной рассылки, протокол NBF должен определить MAC-адрес адрес хоста с нужным именем NetBIOS/NetBEUI. Это осуществляется отправкой в сеть пакета Name Query (англ. запрос имени), ответом на который будет MAC-адрес хоста, направившего ответ, то есть хоста с запрошенным именем.

Служба доставки датаграмм

Режим отправки датаграмм — т. н. «бесконтактный». Датаграмма отсылается в специальных пакетах Datagram при отправке на определенное имя NetBIOS/NetBEUI. В случае отправки на все доступные имена NetBIOS/NetBEUI в сети используется другой тип пакетов — Datagram Broadcast (англ. широковещательные Datagram)

Сессионная служба

В сессионном режиме два хоста устанавливают соединение в режиме т. н. «диалога» (англ. conversation), что позволяет осуществлять доставку сообщений большего размера, а также осуществлять обнаружение и коррекцию ошибок.

Для установки сессии требуется осуществить обмен пакетами. При инициализации сессии хост должен отправить специальный пакет Name Query. Компьютер, с которым должна быть установлена сессия, отвечает пакетом Name Recognized (англ. имя опознано) с указанием, что сессия не может быть установлена (либо потому что хост не ожидает установления сессии с данным компьютером, или из-за отсутствия ресурсов на установление новой сессии), либо с указанием на возможность установления сессии (в этом случае в ответе также указывается локальный номер сессии, который будет использоваться в последующих пакетах). Хост, инициализировавший сессию после этого отправляет пакет Session Initialize (англ. инициализация сессии), на что должен поступить ответ Session Confirm (англ. подтверждение сессии).

После установления сессии данные передаются в пакетах данных. Стандарт IEEE 802.2 обеспечивает управление потоками и ретрансляцию пакетов данных. Поскольку NetBIOS/NetBEUI позволяет осуществлять передачу пакетов бо́льшего размера, нежели максимально возможный пакет на конкретном слое управления доступом к среде, пакеты NetBIOS/NetBEUI при передаче могут быть разбиты на серию пакетов Data First Middle и пакет Data Only Last. Пакеты, которым не требуется разбитие, отправляются единственным пакетом Data Only Last. После получения каждого пакета Data Only Last высылается подтверждение получения. Это подтверждение также означает, что все предшествующие пакеты Data First Middle также успешно получены.

Сессия закрывается посредством отправки запроса Session End (англ. окончание сессии).

Закрываем порты через реестр Windows

Блокировать соединения на порт 445 можно также путем внесения изменений в системный реестр

Использовать данный метод следует с осторожностью: реестр Windows является основной базой данных всей системы, и случайно допущенная ошибка может привести к непредсказуемым последствиям. Перед работой с реестром рекомендуется сделать резервную копию, например, с помощью программы CCleaner

  1. Нажмите Пуск и в строке поиска введите “regedit”. Нажмите Enter.
  2. В дереве реестра перейдите в следующий каталог: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters.
  3. В правой части окна отобразится список параметров. Нажмите правой кнопкой мыши в свободной области списка и выберите Создать. В раскрывающемся меню выберите Параметр DWORD (32-bit) или Параметр DWORD (64-bit) в зависимости от типа вашей системы (32-битная или 64-битная).
  4. Переименуйте новый параметр в SMBDeviceEnabled, а затем дважды кликните по нему. В отобразившемся окне Изменение параметра в поле Значение замените 1 на 0 и нажмите OK для подтверждения.

Этот способ является наиболее эффективным, если точно следовать приведенной выше инструкции. Следует отметить, что он относится только к порту 445.

Для того чтобы защита была эффективнее, после внесения изменений в реестр можно также отключить службу Windows Server. Для этого выполните следующее:

  1. Нажмите Пуск и в строке поиска введите «services.msc». Откроется список системных служб Windows.
  2. Найдите службу Server и дважды кликлите по ней. Как правило, она располагается где-то в середине списка.
  3. В отобразившемся окне в раскрывающемся списке Тип запуска выберите Отключена и нажмите ОК.

Захват сервера

Теперь из списка хостов, сгенерированных nmap, выберем IP-адрес под управлением ОС Windows 2003 Server — это и будет наша искомая цель (ведь ты, как настоящий сетевой гуру, хотя бы раз в жизни должен поиметь свой собственный дедик!). Для работы с сервером будем использовать все тот же эксплойт (exploit/windows/smb/ms08_067_netapi) и полезную нагрузку bind_meterpreter. В результате мы получаем доступ к командной оболочке через Meterpreter, после чего добавляем нового пользователя с помощью сценария token_adduser, предварительно повысив свои привилегии на удаленной машине до уровня SYSTEM с помощью команды use priv. Ну вот — у нас есть дедик, к которому ты можешь подключаться, используя удаленный рабочий стол. На нем мы можем установить прокси-сервер, FTP и многоемногое другое. В ходе эксперимента у меня получилось набрать пять дедиков примерно в течение часа. Я думаю, это круто!

Делаем выводы

Закрытие уязвимых сетевых портов в Виндовс – это не панацея от всех бед

Важно помнить, что сетевая безопасность может быть достигнута только комплексными действиями, нацеленными на закрытие всех уязвимостей вашего ПК

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

Заключение

Если кто-то хочет просто жать на кнопку «exploit», чтобы Metasploit сразу выдавал готовые дедики, то скажу сразу — этого не будет: метод все равно требует времени и терпения. Уязвимость далеко не нова, и производители ПО уже приняли меры по ее локализации.

Так, если на удаленной машине установлен антивирус или правильно сконфигурирован центр обеспечения безопасности Windows, то скорее всего доступ к порту 445 из внешней сети получить просто не удастся. В частности, антивирус Касперского отреагирует на изменение системных файлов, своевременно информируя об этом пользователя. Хотя атака из локальной сети, скорее всего, приведет к тому, что система будет полностью скомпрометирована. Несмотря ни на что, все еще остается довольно широкое поле для экспериментов с безопасностью Windows, и ты можешь внести свой вклад в это дело. Непоправимый вклад :).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *