Автор работы: Пользователь скрыл имя, 02 Февраля 2013 в 14:30, курс лекций
Nmap для Windows поддерживает Jens Vogt. Он перенес эту программу в Windows и замечательным образом держится почти вровень с версиями UNIX, отставая всего на один шаг на момент написания этой книги (версия 3.0). Правда, его продукт имеет статус бета-версии, но чего еще желать для открытого ПО? Сканер для Windows не так быстр, как для UNIX, но обладает теми же основными возможностями.
Установка Nmap для Windows
Nmap для Windows поддерживает Jens Vogt. Он перенес эту программу в Windows и замечательным образом держится почти вровень с версиями UNIX, отставая всего на один шаг на момент написания этой книги (версия 3.0). Правда, его продукт имеет статус бета-версии, но чего еще желать для открытого ПО? Сканер для Windows не так быстр, как для UNIX, но обладает теми же основными возможностями.
Имеются две версии WinPcap. Предпочтительно использовать более новую версию, WinPcap 3.1Beta. Если у вас многопроцессорная система, следует использовать ветвь WinPcap 3.X или отключить все процессоры, кроме одного. Если это не помогает, попробуйте более старую версию или возьмите версию, которая будет работать с вашей системой, на сайте WinPcap по адресу http://winpcap.polito.it/
WinPcap используется многими другими программами Windows, включая открытое ПО для выявления вторжений и диагностики сети, рассматриваемое в последующих лекциях, поэтому работоспособность WinPcap важна.
Примечание: в настоящее время WinPcap работает ненадежно по коммутируемым соединениям под Windows NT, 2000 и XP. Если вы собираетесь применять сканер портов через коммутируемое соединение (что в любом случае трудно рекомендовать, учитывая ограниченную полосу пропускания для отправки зондирующих пакетов), то придется найти иное решение.
Сканирование сетей с помощью Nmap
Графический клиент Nmap предоставляет весьма простой интерфейс (рис. 4.2). Вверху имеется поле для ввода IP-адреса или диапазона IP-адресов, а чтобы начать сканирование, достаточно нажать кнопку Scan.
Рис. 4.2. Образ
экрана NmapWin
В табл. 4.3 приведены различные форматы для ввода IP-адресов. Адреса могут также извлекаться из файла, если выбрать пункт Input элемента File основного меню и задать текстовый файл с данными в подходящем для Nmap формате (рис. 4.1).
Флэми Тех учит:
Сетевые маски и нотация с косой чертой.
Вам будут часто встречаться обозначения IP-сетей или с сетевой маской, или с косой чертой и числом после нее. Это - два способа задать размер сети. Для их понимания необходимо представлять себе структуру IP-адреса. Стандартный адрес IPv4 состоит из 32 бит. Его обычно представляют в виде четырех частей - восьмибитных октетов. Октеты для удобочитаемости обычно преобразуют в десятичные числа. Поэтому, если вы видите 192.168.1.1, то компьютер видит
11000000 10101000 00000001 00000001
Маска сети обычно представляет собой набор из четырех чисел. Она показывает, где кончается локальная сеть и начинается глобальная. Обычно маска выглядит примерно так:
255.255.255.0
Чтобы определить размер сети, представленной сетевой маской, достаточно вычесть каждый октет из 256 и перемножить полученные разности. Например, сетевая маска 255.255.255.248 описывает восьмиэлементную IP-сеть, поскольку
(256-255) * (256-255) * (256-255) *(256-248) = 8.
Сетевая маска 255.255.255.0 представляет IP-сеть из 256 узлов, так как
(256-255) * (256-255) * (256-255) *(256-0) = 256.
Наконец, сетевая маска 255.255.0.0 описывает сеть из 65536 IP-адресов, ибо
(256-255) * (256-255) * (256-0) *(256-0) = 65536.
Нотация с косой чертой чуть сложнее для понимания, но идея остается прежней. Число после косой черты показывает, сколько бит описывают глобальную сеть. Вычитая это число из 32, получаем число бит, описывающих локальную сеть. Например, запись 192.168.0.0/24 представляет сеть, начинающуюся с 192.168.0.0 и насчитывающую 256 IP-адресов. (Это такой же размер, как и у рассмотренной выше сети с маской 255.255.255.0.)
32 бита IP-адреса минус
24 бита для префикса сети дает
8 бит для локального
Нотация с косой чертой |
Размер сети | ||
/24 |
256 IP-адресов | ||
/25 |
128 IP-адресов | ||
/26 |
64 IP-адресов | ||
/27 |
32 IP-адресов | ||
/28 |
16 IP-адресов | ||
/29 |
8 IP-адресов | ||
/30 |
4 IP-адреса | ||
/31 |
2 IP-адреса | ||
/32 |
1 IP-адрес | ||
Таблица 4.3. Форматы IP адресов | |||
Формат |
Пример | ||
Одиночный IP-адрес |
192.168.0.1 | ||
IP- адреса, разделенные запятыми |
192.168.0.1,192.168.0.2 | ||
IP-диапазон, разделенный дефисом |
192.168.0.1-255 | ||
Использование стандартной нотации с косой чертой |
192.168.0.1/24 (сеть класса С из 256 адресов) |
Nmap можно запустить из командной строки как в UNIX, так и в Windows. Общий формат таков:
nmap параметры IP-диапазон
с любыми дополнительными
настройками, заданными значениями
параметров. Далее до конца лекции
вслед за настройками или опциями
графического интерфейса в скобках
будут указываться
Nmap поддерживает множество различных видов сканирования. В табл. 4.4 перечислены наиболее употребительные. Указаны также параметры командной строки, если вы захотите использовать этот интерфейс.
Таблица 4.4. Типы сканирования в Nmap и параметры командной строки | |
Тип сканирования (параметры командной строки) |
Описание |
SYN ( -sS ) |
Подразумеваемый тип сканирования, пригодный для большинства целей. Он менее заметен, чем TCP Connect, то есть не будет фиксироваться большинством простых средств протоколирования. В этом режиме в каждый возможный порт посылаются одиночные TCP-пакеты с установленным флагом SYN. Если в ответ возвращается пакет SYN ACK, то Nmap делает вывод, что здесь запущен сервис. Если ответа нет, то предполагается, что порт закрыт SYN-сканирование
не завершает трехходовое |
TCP-соединение: Connect ( -sT ) |
Это тип сканирования напоминает SYN за исключением того, что трехходовое квитирование установления связи в TCP выполняется до конца и устанавливается полноценное соединение. Подобное сканирование не только шумно, но и создает дополнительную нагрузку на сканируемые машины и сеть. Однако, если скрытность или экономия полосы пропускания не являются приоритетными, то сканированием Connect, по сравнению с SYN, можно порой получить более точные результаты. Кроме того, если у вас нет привилегий администратора или суперпользователя на машине Nmap, вы не сможете воспользоваться никаким другим типом сканирования, поскольку создание построенных особым образом пакетов для других типов сканирования требует низкоуровневого доступа к ОС |
Эхо-тестирование: Ping Sweep ( -sP ) |
Выполняется простое эхо-тестирование всех адресов, чтобы увидеть, какие из них ответят на ICMP-запрос. Если вас на самом деле не интересует, какие сервисы запущены, и вы просто хотите знать, какие IP-адреса активны, то данный тип позволит достичь цели много быстрее, чем полное сканирование портов. Однако некоторые машины могут быть сконфигурированы так, чтобы не отвечать на ping (например, новый межсетевой экран XP), но, тем не менее, выполнять некоторые сервисы, поэтому Ping Sweep - менее надежный метод, чем полное сканирование портов |
UDP-сканирование: UDP Scan ( -sU ) |
Этот тип сканирования проверяет наличие слушаемых UDP-портов. Так как UDP, в отличие от TCP, не отвечает положительным подтверждением, а отвечает на входящий пакет, только когда порт закрыт, данный тип сканирования может иногда приводить к ложным срабатываниям, однако он способен выявить троянские программы, использующие UDP-порты с большими номерами и скрытые RPC-сервисы. Он может быть весьма медленным, так как некоторые машины намеренно замедляют ответы на этот тип трафика, чтобы избежать перегрузки. Однако машины, выполняющие ОС Windows, не реализуют замедления, поэтому вы сможете использовать UDP для нормального сканирования хостов Windows. |
FIN-сканирование: FIN Stealth ( -sF ) |
Это скрытное сканирование, аналогичное SYN, но использующее пакеты TCP FIN. Большинство компьютеров, но не все, ответят пакетом RST, поэтому сканирование FIN сопряжено с ложными срабатываниями и пропуском положительных результатов, но может осуществляться под наблюдением некоторых программ выявления вторжений и при наличии других контрмер |
NULL-сканирование: NULL Scan ( -sN ) |
Еще одно весьма скрытное сканирование, при котором все флаги заголовка TCP сброшены (или пусты). Подобные пакеты обычно некорректны, и некоторые хосты не знают, что с ними делать. Операционные системы Windows входят в эту группу, так что их сканирование в режиме Null будет давать недостоверные результаты. Однако для серверов не под Windows, защищенных межсетевым экраном, оно может стать способом проникновения |
XMAS-сканирование: XMAS Tree ( -sX ) |
Аналогично сканированию NULL, за исключением того, что все флаги в заголовке TCP установлены, а не сброшены (отсюда и название - пакет расцвечен, как рождественская елка). Машины Windows, ввиду особенностей реализации на них стека TCP, не отвечают на подобные пакеты |
Сканирование через отражатель: Bounce Scan ( -n FTP_HOST ) |
Этот хитроумный тип сканирования использует лазейку в протоколе TCP для "отражения" сканирующих пакетов от сервера FTP во внутреннюю сеть, которая обычно недоступна. Зная IP-адрес сервера FTP, который подключен к локальной сети, вы можете проникнуть через межсетевой экран и сканировать внутренние машины. Стоит проверить и свою собственную сеть на наличие данной уязвимости. В большинстве современных серверов FTP эта дыра в защите ликвидирована. Примечание: В дополнение к сканируемым IP-адресам вы должны задать действующий сервер FTP, имеющий доступ к сети |
RPC-сканирование: RPC Scan ( -sR ) |
Этот особый тип сканирования ищет машины, отвечающие сервисам удаленного вызова процедур (RPC). Сервис RPC, при определенных условиях позволяющий удаленным командам выполняться на машине, сопряжен со значительным риском. Так как сервисы RPC могут выполняться на многих различных портах, то по результатам обычного сканирования выявить эти порты трудно. RPC-сканирование зондирует найденные открытые порты с помощью команд, показывающих имя программы и версию сервиса RPC. Неплохо время от времени проводить подобное сканирование, чтобы узнать, работают ли, и где именно, RPC-сервисы |
Window-сканирование: Window Scan ( -sW ) |
Данный тип сканирования полагается на аномалию в ответах на пакеты ACK в некоторых операционных системах, чтобы обнаружить порты, которые предположительно фильтруются. Известно, что к числу операционных систем, уязвимых для подобного сканирования, принадлежат некоторые версии AIX, Amiga, BeOS, BSDI, Cray, DG/UX, Digital UNIX, FreeBSD, HP/UX, IRIX, MacOS, NetBSD, OpenBSD, OpenStep, OpenVMS, OS/2, QNX, Rhapsody, SunOS 4.X, Tru64 UNIX, Ultrix, VAX и VxWorks |
Реактивное сканирование: Idle Scan ( -sI хост-зомби:используемый_порт ) |
Данный тип сканирования появился в Nmap версии 3.0. Это сверхскрытный метод, при применении которого пакеты сканирования отражаются от внешнего хоста. Необязательно иметь контроль над этим хостом, но он должен работать и удовлетворять некоторым требованиям. Вы должны ввести IP адрес хоста-зомби и номер используемого порта. Хотя это сканирование крайне трудно проследить до исходной точки, оно вряд ли особенно полезно для большинства администраторов, сканирующих свои собственные сети. Это одна из самых спорных опций Nmap, так как на практике она применима только для злоумышленных атак |
Можно настроить способ, которым Nmap выполняет раскрытие сетей и определяет, какие хосты работают. В табл. 4.5 перечислены несколько различных вариантов.
Nmap предоставляет средства для повышения или понижения частоты, с которой посылаются пакеты сканирования. Если вас беспокоит слишком большой сетевой трафик (или вы пытаетесь действовать скрытно), то можно понизить частоту. Помните только, что чем реже посылаются пакеты, тем дольше продлится сканирование. Для больших сетей время может вырасти экспоненциально. С другой стороны, если вы торопитесь и не обращаете внимание на некоторый дополнительный сетевой трафик, можно поднять частоту. Различные уровни и частоты пакетов приведены в табл. 4.6. В версии для Windows или с помощью опций командной строки можно устанавливать специальные частоты.
Таблица 4.5. Опции раскрытия для Nmap | ||||
Опция |
Описание | |||
TCP + ICMP ( -PB ) |
Подразумеваемая настройка. Nmap обычно использует для определения статуса хоста и ICMP, и TCP-пакеты. Это наиболее надежный и точный способ, так как, если хост активен, то хотя бы по одному методу ответ, как правило, будет получен. К сожалению, это также самый шумный способ, который, скорее всего, приведет к регистрации каким-нибудь устройством сканируемой сети | |||
Эхо-тестирование TCP ( -PT ) |
Для обнаружения хостов используется только метод TCP. Многие межсетевые экраны и некоторые маршрутизаторы отбрасывают пакеты ICMP, возможно, с протоколированием. Если вы пытаетесь остаться невидимым, то метод TCP - это наилучший вариант. Однако для некоторых экзотических типов сканирования (FIN, XMAS, NULL) какие-то хосты могут остаться незамеченными. | |||
Эхо-тестирование ICMP ( -PE ) |
Использовать для раскрытия | |||
Без эхо-тестирования ( -P0 ) |
Если задается эта опция, то Nmap не будет пытаться сначала выяснить, какие хосты активны, а будет вместо этого посылать пакеты по каждому IP-адресу заданного диапазона, даже если по этому адресу машины нет. Это расточительно как с точки зрения полосы пропускания, так и времени, особенно когда сканируются большие диапазоны. Однако это может быть единственным способом просканировать хорошо защищенную сеть, которая не отвечает на ICMP-пакеты. | |||
Таблица 4.6. Параметры Nmap для управления частотой посылки пакетов | ||||
Уровень частоты |
Параметр командной строки |
Частота пакетов |
Пояснения | |
Параноидальный |
-F 0 |
Раз в 5 минут |
Не используйте эту опцию при сканировании большого числа хостов, иначе сканирование никогда не закончится. | |
Исподтишка |
-F 1 |
Раз в 15 секунд |
||
Вежливый |
-F 2 |
Раз в 4 секунды |
||
Нормальный |
-F 3 |
Со скоростью работы ОС |
Используется по умолчанию | |
Агрессивный |
-F 4 |
То же, что и Normal, но максимальное время ожидания пакета сокращено до 5 минут на хост и до 1,25 секунды на зондирующий пакет. |
||
Безумный |
-F 5 |
Время ожидания 0,75 секунды на хост и 0,3 секунды на зондирующий пакет. |
Этот метод не будет хорошо работать, если только вы не находитесь в очень быстрой сети и не используете очень быстрый сервер Nmap. Даже в этом случае есть риск потерять данные. |
В табл. 4.7 перечислены некоторые другие опции Nmap, которые управляют, например, разрешением доменных имен, идентификацией ОС и т.д., и не попадают в другие категории
Существуют дополнительные опции тонкой настройки сканирования, доступные из командной строки. Подробности можно найти в оперативной справке Nmap.
Запуск Nmap в качестве службы
По умолчанию в Windows-версии Nmap запускается как служба. Это означает, что он постоянно выполняется в фоновом режиме и может вызываться другими программами, запускаться из командных файлов или заданий cron. В Windows служба Nmap управляется и конфигурируется в меню Services Tool. Для этого в меню Control Panel выберите Administrative Tools, а затем Services. Вы увидите Nmap в списке служб; можно щелкнуть на нем мышью и сконфигурировать его свойства.
Эта возможность полезна, если вы хотите, чтобы Nmap выполнял сканирование на регулярной основе. Можно настроить Nmap для сканирования вашей сети раз в неделю или раз в месяц с представлением отчетов. Можно сканировать только серверы, чтобы не пропустить значительных изменений. Если вы не планируете использовать перечисленные возможности, лучше отключить эту службу в Windows, чтобы сэкономить ресурсы и повысить безопасность. Это можно сделать, щелкнув мышью на службе Nmap в окне просмотра служб и заменив Start-up Type (тип запуска) с Automatic (автоматический) на Manual (вручную). Это изменение вступит в силу после перезагрузки машины. Можно также вручную остановить службу, щелкнув мышью на кнопке Stop.
Таблица 4.7. Прочие опции Nmap | |
Опция |
Описание |
Не выполнять разрешение имен ( -n ) |
Обычно Nmap пытается разрешать доменные имена для всех сканируемых IP-адресов. Это может существенно затягивать сканирование, поэтому если вас не интересуют имена хостов, разрешение имен можно отключить Помните, однако, что знать имена хостов полезно, особенно при сканировании сетей с DHCP, где IP-адреса могут меняться |
Быстрое сканирование ( -F ) |
Эта опция вызывает сканирование только портов, перечисленных в файлах употребительных портов Nmap. По умолчанию это общеупотребительные серверные порты с номерами, меньшими 1024. Данные файлы можно отредактировать и добавить в список другие порты. Подобное сканирование может оказаться значительно более быстрым, но оно не выявит троянские программы и сервисы, использующие порты с большими номерами. |
Диапазон портов ( -p диапазон_портов ) |
По умолчанию Nmap сканирует все 65535 возможных портов TCP. Однако, если вы хотите просканировать только определенный диапазон, можно задать его в качестве аргумента опции -p. Это полезно, если вы хотите просканировать только один тип серверов, например, порт 80 для Web-серверов, или только верхние диапазоны, чтобы найти необычные сервисы и потенциальные троянские программы. |
Использование приманок ( -D адрес_приманки_1, адрес_приманки_2...) |
Эта опция создает видимость, что хосты, указанные в качестве приманок, участвуют в сканировании целевых машин. Последние будут наблюдать потоки данных из нескольких источников, и им будет трудно определить, какой из них является реальным сканирующим хостом. Это еще одна опция сверхскрытности, не обязательная для большинства добропорядочных применений и создающая, кроме того, существенно более высокую нагрузку на сеть. Следует учитывать также, что использование хостов в качестве приманок может привести к блокированию их доступа к сканируемой машине. На вас может обрушиться гнев людей, которых вы таким образом "подставили". |
Фрагментация ( -f ) |
Данная опция вызывает фрагментацию отправляемых пакетов сканирования. Это - средство обеспечения скрытности, которое можно применять, чтобы избежать обнаружения сканирования. Пакеты будут собираться на другом конце получающей их машиной, но фрагментированные пакеты могут обмануть системы обнаружения вторжений и межсетевые экраны, которые зачастую проверяют соответствие конкретным шаблонам |
Запрашивать информацию Identd ( -I ) |
Служба Identd функционирует на некоторых (обычно - UNIX) машинах и предоставляет при запросе дополнительную информацию о хосте, например, тип операционной системы. Следует учитывать, что Nmap автоматически выполняет идентификацию ОС с помощью идентификационных меток TCP, поэтому данная опция менее полезна, чем кажется на первый взгляд. Если в вашей сети нет систем UNIX, то применение этой опции вообще теряет смысл |
Разрешать все адреса ( -R ) |
При использовании данной опции Nmap пытается разрешать все адреса в диапазоне, даже когда они не отвечают. Это может быть полезно, например, в сети поставщика Интернет-услуг, где целый диапазон записей о хостах может быть присвоен потенциальным IP-адресам для пула коммутируемого доступа, но в каждый момент времени возможно использование только определенной части из них. |
Идентификация ОС ( -O ) |
Подразумеваемая опция. Как упоминалось ранее, каждая реализация стека TCP имеет свои особенности. При сравнении точной идентификационной метки ответов с базой данных известных идентификационных меток TCP, Nmap, как правило, может с высокой достоверностью (иногда - вплоть до диапазона версий) идентифицировать ОС, с которой общается. Изредка попадается что-то незнакомое, и тогда ответ TCP печатается внизу отчета. Если вы обнаружите неопределенную сигнатуру, вы сможете помочь в построении базы данных идентификационных меток ОС. Если вы точно знаете, чему она соответствует, скопируйте ее и отправьте по электронной почте на адрес группы разработчиков Nmap. Они добавят ее в базу данных, чтобы в будущем при сканировании машины такого типа ее можно было правильно идентифицировать. Все известные Nmap идентификационные метки TCP содержатся в файле nmap-os-fingerprints в каталоге Data установки Nmap. |
Отправить через интерфейс ( -e имя_интерфейса ) |
Эта опция заставляет пакеты сканирования отправляться через определенный интерфейс. На практике это необходимо только на машине с несколькими сетевыми платами, или если Nmap не опознает ваш сетевой интерфейс автоматически. |