РАСКЛАДКА ПРОТОКОЛА NetBIOS

NetBIOS по полочкам

Спецвыпуск Xakep, номер #023, стр. 023-038-3


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

И, наконец, можно использовать обыкновенный интернетовский DNS (Domain Name System) - как сервер имен NetBIOS. Правда, в этом случае пользователь уже не сможет так вольно распоряжаться именами. Это не очень удобно.

Все запросы и ответы на них у NetBIOS реализованы в пакете сервиса имен. Этот пакет имеет очень много разных модификаций в зависимости от его назначения: широковещательный запрос, запрос о регистрации имени, запрос для WINS или DNS, или проверка имени на существование. В этой статье хватило места только для того, чтобы дать общий формат пакета и заголовок, подробнее читай в RFC 1002.

Кстати, для отправки и получения пакетов именного сервиса используется 137 порт TCP/IP.

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

Кроме этих имен возможно обращение по постоянному (permanent) имени, которое складывается из нулей и MAC-адреса сетевого адаптера. MAC (Media Access Control) - контроль доступа к среде, это физический адрес адаптера, прошитый в него намертво производителем.

Хакеру, который любит сканировать и изучать чужие локальные сети, полезно представлять себе работу службы имен NetBIOS. Такой хакер умеет узнавать по IP имя NetBIOS и наоборот. Имена машин в корпоративной сети могут здорово подсказать хакеру способы взлома. И потом, если хакер получил доступ к протоколу NetBIOS, это значит, что скоро он подберет пароль и получит доступ к диску удаленной тачки.

ИСТОРИЯ ЧЕТВЕРТАЯ (СТУДЕНЧЕСКАЯ)

О сессии NetBIOS

NetBIOS - это протокол с установлением соединения (сессии). Это нужно для того, чтобы можно было восстанавливать потерявшиеся в процессе передачи данные. Вообще-то, TCP тоже протокол с установлением соединения, и он тоже умеет восстанавливать данные, которые не дошли (то есть запрашивать их заново). Но поскольку в NetBIOS все так исторически сложилось, будем разбираться с сессиями.

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

Когда вызывающая станция определилась с именами и адресами, она отправляет запрос на установление соединения. На этот запрос приходит подтверждение установления соединения, отказ или переадресация. При отказе обязательно передается причина (код ошибки), а при переадресации новый адрес. После того как соединение установлено, в сессионных пакетах высылаются пользовательские данные, а в ответ приходят подтверждения. В RFC 1002 про подтверждения ничего не сказано, может быть, их решили оттуда удалить за ненадобностью либо они закопаны куда-то очень глубоко.

Назад на стр. 023-038-2  Содержание  Вперед на стр. 023-038-4