Софт

сканировать порты по Ip

Рейтинг: 4.6/5.0 (442 проголосовавших)

Категория: Windows

Описание

Nmap - сканер портов

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

Nmap (“Network Mapper”) это утилита с открытым исходным кодом для исследования сети и проверки безопасности. Она была разработана для быстрого сканирования больших сетей, хотя прекрасно справляется и с единичными целями. Nmap использует IP-пакеты оригинальными способами, чтобы определить какие хосты доступны в сети, какие службы (название приложения и версию) они предлагают, какие операционные системы (и версии ОС) они используют, какие типы пакетных фильтров/брандмауэров используются и еще дюжины других характеристик. В тот время как Nmap обычно используется для проверки безопасности, многие сетевые и системные администраторы находят ее полезной для обычных задач, таких как контролирование структуры сети, управление расписаниями запуска служб и учет времени работы хоста или службы.

Выходные данные Nmap это список просканированных целей с дополнительной информацией по каждой в зависимости от заданных опций. Ключевой информацией является “таблица важных портов”. Эта таблица содержит номер порта, протокол, имя службы и состояние. Состояние может иметь значение open (открыт), filtered (фильтруется), closed (закрыт) или unfiltered (не фильтруется). Открыт означает, что приложение на целевой машине готово для установки соединения/принятия пакетов на этот порт. Фильтруется означает, что брандмауэр, сетевой фильт или какая-то другая помеха в сети блокирует порт, и Nmap не может установить открыт этот порт или закрыт. Закрытые порты не связаны ни с каким приложение, так что они могут быть открыты в любой момент. Порты расцениваются как не фильтрованные, когда они отвечают на запросы Nmap, но Nmap не может определить открыты они или закрыты. Nmap выдает комбинации открыт|фильтруется и закрыт|фильтруется, когда не может определить, какое из этих двух состояний описывает порт. Эта таблица также может предоставлять детали о версии программного обеспечения, если это было запрошено. Когда осуществляется сканирование по IP протоколу (-sO), Nmap предоставляет информацию о поддерживаемых IP протоколах, а не об открытых портах.

В дополнение к таблице важных портов Nmap может предоставлять дальнейшую информацию о целях: преобразованные DNS имена, предположение о используемой операционной системе, типы устройств и MAC адреса.

Заинтересовало? Тогда приступим к установке.

Nmap есть в портах. Оттуда и будем устанавливать.

# cd /usr/ports/security/nmap && make install clean

О возможностях nmap можно узнать ознакомившись с руководством пользователя .

Рассмотрим несколько примеров использования nmap.

Методом TCP connect () nmap будет сканировать диапазон портов (1-65535) компьютера с IP-адресом 172.16.0.1. Опция -sV служит для получения версий запущенных сервисов.

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-30 03:28 EET
Interesting ports on 172.16.0.15:
Not shown: 65531 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.1p1 (FreeBSD 20080901; protocol 2.0)
53/tcp open domain ISC BIND 4.X
80/tcp open http Apache httpd 2.2.13 ((FreeBSD) mod_ssl/2.2.13 OpenSSL/0.9.8e DAV/2 PHP/5.2.11 with Suhosin-Patch mod_perl/2.0.4 Perl/v5.8.9)
3306/tcp open mysql MySQL (unauthorized)
MAC Address: 00:14:5E:22:11:2A (IBM)
Service Info: OS: FreeBSD

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 20983.73 seconds

Стоит обратить внимание на то, что в поле SERVICE всегда отображается значение из файла /etc/services, соответствующее номеру порта. Это отнюдь не означает, что по данному порту будет запущен тот сервис, который указан в поле SERVICE. Можно запустить Web-сервер по 22 порту, а сервер SSH - по 80, но nmap все будет писать, что 22 порт - это ssh, a 80 - это HTTP.
Теперь просканируем брандмауэр/маршрутизатор на базе Linux. Вначале просканируем маршрутизатор с внут­реннего узла сети, а после - с удаленного узла, который находится вне нашей сети (например, в Интернете или другой локальной сети):

Interesting ports on 172.16.0.254:

(The 65529 ports scanned but not shown below are in state: closed)

PORT STATE SERVICE

8080/tcp open http-proxy

10000/tcp open snet-sensor-mgmt

Nmap finished: 1 IP address (1 host up) scanned in 42.636 seconds

сканировать порты по ip:

  • скачать
  • скачать
  • Другие статьи, обзоры программ, новости

    Хакер узнал мой IP и начал сканировать мои порты - для чего он это делает?

    Хакер узнал мой IP и начал сканировать мои порты - для чего он это делает?

    Лиссса Профи (936) 8 лет назад

    каждая программа в нашей системе, которая хочеть коннектится через интернет, будет использовать тот же IP что тебе выдал провайдер :) но чтобы каждое соединение как-то отличать, были введени порты :), так вот сканируя твои порты, он хочет узнать какие приложения на твоем компе запущены и ждут соединения из инета. Есть стандартные порты, на них "висят" проги чье поведение уже известно хакеру, некоторые из них при подключении к ним еще и инфу о себе сообщают например версию, что дает хакеру еще больше возможностей. Но, есть проги которые не дают просто так залазить через них в твой комп, ну есть конешно и уязвимые.

    Ты просил обьяснить зачем сканирует - я обьяснила. )

    Ну а теперь совет - ставь фаервол! и не бойся хакеров. ) Например этот: http://www.agnitum.ru/

    Да наверное стоит добавить, что ты как человек простой со своей информацией может ему и не нужен, но вот тебе правильно говорят, из твоего компа могут сделать proxy сервер - это когда через твой комп подключаются к своей жертве, и когда жертва начинает вместе с милицией разбираться то видять только что это ты нападал, а не хакер :) или использовать в DDOS атаках - это када к одному серверу сразу много-много компов подключается и он от перегрузки "падает" и тада некоторое время становится не рабочим, вот насобирает хакер много таких как ты, каждому взломает комп, а потом даст команду вашим компам и они его послушаются. )

    Dimas Мастер (1368) 8 лет назад

    что бы потом атаковать твой комп, или скачать информацию с него.

    starina-07 Мастер (2118) 8 лет назад

    для этого правда нужно сканировать порта?

    Dimas Мастер (1368) да, сначала обязательно порты сканируют.

    Алексей Лебедев Гуру (4228) 8 лет назад

    сканирование портов для того чтоб узнать "открытые" порты и повесить на них вирус. ну это на пальцах объяснил

    Дмитрий Макаров Мастер (1259) 1 год назад

    Да? А ну расскажи, как через открытый порт скинуть вирус на чужой компьютер.

    na na Ученик (234) 8 лет назад

    что бы найти открытый порт и подключится чере него

    Vad21im Мастер (1044) 8 лет назад

    Ну не знаю: ) может что увести хотел. может еще что. а ты у него спросить не пробывал? или подумать что у тебя можно украсть.

    Rost Оракул (92236) 8 лет назад

    Чтобы через эти порты хакнуть тебя!

    Tiger Мастер (1695) 8 лет назад

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

    Личный Кабинет Удалён Ученик (101) 8 лет назад

    чувак! Он делает это прямо сейчас.

    Sergei Net Мудрец (19141) 8 лет назад

    Установи firewall и пускай твой хакер сканирует что хочет, а что бы узнать твой IP хакером быть не обязательно. В чужом кармане пошарить милое дело.

    <<Sergio_T@lent>> Мудрец (11513) 8 лет назад

    хакеры они такие им чё нибуть спиздить только

    pinki Гуру (4439) 8 лет назад

    скачать твою инфу, если у тебя через телефонную сеть - может стыпить пароль карточки

    karpovi4 Мастер (1562) 8 лет назад

    Сканируют значит ишут "дыры", а когда найдут будут атаковать. Мой тебе совет вырубайся из сети для начала.

    Виталий Кожухов Мастер (1325) 8 лет назад

    если IP у тибя динамический то смени его! если же нет тогда хуже.
    ставь антивирь и фаеровол без них уж точно никак!

    starina-07 Мастер (2118) 8 лет назад

    что такое фаеровол?

    Юрий Скачков Знаток (273) 8 лет назад

    Сканируют всегда определенный диапазон IP-адресов.
    Скорее всего информация на вашем компе хакера не интересует, а машина ему нужна для использования в DOS или DDOS атаках. В этих случаях машина используется как обычный бот.
    Также ваш комп может использоваться как "анонимный" прокси-сервер, тогда, при неблагоприятном стечении обстоятельств, можно ждать в гости людей в сером - незнание закона не освобождает от ответственности!

    starina-07 Мастер (2118) 8 лет назад

    ну я думая что последнее предложение не пройдёт - хакер не из нашей страны, а что такое - "как обычный бот?"

    Юрий Скачков Знаток (273) обычный бот - это обычный роБОТ по команде ФАС он набрасывается на указанный адрес и выполняет указанную ему команду по поводу последнего предложения: есть 100% уверенность, что адрес хакера подлинный? даже если он из-за бугра и, в том числе с помощью твоей машины, старина, совершено нечто неправомерное, из-за чего начинает работать государственная машина, то отвертеться будет практически невозможно. никто не станет убирать следы на чужой машине. догадайся с трех раз - почему?

    DITAR Гуру (3226) 8 лет назад

    если хакер сказал, что будет порты сканировать, то брать там точно нечего :)

    Сканер портов

    Этот сервис предоставляет возможность проверить на Вашей машине наличие открытых портов. Порт может быть открыт на прослушивание системной службой, любым программным обеспечением, умеющим работать по сети, и, в том числе, вирусом. Для продолжения работы с сервисом требуются наличие некоторых знаний, которые необходимо подтвердить, согласившись с приведёнными ниже условиями использования сервиса.

    Условия использования сервиса Использование этого сервиса возможно лишь после прочтения и принятия всех нижеследующих условий:
    1. Я не использую прокси-сервер (необходимо для правильного определения IP адреса).
    2. Мой компьютер напрямую подключен к интернету, а не работает в локальной сети (при использовании NAT проверить порты на работающей за ним машине невозможно и будет проверен шлюз).
    3. Я администратор сети или владелец компьютера, имеющего белый IP адрес.
    4. Я понимаю, что сканер не может со 100%-й точностью определить все открытые порты на моём компьютере (например, если используется список адресов, только с которых можно устанавливать подключения к порту).
    5. Единственная цель, для которой я пользуюсь этим сервисом - проверить открытые без моего ведома порты на моём компьютере.
    6. Я знаю, что такое «прокси-сервер», «NAT», «шлюз», «белый IP адрес», «порт» и «сканер портов».
    7. Я не возражаю против того, что при запуске сканирования время запуска, мой IP адрес и настройки сканера будут записаны в лог-файл работы этого сервиса (мы не сохраняем результаты сканирования).
    8. Я согласен с тем, что если я нарушу любой из пунктов этого соглашения и это приведёт к проверке не моего компьютера, то сохранённая в лог-файле работы этого сервиса информация обо мне может быть по запросу предоставлена владельцем сервиса администратору или владельцу чужого проверенного компьютера.

    Последние сообщения из обсуждения сервиса на форуме

    создано: 07-03-2013 15:36

    Цитата (автор "Денис" ):

    Есть что посоветовать?

    в описании сервиса есть правила использования, которые нужно принять чтобы воспользоваться сервисом. там, среди прочих, есть два пункта:

    Мой компьютер напрямую подключен к интернету, а не работает в локальной сети (при использовании NAT проверить порты на работающей за ним машине невозможно и будет проверен шлюз).

    Я знаю, что такое «прокси-сервер», «NAT», «шлюз», «белый IP адрес», «порт» и «сканер портов».

    Вы поставили галку, подтвердив, что знаете ответы на эти вопросы. но по факту Вы обманули не сервис, а самого себя. таким образом, разберитесь с тем, что такое NAT, серые IP и т.д. и ответ на Ваш вопрос станет очевиден.

    создано: 14-04-2013 11:33

    создано: 08-08-2013 08:36

    Денис
    у самого была проблема с касперским, у kis фаер никакой, тоже порты открытые были. потом снес его поставил себе фаер comodo в связке с kav и живу припеваючи/ всё порты автоматом закрыл. только надо фаер комодо после установки kav ставить чтобы конфликта не возникло.

    создано: 24-07-2015 19:49

    Два месяца назд порты были открыты, играл с друзьями. Теперь опять хотелти поиграть, а порты не открываются.
    Перебробывал все возможные варианты, не один не помого.
    Звонил/писал провайдеру он сказал что все открыто.
    Может ли быть проблема в Windows?
    В чем проблема.

    Сканер портов nmap

    Сканер портов nmap

    Программа nmap относится к числу сканеров портов и сканеров безопасности систем. Программа позволяет администраторам сканировать отдельные хосты и целые сети, определяя поддерживаемые типы сервиса и другие параметры. Nmap поддерживает множество методов сканирования - UDP, TCP connect(), TCP SYN (half open), ftp proxy (bounce attack), Reverse-ident, ICMP (ping sweep), FIN, ACK sweep, Xmas Tree, SYN sweep, IP Protocol, Null scan. Более подробное описание этих методов приводится ниже. Кроме обычного сканирования программа nmap может определять тип операционной системы удаленного хоста, выполнять скрытое сканирование, параллельное сканирование, детектирование фильтров, прямое ска­нирование RPC (без portmapper), сканирование с использованием фрагментов и др. Для выполнения большинства операций nmap требуются полномочия пользователя root. поскольку многие интерфейсы ядра (в частности, сокеты raw ) требуют привилегий root. При запуске nmap от имени обычного пользователя значительная часть функ­ций программы теряется. По результатам работы программа nmap генерирует отчет, содержащий сведения об интересных портах просканированных хо­стов, если таковые были обнаружены. Для “хорошо известных” портов nmap всегда указывает имя сервиса, номер порта, его со­стояние и протокол. Состояние порта может быть open (открыт), filtered (фильтруется) или unfiltered (не фильтруется). Порт счи­тается открытым если хост принимает адресованные в этот порт соединения. К фильтруемым относятся порты, которые активны, но доступ к ним заблокирован межсетевым экраном, пакетным фильтром или иными системами контроля трафика, которые не позволили программе nmap организовать соединение с портом. К нефильтруемым портам относятся те, которые программа nmap определила как закрытые, не встретив при этом брандмауэра или иного средства предотвращения доступа к портам. Это состоя­ние является обычным для большинства портов, поэтому они указываются в отчете лишь в тех случаях, когда большинство про­сканированных портов оказались фильтруемыми. В зависимости от заданных опций nmap может также определять ряд характеристик удаленного хоста – операционную систему, порядковые номера TCP, имена пользователей, которые работают с программами, привязанными к портам, доменное имя DNS и другие параметры. Синтаксисnmap [<тип сканирования>] [<опции>] <хост или сеть #1. [#N]>Опции В силу широких возможностей программы число опций командной строки, управляющих режимом и параметрами сканирования весьма велико. Программа nmap проверяет заданный в командной строке набор опций и при наличии в них ошибок или противо­речий выдает пользователю предупреждение. Список опций с краткими комментариями можно получить по команде nmap -h. бо­лее подробное описание вы получите с помощью команды man nmap. При сканировании Stealth FIN в качестве зондов передаются пакеты с флагом FIN. метод Stealth Xmas tree использует пакеты с флагами FIN. URG и PUSH. а сканирование Stealth Null основано на передаче пробных пакетов без флагов. Эти методы не позволяют сканировать большинство систем Windows, поскольку компания Microsoft, по своему обыкновению, проигнорировала стандарт и реализовала протокол как получилось. Существуют и другие системы, в которых реакция на скани­рование не соответствует стандарту. Системы Cisco, BSDI, HP/UX, MVS и IRIX передают пакет RST при сканировании открытых портов, хотя в соответствии со стандартом должны просто отбрасывать пакеты. Вы можете видеть сравнить результаты сканирования одного хоста с использованием методов TCP SYN (рисунок 1) и Stealth FIN (рисунок 2).

    Ping-сканирование (-sP)

    Иногда бывает достаточно информации о наличии в сети активных хостов. Nmap может выполнять такую проверку путем переда­чи пакетов ICMP echo request по всем IP-адресам указанной сети. Получение отклика от хоста будет говорить о его активности. Однако, некоторые сайты блокируют пакеты ICMP echo request. В таких случаях nmap может передавать пакеты TCP ACK в ука­занный порт (по умолчанию 80). Получение в ответ пакета RST будет говорить об активности хоста. Третий вариант состоит в передаче пакетов SYN и ожидании отклика RST или SYN/ACK. Для пользователей, не имеющих привилегий root. применяется метод connect(). По умолчанию для пользователя root программа nmap будет сканировать с помощью методов ICMP и ACK (параллельно). С по­мощью опции -P вы можете выбрать метод проверки. Отметим, что ping является стандартным способом проверки доступности хостов и обычно на такое сканирование никто не реаги­рует как на злой умысел.

    Определение версии (-sV)

    После определения портов TCP и UDP с помощью одного из методов сканирования система детектирования версий взаимодей­ствует с открытыми портами, пытаясь определить реально работающие порты. Для выбора подходящего метода проверки исполь­зуется информация из файла nmap-service-probes. Nmap пытается определить связанный с портом протокол (FTP. SSH. telnet. HTTP и т. п.), имя приложения (ISC Bind. Apache httpd. Solaris telnetd и т. п.), номер версии и другие доступные сведения. При компиляции Nmap с поддержкой OpenSSL программа будет пытаться организовать соединение с серверами SSL для определения возможности использования шифрованных соединений. При обнаружении служб RPC используется модуль Nmap RPC grinder для детектирования программы RPC и номера версии этой программы. Добавочная опция --version_trace обеспечит вывод отла­дочной информации в процессе детектирования версии для удаленного хоста. Дополнительные сведения о системе детектирования версий вы найдете на сайте http://www.insecure.org/nmap/versionscan.html

    Сканирование UDP (-sU)

    Этот метод применяется для детектирования открытых портов UDP. Метод основан на передаче пустых пакетов UDP проверяе­мому хосту. Получение в ответ пакета ICMP port unreachable будет говорить о том, что порт закрыт, а отсутствие такого отклика позволяет предположить наличие открытого порта. Однако зачастую пакеты ICMP unreachable фильтруются межсетевыми экра­нами, поэтому достоверной при таком сканировании можно считать только информацию о закрытых портах. В некоторых случаях Internet-провайдеры блокируют некоторые “опасные” порты (например 31337 - back orifice и 139 - Windows NetBIOS), что может создать иллюзию открытости таких портов. Не впадайте в панику, если вы обнаружили нечто подобное при сканировании своей системы извне. Иногда приходится слышать, что сканирование портов UDP не имеет никакого смысла. Автор nmap в качестве контраргумента приводит ситуацию с уязвимостью Solaris rpcbind. Этот сервис можно связать с недокументированным портом UDP, имеющим номер более 32770. Найти такой порт без сканирования UDP достаточно сложно. Сканирование портов UDP может занять продолжительное время, поскольку на большинстве хостов реализованы рекомендации RFC 1812 (параграф 4.3.2.8) по ограничению скорости передачи откликов ICMP. Например, ядро Linux ограничивает скорость генерации откликов ICMP destination unreachable 80 пакетами в течение 4 секунд с использованием паузы в 250 мсек после пре­вышения заданного порога. В Solaris ограничение еще жестче (около 2 откликов в секунду). Такое ограничение скорости откликов существенно замедляет сканирования. Nmap старается определить скорость откликов и в соответствии с ней задать темп передачи запросов, поскольку в противном случае часть запросов пропадет втуне.

    IP-сканирование (-sO)

    Этот метод используется для определения поддерживаемых хостом протоколов IP. Метод основан на передаче raw-пакетов IP без дополнительных протокольных заголовков, адресованных всем протоколам проверяемого хоста. Получение отклика ICMP protocol unreachable говорит, что соответствующий протокол не поддерживается хостом, а отсутствие такого сообщения позво­ляет предположить наличие протокола. Используемый этим методом вариант передачи пакетов похож на сканирование UDP и ему присущи те же ограничения, связан­ные с ограничением темпа генерации сообщений ICMP. Однако поле номера протоколов IP имеет размер 8 битов, поэтому прове­ряется лишь 256 протоколов и это не должно занять много времени.

    Метод скрытого сканирования Idlescan (-sI)
    -sI <хост[:порт]> Этот метод позволяет полностью замести следы сканирования портов TCP и проверяемый хост не будет даже получать пакетов с IP-адресом сканирующей машины. Вместо передачи пакетов со сканирующего хоста используется подставной хост, доступный через Internet. Системы IDS будут показывать сканирование с указанного параметром подставного хоста и не смогут получить ад­рес вашего компьютера. Предложенная в конце 1998 года технология сканирования dumb host scan основана на предсказуемости значений поля IP ID в пакетах IP. Для реализации этого метода требуется промежуточный хост, имеющий по крайней мере один открытый порт TCP. Для успешного сканирования требуется, чтобы во время такой операции этот хост не проявлял собственной сетевой активности, но таких хостов в сети достаточно много. Для описания сути метода обозначим используемый для сканирования хост буквой A. промежуточный хост буквой Z. а проверяемый – T. Хост A может осуществлять мониторинг хоста Z по значениям поля ID в заголовке передаваемых этим хостом пакетов IP. Дело в том, что большинство реализаций протокола IP просто увеличивают значение поля ID в заголовке пакетов IP на 1 для каждого следующего пакета. В этом легко убедиться с помощью описанной в Приложении программы hping2. Таким образом по значе­нию поля ID в заголовке IP полученных от хоста откликов можно определить количество пакетов, переданных этим хостом в ин­тервале между генерацией откликов. Вспомним, что при получении пакета SYN для открытого порта хост передает в ответ пакет SYN ACK. Если же порт закрыт, в от­вет на SYN передается пакет RST ACK. При получении неожиданного пакета SYN ACK хост передает в ответ пакет RST. а при получении неожиданного пакета RST просто отбрасывает такой пакет. На основании сказанного легко построить модель скрытого сканирования.
    1. Хост A генерирует серию запросов ICMP, позволяющую контролировать рост значений поля ID в заголовке IP полученных от Z откликов.
    2. Хост A генерирует пакет SYN, адресованный в интересующий порт хоста T. используя в качестве адреса отправителя IP-адрес хоста Z .
    3. Хост T при получении пакета SYN шлет хосту Z пакет SYN ACK. если проверяемый порт открыт и RST ACK. если этот порт закрыт.
    4. Хост Z получает от хоста T неожиданный пакет SYN ACK или RST ASK .
    1. при получении SYN ACK хост Z передает отклик RST. вследствие чего увеличивается значение поля ID;
    2. при получении пакета RST ASK хост Z просто отбрасывает такой пакет и увеличения ID не происходит.
    1. Хост A. анализируя значения поля ID в заголовках откликов ICMP от хоста Z. может фиксировать передачу хостом Z пакета в интервале между откликами. Исходя из предположения об отсутствии собственной активности хоста Z. это позволяет гово­рить о передаче отклика на пакет SYN ACK от хоста T и наличии у последнего открытого порта
    Как видите, метод очень прост и при грамотной реализации метода позволяет с высокой степенью достоверности скрытно опреде­лять состояние портов проверяемого хоста без риска быть замеченным. Необязательный параметр <порт>. передаваемый программе с этой опцией, позволяет указать порт подставного хоста, который будет использоваться при сканировании. По умолчанию nmap будет использовать tcp ping. Поскольку состояние хоста Z во время сканирования играет достаточно важную роль, разумно будет сначала убедиться в том, что этот хост действительно подходит для наших целей. Сделать это можно, например, с помощью команды hping -r. Если вывод этой команды будет подобен приведенному на рисунке (содержит id=+1 в течение достаточно продолжительного време­ни), этот хост вполне подходит для использования в качестве подставного. bash-2.05b# hping -r HPING (eth0 ): NO FLAGS are set, 40 headers + 0 data bytes len=46 ip= ttl=64 DF id=3064 sport=0 flags=RA seq=0 win=0 rtt=0.6 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=1 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=2 win=0 rtt=0.4 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=3 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=4 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=5 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=6 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=7 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=8 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=9 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=10 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=11 win=0 rtt=0.4 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=12 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=13 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=14 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=15 win=0 rtt=0.3 ms len=46 ip= ttl=64 DF id=+1 sport=0 flags=RA seq=16 win=0 rtt=0.3 ms Рисунок 3 Проверка подставного хоста Программа nmap может корректно работать только с хостами, увеличивающими значение ID в каждом пакете на 1. Проверка показывает, что даже при стабильном значении id=+1 программа просто не работает. Если в процессе сканирования подставной хост будет генерировать пакеты по каким-либо иным причинам, кроме реакции на от­клики от проверяемого хоста, это приведет к появлении в результатах ложной информации об открытых портах. Никто не мешает вам повторить сканирование, используя этот же хост или указав в качестве подставного другой хост.
    ACK-сканирование (-sA)

    Этот метод обычно используется для получения данных о политике межсетевого экрана. В частности, с помощью этого метода можно определить, учитывает брандмауэр состояние соединений (stateful inspection) или является простым пакетным фильтром, который блокирует входящие пакеты SYN. В этом режиме программа передает пакеты ACK с кажущимися случайными номерами подтверждений и порядковыми номерами в сканируемые порты. При получении отклика RST порт считается нефильтруемым. Если же отклика просто не приходит или воз­вращается сообщение ICMP unreachable. порт считается фильтруемым. Программа nmap обычно не выводит сведений о не­фильтруемых портах, поэтому отсутствие какого-либо списка портов в результате сканирования говорит о том, что ни один из проверенных портов не фильтруется. В этом режиме список открытых портов обычно не выводится программой.

    Window-сканирование (-sW)

    Этот метод основан на определении размера окна TCP и похож на ACK-сканирование, но отличается от него тем, что наряду с де­тектированием состояния портов filtered/unfiltered он иногда может детектировать порты в состоянии open (вследствие получе­ния аномальных размеров окна TCP, возвращаемых некоторыми ОС, включая AIX, Amiga, BeOS, BSDI, Cray, Tru64 UNIX, DG/UX, OpenVMS, Digital UNIX, FreeBSD, HP-UX, OS/2, IRIX, MacOS, NetBSD, OpenBSD, OpenStep, QNX, Rhapsody, SunOS 4.X, Ultrix, VAX, VxWorks).

    Сканирование RPC (-sR)

    Этот метод используется в сочетании с другими методами сканирования, поддерживаемыми программой nmap и служит для про­верки всех обнаруженных при сканировании открытых портов TCP/UDP на предмет поддержки функций RPC. Проверка осуще­ствляется путем передачи в порт команды NULL с помощью SunRPC. Для поддерживающих RPC портов предпринимается по­пытка идентификации связанной с портом программы и номера ее версии. Таким образом можно определить порты и функции RPC даже в тех случаях когда порт sunrpc (111. portmapper ) закрыт с помощью межсетевого экрана или иными средствами. В ре­жиме сканирования RPC не работают приманки (decoy), описанные на стр. 7.

    Сканирование по списку (-sL)

    В этом режиме просто выводится список адресов IP или имен хостов, заданных другими параметрами командной строки без ре­ального сканирования этих хостов.

    Сканирование FTP bounce attack (-b)

    -b <промежуточный сервер FTP> Этот метод основан на возможности опосредованной передачи файлов по протоколу FTP (RFC 959 ). Этот протокол имеет стран­ную по сегодняшним меркам особенность, позволяющую пользователю хоста A подключиться к серверу FTP на другом хосте и запросить у этого сервера передачу файла любому хосту Internet. Как было отмечено еще в 1995 году, протокол FTP можно ис­пользовать для неконтролируемой рассылки электронной почты и новостных сообщений, заполнения чужих дисков ненужными файлами, попыток обхода межсетевых экранов и иных анонимных пакостей. Программа nmap использует эту особенность протокола для сканирования портов TCP с использованием промежуточных серве­ров FTP. Сканер соединяется с сервером FTP, находящимся за брандмауэром, который закрывает сканируемый хост, и сканирует с его помощью закрытые межсетевым экраном порты (например, порт 139). Если сервер FTP имеет открытый для записи каталог, можно организовать передачу в порты сканируемого хоста любых данных, позволяющих найти в системе открытые порты. Опция используется с параметром, указывающим параметры подключения к промежуточному серверу FTP в стандартной нотации URL (username:password@server :port ). Все компоненты этого параметра, за исключением адреса или имени сервера, являются необязательными. Следует отметить, что далеко не все современные серверы FTP пригодны для этого типа сканирования.

    Опции общего назначения

    Ни одна из перечисленных в таблице 1 опций не является обязательной, но многие опции весьма полезны. Отметим, что опции -P можно объединять – это поможет преодолеть даже весьма изощренные брандмауэры за счет использования различных портов и флагов TCP и кодов ICMP. Таблица 1 Опции команды nmap

    Эта опция задает использование стандартной операции ping (-PE ) в параллель с пакетами ACK (-PT ). Такой способ позволяет обойти брандмауэры, которые блокируют один из этих вариантов проб. Для пакетов ACK можно задать номер порта, как было описано выше для опции -PT .

    Эта опция задает определение операционной системы сканируемых хостов с помощью методов TCP/IP fingerprinting . Для детектирования ОС используется множество методов анализа стека протоколов сканируемого хоста. Полученная при сканировании информация сравнивается с “отпе­чатками” известных ОС для идентификации операционной системы данного хоста. Эта опция также включает несколько дополнительных тестов, в частности – определение времени с момента загрузки хоста (Uptime) с помощью опции TCP timestamp (RFC 1323), если она поддер­живается проверяемым хостом. Кроме того, опция -O определяет уровень предсказуемости порядковых номеров TCP, определяю­щий сложность организации обманных соединений TCP с проверяемым хостом. Информация о предсказуемости порядковых номеров выводится только при наличии в командной строке опции -v. При одновременной использовании опций -v и -O определяется также алгоритм генерации поряд­ковых номеров IP ID. Большинство хостов относится к классу incremental. использующему увеличе­ние значения поля ID в заголовках IP на 1 для каждого генерируемого пакета. Такой алгоритм гене­рации порядковых идентификаторов может оказать весьма большую услугу злоумышленникам при организации атаки на хост или использовании этого хоста для скрытого сканирования других сетей (см. стр. 3).

    Этот флаг позволяет использовать расширенные возможности программы по детектированию ОС (-O ), определению версии (-sV ) и др. Эта опция не влияет на опции синхронизации программы, опи­санные ниже.

    Эта опция включает поддержку протокола IPv6. Все цели сканирования должны задаваться адреса­ми IPv6 (например, 3ffe:501:4819:2000:210:f3ff:fe03:4d0 ) или полными доменными именами (записи AAAA). Версия nmap6 доступна на сайте http://nmap6.sourceforge.net/ .

    Эта опция включает режим сканирования TCP reverse ident. Дейв Голдсмит (Dave Goldsmith) в 1996 году отметил, что протокол ident (RFC 1413 ) позволяет раскрыть имена пользователей, владеющих любыми процессами, подключенными по протоколу TCP, даже если этот процесс не был инициато­ром соединения. Таким образом можно, подключившись, например, к порту http. с помощью identd определить на сервере наличие процессов пользователя root. При использовании опции -I удаленно­му демону identd передаются запросы для каждого найденного на сервере открытого порта. Опция -I может использоваться только в режиме TCP connect (-sT).

    Эта опция задает использование мелких фрагментов IP при сканировании в режимах SYN (стр. 1), FIN (стр. 1), XMAS (стр. 1) или NULL (стр. 1). Смысл заключается в разбиении заголовка TCP на множество компонент, передаваемых в разных фрагментах IP для затруднения работы пакетных фильтров, систем IDS и других способов обнаружения фактов сканирования. Эту опцию следует ис­пользовать с осторожностью, поскольку многие программы недостаточно корректно обрабатывают мелкие фрагменты.

    Задает вывод дополнительной информации в процессе сканирования и по завершении. Для дополни­тельного увеличения объема выводимых данных можно указать опцию дважды. Вы можете также указать в командной строке одну или несколько опций -d для вывода отладочной информа­ции.

    Выводит на экран краткую справку о работе с программой.

    Задает максимальное время сканирования одного хоста до перехода к следующему адресу. По умолчанию в режиме Normal время сканирования не ограничивается.

    Задает максимальное время ожидания отклика хоста на пробный пакет nmap до передачи повторного пакета или констатации тайм-аута. В используемом по умолчанию режиме синхронизации это время составляет приблизительно 9 секунд (9000).

    Задает минимальную паузу между передачей последовательных пробных пакетов. Обычно nmap сокращает интервал между передачей пакетов, если сканируемый хост отвечает достаточно быстро.

    Задает тайм-аут для первого пробного пакета. Обычно такое ограничение полезно при сканировании хостов, закрытых межсетевым экраном, в режиме -P0. Обычно nmap оценивает RTT по результатам ping и откликам на несколько первых пакетов. По умолчанию используется время ожидания 6 сек. (6000).

    Задает ограничение количества параллельных операций сканирования. При установке значения 1 nmap будет выполнять операции сканирования последовательно. Значение этого параметра влияет на все операции, которые могут выполняться в параллельном режиме (ping sweep, RPC scan и т. п.).

    Задает минимальное число сканируемых одновременно портов. Параллельное сканирование ускоряет процесс, но может снижать достоверность результатов.

    Задает минимальную между передачей последовательных пакетов для снижения нагрузки на сеть и привлечения меньшего внимания со стороны IDS.

    Linux по-русски

    Сетевой сканер Nmap. Руководство пользователя.


    Автор: Алексей Волков

    Nmap - the Network Mapper. Утилита для сканирования и исследования безопасности сети.

    Версия 2.54 beta 4.

    ИСПОЛЬЗОВАНИЕnmap [Метод(ы) сканирования] [Опции] <Хост или сеть #1,[#N]> ОПИСАНИЕ Программа Nmap предназначена для сканирования сетей с любым количеством объектов, определения состояния объектов сканируемой сети а также портов и соответствующих им служб. Для этого Nmap использует много различных методов сканирования, таких, как UDP, TCP connect(), TCP SYN (полуоткрытое), FTP proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, Xmas tree, SYN и NULL-сканирование. Более подробное их описание приведено в разделе "Опции выбора методов сканирования".

    Nmap также поддерживает большой набор дополнительных возможностей, а именно: определение операционной системы (далее - ОС) удаленного хоста с использованием отпечатков стека TCP/IP, "невидимое" сканирование, динамическое вычисление времени задержки и повтор передачи пакетов, параллельное сканирование, определение неактивных хостов методом параллельного ping-опроса, сканирование с использованием ложных хостов, определение наличия пакетных фильтров, прямое (без использования portmapper) RPC-сканирование, сканирование с использованием IP-фрагментации а также произвольное указание IP-адресов и номеров портов сканируемых сетей.

    Результатом работы Nmap является список отсканированных портов удаленной машины с указанием номера и состояния порта, типа используемого протокола а также названия службы, закрепленной за этим портом. Порт характеризуется тремя возможными состояниями: "открыт", "фильтруемый" и "нефильтруемый". Состояние "открыт" означает, что удаленная машина прослушивает данный порт. Состояние "фильтруемый" означает, что файрволл, пакетный фильтр или другое устройство блокирует доступ к этому порту и Nmap не смог определить его состояние. "Нефильтруемый" означает, что по результатам сканирования Nmap воспринял данный порт как закрытый, при этом средства защиты не помешали Nmap определить его состояние. Это состояние Nmap определяет в любом случае (даже если большинство сканируемых портов хоста фильтруются).

    В зависимости от указанных опций, Nmap также может определить следующие характеристики сканируемого хоста: метод генерации TCP ISN, имя пользователя ( username ) владельца процесса, зарезервировавшего сканируемый порт, символьные имена, соответствующие сканируемым IP-адресам и т.д.

    ОПЦИИ Большинство опций могут комбинироваться друг с другом. Одни опции предназначены для выбора определенного метода сканирования, другие указывают на использование дополнительных возможностей или служат для настройки различных параметров сканирования. Nmap предупреждает пользователя о недопустимом сочетании указанных им опций. Те, кто хотят немедленно начать работу с программой, могут пропустить этот раздел и перейти к изучению примеров вызова Nmap в конце данного руководства. Вы можете также запустить программу Nmap с ключом '-h' для получения краткой справки по всем опциям.

    Опции выбора метода сканирования

    -sT (s can T CP) - использовать метод TCP connect(). Наиболее общий метод сканирования TCP-портов. Функция connect(), присутствующая в любой ОС, позволяет создать соединение с любым портом удаленной машины. Если указанный в качестве аргумента порт открыт и прослушивается сканируемой машиной, то результат выполнения connect() будет успешным (т.е. соединение будет установлено), в противном случае указанный порт является закрытым, либо доступ к нему заблокирован средствами защиты.

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

    -sS (s can S YN) - использовать метод TCP SYN. Этот метод часто называют "полуоткрытым" сканированием, поскольку при этом полное TCP-соединение с портом сканируемой машины не устанавливается. Nmap посылает SYN-пакет, как бы намереваясь открыть настоящее соединение, и ожидает ответ. Наличие флагов SYN|ACK в ответе указывает на то, что порт удаленной машины открыт и прослушивается. Флаг RST в ответе означает обратное. Если Nmap принял пакет SYN|ACK, то в ответ немедленно отправляет RST-пакет для сброса еще не установленного соединения (реально эту операцию выполняет сама ОС). Очень немного сайтов способны обнаружить такое сканирование. Пользователь должен иметь статус root для формирования поддельного SYN-пакета.

    Для ускорения процесса опроса портов при сканировании больших сетей совместно с опцией -sS вы можете использовать ярлык, позволяющий опросить какой-либо порт на всех активных объектах сканируемой вами сети намного быстрее . чем при использовании одной опции -p. Это можно сделать с помощью ярлыка -PS <порт> . Например, если будет обнаружена новая уязвимость в sendmail, вам может потребоваться за короткое время обнаружить, на каких машинах sendmail установлен. Команда запуска Nmap будет выглядеть следующим образом (пример):

    nmap -n -sS -p25 -PS25 24.0.0.0/8

    -sF,-sX,-sN (s can F IN, s can X mas, s can N ULL) - "невидимое" FIN, Xmas Tree и NULL-сканирование. Эти методы используются в случае, если SYN-сканирование по каким-либо причинам оказалось неработоспособным. Так, некоторые файрволлы и пакетные фильтры "ожидают" поддельные SYN-пакеты на защищенные ими порты, и программы типа Synlogger или Courtney способны отследить SYN-сканирование.

    Идея заключается в следующем. В FIN-сканировании в качестве запроса используется FIN-пакет. В Xmas Tree используется пакет с набором флагов FIN|URG|PSH, а NULL-сканирование использует пакет без флагов. Согласно рекомендации RFC 973 п. 64, ОС сканируемого хоста должна ответить на такой пакет, прибывший на закрытый порт, пакетом RST, в то время как открытый порт должен игнорировать эти пакеты.

    Разработчики Microsoft Windows, как обычно, решили полностью игнорировать все общепринятые стандарты и пойти своим путем. Поэтому любая ОС семейства Windows не посылает в ответ RST-пакет, и данные методы не будут работать с этими ОС. Однако во всем есть свои плюсы, и в Nmap этот признак является основным для различения операционных систем, обладающих таким свойством.

    Если в результате FIN-сканирования вы получили список открытых портов, то это не Windows. Если же все эти методы выдали результат, что все порты закрыты, а SYN-сканирование обнаружило открытые порты, то вы скорей всего имеете дело с ОС Windows. К сожалению, Windows не единственная ОС, обладающая этим недостатком. К таким ОС относятся также Cisco, BSDI, IRIX, HP/UX и MVS. Все эти ОС не отправляют RST-пакеты.

    -sP (s can P ing) - ping-"сканирование". Иногда вам необходимо лишь узнать адреса активных хостов в сканируемой сети. Nmap может сделать это, послав ICMP-сообщение "запрос эха" на каждый IP-адрес, указанный вами. Хост, отправивший ответ на эхо, является активным.

    Некоторые сайты (например microsoft.com) блокируют эхо-пакеты. По этой причине Nmap также посылает TCP ACK-пакет на 80-й порт сканируемого хоста (по умолчанию). Если в ответ вы получили RST-пакет, хост активен. Третий метод использует SYN-пакет и ожидает в ответ RST либо SYN|ACK. Для пользователей, не обладающих статусом root, используется метод connect().

    Для root-пользователей Nmap по умолчанию использует параллельно оба метода - ICMP и ACK. Вы можете изменить это, используя опцию '-P'. описанную ниже. Заметим, что ping-сканирование по умолчанию выполняется в любом случае и только активные хосты подвергаются сканированию. Используйте эту опцию только в случае, если вы хотите выполнить только ping-опрос, не производя сканирования портов.

    -sU (s can U DP) - сканировать UDP-порты. Этот метод используется для определения, какие UDP-порты (RFC 768) на сканируемом хосте являются открытыми. На каждый порт сканируемой машины отправляется UDP-пакет без данных. Если в ответ было получено ICMP-сообщение "порт недоступен", это означает, что порт закрыт. В противном случае предполагается, что сканируемый порт открыт.

    Некоторые считают сканирование UDP-портов бесполезным занятием. Мы в этом случае напоминаем о известной "дыре" в демоне rpcbind ОС Solaris. Он может быть обнаружен на любом из недокументированных UDP-портов с номером, больше 32770. Если вы обнаружите его, то будет уже не важно, блокируется ли 111-й порт файрволлом или нет.

    К сожалению, сканирование UDP-портов проходит очень медленно, поскольку практически все ОС следуют рекомендации RFC 1812 (раздел 4.3.2.8) по ограничению скорости генерирования ICMP-сообщений "порт недоступен". Например, ядро Linux (каталог net/ipv4/icmp.h) ограничивает генерирование таких сообщений до 80 за 4 секунды с простоем 0,25 секунды, если это ограничение было превышено. У ОС Solaris еще более жесткое ограничение (2 сообщения в секунду), и поэтому сканирование Solaris проходит еще более медленно.

    Nmap определяет параметры этого ограничения, и соответственно уменьшает количество генерируемых запросов, предотвращая тем самым затопление сети ненужными пакетами, которые игнорируются целевой машиной. Как обычно, Microsoft снова все проигнорировала, и не использует в своих ОС никаких ограничений. Поэтому вы очень быстро можете просканировать все 65535 UDP-портов хоста, работающего под управлением ОС Windows.

    -sO (s can O pen protocol) - сканирование протоколов IP. Данный метод используется для определения IP-протоколов, поддерживаемых сканируемым хостом. Метод заключается в передаче хосту IP-пакетов без какого-либо заголовка для каждого протокола сканируемого хоста. Если получено сообщение "Протокол недоступен", то данный протокол хостом не используется. В противном случае Nmap предполагает, что протокол поддерживается хостом.

    Некоторые ОС (AIX, HP-UX, Digital UNIX) и файрволлы могут блокировать передачу сообщений "Протокол недоступен". По этой причине все сканируемые протоколы будут "открыты" (т.е. поддерживаются).

    Поскольку описанная техника схожа с методом сканирования UDP-портов, ограничение скорости генерации ICMP-сообщений также будет иметь место. Однако поле "тип протокола" IP-заголовка состоит всего лишь из 8 бит, поэтому 256 протоколов будут отсканированы за приемлемое время.

    -sA (s can A CK) - использовать ACK-сканирование. Этот дополнительный метод используется для определения набора правил (ruleset) файрволла. В частности, он помогает определит, защищен ли сканируемый хост файрволлом или просто пакетным фильтром, блокирующим входящие SYN-пакеты.

    В этом методе на сканируемый порт хоста отправляется ACK-пакет (со случайными значениями полей acknowledgement number и sequence number ). Если в ответ пришел RST-пакет, порт классифицируется как "нефильтруемый". Если ответа не последовало (или пришло ICMP-сообщение о недоступности порта), порт классифицируется как "фильтруемый".

    Заметим, что Nmap не выдает "нефильтруемые" порты в результатах, поэтому если вы не обнаружите ни одного открытого порта при использовании этого типа сканирования, это будет означать, что все порты просканированы и являются нефильтруемыми. Обращаем ваше внимание, что этот метод никогда не покажет состояние порта "открыт" в результатах сканирования.

    -sW (s can W indow) - использовать метод TCP Window. Этот метод похож на ACK-сканирование, за исключением того, что иногда с его помощью можно определять открытые порты точно так же, как и фильтруемые/нефильтруемые. Это можно сделать, проверив значение поля Initial Window TCP-пакета, возвращаемого хостом в ответ на посланный ему запрос, ввиду наличия определенных особенностей обработки данного поля у некоторых ОС.

    Список уязвимых операционных систем включает в себя по крайней мере несколько версий AIX, Amiga, BeOS, BSDI, Cray, Tru64 UNIX, DG/UX, OpenVMS, Digital UNIX, FreeBSD, HP-UX, OS/2, IRIX, MacOS, NetBSD, OpenBSD, OpenStep, QNX, Rhapsody, SunOS 4.X, Ultrix, VAX и VxWorks. Для более подробной информации смотрите архив nmap-hackers.

    -sR (s can R PC) - использовать RPC-сканирование. Этот метод используется совместно с другими методами сканирования и позволяет определить программу, которая обслуживает RPC-порт, и номер ее версии. Для этого все открытые TCP/UDP-порты хоста затопляются NULL-командами оболочки SunRPC, после чего определяются RPC-порты и закрепленные за ними программы. Таким образом, вы легко получаете информацию, которую могли бы получить с помощью команды ' rpcinfo -p'. даже если portmapper сканируемого хоста закрыт файрволлом или TCP-wrapper'ом.

    -sL (s can L ist) - получить список сканируемых адресов. Эта опция позволяет вам получить список адресов хостов, которые БУДУТ просканированы Nmap, до начала процесса сканирования. По умолчанию определяются имена хостов, однако это можно запретить, используя опцию -n. Опция может использоваться в случае, когда вам необходимо определить имена большого количества хостов по их адресам и т.д.

    -b <ftp_relay хост> (b ounche scan) - использовать атаку "Прорыв через FTP". Интересной "возможностью" протокола FTP (RFC 959) является поддержка "доверенных" (proxy) ftp-соединений. Другими словами, с доверенного хоста source.com можно соединиться с ftp-сервером target.com и отправить файл, находящийся на нем, на любой адрес Internet! Заметим, что данная возможность известна с 1985 года (когда был написан этот RFC). Nmap использует эту "дыру" для сканирования портов с "доверенного" ftp-сервера.

    Итак, вы можете подключиться к ftp-серверу "над" файрволлом и затем просканировать заблокированные им порты (например 139-й). Если ftp-сервер позволяет читать и записывать данные в какой-либо каталог (например /incoming), вы также можете отправить любые данные на эти порты. Аргумент, указываемый после '-b'. представляет собой URL сервера ftp, используемого в качестве "доверенного". Формат URL следующий: имя_пользователя:пароль@сервер:порт. Адрес сервера нужно указать обязательно, остальное можно не указывать.

    Опции настройки и выбора дополнительных возможностей

    Эти опции не обязательные (т.е. возможна нормальная работа Nmap и без их указания), однако все они являются весьма полезными.

    -P0 (P ing 0 ) - не производить ping-опрос хостов перед их непосредственным сканированием. Эта опция позволяет просканировать сети, блокирующие обработку ICMP-эха с помощью файрволлов. Примером такой сети является microsoft.com, и вы всегда должны использовать опцию '-P0' или'-PT80' (см. ниже), когда сканируете такую сеть.

    -PT (P ing T CP) - использовать TCP "ping". Вместо посылки запроса ICMP-эха, Nmap отправляет TCP ACK-пакет на сканируемый хост и ожидаем ответ. Если хост активен, то в ответ должен придти RST-пакет. Для не-root пользователей используется функция connect(). Эта опция позволяет вам определить состояние сканируемого хоста, даже если обработка ICMP-эха запрещена файрволлом. Для указания номера порта сканируемого сервера, на который будет отправляться ACK-пакет, используется опция '-PT <номер_порта>'. По умолчанию используется 80-й порт, поскольку он практически никогда не фильтруется.

    -PS (P ing S YN) - опция, также используемая для ping-опроса. При этом вместо ACK-пакета TCP "ping" используется SYN-пакет. Активные хосты посылают в ответ RST-пакеты (реже - SYN|ACK).

    -PI (Ping ICMP) - эта опция использует в качестве ping-запроса нормальный ping-пакет (запрос ICMP-эха). Опция применяется для поиска активных хостов а также адресов сетей с возможностью широковещания. Такие сети пересылают прибывший ICMP-пакет всем своим объектам. Как правило, такие сети представляют собой "живую мишень" для хакера.

    -PB (P ing B oth) - режим ping-опроса по умолчанию. Использует одновременно запросы типа ACK и ICMP.

    -O (O perating syste m detection) - эта опция позволяет определить операционную систему сканируемого хоста с помощью метода отпечатков стека TCP/IP. Другими словами, Nmap активизирует мощный алгоритм, функционирующий на основе анализа свойств сетевого программного обеспечения установленной на нем ОС. В результате сканирования получается формализованный "отпечаток", состоящий из стандартных тестовых запросов и "ответов" хоста на них. Затем полученный отпечаток сравнивается с имеющейся базой стандартных ответов известных ОС, хранящейся в файле nmap-os-fingerprinting, и на основании этого принимается решение о типе и версии ОС сканируемого хоста.

    Этот метод требует наличия хотя бы одного закрытого и одного открытого порта на целевом хосте. Если вы обнаружите машину, у которой это условие выполняется, но Nmap не смог определить версию ОС - вышлите нам адрес этой машины. Если же, по каким-либо причинам выслать адрес не представляется возможным, запустите Nmap с опцией '-d' и вышлите полученный отпечаток.

    -I (I dent scan) - использовать reverse-ident сканирование. Протокол Ident (RFC 1413) позволяет вскрыть имя пользователя ( username ) процесса, использующего TCP, даже если этот процесс не инициализировал соединение. Так, например, вы можете подключиться к порту http и затем использовать identd для поиска на сервере пользователя root. Это может быть сделано только при установлении "полного" TCP-соединения с портом сканируемой машины (т.е. необходимо использовать опцию '-sT' ). Nmap опрашивает identd сканируемого хоста параллельно с каждым открытым портом. Естественно, этот метод не будет работать, если на целевом хосте не запущен identd.

    -f (use f ragmentation) - эта опция используется совместно с SYN, FIN, Xmas или NULL-сканировании и указывает на необходимость использования IP-фрагментации с малым размером фрагментов. Идея заключается в том, чтобы разбить TCP-заголовок пакета на несколько фрагментов (обычно два) на стороне источника. Сканируемый хост "собирает" эти IP-фрагменты в один TCP-пакет.

    Это значительно усложняет фильтрацию пакетов, работу систем обнаружения и других подобных средств защиты, и позволяет Nmap скрыть свои действия. Будьте осторожны, используя эту опцию! Некоторые программы "зависают" при попытке собрать такие маленькие фрагменты. Так, например, весьма неплохой "сниффер" завис сразу же при получении первого 36-байтного фрагмента. А следом за ним пришел 24-байтный фрагмент.

    -v (v erbose output) - использовать режим "подробного отчета". Эту опцию рекомендуется использовать в любых случаях, поскольку при этом Nmap подробно сообщает о ходе выполнения текущей операции. Для получения лучшего эффекта можно указать ее дважды. Ну а если вы укажете еще опцию '-d'. то от скроллинга экрана у вас может закружиться голова.

    -h (show h elp) - печатает справку по использованию Nmap с указанием опций и краткого их описания, не запуская саму программу.

    -oN <имя_файла> (o utput N ormal) - записывает результаты сканирования в указанный файл в удобной для пользователя форме.

    -oM <имя_файла> (o utput M achine) - записывает результат сканирования в указанный файл в машинном виде для дальнейшего анализа пакетов, пришедших от сканируемого хоста. Если вам необходимо использовать для записи интерфейс StdOut, укажите в качестве имени файла знак ' -'. В этом случае сообщения об ошибках можно просмотреть с помощью функции StdErr.

    -oS <имя_файла> (o utput S cript kiddie) - Эту возможность мы предусмотрели для любителей языка s|<ipT kiDdi3.

    --resume <имя_файла> - если вы прервали сканирование сети нажатием комбинации <Ctrl C>, то вы можете продолжить его, используя эту опцию, если результаты сканирования записывались в лог-файл с помощью опций '-oM' или '-oN'. В этом случае запустите Nmap с указанием этой опции и имени файла, в который производилась запись предыдущего сеанса. При этом никаких других опций указывать не нужно, поскольку при возобновлении сканирования будут использоваться опции, указанные в предыдущем сеансе. Nmap продолжит сканирование с адреса, следующего за последним "завершенным".

    -iL <имя_файла> (i nput L ist) - считывает описание целевых хостов из текстового файла. Файл должен содержать список имен хостов или IP-адресов, разделенных пробелами, знаками табуляции или комбинацией <CR><LF> (каждый хост - с новой строки). Если вы хотите использовать StdIn в качестве источника информации о хостах, укажите вместо имени файла символ '-'. Более подробная информация о форматах выражений приведены в разделе "Способы задания целевого хоста".

    -iR (i nput R andom) - если вы укажете эту опцию, Nmap будет сканировать случайно выбранные им хосты, адреса которых получены с помощью генератора случайных величин. Этот процесс будет длиться, пока вы его не остановите. Функция может пригодиться для статистического исследования Internet.

    -p <диапазон(ы)_портов> (p orts) - эта опция указывает Nmap, какие порты необходимо просканировать. Например, ' -p23' означает сканирование 23 порта на целевой машины. Если указано выражение типа '-p 20-30,139,60000-'. Nmap будет сканировать порты с номерами с 20 по 30 включительно, 139 и от 60000 и выше (до 65535). По умолчанию Nmap сканирует все порты в диапазоне 1-1024, поскольку все они перечислены в файле services.

    -F (F ast scan) - быстрое сканирование. Указывает Nmap на необходимость сканирования портов только тех служб, которые перечислены в файле services. Сканирование проходит гораздо быстрее, чем если бы Nmap сканировал все 65535 портов.

    -D <ложный_хост1,[ложный_хост2],[,ME]. > (use D ecoy hosts). - В этом режиме Nmap "создает" ложные хосты, адреса которых задаются произвольно и указываются в качестве аргументов. При этом на стороне сканируемого хоста создается видимость, что производится одновременное сканирование с различных хостов (обладающих разными IP-адресами), что очень затрудняет обнаружение вашего реального IP-адреса.

    Адреса разделяются запятой. Вы также можете указать свой IP-адрес (аргумент 'ME' ) в качестве одного из хостов. Однако если вы поместили аргумент 'ME' на шестой позиции и выше, некоторые скан-детекторы (например Solar Designer's Excellent Scanlogd) покажут ваш IP-адрес как наиболее предполагаемый. Если вы явно не указали аргумент 'ME'. Nmap поместит вас на случайную позицию. Также вы можете указать имена хостов вместо их IP-адресов. Заметим, что хосты, указанные вами в качестве ложных, должны реально существовать и функционировать, в противном случае вы можете "затопить" сканируемый хост SYN-пакетами. Это также может способствовать обнаружению вашего хоста, потому что если ложные хосты не функционируют, то единственным работающим хостом окажется ваш.

    Стоит заметить, что некоторые скан-детекторы блокируют доступ хосту, осуществившему попытку сканирования. Поэтому ложный хост может потерять соединение со сканируемым хостом. Эта ситуация может возникнуть даже в том случае, если вы указали в качестве ложного хоста адрес шлюза или 'localhost'. Поэтому аккуратно используйте эту опцию.

    Ложные хосты могут использоваться с любым методом сканирования, а также при определении операционной системы. Если вы указали много ложных хостов, это замедлит процесс сканирования и сделает его менее точным. Некоторые провайдеры могут отфильтровывать ваши пакеты (но еще больше их не отфильтруют), и в этом случае использование ложных хостов не даст вам ожидаемого результата.

    -S <IP-адрес> (set S ource) - Если Nmap не смог автоматически определить IP-адрес вашего хоста (о чем вы получили соответствующее сообщение), вам необходимо самостоятельно указать IP-адрес, используя его в качестве аргумента данной опции (т.е. адрес интерфейса, который вы хотите использовать). Другое применение данной опции - для создания видимости сканирования целевого хоста кем-то другим. В этом случае вы не сможете получить результат, однако на стороне сканируемого хоста создается видимость сканирования с указанного вами адреса. Для этого совместно с '-S' необходимо использовать опцию '-e'.

    -e <интерфейс> (inte rface) - указывает Nmap, какой интерфейс будет использоваться для приема/передачи пакетов. Имя интерфейса указывается в качестве аргумента опции. Nmap обычно сам определяет интерфейс, однако выдаст вам соответствующее сообщение, если по каким-либо причинам он не смог этого сделать.

    -g <номер_порта> - указывает номер порта на вашем компьютере, который будет использоваться Nmap для осуществления сканирования. Многие файрволлы и пакетные фильтры позволяют проходить пакетам DNS (порт 53) и FTP-DATA (порт 20) к защищаемому ими хосту и установить соединение. Этот момент является большой "дырой" в безопасности файрволлов, поэтому атакующему ничего не стоит отправлять нужные ему пакеты через 53-й или 20-й порт.

    Для сканирования UDP-портов Nmap пробует сначала 53-й порт, а затем 20-й. Для TCP-портов - наоборот. Заметим, что это влияет на поле "порт источника" в запросе и поэтому не всегда работает. Например, вы не сможете определить характер изменения ISN, всвязи с чем Nmap самостоятельно сменит номер порта для этой цели, даже если вы используете опцию '-g'.

    -r (r andomize off) - для обеспечения скрытности очередной номер сканируемого хоста Nmap выбирает случайным образом. Эта опция указывает на то, что необходимо отключить случайный выбор портов и производить их последовательное сканирование.

    --randomize_hosts - указывает Nmap на необходимость случайной перестановки каждой группы из 2048 хостов перед непосредственным их сканированием. Эта опция делает сканирование менее заметным для различных систем сетевого мониторинга, особенно если вы используете ее совместно с опцией настройки времени, устанавливающей более медленное сканирование.

    -M <максимум_сокетов> (M ax sockets) - устанавливает максимальное количество сокетов, используемых параллельно в методе TCP connect() сканирования. Установка меньшего значения немного замедляет процесс сканирования, но предотвращает "завал" сканируемого хоста. Для последней цели лучше всего использовать опцию '-sS'. так как SYN-сканирование гораздо легче "переносится" операционными системами.

    Опции настройки временных параметров

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

    -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> (T iming options) - эта опция устанавливает временной режим сканирования. Требуемый режим указывается в качестве аргумента. Режим Paranoid используется в случае, когда очень велика вероятность использования скан-детекторов. В этом режиме сканирование проходит очень медленно. Параллельне сканирование не используется. Вместо этого Nmap проводит сканирование последовательно, с интервалом по меньшей мере 5 минут между посылкой пакетов.

    Режим Sneaky похож на режим Paranoid. Разница заключается в том, что интервал между посылкой двух пакетов составляет 15 секунд.

    Режим Polite используется в случае, когда необходимо минимизировать нагрузку на сеть и уменьшить вероятность "завала" сканируемого хоста. В этом режиме тесты проходят последовательно с интервалом минимум 0,4 секунды.

    Режим Normal используется Nmap по умолчанию. В этом режиме сканирование производится с максимально возможной скоростью, и по возможности без перегрузки сети и возникновения ошибок.

    В режиме Aggressive устанавливается ограничение на сканирование одного хоста, равное 5 минутам, и, кроме того, время ожидания ответа на запрос не превышает 1,25 секунды.

    Режим Insane применяется только при сканировании очень быстрых сетей. Время сканирования одного хоста составляет 75 секунд, а ожидание ответа на запрос - 0,3 секунды.

    Каждому режиму присвоен соответствующий номер, и вы можете указать его вместо полного названия режима. Так, опция '-T0' означает режим Paranoid. а '-T5' - Insane. Нумерация соответствует порядку, в котором они были перечислены выше. Заметим, что опция '-T' осуществляет настройку Nmap на высоком уровне, и не должна использоваться с опциями, приведенными ниже (они обеспечивают низкоуровневую настройку).

    --host_timeout <миллисекунд> - устанавливает время, отводимое Nmap на полное сканирование одного хоста, прежде чем он перейдет к очередному IP-адресу. По умолчанию этот параметр отсутствует, т.е. Nmap не переходит к очередному адресу до окончания сканирования текущего.

    --max_rtt_timeout <миллисекунд> (maximal r ound-t rip t ime timeout ) - устанавливает верхнюю границу временного интервала, в течение которого Nmap ожидает ответ на посланный запрос, прежде чем повторить запрос либо послать новый. По умолчанию это значение установлено равным 5000 миллисекунд.

    --min_rtt_timeout <миллисекунд> - Если сканируемый хост немедленно отвечает на посланный запрос, Nmap сразу же передает следующий, сэкономив тем самым очень много времени. Это ускоряет сканирование, но может привести к потере пакетов с ответами, пришедшими несколько позже, чем обычно. Эта опция устанавливает нижнюю границу времени ожидания ответа, т.е. Nmap в любом случае будет ждать в течении указанного вами времени не зависимо от того, пришел ответ или нет.

    --initial_rtt_timeout <миллисекунд> - устанавливает время, отводимое на начальный тест. Эта опция используется в основном для сканирования хостов, защищенных файрволлом, совместно с опцией '-P0'. Обычно Nmap автоматически выбирает оптимальное значение этого параметра. Значение по умолчанию составляет 6000 миллисекунд.

    --max_parallelism <количество> - устанавливает максимальное количество параллельных процессов сканирования, используемых Nmap. Установка этого параметра равным 1 означает, что Nmap никогда не будет сканировать более одного порта в один момент времени.

    --scan_delay <миллисекунд> - устанавливает минимальное время задержки между тестами. Эта опция может использоваться для снижения нагрузки на сеть и уменьшения вероятности обнаружения сканирования.

    СПОСОБЫ ЗАДАНИЯ ЦЕЛЕВОГО ХОСТА Все, что не является опцией или ее аргументом, Nmap воспринимает как адрес или имя целевого хоста (т.е. хоста, подвергаемого сканированию). Простейший способ задать сканируемый хост - указать его имя или адрес в командной строке после указания опций и аргументов. Если вы хотите просканировать подсеть IP-адресов, вам необходимо указать параметр '/<mask>' ("маска") после имени или IP-адреса сканируемого хоста. Маска может принимать следующие значения: '/0' - сканировать весь Интернет;

    '/16' - сканировать адреса класса B;

    '/24' - сканировать адреса класса С;

    '/32' - сканировать только указанный хост.

    Nmap позволяет также гибко указать целевые IP-адреса, используя списки и диапазоны для каждого их элемента. Например, необходимо просканировать подсеть класса B с адресом 128.210.*.*. Задать эту сеть можно любым из следующих способов: 128.210.*.*

    Все эти строки эквивалентны. Заметим, что если вы используете "звездочку" ('*'), то в большинстве оболочек вам понадобится отделить ее обратной "косой чертой" либо апострофами. Приведем еще один пример. Если вы указали в качестве целевого IP-адреса строку '*.*.5.6-7', Nmap отсканирует все IP-адреса, оканчивающиеся на 5.6 либо 5.7. Более подробно примеры вызова программы Nmap приведены ниже. ПРИМЕРЫ Приведем некоторые примеры использования Nmap и соответствующие способы запуска программы с указанием параметров в командной строке.

    nmap -v target.example.com

    Сканировать все зарезервированные TCP-порты на хосте target.example.com. Опция '-v' означает включение режима подробного отчета о ходе процесса сканирования.

    nmap -sS -O target.example.com/24

    Запускает SYN-сканирование всех 255 машин с адресами класса C, одной из которых является target.example.com. Кроме того, осуществляется определение ОС каждого из сканируемых хостов. Для этого вам необходим статус root.

    nmap -sX -p 22,53,110,143,4564 128.210.*.1-127

    Осуществляет Xmas-сканирование первой половины адресов (0-127) каждой из 255 подсетей класса B адресного пространства 128.210.*.*. На этих хостах тестируется присутствие sshd (22 порт), DNS (53), pop3d (110), imapd (143) и состояние порта 4564. Обращаем внимание, что Xmas-сканирование не будет работать с ОС Windows, CISCO, IRIX, HP/UX и BSDI.

    nmap -v --randomize_hosts -p80 *.*.2.3-5

    Nmap будет искать все машины, IP-адрес которых оканчивается на .2.3. 2.4 и .2.5. Если ваш статус root, вы также можете просканировать порты обнаруженных хостов, указав опцию '-sS'. Вы найдете много интересных машин, адреса которых начинаются на 127. Поэтому мы рекомендуем вместо первой звездочки указать '127-222'. Попробуйте обязательно!

    host -l company.com |cut '-d' -f 4| ./nmap -v -iL

    Просканировать серверы DNS зоны и найти хосты в домене company.com, передав затем в Nmap их адреса. Так выглядит команда для GNU/Linux. Для других ОС она будет выглядеть несколько иначе.

    ВОЗМОЖНЫЕ ОШИБКИ Если вы обнаружили какие-либо симптомы, говорящие о неверной работе программы, или нашли место в коде, приводящее к такому эффекту - немедленно отправьте нам эту информацию. Не забывайте также отправлять нам отпечатки ОС, чтобы пополнять базу данных Nmap. Программа выдаст вам соответствующее сообщение и URL, где она обнаружила новый отпечаток. АВТОРЫ Базовая версия: Nmap 2.54BETA3 release by Fyodor

    Русская версия: RuNmap 2.53, Алексей Волков

    РАСПРОСТРАНЕНИЕ Новейшую версию Nmap и RuNmap вы можете получить по адресам

    nmap (базовая версия) 1997,1998,1999 Fyodor

    runmap (русская версия) 1999,2000 Алексей Волков

    Библиотека libcap распространяется совместно с Nmap. Владельцы авторского права: Van Jacobson, Craig Leres и Steven McCanne, Национальная лаборатория Lawrence Berkley Калифорнийского университета, Беркли, Калифорния. Версия, распространяемая с Nmap, может быть модифицирована. Исходный код библиотеки можно получить по адресу ftp://ftp.ee.lbl.gov/libcap.tar.gz.

    Эта программа является бесплатным программным обеспечением. Вы можете свободно распространять и/или модифицировать ее в соответствии с требованиями GNU General Public License, опубликованной Free Software Foundation, версия 2. Если вас не устраивает данная лицензия, мы (Insecure.Org) готовы рассмотреть ваши предложения.

    Программа поставляется без предоставления каких-либо гарантий. Вопросы и комментарии отправляйте по адресу:

    2000 Алексей Волков.

    Эта статья еще не оценивалась

    Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь .
    Только зарегистрированные пользователи могут оценивать и комментировать статьи.

    Комментарии отсутствуют