Пассивная дактилоскопия операционной системы

Lord777

Professional
Messages
2,583
Reputation
15
Reaction score
1,217
Points
113
Сетевой трафик с компьютера можно проанализировать, чтобы определить, какая операционная система на нем запущена. В значительной степени это связано с различиями в том, как стек TCP / IP реализован в различных операционных системах. В этом сообщении в блоге мы объясним различные методы, которые можно использовать для определения того, какая операционная система запущена на компьютере, путем анализа пакетов, которые он генерирует в сети.

Активные подходы

Популярный сканер портов Nmap может идентифицировать операционную систему удаленного компьютера, отправляя шесть пакетов с специально созданными комбинациями опций на уровне TCP (например, параметры масштабирования окна, NOP и EOL). Затем Nmap отслеживает, как сканируемый хост реагирует на эти нечетные пакеты. Федор (автор Nmap) дает хороший обзор этих методов в выпуске 54 журнала phrack за 1998 год.

Пассивная идентификация операционной системы

Активные меры, подобные тем, которые используются Nmap, к сожалению, недоступны при пассивном анализе текущего трафика или при анализе ранее зафиксированного сетевого трафика. Пассивный анализ требует наблюдения за гораздо более тонкими изменениями сетевого трафика, чтобы идентифицировать операционную систему компьютера. Простой, но эффективный пассивный метод заключается в проверке начального времени ожидания (TTL) в заголовке IP и размера окна TCP (размер окна приема) первого пакета в сеансе TCP, то есть пакета SYN или SYN + ACK.

Ниже приведены некоторые типичные начальные значения TTL и размеры окон распространенных операционных систем:

Операционная система (OS)IP
Начальный TTL
Размер окна TCP
Linux (ядра 2.4 и 2.6)645840
Настроенный Google Linux645720
FreeBSD6465535
Windows XP12865535
Windows 7, Vista и Server 20081288192
Маршрутизатор Cisco (IOS 12.4)2554128

Одна из причин, по которой значения TTL и размера окна различаются в разных ОС, заключается в том, что RFC для TCP и IP не требуют, чтобы реализации использовали какое-либо конкретное значение по умолчанию для этих полей. Однако в RFC 1700 есть рекомендация, в которой говорится:

Текущее рекомендуемое время работы по умолчанию (TTL) для интернет-протокола (IP) равно 64
Очевидно, что эта рекомендация не выполняется во многих реализациях IP.

Начальное значение TTL часто немного сложно анализировать, поскольку значение TTL прослушиваемого пакета будет варьироваться в зависимости от того, откуда вы его прослушиваете. Отправляющий узел установит значение TTL равным значению TTL операционной системы по умолчанию, но затем это значение будет уменьшено на единицу для каждого маршрутизатора, через который проходит пакет по пути к IP-адресу назначения. Следовательно, можно ожидать, что наблюдаемый IP-пакет со значением TTL 57 будет пакетом с начальным TTL 64, который совершил 7 переходов маршрутизатора, прежде чем его прослушали.

Приведенную выше таблицу TTL и размера окна можно использовать для ручной дактилоскопии ОС сетевого трафика. Вот пример, показывающий, как отобразить соответствующие поля первых нескольких пакетов из общедоступного файла pcap для сценария 2009-M57-Patents с помощью tshark:

$ tshark -r день12-1.dmp -R "tcp.flags.syn eq 1" -T полей -e ip.src -e ip.ttl -e tcp.window_size -c 16 | sort -u
192.168.1.105 128 8192
192.168.1.106 128 65535
74.125.19.139 54 5720
87.106.12.47 45 5840
87.106.12.77 45 5840
87.106.13.61 45 5840
87.106.13.62 45 5840
87.106.1.47 45 5840
87.106.1.89 45 5840
87.106.66.233 45 5840

В первом столбце здесь указан IP-адрес (ip.src), во втором - TTL (ip.ttl), а в третьем - размер окна TCP (tcp.window_size). Обратите внимание, что значение TTL имеет только начальное значение для узлов локальной сети (192.168.1.0 /24), в то время как пакеты от других узлов, похоже, выполнили 10 или 19 переходов через маршрутизатор. Мы можем, просто сопоставив TTL и размеры окон этих хостов с приведенной выше таблицей, легко определить, что 192.168.1.106 работает под управлением Windows XP (TTL= 128, window_size=65535), а 192.168.1.105 работает под управлением какой-то более современной версии Windows (TTL= 128, window_size = 8192). Компьютер Google (с IP 74.125.19.139) также можно легко выделить благодаря характерному размеру окна 5720. Похоже, что все остальные компьютеры (87.106.x.x) работают под управлением Linux.

Считаете ли вы, что ручная классификация операционной системы займет слишком много времени? К счастью, существует множество инструментов, таких как ettercap, p0f, Satori и NetworkMiner, которые автоматизируют задачу идентификации операционной системы. Просто передайте этим инструментам немного сетевого трафика в реальном времени или файл pcap, и они снимут отпечатки пальцев с ОС за вас.

Дактилоскопия DHCP

Альтернативой дактилоскопии реализации стека TCP / IP операционной системы является просмотр ее реализации DHCP. Эрик Коллманн (создатель Satori) написал отличную статью о дактилоскопии DHCP под названием Chatter on the Wire: взгляд на трафик DHCP. База данных DHCP-дактилоскопии Эрика используется в его инструменте Satori, а также в NetworkMiner.

Существует также проект под названием Fingerbank, который поддерживает другую базу данных дактилоскопии DHCP.

Прикладной уровень

Еще больше информации об операционной системе хоста можно извлечь, проверив данные прикладного уровня в трафике, такие как серверные баннеры в HTTP, SSH и FTP, а также строки HTTP клиент-пользователь-агент. Все эти типы баннеров уровня 7 отображаются на вкладке “Хосты” NetworkMiner под узлом "Сведения о хосте".

NetworkMiner с результатами идентификации операционной системы

Строка пользовательского агента, отображающая “Windows NT 5.1” (как на снимке экрана выше), означает, что клиент работает под управлением Windows XP. Корпорация Майкрософт предоставляет статью под названием Понимание строк пользовательского агента, в которой приводится это сопоставление между строками пользовательского агента и операционной системой:

Токен платформыОписание
Windows NT 6.1Windows 7
Windows NT 6.0Windows Vista
Windows NT 5.2Windows Server 2003; Windows XP x64 Edition
Windows NT 5.1Windows XP

Счастливого снятия отпечатков пальцев!

(c) https://www.netresec.com/index.ashx?page=Blog&month=2011-11&post=Passive-OS-Fingerprinting
 
Top