Nmap - самый известный инструмент сканирования, используемый тестерами на проникновение. В этой статье мы рассмотрим некоторые основные функции Nmap, а также несколько полезных команд.
Что такое Nmap?
Nmap - это сокращение от Network Mapper. Это инструмент командной строки Linux с открытым исходным кодом, который используется для сканирования IP-адресов и портов в сети и для обнаружения установленных приложений.
Nmap позволяет сетевым администраторам определять, какие устройства работают в их сети, обнаруживать открытые порты и службы, а также обнаруживать уязвимости.
Гордон Лайон (псевдоним Федор) написал Nmap как инструмент, который помогает легко отображать всю сеть и находить ее открытые порты и сервисы.
Nmap приобрел огромную популярность, будучи представленным в таких фильмах, как «Матрица» и популярном сериале «Мистер Робот».
Зачем использовать Nmap?
Существует ряд причин, по которым специалисты по безопасности предпочитают Nmap другим инструментам сканирования.
Во-первых, Nmap помогает быстро составить карту сети без сложных команд или настроек. Он также поддерживает простые команды (например, чтобы проверить, включен ли хост) и сложные сценарии с помощью механизма сценариев Nmap.
Другие особенности Nmap включают:
- Возможность быстро распознавать все устройства, включая серверы, маршрутизаторы, коммутаторы, мобильные устройства и т. Д. В одной или нескольких сетях.
- Помогает идентифицировать службы, работающие в системе, включая веб-серверы, DNS-серверы и другие распространенные приложения. Nmap также может обнаруживать версии приложений с разумной точностью, чтобы помочь обнаружить существующие уязвимости.
- Nmap может найти информацию об операционной системе, работающей на устройствах. Он может предоставить подробную информацию, например о версиях ОС, что упрощает планирование дополнительных подходов во время тестирования на проникновение.
- Во время аудита безопасности и сканирования уязвимостей вы можете использовать Nmap для атаки на системы, используя существующие скрипты из Nmap Scripting Engine.
- Nmap имеет графический пользовательский интерфейс под названием Zenmap. Он помогает создавать визуальные сопоставления сети для повышения удобства использования и отчетности.
Команды
Давайте посмотрим на некоторые команды Nmap. Если у вас не установлен Nmap, вы можете получить его здесь .
Базовое сканирование
Сканирование списка активных устройств в сети - это первый шаг в отображении сети. Для этого можно использовать два типа сканирования:
- Сканирование с помощью Ping - сканирование списка устройств, работающих в данной подсети.
> nmap -sp 192.168.1.1/24
- Сканировать один хост - сканирование одного хоста на предмет 1000 известных портов. Эти порты используются популярными сервисами, такими как SQL, SNTP, apache и другими.
> nmap scanme.nmap.org
Скрытое сканирование
Скрытое сканирование выполняется путем отправки SYN-пакета и анализа ответа. Если получен SYN / ACK, это означает, что порт открыт, и вы можете открыть TCP-соединение.
Однако скрытое сканирование никогда не завершает трехстороннее рукопожатие , из-за чего цель затрудняет определение системы сканирования.
> nmap -sS scanme.nmap.org
Вы можете использовать команду '-sS' для выполнения скрытого сканирования. Помните, что скрытое сканирование медленнее и не так агрессивно, как другие типы сканирования, поэтому вам, возможно, придется немного подождать, чтобы получить ответ.
Сканирование версий
Поиск версий приложения является важной частью тестирования на проникновение.
Это облегчает вашу жизнь, поскольку вы можете найти существующую уязвимость в базе данных Common Vulnerabilities and Exploits (CVE) для конкретной версии службы. Затем вы можете использовать его для атаки на машину с помощью инструмента эксплуатации, такого как Metasploit .
> nmap -sV scanme.nmap.org
Чтобы выполнить сканирование версий, используйте команду '-sV'. Nmap предоставит список сервисов с их версиями. Помните, что проверка версий не всегда на 100% точна, но она на один шаг приближает вас к успешному проникновению в систему.
Сканирование ОС
В дополнение к службам и их версиям Nmap может предоставлять информацию о базовой операционной системе с помощью снятия отпечатков TCP / IP. Nmap также попытается определить время безотказной работы системы во время сканирования ОС.
> nmap -sV scanme.nmap.org
Вы можете использовать дополнительные флаги, такие как osscan-limit, чтобы ограничить поиск несколькими ожидаемыми целями. Nmap отобразит процент достоверности для каждого предположения ОС.
Опять же, определение ОС не всегда бывает точным, но оно имеет большое значение для того, чтобы помочь пентестеру приблизиться к своей цели.
Агрессивное сканирование
Nmap имеет агрессивный режим, который позволяет обнаруживать ОС, версию, сканирование скриптов и трассировку. Вы можете использовать аргумент -A для выполнения агрессивного сканирования.
> nmap -A scanme.nmap.org
Агрессивное сканирование дает гораздо лучшую информацию, чем обычное сканирование. Однако агрессивное сканирование также отправляет больше зондов, и вероятность его обнаружения во время аудита безопасности выше.
Сканирование нескольких хостов
Nmap имеет возможность сканировать несколько хостов одновременно. Эта функция очень удобна, когда вы управляете обширной сетевой инфраструктурой.
Вы можете сканировать несколько хостов с помощью множества подходов:
- Запишите все IP-адреса в одну строку, чтобы сканировать все хосты одновременно.
> nmap 192.164.1.1 192.164.0.2 192.164.0.2
- Используйте звездочку (*) для одновременного сканирования всех подсетей.
> nmap 192.164.1.*
- Добавьте запятые для разделения окончаний адресов вместо того, чтобы вводить целые домены.
> nmap 192.164.0.1,2,3,4
- Используйте дефис, чтобы указать диапазон IP-адресов.
> nmap 192.164.0.0–255
Сканирование портов
Сканирование портов - одна из основных функций Nmap. Вы можете сканировать порты несколькими способами.
- Использование параметра -p для поиска одного порта
> nmap -p 973 192.164.0.1
- Если вы укажете тип порта, вы можете сканировать информацию о конкретном типе соединения, например, о TCP-соединении.
> nmap -p T:7777, 973 192.164.0.1
- Ряд портов можно просканировать, разделив их дефисом.
> nmap -p 76–973 192.164.0.1
- Вы также можете использовать флаг -top-ports, чтобы указать верхние n портов для сканирования.
> nmap --top-ports 10 scanme.nmap.org
Сканирование из файла
Если вы хотите просканировать большой список IP-адресов, вы можете сделать это, импортировав файл со списком IP-адресов.
> nmap -iL /input_ips.txt
Вышеупомянутая команда выдаст результаты сканирования всех указанных доменов в файле «input_ips.txt». Помимо простого сканирования IP-адресов, вы также можете использовать дополнительные параметры и флаги.
Подробность и экспорт результатов сканирования
Тестирование на проникновение может длиться несколько дней или даже недель. Экспорт результатов Nmap может быть полезен, чтобы избежать лишней работы и помочь в создании окончательных отчетов. Давайте рассмотрим несколько способов экспорта результатов сканирования Nmap.
Подробный вывод
> nmap -v scanme.nmap.org
Подробный вывод предоставляет дополнительную информацию о выполняемом сканировании. Полезно отслеживать пошаговые действия, которые Nmap выполняет в сети, особенно если вы посторонний, просматривающий сеть клиента.
Нормальный выход
Сканы Nmap также можно экспортировать в текстовый файл. Он будет немного отличаться от исходного вывода командной строки, но будет фиксировать все важные результаты сканирования.
> nmap -oN output.txt scanme.nmap.org
Вывод XML
Сканы Nmap также можно экспортировать в XML. Это также предпочтительный формат файлов для большинства инструментов для проверки на проникновение, что позволяет легко анализировать его при импорте результатов сканирования.
> nmap -oX output.xml scanme.nmap.org
Несколько форматов
Вы также можете экспортировать результаты сканирования сразу во все доступные форматы, используя команду -oA.
> nmap -oA output scanme.nmap.org
Приведенная выше команда экспортирует результат сканирования в три файла - output.xml, output. Nmap и output.gnmap.
Справка Nmap
Nmap имеет встроенную команду справки, в которой перечислены все флаги и параметры, которые вы можете использовать. Это часто бывает удобно, учитывая количество аргументов командной строки, которые имеет Nmap.
> nmap -h
Механизм сценариев Nmap
Nmap Scripting Engine (NSE) - невероятно мощный инструмент, который можно использовать для написания сценариев и автоматизации множества сетевых функций.
Вы можете найти множество сценариев, распределенных по Nmap, или написать свой собственный сценарий в зависимости от ваших требований. Вы даже можете изменять существующие сценарии, используя язык программирования Lua .
NSE также имеет сценарии атак, которые используются для атаки на сеть и различные сетевые протоколы.
Подробное изучение механизма сценариев выходит за рамки данной статьи, поэтому здесь есть дополнительная информация о механизме сценариев Nmap.
Zenmap
Zenmap - это графический пользовательский интерфейс для Nmap. Это бесплатное программное обеспечение с открытым исходным кодом, которое помогает вам начать работу с Nmap.
Помимо визуального отображения сети, Zenmap также позволяет сохранять и искать отсканированные изображения для будущего использования.
Zenmap отлично подходит для новичков, которые хотят протестировать возможности Nmap, не используя интерфейс командной строки.
Вывод
Nmap, несомненно, является «швейцарским армейским ножом» для сетевых технологий, благодаря наличию универсальных команд.
Он позволяет быстро сканировать и находить важную информацию о вашей сети, хостах, портах, брандмауэрах и операционных системах.
Nmap имеет множество настроек, флагов и предпочтений, которые помогают системным администраторам детально анализировать сеть.
Если вы хотите подробно изучить Nmap, вот отличный ресурс для вас .