Воскресенье
17-11-19, 07:51
"КОМП" от и до!
Приветствую Вас Гость | RSS
Главная Статьи Регистрация Вход
Меню сайта

Категории каталога
Информационная безопасность [36]
Безопасность в компьютерных сетях, способы защиты и д.р.
Операционные системы [12]
Установка, настройка и эксплуатация операционных систем
Компьютерные сети [57]
Всё о локальных и глобальных сетях.
Тенические средства и периферия [0]
Устройства, настройка, эксплуатация и устранение проблем
Программирование [15]
Стать и по программированию, языки программирования
Web-разработка и дизайн [9]
Web-программирование, дизайн, web-графика

Наш опрос
Статьи по каким темам вам наиболее интересны?
Всего ответов: 250

Реклама

Главная » Статьи » Информационная безопасность

Активное исследование стека
Активное исследование стека
До того как перейти к рассмотрению возможностей утилит nmap и queso, требуется коротко пояснить, в чем же состоит суть исследования стека TCP/АЙПИ. Исследование стека (stack fingerprinting) - это весьма мощная технология, дающая возможность с большой скоростью определить тип и версию операционной системы узла с высокой степенью вероятности. Понятно, что различные создатели по-разному подходят к реализации стека TCP/АЙПИ. В том числе, многие создатели по-собственному трактуют рекомендации документов RFC, что впоследствии проявляется в логике работы тех или других сетевых служб. Так, зная о существующих различиях и проверив реакцию служб изучаемой системы на разные ситуации, возможно почти однозначно определить тип и версию соответствующей операционной системы. Для достижения наибольшей достоверности при исследовании стека требуется по крайней мере 1 порт, находящийся в режиме ожидания запросов. При помощи программы nmap возможно выдвинуть предположение об применяемой операционной системе даже при отсутствии этих портов, хотя степень его достоверности в этом случае будет невысокой. Полное описание процесса исследования стека есть в статье Федора (Fyodor), в первый раз публикованной в журнале Phrack Magazine.
Ниже приведен список тестов, которые возможно применять в ходе исследования стека для определения типа и версии операционной системы.

