Запрошенная Вами страница является устаревшей. В связи с недавней
реструктуризацией проекта
вы могли попасть на эту страницу со
стороннего сервера по ссылке, утратившей актуальность. Рекомендуем Вам перейти к заглавной странице нашего сервера и поискать требуемый вами материал в архиве проекта
С Т А Т Ь Я - 16 / 10 / 2000
IDS против Nmap и Queso (by Toby Miller)
1.1 Цель данной статьи - помочь аналитикам IDS и администраторам ,занимающимся настройкой firewall'ов ,идентифицировать nmap и queso сканирование.Это не развернутый анализ,а пример методики ориентированный на администраторов систем,которым необходимо более глубокое понимание работы этих сканеров для борьбы с ними.
1.2 Вступление
Сканер портов - утилита используемая как администраторами систем ,так и атакующими эти системы с целью идентификации уязвимостей.Путем посылки специальным образом сгенерированных пакетов и анализа ответов тестируемых систем.
1.3 Nmap и Queso
1.3.1 Nmap
Nmap - свободно распространяемый сканер портов, разработанный и поддерживаемый Fyodor'ом.Он портирован на многие ОС (Linux, FreeBSD, Open BSD, Solaris и даже NT) и ,вероятно ,является самым распространенным бесплатным сканером.Вследствие своей простоты в использование он может использоваться как новичком , так и экспертом. Поэтомувозникает справедливый вопрос,как специалисты по IDS и Firewall'ам могут идентифицировать nmap сканирование.Это не является простой задачей. Nmap обладает множеством опциий настройки сканирования (их полное описание выходит за рамки данной статьи).Мы рассмотрим только некоторые из них:
Здесь приведен лог сканирования с опцией -sS вместе с соответствующим (сигнатурой ,которую оставляет nmap.
Разберем несколько общих сигнатур.Сначала nmap пингует жертву echo пакетом (выделено зеленым), чтобы убедиться , что хост жив.Следующая синнатура - одинокий ACK пакет, в котором 32-bit значение поля ACK равно 0 (выделено красным).В то время , как значение поля ACK всегда должно быть всегда > 1, когда отсылается ACK пакет. Зачем это сделано? Причина для такой установки значения поля ACK проста -"stealth". Почему nmap отошлет в любом случае два ACK пакета? RFC 793 поможет пролить свет на этот вопрос. RFC 793 pp.64 описывает то, как TCP/IP стек реагирует на специфические пакеты.Эта реакция основана на двух состояниях - Closed и Listen. Когда порт находится в состоянии Closed ,работают следущие правила:
входящие пакеты с установленным RST флагом отбрасываются.
ответом на пакет с неустановленным RST флагом (т.е. SYN,FIN и ACK пакеты) будет RST пакет
Когда порт находится в состоянии Listen ,работают следущие правила:
входящие пакеты с установленным RST флагом отбрасываются.
ответом на пакет с неустановленным RST флагом (т.е. SYN,FIN и ACK пакеты) будет RST пакет
Если установлен бит SYN,то
1. если установление соединения запрещено,то отсылается RST пакет.
2. иначе в ответ отсылается SYN|ACK (вторая часть 3-х шагового handshake )
Теперь, зная это,можно заключить ,что два ACK пакета отсылаются для проверки на то,что сканируемый хост жив.
Другая общая сигнатура nmap - использование высоких значений для порта источника.Обычно nmap использует в качестве источника порты выше 20000(это может быть изменено опцией -p).Причина использования таких значений портов в том,что некоторые IDS и firewall не рассматривают входящие пакеты с этих портов как попытки сканирования.В большинстве же случаях большие значения портов источника указывают администраторам IDS и firewall на то ,что их сканируют.
-sS - первая опция , которую мы рассмотрим . Nmap c выставленной -sS отсылает SYN пакет(ы) и ожидает ответа.Ответ може быть или SYN|ACK,если порт открыт ,или RST|ACK в противном случае.Этот способ сканирования называется "half-scan".Таким образом определяется состояние порта(закрыт или открыт). Если nmap посылает пакет на открытый порт,то ответом будет SYN|ACK.Как только это становится так, nmap сразу отвечает RST пакетом,который обрывает соединение и в некоторых случаях в логи на сканируемом хосте ничего не пишется.
Опция -sX включает другой метод сканирования - Xmas tree.Следствием необычной установки флагов (FIN,PSH,URG -одновременно) является то, что некоторые плохо сконфигурированные firewall'ы пропускают такие пакеты. Что же происходит странного ,если флаги FIN,PSH и URG установлены одновременно? Посмотрим , что делает каждый флаг.
FIN - указание на то, что посылающий хост прекращает передачу данных.
PHS - хост-получатель должен передать данные,содержащиеся в пакете, приложению как можно быстрее.
URG - включает указатель на то, что данные - срочные,"указывает сам себе,что срочные данные в некоторой виде были помещены в поток данных".
Коротко,комбинация FIN,PSH,URG говорит ,что надо разорвать соединение,переслать данные в пакете как можно скорее и поместить их в обычный поток данных.Из моегоопыта это, как правило, не имеет смысла (пока вы не пытаетесь сканировать сети).Таким образом следующая сигнатура nmap (при использованиии опции Xmas) - urgent pointer всегда установлен в 0(выделено синим).
Наконец,посмотрим на опцию -sF в паре с -O.Опция -sF сканирует хост с пакетами с установленным флагом FIN.-O - знаменитая опция ОС fingerprinting.Перед компиляцией бинарника nmap посмотрите на файл figerprinting .Это впечатляющая коллекция TCP/IP сигнатур ОС,которая действительно изумила меня.Приведенный ниже лог демонстрирует -sF сканирование дополнительно с опцией -O:
Теория этого вида сканирования довольно проста - все крутится вокруг флагов TCP и открытых, закрытых портов.
1. если порт закрыт,и посылается FIN пакет ответом будет RST.
2. если порт открыт,то FIN будет просто отброшен и ответа не последует.
Этот метод рассчитан на уязвимость очень ограниченного числа IDS и firewall,поскольку только немногие следят исключительно за FIN|ACK пакетами,не обращая внимания на просто FIN пакеты.
1.3.2 Queso(by savage@apostols.org)
Хотя queso не столь популярен и отточен как nmap ,он все еще представлляет определенный интерес, и соответсвенно существует необходимость в анализе его работы.Обычно он отсылает 7 пакетов за раз ,что указано в файле документации. Эти пакеты следущие:
Queso позволяет спуфить IP ,выбирать порты для сканирования а также сам случайно выбирает в качестве порта источника значения от 4000 до 65000.Следующий лог показывает как выглядит скан queso:
В логе присутсвуют все 7 пакетов .Первая сигнатура - одинокий FIN пакет.Что же вызывает появление этих пакетов,если еще не было установлено соединения и FIN не содержит ACK . В то время как установление соединения TCP - 3-x шаговый процесс,разрыв -является 4-х шаговым и выглядит так:
Здесь мы видим установленный PSH флаг ,это может вызвать удивление,так как в TCP PSH флагу должен сопутствовать ACK флаг (пока соединение установлено). Мы идим , что queso устанавливает SYN|FIN флаги, которые указывают хосту-получателю , что необходимо открыть и сразу же закрыть соединение.
n/a
n/a
urg
ack
psh
rst
svn
fin
8
4
2
1
8
4
2
1
Cамая интересная сигнатура ,которую отсылает queso - один SYN пакет, в котором установлены зарезервированные биты (выделено розовым в табл.4) .Табл. 5 показывает как выглядит 13 байт в TCP заголовке. Последние 2 бита слева (помеченные n/a -not available)- зарезервированны и соответсвенно не должны быть установлены.Теперь уже просто установить, что если вы видите значение "c2" в 13 байте TCP заголовка, то кто-то имееет злые намерения относительно вашей сети.
1.4 Заключение
Toby Miller в настоящий момент работает в SYTEX Inc.,расположенной в Пенсильвании. Он имеет сертификат GIAC(Certified Intrusion Analyst) и Microsoft Certified Professional и обладает большим опытом администрирования NT,Unix , firewall и мэйнфреймов.
ya_mun not foundУважаемый пользователь !
Запрошенная Вами страница является устаревшей. В связи с недавней
реструктуризацией проекта
вы могли попасть на эту страницу со
стороннего сервера по ссылке, утратившей актуальность. Рекомендуем Вам перейти к заглавной странице нашего сервера и поискать требуемый вами материал в архиве проекта