На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

TCP-timestamping

Используя опцию TCP протокола tcp-timestamping и знание операционной системы, часто можно определить uptime системы (вре­мя последнего включения). При использовании этой опции мы при­нуждаем систему оставить свой временной штамп. Штамп, по специ­фикации, должен со временем увеличиваться, однако не оговаривает­ся, как именно.
Практически во всех системах (кроме Windows) отсчет штампа
начинается с нуля в момент загрузки операционной системы. Но ско­рость наращивания зависит от платформы (от 1 в сек. до 1000 в сек.). Для решения этой проблемы мы можем воспользоваться знанием об
используемой операционной системе или сделать несколько проб че­рез, скажем, 1 секунду и на основе полученной информации вычис­лить скорость приращения.
ICMP Time/Mask
Internet Control Message Protocol описывает ряд контрольных сообщений и способы реагирования на них, оставляя, однако, неко­торую свободу в реализации ICMP на различных ОС. В числе прочих существуют сообщения ICMP Time Request (хост может ответить на
него сообщением своего локального времени) и ICMP Mask Request (по спецификации ответить на него может только маршрутизатор).
Рассмотрим следующую таблицу:
ОС Отвечает на ICMP Time Отвечает на ICMP Mask


Windows

нет

да

FreeBSD

да

нет

Linux 1.x

да

да

Linux 2.x

да

нет

SunOS

да

да

Solaris

да

да

HPUX

да

да

IRIX

да

?

Используя эту информацию вкупе с некоторыми другими мето­дами, можно попытаться определить ОС удаленной машины.
DNS
Ставдартнъгй порт — UDP 53. Изначально служба использова­лась для установления соответствия меджу сетевым именем и ip-адре-сом хоста.
Часто таблицы соответствий содержат также дополнительную информацию о хосте. В состав операционных систем UN*X, WinNT, Win2K входит стандартная утилита nslookup, являющаяся клиентом
этой службы.
Подсоединившись к удаленному ns-серверу, мы можем затребо­вать у него информацию по хосту, принадлежащему его зоне:
Е:\FP-art>nslookup Default Server: Address:   *.*.*.226
> www.iso.ru Server:   *.ru
l
Address:   * .* .*.226 Name: www.iso.ru Address: 195.146.82.43
> set querytype=ALL
> www.iso.ru Server:   * . ru
Address: 6 Non-authoritative answer:
www.iso.ru  internet address   = 195.146.82.43
iso.ru   nameserver =
iso.ru nameserver = home.relline.ru iso.ru nameserver = ns.relline.ru
exchange,isc.ru internet address  = 195.146.66.195 home.relline.ru internet address  = 195.146.64.42 internet  address  = 195.146.81.130
Более того, если ns-ссрвер настроен не совсем корректно (а на се-день около 50% серверов, как ни странно, являются именно таковыми, таковы уж реалии), мы можем затребовать у него полный список всех хостов зоны вместе со всей связанной с ними ин­формацией.
> server ns.relline.ru Default Server: ns.relline.ru Address: 195.146.81.130
> -d iso.ru [ns.relline.ru]
iso.ru. SOA exchange.iso.ru adrnins.iso.ru. (1999121558 28800 7200 604800 86400)
iso.ru. ns exchange.iso.ru
iso.ru. ns home.relline.ru
iso.ru. NS ns.relline.ru
iso.ru. MX 40 relayl.macomnet.ru
iso.ru. MX 50 relay2.macomnet.ru
iso.ru. MX 10 exchange.iso.ru
demoserver A 195.146,66.200
admin A 195.146.66.198
www A 195.146.82.43
exchange A 195.146.66.195
ebs A 195.146.66.197
iso.ru. SOA exchange.iso.ru admins.iso.ru. (1999121558 28800 7200 604800 86400)
Если это удалось, то, во-первых, мы получили список хостов се­ти, во-вторых, на основе (почтовых) мы можем опреде­лить основной и вторичный почтовые сервера и маршруты хождения
почты (частично).
Получив некоторым образом список хостов сети, мы хотели бы вычислить ее физическую топологию. Это не всегда возможно, однако есть несколько довольно широко используемых тактик.