Передача пакетов FIN (FIN probe). Пакет FIN отсылается в открытый порт. Как уже упоминалось, по документу RFC 793 исследуемая система не обязана отвечать на такое сообщение. Хотя многие реализации стека (к примеру, Винда NT) отвечают на них, отправляя пакет FIN/ACK.
Попытка установки флагов (bogus flag probe). Отсылается пакет SYN с установленным флагом в заголовке TCP, значение которого не определено спецификацией протокола. Кое-какие операционные системы, к примеру Линух, в ответном пакете устанавливают этот же флаг.
Изучение начальной последовательности (Initial Sequence Number (ISN) sampling). Главная задача этого теста - попытаться определить типичные признаки начальной последовательности, генерируемой узлом при получении запроса на установку соединения, которые характерны для какой-либо реализации TCP.
Мониторинг бита фрагментации ("don't fragment bit" monitoring). Этот бит устанавливается некоторыми операционными системами для повышения производительности. Проверка данного бита может помочь в определении типа операционной системы, для которой характерно такое поведение.
Исходный размер окна TCP (TCP initial window size). Для некоторых реализаций стека протоколов TCP/АЙПИ данный параметр уникален, что способствует точности определения типа операционной системы.
Значение АСК (дек value). В разных реализациях стека АЙПИ по-разному задается значение поля АСК. В одних ситуациях возвращается полученный от вас номер последовательности, а в иных - значение номера последовательности, увеличенное на 1.
Обработка сообщений об ошибках ICMP (ICMP error message quenching). Кое-какие операционные системы следуют рекомендациям документа RFC 1812 (www. ietf.org/rfc/rfcl812.txt) и ограничивают скорость передачи сообщений об ошибках. Потому, отправляя UDP-пакеты на какой-нибудь порт (как правило с крупным номером), весьма реально измерить число сообщений об ошибках, поступившее за некоторый период, и определить т.о. тип операционной системы.
Измерение длины сообщений ICMP (ICMP message quoting). При возникновении ошибок ICMP различными операционными системами передаются сообщения различной длины. Проанализировав полученное сообщение, возможно сделать кое-какие предположения об исследуемой операционной системе.
Проверка целостности ответных сообщений об ошибках ICMP (ICMP error message-echoing integrity). В некоторых реализациях стека применяется изменение заголовка АЙПИ при возврате сообщений об ошибках ICMP. Проверив тип изменений, внесенных в заголовок, возможно сделать отдельные предположения об операционной системе исследуемого узла.
Тип службы (TOS - type of service). Возможно проверять поле TOS для сообщений "ICMP port unreachable" (порт недоступен). В большей части реализаций это поле имеет значение 0, хотя временами применяются и иные значения.
Обработка фрагментации (fragmentation handling). Как отмечают Томас Пташек (Thomas Ptacek) и Тим Ньюсхам (Tim Newsham) в собственной известной статье Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection (http://www. clark.net/~roesch/idspaper.html), разные стеки обрабатывают перекрывающиеся сообщения по-разному. При сборке фрагментированньк пакетов отдельные стеки записывают новые данные поверх старых и наоборот. Проверив, как были собраны тестовые пакеты, возможно сделать предположение об исследуемой операционной системе.
Характеристики TCP (TCP options). Характеристики TCP определены в документе RFC 793 и не слишком давно изданном RFC 1323 (www.ietf.org/rfc/rfcl323.txt). Новшества, описанные в RFC 1323, отыскали отражение лишь в наиболее последних реализациях стеков. Отправляя пакет с набором разных параметров, таких как по operation, maximum segment size, window scale factor, timestamp и так дальше, можно заключить о типе и версии операционной системы.

Для того чтоб воспользоваться утилитой nmap и выполнить все перечисленные тесты (кроме обработки фрагментации и обработки сообщений об ошибках ICMP), довольно указать в командной строке параметр -о. Давайте посмотрим, как будет выглядеть результат.

[tsunami] nmap -0192.168.1.10
Starting nmap V. 2.53 by fyodor@insecure.org
Interesting ports on shadow (192.168.1.10) :
Port State Protocol Service
7 open tcp echo
9 open tcp discard
13 open tcp daytime
19 open tcp chargen
21 open tcp ftp
22 open tcp ssh
23 open tcp telnet
25 open tcp smtp
37 open tcp time
111 open tcp sunrpc
512 open tcp exec
513 open tcp login
514 open tcp shell
2049 open tcp nfs
4045 open tcp lockd
TCP Sequence Prediction: class="randorn" positive increments
Difficulty=26590 (Worthy challenge)
Remote operating system guess: Solaris 2.5, 2.51

Как известно, при включении режима исследования стека программы nmap возможно просто получить довольно точное определение типа и версии операционной системы. Даже если на изучаемом узле не открыто ни единого порта, тулза nmap поможет сделать достаточно точное предположение об применяемой операционной системе.

[ tsunami]# nmap -p80 -0 10.10.10.10
Starting nmap V. 2.53 by fyodor@insecure.org
Warning: No ports found open on this machine,
OS detection will be
MUCH less reliable
No ports open for host (10.10.10.10)
Remote OS guesses: Linux 2.0.27 - 2.0.30, Linux 2.0.32-34,
Linux 2.0.35-36, Linux 2.1.24 PowerPC,
Linux 2.1.76, Linux 2.1.91 - 2.1.103,
Linux 2.1.122 - 2.1.132; 2.2.0-prel - 2.2.2, Linux 2.2.0-pre6 - 2.2.2-ac5
Nmap run completed -- 1 IP
address (1 host up) scanned in 1 second
Как известно из приведенного листинга, тулза nmap даже без открытых портов, верно определила операционную систему Линух.
Одной из примечательных особенностей программы nmap является то, что листинг сигнатур хранится в отдельном файле с именем nmap-os-fingerprints. При появлении любой новой версии программы этот файл тоже обновляется, и на миг написания данной книжки в нем содержались сотни сигнатур. Если вы хотите прибавить новые сигнатуры и увеличить т.о. эффективность программы nmap, обратитесь ПО адресу http://www.insecure.org:80/cgi-bin/nmap-submit.cgi.
Впрочем на миг написания данной книжки тулза nmap, видимо, дает возможность максимально точно выполнить исследование стека TCP/АЙПИ, она, так или иначе, является отнюдь не I-ой программой, в которой реализована соответствующая технология. Ранее чем Федор встроил в утилиту nmap средства определения операционной системы, для таких же целей уже была создана тулза queso (http://www.apostols.org/projectz/). Требуется подчеркнуть, что тулза queso не дает возможность исполнять сканирование портов и может определять тип операционной системы лишь при наличии в исследуемой системе открытого порта (изначально применяется порт 80). Если порт 80 закрыт, требуется задать иной открытый порт, как показано в следующем примере, в коем при помощи программы queso производится попытка определить тип операционной системы ч/з порт 25.
[tsunami] queso 10.10.10.20:25
10.10.10.20:25 * Windoze 95/98/NT
Категория: Информационная безопасность | Добавил: kompot (11-11-16)
Просмотров: 518 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Друзья сайта

Статистика


Copyright MyCorp © 2017