Как узнать netbios имя компьютера

Обновлено: 04.07.2024

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

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

Сам по себе NetBIOS используется, как правило, для получения сетевого имени. И этого будет достаточно, чтобы сделать как минимум 4 вещи.

Обнаружение хостов

Благодаря тому, что NetBIOS может использовать UDP в качестве транспорта, скорость его работы позволяет обнаруживать хосты в очень больших сетях. Так, например, инструмент nbtscan, входящий в одноимённый пакет, может всего за 2 секунды (может положить сеть) разресолвить адреса сети вида 192.168.0.0/16, тогда как традиционное TCP-сканирование займёт десятки минут. Эту особенность можно использовать как технику обнаружения хостов (host sweep) в очень больших сетях, о которых ничего не известно, перед тем как запускать nmap. Хотя результат и не гарантирует 100% обнаружения, т. к. преимущественно отвечать будут windows-хосты и то не все, он всё же позволит определить, в каких примерно диапазонах находятся живые хосты.

Идентификация хостов

Используя результаты получения имён из ip-адресов:

image

можно видеть: помимо того что имя раскрывает владельца рабочей станции (хотя такое кстати бывает далеко не всегда), один из адресов явно выделяется на фоне других. Мы можем видеть, что было получено имя KALI. Такое поведение характерно, как правило, для unix-реализации SMB/NetBIOS в составе программного пакета samba или очень старых Windows 2000.

Получение имени KALI, в то время как на других хостах это <unknown> свидетельствует о наличии так называемой null-session. При дефолтных настройках SMB-сервера на linux склонны к ней. Null-session лишь позволяет абсолютно анонимно (а мы ни какие пароли не вводили, как видно на скрине) получить достаточно много дополнительной информации, такой как локальная парольная политика, список локальных пользователей, групп и список расшаренных ресурсов (шар):

image

Зачастую на linux SMB-серверах бывают публично доступные шары не то что на чтение, но даже на запись. Наличие и той, и другой несут в себе различные угрозы, использование которых выходит за рамки данной статьи.

NetBIOS так же позволяет получить имена всех типов, которые хранит рабочая станция:

image

в данном случае это позволяет узнать, что хост является ещё и контроллером домена ARRIVA.

Определение принадлежности к домену

Часто при перемещении по внутренним корпоративным сетям требуется атаковать именно рабочую станцию, включенную в домен (например, для поднятия привилегий до уровня доменного администратора) или наоборот. В данном случае NetBIOS опять-таки может помочь:

image

В данном случае с помощью NetBIOS были получены все имена всех типов. Среди них можно увидеть, помимо имени ПК (то что уже было получено до этого), ещё и имя рабочей группы. По дефолту для windows оно как правило что-то вроде WORKGROUP или IVAN-PC, но если рабочая станция в домене, то её рабочая группа — это и есть имя домена.

Таким образом, с помощью NetBIOS можно узнать в домене ли рабочая станция и, если да, то в каком.

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

image

в результате ответят все хосты, состоящие в данном домене.

Обнаружение multihomed хостов

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

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

В данной ситуации очевидных варианта для злоумышленника было бы два:

  1. попытаться использовать каждый ПК в корпоративной подсети в качестве шлюза до требуемой сети. Это было бы очень удобно, но такое редко встречается, т. к. на windows хостах ip forwarding почти всегда отключен. Более того подобная проверка возможна только внутри своей подсети, а также она требует от злоумышленника точно знать целевой адрес из изолированной сети
  2. пытаться удалённо заходить на каждый хост и выполнять банальную команду ipconfig/ifconfig. И тут не всё так гладко. Даже если злоумышленник заручился правами доменного администратора, то сетевые экраны и локальные фаерволы никто не отменял. Так что данная задача не на 100% автоматизируется. В результате остаётся мучительно заходить на каждый хост, преодолевая сетевые экраны (часто блокирующие именно 445/tcp порт), в надежде увидеть наконец желанный сетевой интерфейс.

image

это обратный ресолв ip-адрес → сетевое имя. Если же мы теперь попытаемся сделать прямой ресолв сетевое имя → ip-адрес:

image

то мы узнаем, что данный хост — это ещё и шлюз (по-видимому) в какой то другой сети. Стоит отметить, что в данном случае запрос шёл широковещательно. Иными словами, его услышат хосты только из подсети злоумышленника.

Если же целевой хост находится за пределами подсети, то можно послать таргетированный запрос:

image

В данном случае видно, что цель находится за пределами подсети злоумышленника. С помощью ключа -B было указано, что запрос следует слать на конкретный адрес, а не на широковещательный.

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

image

И через несколько секунд:

image

Именно выделенный хост, в данном импровизированном случае стал бы первой мишенью злоумышленника, если бы он преследовал сеть 172.16.1/24.

image

Повторяющиеся имена на разных ip свидетельствуют о том, что хост имеет так же две сетевые карты, но уже в одной подсети. Тут стоит отметить, что NetBIOS не разглашает alias-ы (которые легко могут быть вычислены через arp-запросы как ip с одинаковым mac). В данном случае ip-адреса имеют разные mac.

Другой пример использования данного приёма — общественный Wi-Fi. Иногда можно встретить ситуацию, когда среди гостевых устройств к общественной сети подключается персонал, работающий в закрытом корпоративном сегменте. Тогда с помощью данной разведывательной техники злоумышленник очень быстро сможет наметить себе путь для прохождения в закрытую сеть:

image

В данном случае среди 65 клиентов общественного Wi-Fi оказались две рабочие станции, имеющие дополнительный интерфейс, вероятно относящийся к корпоративной сети.

Если иногда между сетевыми сегментами или прямо на рабочих станциях наблюдается фильтрация трафика на 445/tcp порт, препятствующая удалённому входу на систему (удалённому исполнению кода), то в данном случае для разрешения имён по NetBIOS используется 137/udp порт, сознательное блокирование которого почти не встречается, т. к. от этого сильно пострадает удобство работы в сети, например, может исчезнуть сетевое окружение и т.п.

Как говорится, enumeration is the key
Есть ли от этого защита? Её нет, т. к. это и не уязвимость во все. Это лишь штатный функционал того немного что есть по умолчанию у windowslinux поведение немного отличается). И если вы, вдруг несогласованно, в обход правил сетевой маршрутизации включились в закрытый сегмент, то злоумышленник вас обязательно найдет и сделает это очень быстро.

Конфигурация компьютера
Процессор: AMD Athlon FX 1700+
Материнская плата: Soltek SL-75DRV5
Память: 2x512Мб
HDD: 2х Seagate ST3120026A 120Gb UATA/100
Видеокарта: nVidea GF Ti 4200
Звук: Creative SB0092 Audigy
Блок питания: Codegen 350
CD/DVD: Teac CD-W540E, Nec DVD-RW ND-3500AG
Монитор: LG Flatron 795FT+ (17'' CRT)
ОС: WinXP SP2 Eng VLK
Прочее: сеть - Realtek RTL8029(AS)

Fighter"ping -a IP" - увы, это не поможет. Использование ключа позволяет узнавать IP при указании имени, но не наоборот.

А вот второй способ подходит, но есть исключение. Если на той стороне стоит запрет на ICMP (например, скрытый режим в ПСЭ), то трасерт не покажет ни IP ни имя, а стандартные "звездочки". Вариант TbMA таким недостатком не обладает.

Использование ключа позволяет узнавать IP при указании имени, но не наоборот.
но в данном варианте (оговорка) имеет место проблема разрешения имен. DNS or local file Hosts, судя по последнему посту SSS.
Конфигурация компьютера
Процессор: AMD Athlon FX 1700+
Материнская плата: Soltek SL-75DRV5
Память: 2x512Мб
HDD: 2х Seagate ST3120026A 120Gb UATA/100
Видеокарта: nVidea GF Ti 4200
Звук: Creative SB0092 Audigy
Блок питания: Codegen 350
CD/DVD: Teac CD-W540E, Nec DVD-RW ND-3500AG
Монитор: LG Flatron 795FT+ (17'' CRT)
ОС: WinXP SP2 Eng VLK
Прочее: сеть - Realtek RTL8029(AS)

Использование:
ping [-t] [-a] [-n <число>] [-l <размер>] [-f] [-i <TTL>] [-v <TOS>]
[-r <число>] [-s <число>] [[-j <список_узлов>] | [-k <список_узлов>]]
[-w <таймаут>] [-R] [-S <источник>] [-4] [-6] <конечный_узел>


Имя компьютера (или NETBIOS-имя, DNS-имя) – это название ПК, которое используется для доступа из локальной сети. С помощью данного имени можно взаимодействовать с компьютером по локальной сети не используя IP-адрес, который может быть трудно запомнить.

В этой инструкции мы рассмотрим несколько способов, как узнать и изменить это имя компьютера. Все способы достаточно универсальны и будут работать как в Windows 7, так и в Windows 10.

Как определить имя компьютера с помощью комбинации клавиш Windows-Pause/Break

Самый простой способ узнать имя компьютера в локальной сети, это воспользоваться комбинацией клавиш Windows-Pause/Break. Данная комбинация работает как в Windows 10, так и в более старых версиях Windows, например в Windows 7.