Traceroute
Утилита (ее версия под Win называется tracert) предназначена для определения маршрута пакета, посланного к заданному хосту. Ее работа основывается все на том же параметре TTL. В начале TTL выставляется в 1. Тогда первый же маршрутизатор, получивший его, обязан по спецификации его уничтожить. При этом он обычно (однако это не является требованием спецификации) посылает обратно уве­домление — «у меня умер пакет, идущий от А к Б». Так мы получаем первый пункт маршрута. Затем устанавливаем TTL в 2. И так далее. Если мы теперь построим маршруты к каждому известному нам хосту подсети, а затем объединим их в граф (обычно, дерево), то мы будем иметь некоторое представление о топологии подсети. Если к тому же подсеть имеет несколько шлюзов со внешней сетью, то построение та­кого же дерева из другой начальной точки (точнее такой, чтобы вход в подсеть происходил через другой шлюз) может дать нам дополнитель­ную информацию о ее топологии. Помощь в такого рода исследовани-может оказать служба (http://www.tracert.com/cgi-bin/trace.pl).
Louse route
Эта опция IP-протокола позволяет при отсылке пакета указать основные вехи его маршрута, никак не оговаривая как он будет пе­редаваться между ними.
В сочетании с она дает возможность запу-
стить пакет в исследуемую подсеть, заставить его там «поболтаться», а
затем вернуться, собирая по пути информацию о всех пройденных
пунктах маршрута. (Все это, конечно, может быть блокировано кор­ректно настроенным firewall-ом.)
На основе нескольких таких «трасс» возможно опять-таки пост­роить некоторый граф подсети, не говоря уже об обнаружении новых,
ранее не замеченных хостов. SNMP
Simple Network Managment Protocol был разработан для пре­доставления возможности удаленного управления сетевыми устройст­вами, в том числе маршрутизаторами. (то есть сервер­ные приложения) входят сегодня в состав многих маршрутизаторов, свитчей и тому подобных устройств, кроме того, в ОС WinNT и Win2K имеется встроеный SNMP-Agent, реализованный в виде сервиса (по
умолчанию он выключен).
Вторая версия данного протокола предусматривает достаточно надежную аутентификацию, однако она пока почти нигде не использу­ется. В первой же версии происходит только проверка так называемой
community-string (посылаемой в plain-text виде по UDP). Стандарт­ными значениями community-string являются «public» и «private», и
они, в большинстве случаев, не меняются администраторами. Наибо­лее простым клиентом в SNMP службе является пакет утилит snm-
putils под Unix, в состав которого входит snmpwalk, позволяющий по­лучить большое количество интересной информации.
Так, в случае мы можем получить список запу-
щенных процессов (с приоритетами и информацией о занимаемой па­мяти и процессорном времени), список установленного софта с указа­нием версий (тот, что появляется в меню Start->Control Panel-
>Add/Remove Programs), список установленного оборудования и всю
текутдую информацию о маршрутизации.
Более того, есть возможность таким образом изменить настрой­ки маршрутизации, чтобы пустить весь траффик по маршруту, где ис­следователь сможет подвергнуть его анализу.
Passive fingerprinting
Итак, идея passive fingerprinting-a заключается в анализе инфор­мации, доступной без непосредственного воздействия на исследуемую
систему. Существующие на сегодняшний день методы можно разде­лить на анализ сетевого трафика и анализ информации уровня прило­жений.
Метод анализа проходящих пакетов
В сигнатуру пакета, на основе которой предполагается произво­дить определение ОС, входят следующие поля:
TTL — здесь ситуация совпадает с описанной несколько выше (в разделе об анализе TTL с помощью утилиты ping);
Window Size — размер — это количество пакетов, ко-
торое может послать отправитель без прихода подтверждения от полу­чателя. Оно может меняться в зависимости от качества связи. Различ­ные ОС используют различные начальные значения этого параметра и
различные алгоритмы его модификации. Так, например, Linux, Solaris,
FreeBSD поддерживают более или менее постоянное значение, a Cisco
и Windows непрерывно его модифицируют;
DF — этот флаг TCP-пакета используется для запрета его фраг-
ментации. Практически все ОС устанавливают его, однако некоторые (такие, как OpenBSD или SCO-Unix) не делают этого;
TOS — это поле определяет желаемые характеристики соедине­ния (скорость, качество, дешевизну) и его анализ также может помочь в определении ОС. ID — первоначальное (при установке соединения) значение этого поля также различно для разных операционных сис­тем.
При применении данного метода следует использовать статис­тический подход — накапливать информацию, относящуюся к одному соединению, а затем определять по заранее составленным таблицам наиболее вероятную ОС.
Анализ проходящего трафика на менее глубоком уровне также может дать некоторую информацию, например, какими сервисами ка­ких удаленных систем пользуется система, относительно которой про­изводится сбор информации. Удобным в установке и настройке сниф-
фером (инструментом для анализа проходящих пакетов) является
snort (www.snort.org).
Application level passive fingerprinting
Другим подходом к пассивному анализу удаленной системы яв­ляется анализ информации уровня приложений. Он может осуществ­ляться как на основе анализа проходящего траффика (как в предыду­щем методе), так и на основе анализа информации, получаемой сер­верными приложениями исследующей системы от различных удален­ных клиентов. Примером последнего метода могут послужить decoy — способ определения атак на систему путем подмены обыч­ных серверных приложений (таких, как ftp, http, smtp, рорЗ сервера) на приложения, выполняющие их функции и попутно регистрирую­щие нетипичную деятельность клиента.
Рассмотрим, какую информацию об удаленной системе можно получить, анализируя взаимодействие ее клиентского программного обеспечения с серверным.
Ping-payload
Принцип работы утилиты ping основан на посылке ICMP-паке-та ICMP-Echo, содержащего произвольные данные, на который хост-адресат отвечает пакетом содержащим те же самые
данные. Время между отправкой ping-пакета и получением ответа на него и является временем отклика удаленной системы. С точки зрения
пассивного анализа, интерес представляет способ генерации данных, заполняющих пакет. Различные операционные системы используют различное наполнение. Так, в случае Win2K, содержимое пакета будут составлять строчные символы латинского алфавита («abcde...xyz-abcd...»), а в случае RedHat 6.1 в содержимом будут и цифры, и специ­альные символы. Эти отличия позволяют попытаться распознать опе­рационную систему ping-ующего хоста.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика