КОЛЛЕКЦИЯ ОТПЕЧАТКОВ OS fingerprints - определение ОС удаленной системы

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


ТЕХНИЧЕСКАЯ ИНФА

Заканчиваю гнать не по теме и перехожу сразу к способам удаленного определения осей. Так как место, предоставляемое под статью не резиновое, рассмотрю только базовые идеи удаленного определения ОС'ей, а также те способы, которые легко воспроизвести своими руками. За более полной информацией, как всегда посылаю на три буквы (www, а не то что ты там подумал), а если конкретнее, то на void.ru, insecure.org, ya.ru, google.com (ключевые слова – "OS detection", "OS fingerprints", "удаленное определение операционной системы").

TCP/IP/UDP/ICMP РАЗЛИЧИЯ

Если мы посмотрим на операционную систему снаружи (из сети), то мы увидим "черный ящик" из которого "торчат" различные порты, через которые уже можно получить доступ к внутренностям (различным сетевым службам) ОСы. Для того чтобы отличить одну ОС от другой, можно посмотреть как в исследуемой операционке реализуется работа портов. Как порты отвечают на различные запросы, как они реагируют на правильные и неправильные данные.

TTL. Простейшую проверку можно сделать и руками, набрав команду ping <host> и посмотрев какой номер TTL выдается в ответ. Так номер 128 обычно использует Windows старших версий, 64 – Linux 2.0.x (255 - Linux 2.4.x), 32 – Windows 95. Более полную и новую табличку смотри опять же в инете. Продвинутые сканеры конечно на одном только TTL не останавливаются, смотря также и другие особенности.

FIN-исследование. На любой открытый порт сервера посылается FIN-пакет (TCP-пакет на завершение соединения). В соответствии с RFC 793 сервер должен ответить на такой пакет RST-пакетом, однако некоторые ОС типа Windows, BSDI, CISCO, HP/UX, MVS и IRIX не посылают ничего в ответ.

BOGUS-исследование. Посылается SYN-пакет с установленным в TCP-заголовке неиспользуемым "флагом" BOGUS. "Флаг" BOGUS не является настоящим флагом. На самом деле этот термин подразумевает установку бит в поле Reserved заголовка TCP-пакета как 1000000. ОС Linux до 2.0.35 сохраняет в ответе этот "флаг". Некоторые ОС обрывают соединение при получении такого пакета.

Закон изменения ISN. Посылается SYN-пакет с запросом на соединение. Сервер, получив запрос на соединение, записывает в поле ISS ответа — свой собственный ISN, и отправляет пакет обратно. Эта операция повторяется несколько раз для нарабатывания статистики. Возможны следующие зависимости: Закон "постоянного приращения" (поле ISN увеличивается с каждым запросом на постоянную величину) – старые версии UNIX'а. Закон "случайных приращений" (приращения ISN носит случайный характер) – новые версии Solaris, IRIX, FreeBSD, DigitalUnix, Cray. Закон "время-зависимых приращений" (ISN периодически во времени увеличивается на небольшую величину) – Windows. Закон "постоянный" (значение ISN не меняется) – железки: концентраторы 3Com, Apple LaserWriter.

Поле Window из TCP-пакета. Смотрится значение поля Window в серверных TCP-пакетах. У ОС AIX – это значение 0x3F25; Windows, OpenBSD и FreeBSD – 0x402E.

Назад на стр. 023-014-1  Содержание  Вперед на стр. 023-014-3