комбинация клавиш Windows-Pause/Break

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

окно Просмотр основных сведений

Также здесь есть ссылка «Изменить параметры», которая позволяет быстро перейти к окну редактирования имени компьютера.

ссылка Изменить параметры

После нажатия на ссылку «Изменить параметры» открывается окно «Свойства системы». Здесь также указано имя компьютера в локальной сети, а также имя локальной группы. Чуть ниже есть кнопка «Изменить», которая открывает окно для смены имени.

кнопка Изменить

После нажатия на кнопку «Изменить» появится окно «Изменение имени компьютера или домена».

Изменение имени компьютера

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

Как определить имя компьютера по свойствам ярлыка

Еще один не сложный способ определения имени компьютера заключается в использования любого ярлыка на рабочем столе. Для этого нужно кликнуть правой кнопкой мышки по любому ярлыку (нужен именно ярлык, а не файл) и перейти в «Свойства». После этого в свойствах ярлыка нужно открыть вкладку «Подробно» и найти там строчку «Компьютер».

имя компьютера по свойствам ярлыка

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

Как определить имя компьютера с помощью командной строки

Также вы можете определить имя компьютера с помощью командной строки. Для этого нажмите комбинацию клавиш Windows-R и выполните команду «CMD» либо запустите командную строку любым другим удобным способом.

команда CMD

В открывшемся окне командной строки нужно выполнить команду «hostname», после чего операционная система выведет текущее название системы в локальной сети.

команда hostname

Также через командную строку можно изменить имя компьютера. Для этого запустите CMD с правами администратора и выполните следующую команду:

Где «NewName» — это новое имя.

Как найти имя компьютера в msinfo32

Msinfo32 – это команда, которую нужно выполнить для того, чтобы открыть окно «Сведения о системе». В этом окне можно получить большое количество информации о текущей конфигурации системы и состоянии Windows. В частности, здесь можно найти имя компьютера в локальной сети.

Итак, для того чтобы воспользоваться данным способом вам нужно нажать комбинацию клавиш Windows-R и выполнить команду «msinfo32». Также вы можете ввести данную команду в поиск в меню «Пуск».

команда msinfo32

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

окно Сведения о системе

Тут нужно найти строку «Имя системы», в которой и будет указано имя компьютера.

Как узнать имя компьютера по IP адресу в сети

Если вам нужно узнать имя другого компьютера в локальной сети, то вы можете сделать это по IP адресу. Для этого нужно запустить командную строку и выполнить команду «ping -a 192.168.1.1», где «192.168.1.1» — это IP адрес имя которого нужно узнать.

имя компьютера по IP адресу

При использовании параметра «-a» система выполнит команду Ping с выводом сетевого имени компьютера.

adresaciya-v-kompyuternyx-setyax

Для передачи данных в локальных и глобальных сетях устройство-отправитель должно знать адрес устройства-получателя. Поэтому каждый сетевой компьютер имеет уникальный адрес, и не один, а целых три адреса: физический или аппаратный (MAC-адрес); сетевой (IP-адрес); символьный (обычное имя компьютера или полное доменное имя).

Физический адрес компьютера

Физический (аппаратный) адрес компьютера зависит от технологии, с помощью которой построена сеть. В сетях Ethernet это MAC-адрес сетевого адаптера. MAC-адрес жестко “зашивается” в сетевую карту ее производителем и обычно записывается в виде 12 шестнадцатеричных цифр (например, 00-03-BC-12-5D-4E).

Это гарантированно уникальный адрес: первые шесть символов идентифицируют фирму-производителя, которая следит, чтобы остальные шесть символов не повторялись на производственном конвейере. MAC-адрес выбирает производитель сетевого оборудования из выделенного для него по лицензии адресного пространства. Когда у машины заменяется сетевой адаптер, то меняется и ее MAC-адрес.

mac-адрес

Узнать MAC-адрес сетевой карты вашего компьютера можно следующим образом:
1. Зайдите в “Пуск” – “Выполнить” – введите с клавиатуры команду cmd – “ОК”.
2. Введите команду ipconfig /all и нажмите клавишу Enter.
Данная команда позволяет получить полную информацию обо всех сетевых картах ПК. Поэтому найдите в этом окошке строку Физический адрес – в ней будет обозначен MAC-адрес вашей сетевой карты. В моем случае это выглядит так:

Сетевой адрес компьютера

