32 примера использования команды Nmap для Linux-систем. Nmap (сокращенно от англ. Network Mapper) — это очень удобное средство для обеспечения инструмент безопасности. Которое помогает осуществлять аудит сетевой инфраструктуры, сканировать ее и выявлять подключения. Стоит отметить, что данный инструмент отличается открытым исходным кодом, потому широко применяется сетевыми и системными администраторами. Помимо всего прочего, от аналогов утилита Nmap отличается сочетанием двух характеристик:
- огромных возможностей, необходимых профессионалам для решения задач в ИТ;
- простоты освоения, позволяющей быстро научиться основам работы с сетями с нуля.
Потому сегодняшняя наша статья научит вас некоторым полезным способам применения команды Nmap. Например, для выявления уязвимостей, сканирования хоста и сетевой инфраструктуры. Помимо всего прочего, вам будут продемонстрированы методы не только оборонительного, но и превентивного усиления защиты вашей системы.
Содержание:
- Для каких целей применяется Nmap
- Подготовка среды для лабораторных работ по Nmap
- Примеры использования Nmap для Linux-систем
- №1 — сканирование указанного IP-адреса (IPv4) либо хоста
- №2 — сканирование сразу нескольких IP-адресов или подсетей (IPv4)
- №3 — сканирование хостов/сетей (IPv4) по списку из файла
- №4 — исключение указанных хостов/сетей при сканировании
- №5 — скрипт сканирования ОС и определения версии
- №6 — выявление защиты брандмауэром или фильтрации пакетов у хоста/сети
- №7 — сканирование хоста, защищенного брандмауэром
- №8 — сканирование хоста с адресом IPv6 с помощью Nmap для Linux
- №9 — поиск активных серверов и других устройств
- №10 — быстрое сканирование
- №11 — поиск причины, по которой порт находится в определенном состоянии
- №12 — обнаружение всех открытых портов
- №13 — вывод всех отправленных/полученных пакетов
- №14 — вывод интерфейсов хостов и маршрутов
- №15 — сканирование конкретных портов
- №16 — экспресс-сканирование всех открытых портов в сети
- №17 — удаленное выявление операционной системы с помощью Nmap для Linux
- №18 — проверка версий удаленных сервисов (сервер/демон)
- №19 — сканирование с помощью пинга TCP ACK (PA) и TCP Syn (PS)
- №20 — сканирование хоста с помощью IP-протокола ping
- №21 — сканирование хоста за счет UDP-пинга
- №22 — поиск наиболее часто используемых портов TCP, с использованием TCP SYN Scan
- Сканируем скрытно с TCP SYN
- Ищем с помощью TCP-подключения порты, которые чаще всего используются
- Ищем с помощью TCP ACK порты, которые чаще всего используются
- Ищем с помощью сканирования TCP Window порты, которые чаще всего используются
- Ищем с помощью сканирования TCP Maimon порты, которые чаще всего используются
- №23 — сканирование хоста на предмет UDP-сервисов
- №24 — сканирование поддерживаемых IP-протоколов
- №25 — сканирование брандмауэра для обнаружения уязвимостей
- №26 — сканирование брандмауэра на предмет фрагментов пакетов
- №27 — скрытое сканирование с обманками
- №28 — спуфинг MAC-адресов
- №29 — сохранение вывода в текстовый файл при работе с Nmap для Linux
- №30 — сканирование веб-серверов и каналов в Nikto
- №31 — ускорение процесса сканирования Nmap
- №32 — что делать, если вы не любите пользоваться командной строкой Linux
- Выводы
Для каких целей применяется Nmap
Приложение Nmap для Linux-систем было создано Гордоном Лионом. Прежде всего, давайте посмотрим, какую информацию включает в себя руководство по эксплуатации утилиты. Стоит отметить, что ее работа основана на использовании необработанных IP-пакетов. Которые позволяют найти все доступные хосты в вашей сети. Также они способствуют определению сервисов, использующих данные хосты. Кроме того, утилита возвращает данные о том, на каких операционных системах выполняются соответствующие процессы. И выявляется фильтрацию пакетов брандмауэром, если тот используется.
Безусловно, такой полезный инструмент как Nmap предназначен прежде всего для сканирования сети и аудита безопасности. С другой стороны, многие сетевые и системные администраторы применяют его в повседневной работе: для контроля над графиком обновления служб, анализа сетевых подключений и времени работы отдельных хостов. С помощью этого приложения можно получить сведения следующего характера:
- сколько и каких машин подключено к вашей сети;
- какие в ней присутствуют IP-адреса;
- какие операционные системы и каких версий установлены на задействованных машинах;
- имеются ли в вашей инфраструктуре открытые порты и какие именно;
- имеет ли место заражение системы потенциально вредоносным программным обеспечением;
- подключаются ли к вашей сети неавторизованные хосты или сервисы;
- все ли ПК в вашей сети соответствуют указанному набору критериев безопасности (с возможностью блокирования тех, какие не соответствует).
Подготовка среды для лабораторных работ по Nmap
Стоит отметить, что в некоторых странах процедура сканирования портов считается противозаконной. Следовательно, для повторения показанных в данной статье примеров сначала нужно подготовить изолированную тестовую среду.
На показанной выше схеме показаны следующие условные обозначения:
- wks01 — ваш персональный компьютер под управлением Unix-подобной операционной системы (Linux либо OS X) с установленной утилитой Nmap, с которого будет осуществляться сканирование;
- server1 — unpatched сервер под управлением ОС Linux, Unix либо Windows (должен содержать несколько сервисов вроде файлового сервера, веб-сервера и т.п.);
- server2 — fully patched сервер с брандмауэром под управлением ОС Linux, Unix либо Windows (должен содержать несколько сервисов вроде файлового сервера, веб-сервера и т.п.).
Стоит отметить, что все три устройства нужно соединить через коммутатор в единую сеть.
Примеры использования Nmap для Linux-систем
В том случае, если вы подготовили свою тестовую среду — можно переходить к изучению примеров использования Nmap.
№1 — сканирование указанного IP-адреса (IPv4) либо хоста
Прежде всего, нам пригодится команда, позволяющая просканировать конкретное имя хоста или определенный IP-адрес.
Сканируем один IP-адрес (IPv4)
Сканируем одно имя хоста
Сканируем одно имя хоста, получая дополнительные данные
№2 — сканирование сразу нескольких IP-адресов или подсетей (IPv4)
Конечно же, в реальной жизни очень редко удается обойтись сканированием одного единственного хоста за раз. К счастью, разработчик предусмотрел возможность одновременного сканирования нескольких IP-адресов.
Сканируем группу адресов IP
Сканируем группу подсетей 192.168.1.0/24
Сканируем диапазон IP-адресов
Cканируем диапазон IP-адресов с помощью метасимвола подстановки
Сканируем всю подсеть
№3 — сканирование хостов/сетей (IPv4) по списку из файла
Стоит отметить, что при регулярном сканировании больших количеств устройств вводить их данные в командную строку может быть утомительно. К счастью, утилита Nmap способна брать такую информацию из заранее подготовленного файла с помощью опции -iL. Прежде всего, создайте файл с таким текстовым содержимым:
После чего укажите путь к файлу как аргумент команды Nmap:
№4 — исключение указанных хостов/сетей при сканировании
Конечно же, возможна и обратная ситуация, при которой некоторые хосты или адреса IP не нужно сканировать. В этом случае их можно исключить опцией –exclude.
Исключение одного хоста по его IP-адресу
Исключение нескольких хостов по их IP-адресам
Исключение нескольких хостов, записанных в файл
Кроме того, список исключенных хостов или сетей можно внести непосредственно в файл — /tmp/exclude.txt. Чтобы потом указывать его в качестве аргумента команды Nmap:
№5 — скрипт сканирования ОС и определения версии
Помимо всего прочего, команда Nmap позволяет сканировать сеть на предмет получения данных об установленных ОС и их версиях. Для этого нужно использовать опцию -A.
Сканируем версию ОС
Сканируем версию ОС, получая дополнительные данные
Сканируем версию ОС по списку хостов из файла
№6 — выявление защиты брандмауэром или фильтрации пакетов у хоста/сети
Скорее всего, каждому сетевому или системному администратору порой нужно узнать, на каких целевых машинах есть фильтрация пакетов. К счастью, обнаружить функционирующий брандмауэр можно с помощью опции -s.
Сканируем на наличие брандмауэра по IP-адресу
Сканируем на наличие брандмауэра по имени хоста
№7 — сканирование хоста, защищенного брандмауэром
К тому же у вас может возникнуть потребность в сканировании защищенного хоста. Сделать это поможет опция -PN, указывающая утилите Nmap пропустить этап пинга сканирования.
Сканирование хоста, защищенного брандмауэром, по его IP-адресу
Сканирование хоста, защищенного брандмауэром, по имени хоста
№8 — сканирование хоста с адресом IPv6 с помощью Nmap для Linux
Стоит отметить, что утилита поддерживает сканирование IPv6 — для этого предназначена опция -6. В таком случае команды будут выглядеть следующим образом:
№9 — поиск активных серверов и других устройств
Помимо всего прочего, у системного администратора может возникнуть необходимость в обнаружении всех запущенных устройств сети. Скорее всего, самый простой способ это сделать — применить метод host discovery или ping scan:
№10 — быстрое сканирование
Помимо всего прочего, предусмотрена возможность выполнения быстрого сканирования. Для этого предназначена опция -F утилиты Nmap:
№11 — поиск причины, по которой порт находится в определенном состоянии
С помощью опции –reason можно узнать, по какой причине тот или иной порт был переведен утилитой в определенное состояние.
Узнаем причину текущего состояния порта по IP-адресу
Узнаем причину текущего состояния порта по имени хоста
№12 — обнаружение всех открытых портов
Скорее всего, одной из самых полезных функций Nmap является способность искать открытые порты. Специально для этого предназначена опция –open.
Находим открытые порты по IP-адресу
Находим открытые порты по имени хоста
№13 — вывод всех отправленных/полученных пакетов
Конечно же, не менее важна функция просмотра отправленных и полученных пакетов с помощью Nmap. Для этого предназначена опция –packet-trace.
Выводим пакеты по IP-адресу
Выводим пакеты по имени хоста
№14 — вывод интерфейсов хостов и маршрутов
Стоит отметить, что для отладки полезно уметь вывести на экран интерфейсы активных хостов и маршрутов. Утилита Nmap для Linux-систем может это сделать с помощью опции –iflist:
№15 — сканирование конкретных портов
Помимо всего прочего, подвергнуть сканированию утилитой можно и определенные порты. В частности, если использовать опцию-p:
Сканируем указанный порт
Сканируем указанный порт по TCP
Сканируем указанный порт по UDP
Сканируем два порта
Сканируем диапазон портов
Комбинируем опции сканирования
Сканируем все порты с помощью метасимвола подстановки «*»
## Scan top ports i.e. scan $number most common ports ##
nmap –top-ports 5 192.168.1.1
nmap –top-ports 10 192.168.1.1
Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 01:23 IST
Interesting ports on 192.168.1.1:
PORT STATE SERVICE
21/tcp closed ftp
22/tcp open ssh
23/tcp closed telnet
25/tcp closed smtp
80/tcp open http
110/tcp closed pop3
139/tcp closed netbios-ssn
443/tcp closed https
445/tcp closed microsoft-ds
3389/tcp closed ms-term-serv
MAC Address: BC:AE:C5:C3:16:93 (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 0.51 seconds[/code]
№16 — экспресс-сканирование всех открытых портов в сети
Безусловно, одной из самых нужных и востребованных возможностей утилиты Nmap является быстрый поиск открытых портов. Стоит отметить, что для его выполнения предназначена опция -T5:
№17 — удаленное выявление операционной системы с помощью Nmap для Linux
Конечно же, имеется возможность опознания программного обеспечения и даже операционной системы на удаленном хосте. Прежде всего, в этом вам поможет опция -O:
№18 — проверка версий удаленных сервисов (сервер/демон)
Также создателем программы предусмотрена возможность выяснения того, какие версии сервисов работают на удаленных хостах. Для этого нужно использовать опцию -sV:
№19 — сканирование с помощью пинга TCP ACK (PA) и TCP Syn (PS)
Нередко брандмауэр отклоняет все запросы ICMP. В таком случае можно попробовать выполнить сканирование одним из следующих способов:
№20 — сканирование хоста с помощью IP-протокола ping
Кроме того, с помощью Network Mapper можно выполнить пинг с использованием IP-протокола. Для этого воспользуйтесь опцией -PO:
№21 — сканирование хоста за счет UDP-пинга
Помимо всего прочего, есть возможность при работе с Nmap обойти межсетевые экраны с помощью UDP-пинга. Для этого попробуйте опцию -PU:
№22 — поиск наиболее часто используемых портов TCP, с использованием TCP SYN Scan
Сканируем скрытно с TCP SYN
Конечно же, существует возможность выполнить полуоткрытое сканирование (TCP SYN) без установления полноценного подключения. Для этого воспользуйтесь опцией -sS:
Ищем с помощью TCP-подключения порты, которые чаще всего используются
Ищем с помощью TCP ACK порты, которые чаще всего используются
Ищем с помощью сканирования TCP Window порты, которые чаще всего используются
Ищем с помощью сканирования TCP Maimon порты, которые чаще всего используются
№23 — сканирование хоста на предмет UDP-сервисов
Безусловно, предусмотрена и возможность обнаружения служб, пользующихся UDP-подключением. Для этого достаточно использовать опцию -sU:
№24 — сканирование поддерживаемых IP-протоколов
Также имеется возможность выяснить, какие именно IP-протоколы доступны к применению на целевых машинах:
- TCP;
- ICMP;
- IGMP и другие.
Для этого нужно использовать опцию -sO:
№25 — сканирование брандмауэра для обнаружения уязвимостей
Кроме того, есть особый тип сканирования, позволяющий получать сведения о настройках безопасности удаленных машин.
Сканируем TCP Null, позволяющим «обмануть» брандмауэр для получения ответа
Первый вариант оставляет заголовок флага TCP равным нулю (не устанавливает битов) с помощью опции -sN:
Сканируем TCP FIN для проверки брандмауэра
Тогда как этот вариант сканирования устанавливает только бит TCP FIN с помощью опции –sF:
Сканируем TCP Xmas для проверки брандмауэра
Последний вариант с помощью опции -sX устанавливает флаги FIN, PSH и URG, подсвечивая пакет не хуже новогодней елки:
№26 — сканирование брандмауэра на наличие фрагментов пакетов
Флаг -f заставляет данное сканирование (включая проверки ping) использовать крошечные фрагментированные IP-пакеты. Идея состоит в том, чтобы разделить заголовок TCP на несколько пакетов, чтобы усложнить фильтрацию пакетов, усложнить работу системам обнаружения вторжений и т.д.
№27 — скрытое сканирование с обманками
Помимо всего прочего, существует возможность при сканировании скрыть свой IP-адрес среди любого количества фиктивных адресов-обманок. Для этого предназначена опция -D:
№28 — спуфинг MAC-адресов
Также утилита Nmap имеет в своем арсенале функцию спуфинга MAC-адресов. Стоит отметить, что spoofing attack — это ситуация, при которой одно устройство/приложение маскируется под другое, указывая его MAC-адрес.
Указываем ложный MAC-адрес
Указываем дополнительные опции спуфинга
Используем случайный MAC-адрес
В данном примере «0» означает, что Nmap выберет совершенно случайный MAC-адрес:
№29 — сохранение вывода в текстовый файл при работе с Nmap для Linux
Конечно же, случаются ситуации, при которых результаты вывода утилиты Nmap нужно сохранить. Удобнее всего сделать это за счет перенаправления стандартного потока вывода в указанный текстовый файл с помощью знака «>»:
№30 — сканирование веб-серверов и каналов в Nikto
Также существует возможность осуществить сканирование веб-серверов и каналов в Nikto:
№31 — ускорение процесса сканирования Nmap
Помимо всего прочего, существует возможность повышения скорости сканирования в Nmap. Для этого следует воспользоваться опцией -T:
№32 — что делать, если вы не любите пользоваться командной строкой Linux
Скорее всего, многие наши читатели умеют работать с командной строкой ОС семейства GNU / Linux. Однако это вовсе не означает, что все обязаны любить этот инструмент и пользоваться всегда только им. В таком случаем мы можем посоветовать вам Zenmap, официальный GUI для программы Nmap Security Scanner. Стоит отметить, что данное решение является кроссплатформенным и поддерживает популярные ОС:
- Linux;
- Windows;
- Mac OS X;
- BSD и другие.
Также данное приложение с открытым исходным кодом является бесплатным и призвано одновременно обеспечить пользователя профессиональным функционалом Nmap для Linux-систем. И, в то же время, упростить новичкам работу с утилитой, особенно на первых порах.
Стоит отметить, что GUI предусматривает возможность сохранения профилей для часто используемых параметров сканирования. Кроме того, в нем можно открывать интерактивную командную строку Nmap. Помимо всего прочего, предусмотрена возможность простого и удобного сохранения результатов вывода.
Устанавливаем Zenmap
К счастью, установить Zenmap тоже можно с помощью команды менеджера пакетов apt:
Запускаем Zenmap
Чтобы запустить Zenmap, введите в командную строку следующую команду:
Выводы
Скорее всего, базовые примеры работы с утилитой Nmap для Linux доступны для понимания всем. Потому этот инструмент можно и нужно брать на вооружение всем, кто занимается сетевым и системным администрированием UNIX-подобных систем. Помимо всего прочего, вам могут пригодиться в работе и учебе следующие материалы:
- Официальное руководство проекта Nmap по обнаружению сети и сканированию параметров безопасности.
- Официальная домашняя страница проекта Nmap.
Безусловно, у команды Nmap есть много других опций. В результате чтения руководства вы можете открыть для себя много дополнительных возможностей программы.
Спасибо за время, уделенное прочтению статьи о 32 примерах использования команды Nmap для Linux-систем!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.