Опубликован: 20.02.2007 | Доступ: свободный | Студентов: 3481 / 786 | Оценка: 4.42 / 4.03 | Длительность: 40:03:00
Лекция 2:

Системные средства с открытым программным кодом: основы

Nmblookup

Мы говорили о необходимости знать NetBIOS-имена. Эта утилита поможет нам найти требуемую информацию.

Реализация. Посмотрим, что произойдет, если мы запустим nmblookup для 192.168.1.101

[jdoe@originix ~]$ nmblookup -A 192.168.1.101
Sending queries to 192.168.1.255 
Looking up status of 192.168.1.101
received 8 names

BADMAN              <00>            B <ACTIVE>
MYWORKGROUP         <00>    <GROUP> B <ACTIVE>
BADMAN              <03>            B <ACTIVE>
BADMAN              <20>            B <ACTIVE>
MYWORKGROUP         <1e>    <GROUP> B <ACTIVE>
JOEUSER             <03>            B <ACTIVE>
MYWORKGROUP         <1e>    <GROUP> B <ACTIVE>
..__MSBROWSE__.     <01>    <GROUP> B <ACTIVE>
num_good_sends=0 num_good_receives=0

Не совсем то, на что мы надеялись. У нас есть несколько имен, но как определить, что есть что. В данном примере достаточно просто понять, что имя хоста, который нам нужен, это BADMAN. Вывод этой команды практически идентичен выводу команды nbtstat -A. Несколько позже мы поговорим о смысле каждого конкретного имени в разделе "NBTSTAT".

Если нам нужен другой способ поиска IP-адреса NetBIOS-имени, мы можем сделать следующее.

[jdoe@originix ~]$ nmblookup badman
Sending queries to 192.168.1.255 
192.168.1.101badman<00>

Если мы добавим флаг -S, nmblookup добавит туже самую информацию, которую выводил с использованием опции -A.

Nmblookup использует несколько разных методов в попытке установить соответствие между именами (в соответствии с конфигурацией smb.conf ). Доступны методы WINS или lmhosts, DNS или hosts, или широковещательный запрос ( broadcast ) (который требует, чтобы цель находилась в той же подсети)

Автоматизация процесса

Понятно, что можно многое сделать с общим ресурсом, который вы однажды обнаружили. Есть доступные программы-сканеры "smbscan", как для Windows, так и для Unix, которые просматривают заданные интервалы IP-адресов с целью поиска общих ресурсов и попыток соединения с ними. Эти утилиты просто используют рассмотренный выше метод в большем масштабе. Мы поговорим еще об этих утилитах в лекции ""Средства ревизии Windows"" .

NBTSTAT

Мы сделали обзор некоторых средств, с помощью которых можно соединиться с Windows-компьютерами или общими SMB-ресурсами. Но с точки зрения взломщика, ему необходимо собирать информацию о нахождении исследуемых систем и получать сведения о полномочиях для доступа. NBTSTAT может в этом помочь.

NBTSTAT - Windows-утилита, работающая из командной строки, которая может быть использована для отображения информации о NetBIOS-соединениях и таблицах имен. NBTSTAT может собирать такую информацию, как MAC-адреса, имена NetBIOS, доменные имена, и о других активных пользователях. Эта утилита разработана, как средство для системных администраторов; однако, как и многие сетевые утилиты, она может быть использована для темных целей, как мы скоро сможем убедиться.

Реализация

Набрав в командной строке Windows nbtstat, мы увидим информацию об использовании этой утилиты.

C:\WINDOWS\Desktop>nbstat

Displays protocol statistics and current TCP/IP connections using 
NBT (NetBIOS over TCP/IP).
NBTSTAT [-a RemoteName] [-A IP address] [-c] [-n]
[-r] [-R] [-s] [S] [interval] ]
-a  (adapter status)    выдает список таблицы имен удаленной машине по ее 
                        имени.
-A  (Adapter status)    выдает список таблицы имен удаленной машине по ее
                        IP-адресу.
-c  (cache)             список содержимого кэша удаленной машины, включая 
                        ее IP-адрес.
-n  (names)             список локальных NetBIOS-имен.
-r  (resolved)          список имен, найденных через широковещательный 
                        запрос и WINS.
-R  (Reload)            сбрасывает и перезагружает удаленную таблицу имен.
-S  (Sessions)          выводит таблицу сессий, установленных с заданным 
                        IP-адресом.
-s  (sessions)          выводит таблицу сессий, преобразуя заданные IP-адреса 
                        в имена хостов на основе содержимого файла hosts.
-RR (ReleaseRefresh)    отсылает на WINs пакеты Release names, а затем 
                        выполняет обновление.


RemoteName      имя удаленной машины.
IP-address      десятичное представление IP адреса.
Interval        обновление выведенной статистики. Промежуток в секундах 
                между обновлением информации. Нажмите Ctrl-C для
                завершения обновления.

C:\WINDOWS\Desktop>
2.1.

Если мы работаем на локальной машине, то можем использовать NBTSTAT для мониторинга информации о нашей локальной сессии, проверять и сбрасывать кэш WINS-имен, делая все это в режиме реального времени, задав интервал (в секундах) в конце командной строки. Например, команда nbtstat -S 2 позволит осуществлять мониторинг текущих открытых NetBIOS-сессий, установленных между локальной системой и другими машинами в сети, и будет обновлять эту информацию каждые две секунды.

C:\WINDOWS\Desktop>nbtstat -S 2

NetBIOS Connections Table

LocalName       State   In/Out  Remote Host   Input   Output
--------------------------------------------------------------
WINBOX  <03>  Listening               
WINBOX        Connected   in   192.168.1.102  10Kb    208Kb
WINBOX        Listening               
WINBOX  <03>  Listening

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

Более сильная сторона NBTSTAT, тем не менее, проявляется, когда его используют с опциями -a и -A для конкретного хоста. Посмотрим, какую информацию мы можем получить о нашем друге с адресом 192.168.1.102.

C:\WINDOWS\Desktop>nbtstat -A 192.168.1.102

NetBIOS Remote Machine Name Table 

Name                Type            Status
----------------------------------------------------------
MYCOMPUTER      <00>    UNIQUE      Registered
MYDOMAIN        <00>    GROUP       Registered
MYCOMPUTER      <03>    UNIQUE      Registered
MYCOMPUTER      <20>    UNIQUE      Registered
MYDOMAIN        <1E>    GROUP       Registered
MYUSER          <03>    UNIQUE      Registered
MYDOMAIN        <1D>    GROUP       Registered
..__MSBROUSE__. <01>    GROUP       Registered

MAC Address = 00-50-DA-E9-87-5F
C:\WINDOWS\Desktop>

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

Мы должны понять смысл имен, приведенных в списке, и рассмотреть комбинацию символов кодов NetBIOS (<##>) и значений типов. Во-первых, мы видим комбинацию <00> UNIQUE. Это NetBIOS-код означает, что служба выполняется и отображает список системных имен NetBIOS. Таким образом, мы можем понять, что имя системы - MYCOMPUTER.

В следующей строке стоит последовательность <00> GROUP. Это означает, что данная строка относится к рабочей группе или домену. В нашем случае запись относится к домену MYDOMAIN.

Третья строка содержит код <03>, который используется для обозначения службы передачи сообщений. И вновь в этой строке присутствует имя компьютера. Но если мы видим код <03> вместе с именем компьютера, это означает, что нам должен повстречаться этот код в нижней части таблицы в сопровождении другого имени. Как и предполагалось, в седьмой строке мы видим имя MYUSER. Это означает, что код NetBIOS <03> в таблице всегда встречается попарно (сопровождая как NetBIOS-имя компьютера, так и имя работающего пользователя). Вы можете действовать методом исключения, чтобы понять какое имя к чему относится.

Изучение значений NetBIOS -кодов в этой книге не предусмотрено, поэтому в таблице 2.2 приведено несколько наиболее общих кодов. За более подробной информацией можете обратиться по адресу: http://jcifs.samba.org/src/docs/nbtcodes.html.

Таблица 2.2. Общие коды NetBIOS
Имя Код Назначение
<computer_name> 00 Служба рабочей станции.
<computer_name> 01 Служба передачи сообщений.
<\\--__MSBROUSE__> 01 Мастер-броузер.
<computer_name> 03 Служба передачи сообщений.
<computer_name> 06 Служба сервера RAS.
<computer_name> 20 Служба файлового сервера.
<computer_name> 21 Служба клиента сервера RAS.
<computer_name> BE Агент мониторинга сети.
<computer_name> BF Приложение мониторинга сети.
<username> 03 Служба передачи сообщений.
<domain> 00 Доменное имя.
<domain> 1B Мастер-броузер домена.
<domain> 1C Контроллер домена.
<domain> 1D Мастер-броузер.
<domain> 1E Выбор сервиса броузера.
<INet-Services) 1C IIS (Internet information Server).
<IS~computer_name> 00 IIS (Internet information Server).

Мы использовали NBTSTAT для получения некоторой весьма полезной информации. Мы знаем имя домена, к которому принадлежит машина, а также имя пользователя в системе. Все, что нам еще нужно - это пароль.

В отличие от немаршрутизируемого протокола NetBIOS, NBT - маршрутизируемый протокол. Воспользовавшись флагом -A, мы можем запустить NBTSTAT для анализа любой машины, имеющей выход в интернет и получить доступ к ее NBT-трафику, который пересылается через порты 137, 138, и 139.

Получение MAC-адресов

Еще одна разновидность информации, которую можно получит с помощью NBTSTAT - это аппаратные Ethernet-адреса (или MAC-адреса). В нашем случае IP-адресу 192.168.1.102 соответствует MAC-адрес 00-50-DA-E9-87-5F. MAC-адрес состоит из 48 бит информации и включает в себя 12 шестнадцатеричных чисел или шесть октетов. Первые (считая слева) 6 цифр (три октета) представляют собой серийный номер интерфейса конкретного поставщика оборудования. Первые шесть цифр считаются уникальным идентификатором производителя (Organizationally Unique Index OUI).

Ниже приведены несколько примеров наиболее распространенных кодов OUI.

  • SUN MICROSYSTEMS INC. (08-00-20)
  • The Linksys Group, Inc. (00-06-25)
  • 3COM CORPORATION (00-50-DA)
  • VMWARE, Inc. (00-50-56)

В нашем примере, система имела MAC-адрес 00-50-DA-E9-87-5F. Это означает, что производителем сетевого интерфейса была фирма 3COM (00-50-DA). MAC-адрес 08-00-20-00-07-E1 означает, что производителем сетевого интерфейса была компания Sun Microsystems (08-00-20), а MAC-адрес 00-06-25-51-CC-77 свидетельствует, что интерфейс сделан фирмой Linksys.

Выполненная в системе команда nbtstat показывает следующее.

C:\>nbtstat -A 192.168.1.47

NetBIOS Remote Machine Name Table

Name                Type            Status
------------------------------------------------------
NT4SERVER           <00>    UNIQUE      Registered
Inet~Services       <1C>    GROUP       Registered
IS~NT4SERVER...     <00>    UNIQUE      Registered
NT4SERVER           <20>    UNIQUE      Registered
WORKGROUP           <00>    GROUP       Registered
NT4SERVER           <03>    UNIQUE      Registered
WORKGROUP           <1E>    GROUP       Registered
WORKGROUP           <1D>    UNIQUE      Registered
..__MCBROUSE__.     <01>    GROUP       Registered
ADMINISTRATOR       <03>    UNIQUE      Registered

MAC Address = 00-50-56-40-4C-23

Эта машина называется NT4SERVER и имеет MAC-адрес 00-50-56-40-4C-23. По значению OUI (00-50-56) можно определить, что производителем сетевого интерфейса является компания VMware, Inc. VMware производит программное обеспечение, реализующее виртуальные машины для серверов и настольных компьютеров (см. лекцию ""VMware"" ), что говорит о том, что система, с которой мы общаемся, возможно, виртуальный NT-Сервер, запущенный под управлением другой операционной системы на хосте.

Примечание. Полный список идентификаторов OUI можно скачать по адресу http://standards.ieee.org/regauth/oui/index.shtml. Некоторые производители предпочитают не публиковать свой код OUI.

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