Протокол netbios что это простыми словами
NetBIOS через TCP/IP
Службы NetBIOS
Далее не будет лишним посмотреть, какие же сетевые порты используются сервисами NetBIOS:
Подобная структура отражает требование RFC 1001, RFC 1002, регламентирующее наличие трех базовых сервисов, которые реализуют эмуляцию NetBIOS в системе Windows.
Реализация NetBIOS
Принципы работы NetBIOS
Собственно, как же работает NetBIOS? Я попытаюсь дать, пока что, собственное объяснение принципов работы стандарта. Все мы понимаем, что для того, чтобы станции могли взаимодействовать по сети, они должны подчиняться определенным правилам, выполнять предписанные действия на различных этапах работы. Этими этапами являются: заявление о себе (регистрация), попытка взаимодействия (обнаружение имен, установление сеанса, управление сеансом), отключение себя (освобождение имени). Поэтому, все узлы, использующие NetBIOS через TCP/IP, применяют регистрацию, обнаружение и освобождение имен, а так же многие другие методы, предоставляемые стандартом. Давайте рассмотрим их детальнее:
Для того, чтобы лучше понять логику работы NetBIOS через TCP/IP, давайте немного отступим от основной линии рассуждений, и рассмотрим по-отдельности некоторые сущности стандарта.
Имя NetBIOS
Полный перечень типов общих ресурсов NetBIOS
Методы разрешения имени NetBIOS
Очевидно, что тут мы будем говорить о том, какими средствами NetBIOS удается найти соответствие имени и IP-адреса ресурса? Какие же методы определения имен доступны интерфейсу NetBIOS? Сразу обращу ваше внимание на то, что не все из перечисленных методов относятся непосредственно к стандарту NetBIOS. Я считаю, что к NetBIOS относятся только лишь: LMHOSTS, WINS, кеш имен NetBIOS, широковещательный запрос в подсети. Такие же понятия как HOSTS и DNS относятся уже к TCP/IP Direct Hosting. Но поскольку понятия «NetBIOS имя станции» и «имя хоста» довольно тесно взаимосвязаны в современных ОС Windows, то resolver (модуль, разрешающий имена) использует все доступные методы для нахождения соответствия, умело комбинируя разнородные методы определения имен.
Тип узла NetBIOS (NodeType)
Поскольку методы регистрации имен в сети у NetBIOS тоже не стояли на месте, и если изначально все сводилось, как мы уже упоминали, к широковещательным запросам, то со временем начали появляться и другие способы зарегистрировать имя (например, с использованием WINS-сервера). В связи с необходимостью разделять логику работы станций, было введено понятие NodeType (NBT-узел) для описания разницы в способах регистрации и распознавания имен. Проще говоря, разные типы узлов имеют свои обособленные алгоритмы разрешения имен в IP-адреса:
Net BIOS
Введение
NetBIOS (Network Basic Input/Output System) — коммуникационный протокол для работы в локальных сетях. Был разработан фирмой Sytek Corporation по заказу IBM в 1983 году. Включает в себя интерфейс сеансового уровня (NetBIOS interface). Интерфейс NetBIOS представляет собой стандартный интерфейс разработки приложений (API) для обеспечения сетевых операций ввода/вывода и управления нижележащим транспортным протоколом.
NetBIOS может использовать в качестве транспортного протоколы TCP/IP, Net BEUI а также NWLink от Novell NetWare. При этом результирующий протокол может обозначаться соотвественно :
Имена NetBIOS
UNIQUE: имя может иметь только один адрес IP, назначенный для него. Может показаться, что на сетевом устройстве присутствуют многократные случаи одного и того же имени, но суффикс будет уникален, делая имя также полностью уникальным.
GROUP: нормальная группа; одиночное имя может существовать со многими адресами IP.
Multihomed: имя уникально, но из-за множественных сетевых интерфейсов на одном и том же компьютере, эта конфигурация необходима чтобы разрешить регистрацию. Максимальное число адресов – 25.
Регистрация_имени (Name registration) | Когда NBT-хост инициализируется, он регистрирует свое NetBIOS имя используя запрос на регистрацию имени. Регистрация может производится широковещательным сообщением или непосредственной пересылкой запроса на WINS сервер. Если регистрируемое имя уже существует, то хост или WINS сервер информируют хост, приславший запрос, о невозможности регистрации NetBIOS имени. В результате возникает ошибка инициализации имени. |
Поиск_имени (Name Discovery) | Поиск NetBIOS имени в локальной сети производится широковещательным сообщением или непосредственной пересылкой запроса на WINS сервер. Хост, зарегистрированный с этим именем, или WINS сервер, отвечают на запрос. |
Освобождение_имени (Name Release) | Освобождение имени осуществляется когда NetBIOS приложение или сервис заканчивают свою работу. После освобождения имя становится доступным для регистрации другим хостом. |
Разрешение NetBIOS имен
Разрешение имен NetBIOS – это процесс определения IP адреса хоста, по известному NetBIOS имени.
Схема разрешения NetBIOS имен в Windows
Пояснения к схеме :
1 – Имя длиной более 15 знаков или не соответствующее требованиям не является NetBIOS именем и предпринимается попытка его разрешения с помощью DNS сервера.
2 – Подробнее – на странице Тип Узла.
3 – Подробнее – на странице Файл Lmhosts.
4 – Разрешение проверки файла Lmhosts устанавливается так –
5 – Подробнее – на странице Файл Hosts.
6 – В настройках сетевого интерфейса должен быть указан адрес DNS сервера.
7 – Невозможно разрешить IP адрес. Компьютер с искомым именем не будет реагировать на обращение по NetBIOS имени. Обратиться к сетевым ресурсам данного компьютера возможно по его IP адресу, например – \\192.168.1.2
Что такое NetBIOS в Windows, как включить службу или приостановить её работу
Во время установки операционной системы Windows пользователем задаётся имя компьютера, к которому в дальнейшем будут обращаться программы, устройства, соединённые локальной сетью, веб-сервер, FTP и другие сетевые службы. Протокол NetBIOS крайне важен для работы системы, поэтому рекомендуется знать о его устройстве и выполняемых функциях, чтобы лучше понимать, как происходит обмен данными между процессами, приложениями или компьютерами.
NetBIOS – устройство и принцип работы
Windows использует данный интерфейс в качестве основной системы сетевого ввода-вывода, а также для возможности установки общего доступа к сетевым устройствам и файлам. Пакеты данных передаются по локальной сети через сеансы эталонной модели взаимодействия открытых систем, и через сетевые протоколы приложения могут обмениваться информацией по ним. Простыми словами, данная система является сетевым протоколом, предназначенным для работы в локальных сетях и обмена сведениями, значениями и другими данными внутри них. Начиная с Windows 2000 модуль поддержки NetBIOS через TCP/IP носит название NetBT.
По протоколу программы находят нужные им ресурсы, передают запросы на получение информации либо отдают собственные данные. Сперва открывается сессия с NetBIOS запросом, задаётся IP-адрес, система определяет подходящий порт для проведения конкретного типа операции (служба имён использует порт 137, дейтаграмм – 138, а сессий – 139), происходит обмен пакетами данных, когда поток прекращается – сессия закрывается. Одно сообщение может занимать до 131071 байт или 131 КБ. В одно время может быть установлено несколько уникальных сессий. NetBIOS адрес имеет следующий вид: IP.**.**.**.**, где под звёздочками – IP-адрес, а под IP – тип осуществляемой операции. Протокол использует собственные команды для проведения обмена данными (send, receive, call, remote program load, session status, reset, hang up, cancel и другие), а также особые примитивы для взаимодействия с дейтаграммами (receive datagram, send datagram, receive broadcast datagram, send broadcast datagram). Крайние узлы NetBIOS подразделяются на следующие типы:
В зависимости от IP-адреса, используется конкретный вид запроса, к примеру, для осуществления передачи данных узлами P- и M- будет использован NBNS сервер имён и NBDD сервер распределения дейтаграмм.
Службы NetBIOS
Для работы протокол использует NetBIOS-NS (служба имён), NetBIOS-SSN (сеансовая служба) и NetBIOS-DGM (служба рассылки дейтограмм). NS выполняет функцию регистрации и разрешения имён, DGM подходит для передачи данных без установки соединения, а последняя служба, SSN — передаёт пакеты с установлением соединения.
Протокол обеспечивает команды и поддержку следующих служб, предоставляя им доступ к сеансам эталонной модели взаимодействия открытых систем OSI:
Сперва служба имён осуществляет регистрацию имени приложения в NetBIOS, перед тем как запустить сеанс либо начать распространение дейтаграмм. Используются примитивы «add name» (регистрация имени), «add group name» (запись имени группы NetBIOS), «delete name» (удаление регистрации имени приложения либо группы), «find name» (поиск имени NetBIOS в сети).
Служба рассылки дейтаграмм работает на порту UDP 138 и отвечает за режим обмена без установки соединения. С помощью примитивов «send datagram» (отправка дейтаграммы на удалённое имя), «receive datagram» (переход в режим ожидания получения пакета), «send broadcast datagram» (отправка датаграммы всем зарегистрированным именам из сети NetBIOS), а также «receive broadcast datagram» (ожидание получения пакета данных из сессии отправки широковещательной дейтаграммы) – происходит обмен информацией без установленного соединения.
В сеансовом режиме используется SSN служба (TCP порт 139), которая позволяет установить соединение между двумя компьютерами и обмениваться сообщениями (охват сразу нескольких пакетов), а также отвечающая за обеспечение диагностики и исправления ошибок. Сеанс происходит с использованием данных типов примитивов:
Компьютер, инициирующий сеанс, должен отправить запрос Open, после чего должен запросить запуск сеанса с помощью Call. Принимающий отвечает на каждый передаваемый пакет положительно (ACK), либо отрицательно (NAK). Чтобы сессия была закрыта, компьютер, который не является инициирующим должен отправить запрос Hang Up на завершение и получить подтверждение от инициатора.
Запуск и отключение службы NetworkBIOS
Перед тем, как прекратить работу NetBIOS через TCP/IP, помните, что служба является относительно важной для компьютера и после проведения данной операции не сможет правильно функционировать возможность доступа к сетевому компьютеру по NetBIOS-имени. Если персональный компьютер подключен к сети, не рекомендуется отключать данную службу, чтобы не возникало ошибок.
Пользователи задаются вопросом, как узнать статус службы в Windows 10 (и других выпусках). Для того чтобы это сделать, необходимо вызвать системное приложение «Выполнить» при помощи комбинации Win + R, затем ввести в поле «Запустить» значение «services.msc» и нажать ОК. Для удобного поиска можете отсортировать список в алфавитном порядке, щёлкнув на колонку «Имя». Здесь необходимо найти интересующую службу, в нашем случае это «Модуль поддержки NetBIOS» через TCP/IP». Колонка «Состояние» отображает, запущена ли в текущий момент служба или нет. По умолчанию данный модуль находится в запущенном состоянии, если компьютер подключен к сети.
Чтобы отключить NetBIOS, необходимо щёлкнуть правой кнопкой мыши по соответствующему элементу в списке и выбрать пункт «Свойства» в контекстном меню. В настройках службы NetBIOS следует нажать на кнопку «Остановить», а затем установить тип запуска «Отключена» чуть выше (если нужно запустить, то должно быть выбрано «Вручную» либо «Автоматически). Примените изменения, после чего нажмите «ОК и закройте приложение «Службы». Теперь запустите редактор реестра, воспользовавшись комбинацией Win + R и запросив запуск «regedit.exe». Перейдите в каталог «HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lmhosts» и измените значение атрибута «Start» на «4» (2 – автоматически, 3 – вручную и 4 – отключить, выбирайте в соответствии с желаемым действием) и нажмите ОК, затем нажмите кнопку F5 на клавиатуре. Перезагрузите компьютер и удостоверьтесь, что NetBIOS больше не запускается автоматически.
Надеемся, вы разобрались с принципом работы этого важного сетевого протокола, ранее имевшего статус первой необходимости на каждом компьютере (сейчас это время прошло, теперь используется исключительно соединение Service Message Block или SMB). Если остались какие-либо вопросы, связанные с данной темой, либо возникли проблемы во время отключения сетевого компонента Windows – записывайте свои ответы в комментарии. Не забывайте и про рейтинг, оцените статью с помощью специальной формы.
NetBIOS в руках хакера
В данной статье пойдёт краткое повествование о том, что нам может рассказать такая привычная с виду вещь как NetBIOS. Какую он может предоставить информацию для потенциального злоумышленника/пентестера.
Продемонстрированная область применения разведывательных техник относится к внутренним, то есть изолированным и недоступным извне сетям. Такие сети есть как правило у любой даже у самой крошечной компании.
Сам по себе NetBIOS используется, как правило, для получения сетевого имени. И этого будет достаточно, чтобы сделать как минимум 4 вещи.
Обнаружение хостов
Благодаря тому, что NetBIOS может использовать UDP в качестве транспорта, скорость его работы позволяет обнаруживать хосты в очень больших сетях. Так, например, инструмент nbtscan, входящий в одноимённый пакет, может всего за 2 секунды (может положить сеть) разресолвить адреса сети вида 192.168.0.0/16, тогда как традиционное TCP-сканирование займёт десятки минут. Эту особенность можно использовать как технику обнаружения хостов (host sweep) в очень больших сетях, о которых ничего не известно, перед тем как запускать nmap. Хотя результат и не гарантирует 100% обнаружения, т. к. преимущественно отвечать будут windows-хосты и то не все, он всё же позволит определить, в каких примерно диапазонах находятся живые хосты.
Идентификация хостов
Используя результаты получения имён из ip-адресов:
можно видеть: помимо того что имя раскрывает владельца рабочей станции (хотя такое кстати бывает далеко не всегда), один из адресов явно выделяется на фоне других. Мы можем видеть, что было получено имя KALI. Такое поведение характерно, как правило, для unix-реализации SMB/NetBIOS в составе программного пакета samba или очень старых Windows 2000.
Получение имени KALI, в то время как на других хостах это свидетельствует о наличии так называемой null-session. При дефолтных настройках SMB-сервера на linux склонны к ней. Null-session лишь позволяет абсолютно анонимно (а мы ни какие пароли не вводили, как видно на скрине) получить достаточно много дополнительной информации, такой как локальная парольная политика, список локальных пользователей, групп и список расшаренных ресурсов (шар):
Зачастую на linux SMB-серверах бывают публично доступные шары не то что на чтение, но даже на запись. Наличие и той, и другой несут в себе различные угрозы, использование которых выходит за рамки данной статьи.
NetBIOS так же позволяет получить имена всех типов, которые хранит рабочая станция:
в данном случае это позволяет узнать, что хост является ещё и контроллером домена ARRIVA.
Так же стоит еще дополнительно обратить внимание, что NetBIOS позволяет получить mac-адрес. При чём в отличие от arp-запросов, NetBIOS-запросы способны выйти за пределы подсети. Это может быть полезно если, например, требуется отыскать в сети какой-нибудь ноутбук или специфичное железо, зная его производителя. Так как первые три октета mac-адреса идентифицируют производителя, то можно рассылая подобные NetBIOS-запросы во все известные подсети попытаться найти нужное устройство (http://standards-oui.ieee.org/oui.txt).
Определение принадлежности к домену
Часто при перемещении по внутренним корпоративным сетям требуется атаковать именно рабочую станцию, включенную в домен (например, для поднятия привилегий до уровня доменного администратора) или наоборот. В данном случае NetBIOS опять-таки может помочь:
В данном случае с помощью NetBIOS были получены все имена всех типов. Среди них можно увидеть, помимо имени ПК (то что уже было получено до этого), ещё и имя рабочей группы. По дефолту для windows оно как правило что-то вроде WORKGROUP или IVAN-PC, но если рабочая станция в домене, то её рабочая группа — это и есть имя домена.
Таким образом, с помощью NetBIOS можно узнать в домене ли рабочая станция и, если да, то в каком.
Если же требуется получить список доменных хостов в пределах подсети, то хватит и одного широковещательного запроса с именем нужного домена:
в результате ответят все хосты, состоящие в данном домене.
Обнаружение multihomed хостов
И наконец ещё одна вероятно очень мало известная техника, которая является просто незаменимой для нахождения путей в защищённые, возможно даже изолированные физически, сети. Это могут быть цеховые сети предприятий, напичканные контроллерами. Доступ к этой сети для злоумышленника означает возможностью влиять на технологический процесс, а для предприятия риск понести колоссальные убытки.
Итак, суть в том, что даже если сеть изолирована из корпоративной сети, то зачастую некоторые администраторы, то ли по своей лени, то ли ещё как то, любят поднимать ещё одну сетевую карту на своих ПК для доступа в эту самую сеть. При этом всё это происходит конечно же в обход всяческих правил корпоративных сетевых экранов. Удобно, да, но не очень безопасно, в случае если вас взломают, тогда вы станете мостом в данную сеть и понесёте ответственность.
Однако для злоумышленника тут есть одна проблема — найти того самого администратора, который включился в защищённую сеть подобным нелегальным образом. Более того, это непростая проблема и для самих безопасников сети. На больших предприятиях это поистине сложная задача, словно отыскать иголку в стоге сена.
В данной ситуации очевидных варианта для злоумышленника было бы два:
это обратный ресолв ip-адрес → сетевое имя. Если же мы теперь попытаемся сделать прямой ресолв сетевое имя → ip-адрес:
то мы узнаем, что данный хост — это ещё и шлюз (по-видимому) в какой то другой сети. Стоит отметить, что в данном случае запрос шёл широковещательно. Иными словами, его услышат хосты только из подсети злоумышленника.
Если же целевой хост находится за пределами подсети, то можно послать таргетированный запрос:
Теперь осталось лишь быстро собрать информацию со всей интересующей подсети, а не с одного адреса. Для этого можно использовать небольшой python-скрипт:
И через несколько секунд:
Именно выделенный хост, в данном импровизированном случае стал бы первой мишенью злоумышленника, если бы он преследовал сеть 172.16.1/24.
Повторяющиеся имена на разных ip свидетельствуют о том, что хост имеет так же две сетевые карты, но уже в одной подсети. Тут стоит отметить, что NetBIOS не разглашает alias-ы (которые легко могут быть вычислены через arp-запросы как ip с одинаковым mac). В данном случае ip-адреса имеют разные mac.
Другой пример использования данного приёма — общественный Wi-Fi. Иногда можно встретить ситуацию, когда среди гостевых устройств к общественной сети подключается персонал, работающий в закрытом корпоративном сегменте. Тогда с помощью данной разведывательной техники злоумышленник очень быстро сможет наметить себе путь для прохождения в закрытую сеть:
В данном случае среди 65 клиентов общественного Wi-Fi оказались две рабочие станции, имеющие дополнительный интерфейс, вероятно относящийся к корпоративной сети.
Если иногда между сетевыми сегментами или прямо на рабочих станциях наблюдается фильтрация трафика на 445/tcp порт, препятствующая удалённому входу на систему (удалённому исполнению кода), то в данном случае для разрешения имён по NetBIOS используется 137/udp порт, сознательное блокирование которого почти не встречается, т. к. от этого сильно пострадает удобство работы в сети, например, может исчезнуть сетевое окружение и т.п.
Как говорится, enumeration is the key
Есть ли от этого защита? Её нет, т. к. это и не уязвимость во все. Это лишь штатный функционал того немного что есть по умолчанию у windows (в linux поведение немного отличается). И если вы, вдруг несогласованно, в обход правил сетевой маршрутизации включились в закрытый сегмент, то злоумышленник вас обязательно найдет и сделает это очень быстро.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
NetBIOS: что это, как работает и как проверить
У каждого компьютера Windows есть Имя компьютера. Если даже вы его не устанавливали, то значит там записано сгенерированное при установке операционной системы имя.
Это имя компьютера в локальной сети можно использовать как полную альтернативу локальному IP адресу:
При этом не требуется какая-либо настройка DNS или файла hosts, поскольку такое распознавание имён обеспечивается NetBIOS. Мы уже сталкивались с NetBIOS, а точнее с одной из трёх его служб — NBT-NS — в статье «Взлом сетевой аутентификации Windows». Это одна из служб, которая эксплуатировалась для выполнения атаки.
То есть, NetBIOS имеет важное значение для Windows, а также для изучения устройства Windows, анализа сетевой активности Windows и в вопросах безопасности локальных сетей и компьютеров с Windows.
Естественно, в лучших в традициях HackWare.ru, в статье будет только необходимая теория и максимум практики — мы будем «щупать» протокол NetBIOS в Wireshark, встроенной утилите Windows и в специализированных инструментах для аудита безопасности. Но начнём всё-таки с теории.
Что такое 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 делятся на три типа:
IP-адрес может ассоциироваться с одним из указанных типов. B-узлы устанавливают связь со своим партнёром посредством широковещательных запросов. P- и M-узлы для этой цели используют netbios сервер имён (NBNS) и сервер распределения дейтаграмм (NBDD).
Службы NetBIOS
NetBIOS предоставляет три разных службы:
(Примечание: SMB, верхний уровень, является службой, которая выполняется поверх службы сеансов и службы дейтаграмм, и её не следует считать необходимой и неотъемлемой частью самого NetBIOS. Теперь она может работать поверх TCP с небольшим уровнем адаптации, который добавляет длину пакета к каждому сообщению SMB; это необходимо, потому что TCP предоставляет только услугу потока байтов без понятия «границы пакета».)
Служба имён (NetBIOS-NS)
Чтобы начать сеансы или распространять дейтаграммы, приложение должно зарегистрировать своё имя NetBIOS, используя службу имён. Имена NetBIOS имеют длину 16 октетов и различаются в зависимости от конкретной реализации. Часто 16-й октет, называемый суффиксом NetBIOS, обозначает тип ресурса и может использоваться для сообщения другим приложениям, какой тип услуг предлагает система. В NBT служба имён работает на UDP-порту 137 (TCP-порт 137 также может применяться, но используется редко).
Примитивы службы имён, предлагаемые NetBIOS:
Разрешение имён NetBIOS не поддерживается Microsoft для Интернет-протокола версии 6 (IPv6).
Служба рассылки дейтаграмм (NetBIOS-DGM)
Режим датаграммы без установления соединения; Приложение отвечает за обнаружение и восстановление ошибок. В NBT служба дейтаграмм работает на UDP-порту 138.
Примитивы службы дейтаграмм, предлагаемые NetBIOS:
Служба сеанса (NetBIOS-SSN)
Режим сеанса позволяет двум компьютерам устанавливать соединение, позволяет сообщениям охватывать несколько пакетов и обеспечивает обнаружение и восстановление ошибок. В NBT служба сеанса работает через порт TCP 139.
Примитивы службы сеанса, предлагаемые NetBIOS:
В исходном протоколе, используемом для реализации сервисов NetworkBIOS в сети PC-Network, для установления сеанса инициирующий компьютер отправляет запрос Open, на который отвечает подтверждение Open. Компьютер, запустивший сеанс, затем отправит пакет запроса сеанса, который запросит либо пакет подтверждения сеанса, либо пакет отклонения сеанса.
В течение установленного сеанса на каждый передаваемый пакет отвечает либо ответ с положительным подтверждением (ACK), либо ответ с отрицательным подтверждением (NAK). NAK предложит повторную передачу данных. Сессии закрываются не инициирующим компьютером, отправляя запрос на закрытие. Компьютер, запустивший сеанс, ответит пакетом закрытия, который запрашивает окончательный пакета закрытия сеанса.
Как соотносится Имя NetBIOS с именем хоста в Интернете
Когда NetBIOS работает в сочетании с интернет-протоколами (например, NBT), каждый компьютер может иметь несколько имён: одно или несколько имён службы имен NetBIOS и одно или несколько имён хостов Интернета.
Имя NetBIOS
Имя NetBIOS состоит из 16 символов ASCII, однако Microsoft ограничивает имя хоста 15 символами и резервирует 16-й символ как суффикс NetBIOS. Этот суффикс описывает тип записи службы или имени, такой как запись узла, основная запись браузера или запись контроллера домена или другие службы. Имя хоста (или короткое имя хоста) указывается при установке/настройке сети Windows, зарегистрированные суффиксы определяются отдельными сервисами, предоставляемыми хостом. Чтобы подключиться к компьютеру под управлением TCP/IP через его имя NetBIOS, имя должно быть преобразовано в сетевой адрес. Сегодня это обычно IP-адрес (преобразование имени NetBIOS в IP-адрес часто выполняется с помощью широковещательной рассылки или сервера WINS — сервера имён NetBIOS). NetBIOS-имя компьютера часто совпадает с именем хоста этого компьютера, хотя оно усекается до 15 символов, но оно также может быть и совершенно другим.
Имена NetBIOS представляют собой последовательность буквенно-цифровых символов. Следующие символы явно недопустимы: \/:*?»<>|. Начиная с Windows 2000, имена NetBIOS также должны соответствовать ограничениям на DNS-имена: они не могут состоять исключительно из цифр и дефиса («-«), а символ точка («.») не могут отображаться в качестве первого или последнего символа. Начиная с Windows 2000, Microsoft не рекомендует включать любые символы точка («.») в имена NetBIOS, так что приложения могут использовать присутствие точки, чтобы отличить доменные имена от имён NetBIOS.
Файл Windows LMHOSTS предоставляет метод разрешения имён NetBIOS, который можно использовать в небольших сетях, в которых не используется сервер WINS. О файле LMHOSTS далее.
Интернет имя хоста
NetBIOS-имя Windows-машины не следует путать с именем хоста компьютера в Интернете (при условии, что компьютер также является хостом Интернета, а не узлом NetBIOS, что не обязательно должно иметь место). Как правило, компьютер, на котором запущены интернет-протоколы (будь то компьютер с Windows или нет), обычно имеет имя хоста (также иногда называемое именем компьютера). Первоначально эти имена хранились в файле hosts и предоставлялись им, но сегодня большинство таких имён являются частью иерархической системы доменных имен (DNS) (смотрите Введение в DNS терминологию, компоненты и концепции).
Обычно имя хоста компьютера Windows основывается на имени NetBIOS плюс первичный DNS-суффикс, которые оба задаются в диалоговом окне «Свойства системы». Также могут существовать суффиксы для конкретного соединения, которые можно просмотреть или изменить на вкладке DNS в Панели управления → Сеть → TCP / IP → Дополнительные свойства. Имена хостов используются такими приложениями, как telnet, ftp, веб-браузеры и т. д. Чтобы подключиться к компьютеру, использующему протокол TCP/IP, используя его имя, имя хоста должно быть преобразовано в IP-адрес, обычно DNS-сервером. (Также возможно работать со многими приложениями на основе TCP/IP, включая три, перечисленные выше, используя только IP-адреса, но это не норма.)
Как обнаружить NetBIOS
Можно запустить обычное сканирование TCP портов в локальной сети с помощью nmap:
И среди результатов можно обнаружить открытый TCP порт 139:
Если нас интересует только службы NetBIOS, то достаточно искать UDP порты 137 и 138 и TCP порты 137 и 139, воспользуемся Рецептами nmap и составим такую команду:
Плюс такого подхода в том, что сканирование происходит намного быстрее и дополнительно найдены открытые порты UDP.
Благодаря последней команде мы дополнительно узнали:
Дополнительно можно воспользоваться скриптами Nmap (NSE) — я нашёл 3 скрипта, которые связаны с NetBIOS:
nbd-info
Отображает информацию о протоколах и блочных устройствах с серверов NBD.
nbstat
Пытается получить имена NetBIOS и MAC-адрес цели.
broadcast-netbios-master-browser
Пытается обнаружить главные браузеры и домены, которыми они управляют.
Для их использования во время сканирования команда примерно следующая:
nbtstat
Программа nbtstat предназначена для отображения статистики протокола NetBIOS и текущих подключений TCP/IP с помощью NBT (NetBIOS через TCP/IP). Программа nbtstat предустановлена в Windows, то есть её не нужно скачивать и устанавливать, но нужно запускать в командной строке. Смотрите «Настройка рабочего окружения PowerShell в Windows и Linux».
Рассмотрим примеры использования nbtstat.
Чтобы по IP адресу узнать имя хоста используйте опцию -A:
Чтобы просмотреть имена компьютеров и их IP, сохранённые в кэше укажите опцию -c:
Чтобы узнать имя текущего компьютера используйте nbtstat с опцией -n:
Для вывода имён, определённых с помощью рассылки и WINS запустите такую команду:
Фильтры Wireshark для выделения NetBIOS трафика
Wireshark поддерживает практически все сетевые протоколы (смотрите «Фильтры Wireshark»), в том числе и протоколы NetBIOS.
Фильтр Wireshark для службы имён (NetBIOS-NS):
Широковещательный запрос, чтобы определить IP адрес по имени компьютера:
Запрос к определённому узлу для получения его имени хоста:
Фильтр Wireshark для службы рассылки дейтаграмм (NetBIOS-DGM):
Фильтр Wireshark для службы сеанса (NetBIOS-SSN):
Для фильтрации всего трафика NetBIOS:
Файл LMHOSTS
Файл LMHOSTS (LAN Manager Hosts) используется для разрешения (преобразования) доменных имён в Windows, когда другие методы, такие как WINS, не работают. Используется совместно с рабочими группами и доменами. Если вы ищете простой, общий механизм для локальной спецификации IP-адресов для определённых имён хостов (имён серверов), используйте файл HOSTS, а не файл LMHOSTS.
Файл, если он существует, читается как файл настроек LMHOSTS. Пример файла (lmhosts.sam) предоставляется. Он содержит документацию для ручной настройки файла.
В Windows NT 4.0, Windows 2000, Windows XP, Vista, 7, 8, 10, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2016+ файл находится в %windir%\system32\drivers\etc\, и там же размещён пример файла (lmhosts.sam). Обратите внимание, что %windir% является переменной окружения, указывающей на папку, куда установлена Windows, обычно это C:\Windows.
Синтаксис файла LMHOSTS такой же, как и у HOSTS, то есть:
Эксплуатация NetBIOS
Программа для аудита безопасности NetBIOS можно разделить на 2 группы:
Программы для сканирования NetBIOS в большей части заброшены, поскольку практически всю информацию (имя, IP, MAC адрес) можно узнать либо стандартной утилитой Windows, либо сканером Nmap.
Что касается инструментов для спуфинга NetBIOS, то среди них достаточно актуальных программ, обычно включающих в себя спуфинг служб NetBIOS как часть комплексной атаки.
Далее совсем краткий обзор инструментов, поскольку инструменты для сканирования слишком просты, чтобы говорить о них много, а инструменты для спуфинга слишком сложные, чтобы рассматривать их в этой статье — каждый из них заслуживает собственной статьи или даже нескольких инструкций — по различных их функциям.
Invoke-Inveigh
Inveigh — это спуфер PowerShell ADIDNS/LLMNR/NBNS/mDNS/DNS и инструмент для атаки «человек посередине», предназначенный для помощи тестировщикам на проникновения/красным тимерам, которые ограничены системой Windows.
Для этой программы готовится перевод документации и статьи на HackWare.ru.
Пример запуска наблюдения без атаки:
Responder
Responder это инструмент для выполнения атаки человек-посередине в отношении методов аутентификации в Windows. Эта программа включает в себя травитель LLMNR, NBT-NS и MDNS благодаря которому перенаправляется трафик с запросами и хешами аутентификации. Также в программу встроены жульнические серверы аутентификации HTTP/SMB/MSSQL/FTP/LDAP, которые поддерживают такие методы аутентификации как NTLMv1/NTLMv2/LMv2, Extended Security NTLMSSP и базовую HTTP аутентификацию, для которых Responder выполняет роль ретранслятора.
Подробная инструкция по использованию Responder «Взлом сетевой аутентификации Windows».
nmbscan
nmbscan сканирует сетевые папки SMB/NetBIOS, используя протоколы NMB/SMB/NetBIOS. Это полезно для получения информации о локальной сети для таких целей, как аудит безопасности.
Он может получать такую информацию, как имя хоста NMB/SMB/NetBIOS/Windows, IP-адрес, имя хоста IP, MAC-адрес Ethernet, имя пользователя Windows, имя домена NMB/SMB/NetBIOS/Windows и главный браузер.
Он может обнаружить все узлы NMB/SMB/NetBIOS/Windows в локальной сети, используя списки узлов, поддерживаемые основными браузерами.
Домашняя страница: http://archive.fo/uN8WJ (оригинальный сайт больше недоступен)
Имеется в репозиториях BlackArch:
Для сканирования подсети (очень медленно):
netbios-share-scanner
Этот инструмент можно использовать для проверки рабочих станций Windows и серверов, если они имеют доступные общие ресурсы.
fakenetbios
Семейство инструментов, предназначенное для симуляции хостов Windows (NetBIOS) в LAN (локальной сети).
nbnspoof
Спуфер имён служб NetBIOS.
nbtenum
Утилита для Windows, которая может использоваться для перечисления информации NetBIOS с одного хоста или диапазона хостов. Для запуска на Windows.
nbtool
Несколько инструментов для изучения, атак и связи с NetBIOS и DNS.
nbname
Декодирует и отображает все имена NetBIOS пакетов, полученные на UDP порту 137 и другое! Для запуска на Windows.
nbtscan
Последние две программы у меня не заработали.