Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Сканер nmap

Рубрика: Безопасность -> Аудит сети
Метки: | |
Понедельник, 2 февраля 2009 г.
Просмотров: 6433

Nmap - самый популярный инструмент для сканирования и аудита сети. В прошлом сканирование портов было искусством: разрабатывались новые технологии, новые сканеры портов с разными дополнениями. Nmap вобрал в себя все лучшее с нескольких технологий сканирования и стал практичеки стандартом на сканеры портов. Очень часто можно встретить такое выражение "nmapping", которое появилось вместо "portscanning"(сканирование портов). Практически во всех Linux-дистрибутивах есть nmap. Последнюю версии можно скачать с сайта http://www.insecure.org


     Рассмотрим опции  и типы сканирования, которые есть в nmap. Nmap предлагает много методов сканирования - от стандартного TCP connect() до экзотического Xmas scan:

  • TCP connect() (-sT): стержневой метод сканирования, устанавливающий полноценное соединение с целевым портом. Если соединение успешно установлено, то порт прослушивается. Этот метод сканирования легко отслеживается, поскольку все попытки установления соединения вносятся в журнал жертвы.

  • TCP SYN (-sS): точно, самая популярная опция. Сканер посылает в порт SYN-пакет, чем создает полуоткрытое соединение. Сервер отвечает на данный пакет пакетом SYN-ACK, а сканер, получив ответ, отправляет серверу пакет RST (отказ от соединения). У данного метода есть ряд преимуществ: полуоткрытые соединения не протоколируются, поэтому, о сканировании никто и не узнает. Во-вторых, он работает намного быстрее TCP connect() - не нужно устанавливать соединение. Из недостатков можно выделить обязательное наличие прав root`a.
  • Stealth Fin, Xmas Tree, Null scan (-sF, -sX, -sN): эти методы основаны на RFC793: закрытые порты обязаны отвечать на пакет FIN пакетом RST (открытые порты прямо отбрасывают незапрашиваемые FIN-пакеты). Windows-машины (и некоторые версии HP-UX, IRIX и BSD) не соблюдают это правило и постоянно отвечают пакетом RST на незапрашиваемый пакет FIN. Также этот метод можно использовать и для определения системы, которая работает на сканируемом компьютере.
  • Ping Sweep (-sP): компьютер пингуется, чтобы определить, включен он или нет. Большинство администраторов закрывают ICMP из-за DoS-атак. Тогда nmap посылает ICMP-пакет на порт web-сервера жертвы. Если он получит в ответ пакет RST, значит, узел включен и подключен к сети.
  • UDP-сканирование (-sU): nmap также умеет выполнять и UDP-сканирование. Идея в следующем: в порт отправ­ляется UDP-дейтаграмма. Если порт закрыт, то в ответ посылается ICMP-сообщение «порт недоступен», в противоположном случае порт открыт.
  • RPC-сканирование: используется вместе с другими типами скани¬рования. Позволяет определить, какой RPC-сервис запущен, и его версию.
  • Сканирование версии (-sV): обычно используется для идентификации сер­виса. Сканер сообщает номер версии сервиса, который прослушивает порт.
  • -Р0: не пинговать удаленный узел. Как правило nmap пропускает узлы, которые не отвечают на пинги, потому-что думает, что они выключе­ны. С помощью этой опции он будет считать, что узел включен и в сети.
  • -I: обратное Ident-сканирование. Если на машине запущен демон Ident (113/tcp), то nmap узнает у него имя владельца всех открытых портов (сервисов, которые слушают эти порты). Для этого метода нужна опция -sT.
  • -O: сканирование на определение операционной системы.
Примеры команд:

nmap -v -O example.com

nmap -v -sP 172.16.0.0/16 10.0.0.0/8