Сетевой адрес, или IP-адрес используется в сетях TCP/IP при обмене данными на сетевом уровне. IP расшифровывается как Internet Protocol – протокол интернета. IP-адрес компьютера имеет длину 32 бита и состоит из четырех частей, именуемых октетами. Каждый октет может принимать значения от 0 до 255 (например, 90.188.125.200). Октеты отделяются друг от друга точками.

IP-адрес компьютера, например 192.168.1.10, состоит из двух частей – номера сети (иногда называемого идентификатором сети) и номера сетевого компьютера (идентификатора хоста). Номер сети должен быть одинаковым для всех компьютеров сети и в нашем примере номер сети будет равен 192.168.1. Номер компьютера должен быть уникален в данной сети, и компьютер в нашем примере имеет номер 10.
IP-адреса компьютеров в разных сетях могут иметь одинаковые номера. Например, компьютеры с IP-адресами 192.168.1.10 и 192.168.15.10 хоть и имеют одинаковые номера (10), но принадлежат к разным сетям (1 и 15). Поскольку адреса сетей различны, то компьютеры не могут быть спутаны друг с другом.

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


255 указывает на биты, предназначенные для адреса сети, в остальных местах (которым соответствует значение 0) должен располагаться адрес компьютера. Чем меньше значение маски, тем больше компьютеров объединено в данную подсеть. Маска сети присваивается компьютеру одновременно с IP-адресом. Чтобы было понятно, приведем простой пример: сеть 192.168.0.0 с маской 255.255.255.0 может содержать в себе компьютеры с адресами от 192.168.0.1 до 192.168.0.254. А сеть 192.168.0.0 с маской 255.255.255.128 допускает адреса от 192.168.0.1 до 192.168.0.127.

Сети с большим количеством компьютеров обычно делят на части, называемые подсетями. Деление на подсети применяется для обеспечения повышенной безопасности и разграничения доступа к ресурсам различных подсетей. Компьютеры разных подсетей не смогут передавать пакеты друг другу без специального устройства – маршрутизатора, а, следовательно, никто не сможет проникнуть в защищенную таким образом подсеть. Чтобы создать подсети, часть места в IP-адресе, отведенном для номера хоста, отдают под номера подсети.
Рассмотрим пример, когда у нас в локальной сети 50 компьютеров и требуется настроить их так, чтобы 20 компьютеров могли “общаться” между собой, но не смогли передавать и принимать данные от остальных 10 компьютеров, которые также должны общаться только между собой. Решение этой задачи довольно простое – делим нашу сеть на две подсети . В первой подсети “раздаем” компьютерам (их у нас 20) номера из диапазона 192.168.1.1 – 192.168.1.20, а во второй подсети для оставшихся 10 компьютеров раздаем номера из диапазона 192.168.2.1 – 192.168.2.10.

ip-адрес и маска подсети

Если ваш компьютер подключен к локальной сети или интернет, вы можете узнать его IP-адрес и маску подсети уже знакомым нам способом:
1. Зайдите в “Пуск” – “Выполнить” – наберите cmd и нажмите “ОК”.
2. В открывшемся окне введите команду ipconfig /all и нажмите клавишу Enter.
IP-адрес компьютера и маску подсети вы увидите в соответствующих строках:Номер сети может быть выбран администратором произвольно, либо назначен по рекомендации специального подразделения Интернет (Network Information Center – NIC), если сеть должна работать как составная часть Интернет. Обычно интернет-провайдеры получают диапазоны адресов у подразделений NIC, а затем распределяют их между своими абонентами. Это внешние IP-адреса (доступные из интернета), например 90.188.125.200.

Для локальных сетей зарезервированы внутренние IP-адреса (к ним нельзя получить доступ через интернет без специального ПО) из диапазонов:

  • 192.168.0.1 – 192.168.254.254
  • 10.0.0.1 – 10.254.254.254
  • 172.16.0.1 – 172.31.254.254

Из этих диапазонов вы, как системный администратор, и будете назначать адреса компьютерам в вашей локальной сети. Если вы “жестко” зафиксируете IP-адрес в настройках компьютера, то такой адрес будет называться статическим – это постоянный, неизменяемый IP-адрес ПК.
Существует и другой тип IP-адресов – динамические, которые изменяются при каждом входе компьютера в сеть. За управление процессом распределения динамических адресов отвечает служба DHCP. О ней я расскажу вам в одной из следующих статей.

Имя сетевого компьютера

Помимо физического и сетевого адресов компьютер может также иметь символьный адрес – имя компьютера . Имя компьютера – это более удобное и понятное для человека обозначение компьютера в сети. Различают NetBIOS имена и полные доменные имена компьютеров.

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

Имя NetBIOS может содержать не более 15 символов и должно быть на английском языке.

Читайте также: