Как пользоваться Nmap для сканирования сети. Самые употребляемые команды nmap Nmap сканирование диапазона ip

Сравнительное быстрое (благодаря ключам -nF ) сканирование локальной сети с маской 255.255.255.0 :

nmap -nF 192.168.0.0/24

Сканирование сети

Основные опции сканирования начинаются с -s.
По-умолчанию nmap практикует скрытое сканирование (-sS) сети, не создавая соединений до конца: nmap <маска подсети> .

Например:

nmap 192.168.0.1-254

Пинг-сканирование ( -sP ), в этом режиме порты не сканируются, что, конечно, заметно увеличивает скорость работы:


При этом сканировании отправляеться ICMP эхо-запрос, такой же как это делает утилита ping.
Однако пинг сканирование может привети и к ложноотрицательному срабатыванию, когда активнй, хост настроен не отвечать на ICMP эхо-запросы. Здесь логично использовать ключ -Pn , считаz все хосты активными.

Два следующих ключа, также призванны сократить время сканирования: -n не производить разрешение DNS имен. Преобразование DNS может быть медленным;
-F быстрое сканирование, ограничивает число сканируемых портов с 1000 до 100;
-sS TCP SYN сканирование или т.н. полуоткрытое сканирование ибо оно не устанавливает полных соединений , посылая только запросы на открытие и не производя больше никаких операций. В отличии от -sT . используется по-умолчанию;
-sA TCP ACK сканирование , позволяет определить, фильтруются ли порты;
-sU сканирование UDP портов.

маска подсети

Следующие три формата записи идентичны:

192.168.1.0/24
192.168.1.0-255
192.168.1.*
Если адресов немного, то их можно перечислить: 192.168.1.1,2,3,4

сканирование хоста

-sV определение сервисов;
-p порт1, порт2, ... - сканирование заданного порта или их писка
-p- сканирование всех портов;
-O определение операционной системы .

Если не удаётся точно определить ОС можно просмотреть список вероятных версий операционных использую ключ --osscan-guess :

Aggressive OS guesses: Linux 3.5 (99%), Cisco SRP 527 WAP (Linux 2.6) (99%), Linux 2.6.9 - 2.6.30 (97%), Tomato 1.28 (Linux 2.6.22) (97%), DD-WRT v24-sp2 (Linux 2.6.24) (97%), Linux 2.6.18 - 2.6.32 (96%), Linux 2.6.9 - 2.6.19 (96%), Belkin N600 DB WAP (96%), Ubiquiti AirMax NanoStation WAP (Linux 2.6) (95%), Linux 2.6.15 (likely TP-Link WAP) (95%)
-A позволяет использовать расширенные возможности программы по детектированию ОС (-O), определению версии (-sV) и др.

открыт (open) Приложение принимает запросы на TCP соединение или UDP пакеты на этот порт.

закрыт (closed) Закрытый порт доступен (он принимает и отвечает на запросы Nmap), но не используется каким-либо приложение.

фильтруется (filtered) Nmap не может определить, открыт ли порт, т.к. фильтрация пакетов не позволяет достичь запросам Nmap этого порта.

открыт|фильтруется (open|filtered) Nmap характеризует порт таким состоянием, когда не может определить открыт порт или фильтруется.

закрыт|фильтруется (closed|filtered) Это состояние используется, когда Nmap не может определить закрыт порт или фильтруется. Используется только при сканировании IP ID idle типа.

Сохранение результатов сканирования

основные опции вывода начинается с -o
Сохранение результатов сканирования в XML и копирование стандартного вывода в файл.

OX myscan.xml -oN myscan.nmap

OA <базовое_имя_файла> использовать все (gmap, xml, normal) форматы вывода.

Формат вывода gmap является своеобразной альтернативой выводу в XML и проигрывает последнему по мощности.

Webxml загружает таблицу стилей с Nmap.Org чтобы создать XML файл отображаемый как HTML
-v увеличивает уровень вербальности (количество выводимой информации), например показывает приблизительное время завершения работы. Ещё увеличить число подробностей можно задав этот параметр дважды.

Алсо

В Mtasploit Framework есть db_nmap , который взаимодействует со встроенной в MSF БД, записывая обнаруженные хосты и сервисы соответственно в таблицы hosts и services .
Кроме того можно используя команду db_import report_file загрузить отчёт nmap"а в формате XML в БД MSF .

Поддельные адреса сканера
-D , - маскирует реальный адрес сканера, среди нескольких поддельных. В примере, адрес сканера - 192.168.56.1 , адрес-приманка - 192.168.56.100 . Вывод снифера показывает, что сканирование происходит с этих двух адресов, однако сканер находится только на первом.

nmap -p 23 192.168.56.101 -D 192.168.56.100
--randomize-hosts сканирование заданного диапазона хостов в произвольном порядке.
Порядок сканирования портов по-умолчанию в nmap случайный , за исключением некоторых популярных портов, которые сканер проверяет в первую очередь. Ключ -r включает упорядоченное сканирование.

Подделка mac адреса
--spoof-mac <0 (случайный), mac (001122334455) или производитель (Apple, Cisco)>

***
Сканирование через Tor
Применяем proxychains для перенаправления трафика через сеть Tor.
Проследим, чтобы в разделе ProxyList конфигурационного файла /etc/proxychains.conf proxychains был указан порт tor"а:

socks4 127.0.0.1 9050
Запустим tor и приступим к сканированию.
SYN сканирвание в таких условиях не работает, поэтому для каждого порта подключение выполняться полностью (-sT ). Цель не пингуем (-PN ) и не производим DNS разрешения (-n ) чтобы не создавать трафика идущего мимо Tor. Cканирование довольно медленное, поэтому сканируем только самые популярныйе порты (-F )
proxychains nmap -PN -n -sT -F 45.33.32.156
ProxyChains-3.1 (http://proxychains.sf.net)

Starting Nmap 6.40 (http://nmap.org) at 2041-12-01 12:57
|S-chain|-<>-127.0.0.1:9050-<><>-45.33.32.156:1723-<--denied
|S-chain|-<>-127.0.0.1:9050-<><>-45.33.32.156:53-<--denied


...
|S-chain|-<>-127.0.0.1:9050-<><>-45.33.32.156:22-<><>-OK
|S-chain|-<>-127.0.0.1:9050-<><>-45.33.32.156:587-<--denied
|S-chain|-<>-127.0.0.1:9050-<><>-45.33.32.156:113-<--denied
|S-chain|-<>-127.0.0.1:9050-<><>-45.33.32.156:80-<><>-OK

...
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.60s latency).
Not shown: 98 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http

Nmap done: 1 IP address (1 host up) scanned in 102.05 seconds

Ниже вы найдете 20 базовых примеров использования команды Nmap .

Вы узнаете, как использовать Nmap из командной строки в Linux для поиска активных хостов в сети и сканирования открытых портов.

Вы увидите, как удаленно определить операционную систему с помощью отпечатков стека TCP/IP и как узнать версию программного обеспечения запущенного на удаленном сервере.

Я так-же покажу как с помощью Nmap осуществить скрытое сканирование , как определить фаервол и как подменить MAC адрес .

1. Сканирование Одного Хоста или IP Адреса

Сканировать Отдельный IP Адрес :

$ nmap 192.168.1.1

Сканировать сервер по Имени Хоста :

$ nmap server.сайт

Увеличить Уровень Детализации результатов сканирования:

$ nmap -v server..сайт

2. Сканирование Множества IP Адресов

Сканировать Множество IP Адресов :

$ nmap 192.168.1.1 192.168.1.2 192.168.1.3 $ namp 192.168.1.1,2,3

Сканировать Подсеть :

$ nmap 192.168.1.0/24 $ nmap 192.168.1.*

Сканировать Диапазон IP Адресов (192.168.1.0 — 192.168.1.200):

$ nmap 192.168.1.0-200

3. Поиск Активных Компьютеров в Сети

Дельный Совет: Сканируйте сеть с помощью одной лишь команды ping ! Вычислите все активные компьютеры!

Сканировать сеть в поиске Активных Хостов :

$ nmap -sn 192.168.1.0/24

4. Сканирование Списка Хостов из Файла

Сканирование списка хостов/сетей из Файла :

$ nmap -iL input.txt

Формат файла:

# Записи могут быть представлены в любом из форматов, с которыми работает # Nmap из командной строки (IP адреса, имена хостов, CIDR, IPv6, или октетные # диапазоны). Записи должны разделятся одним или более пробелами, табуляциями # или переходами на новую строку. $ cat input.txt server.сайт 192.168.1.0/24 192.168.2.1,2,3 192.168.3.0-200

5. Исключение IP/Хостов/Сетей из Сканирования

Исключить Цели из сканирования Nmap-ом:

$ nmap 192.168.1.0/24 --exclude 192.168.1.1 $ nmap 192.168.1.0/24 --exclude 192.168.1.1 192.168.1.5 $ nmap 192.168.1.0/24 --exclude 192.168.1.1,2,3

Исключить Список хостов, взятых из файла:

$ nmap 192.168.1.0/24 --excludefile exclude.txt

Формат файла с исключенными хостами аналогичен приведенному выше.

6. Сканирование Определенных Портов

Сканировать Один Порт :

$ nmap -p 80 192.168.1.1

Сканировать Несколько Портов :

$ nmap -p 80,443 192.168.1.1

Сканировать Диапазон Портов :

$ nmap -p 80-1000 192.168.1.1

Сканировать Все Порты :

$ nmap -p "*" 192.168.1.1

Сканировать несколько самых Распространенных Портов :

$ nmap --top-ports 5 192.168.1.1 $ nmap --top-ports 10 192.168.1.1

7. Определение Поддерживаемых IP Протоколов

Определить какие IP Протоколы (TCP, UDP, ICMP, и т.д.) поддерживает сканируемый хост:

$ nmap -sO 192.168.1.1

8. Сканирование TCP/UDP Портов

Сканировать все TCP Порты :

$ nmap -sT 192.168.1.1

Сканировать определенные TCP Порты :

$ nmap -p T:80 192.168.1.1

Сканировать все UDP Порты :

$ nmap -sU 192.168.1.1

Сканировать определенные UDP Порты :

$ nmap -p U:53 192.168.1.1

Объединение сканирования разных портов:

$ nmap -p U:53,79,113,T:21-25,80,443,8080 192.168.1.1

9. Быстрое Сканирование

Активировать Быстрый Режим сканирования:

$ nmap -F 192.168.1.1

* Сканирует меньшее кол-во портов, чем при обыкновенном сканировании.

10. Показывать Причину Состояния Порта

Показать Причину , по которой Nmap считает что порт находится в определенном состоянии:

$ nmap --reason 192.168.1.1

11. Показывать Только Открытые Порты

Показать Только Открытые Порты (либо возможно открытые):

$ nmap --open 192.168.1.1

12. Определение ОС

Одна из наиболее известных функциональных возможностей Nmap — это удаленное определение ОС на основе анализа работы стека TCP/IP.

Nmap посылает серию TCP и UDP пакетов на удаленный хост и изучает ответы.

После проведения множества тестов, Nmap сравнивает результаты со своей базой данных и, при нахождении соответствий, выводит информацию об ОС.

Включить Определение ОС :

$ nmap -O 192.168.1.1

13. Определение Версии Сервисов

Включить Определение Версии Сервисов :

$ nmap -sV 192.168.1.1

* Определяет версии программ, запущенных на удаленном сервере.

14. Обнаружение Фаервола

Узнать, защищен ли компьютер какими-либо Пакетными Фильтрами или Фаерволом :

$ nmap -sA 192.168.1.1

15. Подмена MAC Адреса

Подменить MAC Адреса :

$ nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1

Подменить MAC Адрес Случайным MAC-ом :

$ nmap --spoof-mac 0 192.168.1.1

16. Сканирование Фаервола на Уязвимости

Эти три типа сканирования используют незаметную лазейку в TCP RFC , чтобы разделять порты на открытые и закрытые.

Когда сканируется система отвечающая требованиям RFC, любой пакет, не содержащий установленного бита SYN, RST или ACK, повлечет за собой отправку RST в ответ в случае, если порт закрыт, или не повлечет никакого ответа, если порт открыт.

Т.к. ни один из этих битов не установлен, то любая комбинация трех оставшихся (FIN, PSH и URG) будет являться правильной.

TCP Null сканирование:

$ nmap -sN 192.168.1.1

* Не устанавливаются никакие биты (Флагов в TCP заголовоке 0).

TCP Fin сканирование:

$ nmap -sF 192.168.1.1

* Устанавливается только TCP FIN бит.

TCP Xmas сканирование:

$ nmap -sX 192.168.1.1

* Устанавливаются FIN, PSH и URG флаги (пакет светится как новогодняя елка).

17. Скрытое Сканирование

Дельный Совет: Сохраняйте анонимность во время сканирования портов! Используйте Nmap + Tor + ProxyChains ! Безопасное и простое тестирование на проникновение!

TCP SYN сканирование:

$ nmap -sS 192.168.0.1

* Известное как сканированием с использованием полуоткрытых соединений, так как не отрывает полных TCP соединений.

18. Отключение Обнаружения Хостов (No Ping)

Не пинговать хосты перед сканированием:

$ nmap -Pn 192.168.1.1

19. Отключение Использования DNS

Дельный Совет: Необходимо усилить безопасность в Linux? Шифруйте DNS трафик для защиты от спуфинга!

Никогда не производить обратное преобразование DNS имен для каждого обнаруженного активного IP адреса.

Скрыто от гостей

Это бесплатная, с открытым исходным кодом утилита исследования сети и проведения аудита безопасности. Она широко используется в сообществе пользователей Linux, поскольку является простой в применении, но в то же время очень мощной. Принцип работы Nmap, говоря простым языком, заключается в отправке пакетов данных на заданную цель (по IP) и в интерпретировании возвращаемых пакетов для определения, какие порты открыты/закрыты, какие службы запущены на сканируемой системе, установлены и включены ли файерволы или фильтры и, наконец, какая операционная система запущена. Эти возможности позволяют собрать много ценной информации. Давайте рассмотрим некоторые из этих возможностей. Кроме типичных для подобных статей примеров команд, будут даны рекомендации о том, как использовать собранные во время сканирования данные.

Установка Nmap
Для начала, нам нужно заполучить пакет “nmap” на нашу систему.

Установка Nmap в Kali Linux
Nmap уже установлен.

Установка Nmap в CentOS

Yum install nmap


Установка Nmap в Debian

Apt-get install nmap


Установка Nmap в Ubuntu

Sudo apt-get install nmap

Использование сканера безопасности Nmap

Теперь программу можно запускать набрав в терминале “nmap”. Список опций можно посмотреть по команде


Но я рекомендую посмотреть эти же опции по , поскольку там они на русском языке.

Чтобы показать некоторые возможности nmap, подготовлены несколько примеров. Главная цель - чтобы вы уловили суть и возможности программы. После этого вы сможете модифицировать команды под свои собственные нужды.

Обратите внимание, что программе nmap требуются привилегии суперпользователя для некоторых её функций. В Kali Linux этого не нужно, но на всех других системах запускайте команду с sudo. В примерах я буду использовать sudo, в Kali команды выглядят также, но отбрасывайте sudo.

Собираем информацию об открытых на сервере портах, запущенных службах и версиях программного обеспечения

Это простая команда может использоваться для проверки доступен ли сайт (в данном случае я использовал сайт сайт). Обращаем внимание на открытые порты.

Sudo nmap -sS или [адрес веб-сайта]


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

Sudo nmap -O --osscan-guess или [адрес веб-сайта]

Эта команда позволяет пользователю проверить службы, запущенные на цели. Обратите внимание, что появился столбик VERSION - в нём указана версия программного обеспечения.

Sudo nmap -sV или [адрес веб-сайта]

Ищем веб-сервера, роутеры, веб-камеры, SSH, FTP и прочее

О том, как задавать цели для Nmap, сказано в книге на которую в конце дана ссылка. В следующих примерах я использую строку 193.106.148-153.1-255. Она означает просканировать подсети с 193.106.148.* по 193.106.153.*, причём в каждой из этих подсетей будут просканированы адреса с *.*.*1 по *.*.*255, т.е. это 193.106.148.1-255, 193.106.149.1-255, 193.106.150.1-255 и т.д.

Поиск роутеров, веб-серверов, веб-камер

У роутеров, веб-серверов, веб-камер обычно открыты порты 80, 8080 и 1080. Просканировать эти порты и вывести только те адреса, на которых что-то открыто, можно этой командой.

Nmap -sS -sV -vv -n -Pn -T5 193.106.148-153.1-255 -p80,8080,1080 -oG - | grep "open"

В моём случае вывод получился сумбурным, но это хорошо, что данных много - есть с чем поработать.

Поиск FTP

Обычно FTP «висит» на 21 порту, поэтому используем предыдущую команду, только меняем сканируемый порт.

Nmap -sS -sV -vv -n -Pn -T5 193.106.148-153.1-255 -p21 -oG - | grep "open"

Поиск SSH

Порт по умолчанию для SSH - 22, там и ищем.

Nmap -sS -sV -vv -n -Pn -T5 193.106.148-153.1-255 -p22 -oG - | grep "open"

Есть контакт:

Помните, что на дефолтных портах оставляют либо от недостатка опыта (начинающие системные администраторы), либо от безысходности (например, хостеры – если они поменяют порт FTP со стандартного на другой, то служба технической поддержки будет завалена жалобами клиентов о том, что «FTP совсем не работает»). Все остальные системные администраторы «подвешивают» SSH и прочие сервисы на высокие порты. Если сделать так, то в логах ошибок наступает тишь и благодать, разница очень заметна по сравнению со стандартными портами, на которые вечно шлют разную фигню и пытаются брутфорсить. А вменяемые люди вообще не используют FTP, а используют сервисы с шифрованием, хотя бы тот же (вариантов FTP с шифрованием масса). Но хостеры не могут себе этого позволить по уже озвученной причине - есть опасность потерять клиентов от того, что им слишком сложно разобраться.

Т.е. если вы тестируете на проникновение конкретный компьютер/сервер, то проверяйте все порты - с первого до последнего (65535). Если диапазон тестируемой сети небольшой, то можно задать тестирование всех портов с фильтрацией по словам ftp (| grep "ftp"), ssh (| grep "ssh") и т. д. Например так:

Nmap -sS -sV -vv -n -Pn -T5 193.106.148.1-255 -p1-65535 -oG - | grep "ftp"

Нужно быть готовым к большим затратам времени.

Zenmap - Графический интерфейс (GUI) для Nmap

У команды nmap огромное количество опций. Если вы запутались в этих опциях и хотите чего-то более дружеского и привычного, то обратите своё внимание на Zenmap. Это графический интерфейс для Nmap.

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

Что делать с полученной в Nmap информацией

Собственно, а что нам дают все эти открытые порты, все эти службы, все эти компьютеры с FTP и прочим?

Если вы умеете пользоваться только Nmap, то полученная в ней информация вряд ли пригодится. Это только начало пути. Варианты использования полученной информации:

  • если нашли веб-сервер, то для начала можно просто открыть и посмотреть что там. Варианты бывают разные - бывают обычные сайты, которые видны в Интернете по доменному имени, бывают сайты в разной степени готовности начинающих системных администраторов и веб-мастеров. Бывает, можно просто пройтись по каталогам, посмотреть приготовленные файлы, попробовать стандартные пароли для phpMyAdmin и т. д.
  • FTP, SSH и многое прочее можно брутфорсить. Если удастся подобрать пароль, то можно получить доступ к частному FTP или вообще завладеть всем компьютером, если удастся подобрать учётную запись SSH. Ссылки на инструкции по брутфорсу даны в конце статьи.
  • особенно легко, практически голыми руками, можно брать веб-камеры - очень часто там стандартные пароли, которые можно нагуглить по модели камеры.
  • также интересны роутреры. Довольно часто в них стандартные (заводские) пароли. Получив доступ в роутер можно: выполнить атаку человек-по-середине, сниффинг трафика, перенаправить на подложные сайты, на сайты-вымогатели и т. д.
  • зная версии запущенных программ можно попробовать поискать эксплойты для них. Ссылки на материал по эксплойтам также дан в конце статьи.
  • если вы совсем новичок, то рекомендую программу Armitage. Она может: автоматически искать и применять эксплойты, брутфорсить различные службы. У программы графический интерфейс - вообще она довольно простая. Материал по Armitage: « ».
Где брать адреса для сканирования?

Типичными лёгкими целями являются VPS, которые настроили начинающие системные администраторы. Если вас интересует сканирование адресов в конкретном городе или по конкретному провайдеру, то можно воспользоваться

Скрыто от гостей

.

Дополнительный материал по Nmap и о том, делать с полученными результатами сканирования

Nmap - это очень популярный сканер сети с открытым исходным кодом, который может использоваться как в Windows, так и в Linux. Программа Nmap или Network Mapper была разработана Гордоном Луоном и на данный момент используется специалистами по безопасности и системными администраторами по всему миру.

Эта программа помогает системным администраторам очень быстро понять какие компьютеры подключены к сети, узнать их имена, а также посмотреть какое программное обеспечение на них установлено, какая операционная система и какие типы фильтров применяются. Функциональность программы может быть расширена за счет собственного скриптового языка, который позволяет администраторам автоматизировать много действий.

Например, с помощью скриптов можно автоматически обнаруживать новые уязвимости безопасности в вашей сети. Namp может использоваться с хорошими и плохими намерениями, будьте аккуратны, чтобы не использовать nmap против закона. В этой инструкции мы рассмотрим как пользоваться namp для сканирования портов в операционной системе Linux. Но сначала нужно попытаться понять как работает эта утилита.

В компьютерных сетях все подключенные устройства имеют свой ip адрес. Каждый компьютер поддерживает протокол ping, с помощью которого можно определить подключен ли он к сети. Мы просто отправляем ping запрос компьютеру, и если он отзывается, то считаем, что он подключен. Nmap использует немного иной подход. Компьютеры также определенным образом реагируют на те или иные сетевые пакеты, утилита просто отправляет нужные пакеты и смотрит какие хосты прислали ответ.

Но об этом вы, наверное, уже знаете. Более интересно то как Nmap узнает какие сервисы запущены на машине. Суть работы всех сетевых программ основана на портах. Чтобы получить сообщение из сети, программа должна открыть порт на вашем компьютере и ждать входящих соединений. А для отправки сообщения по сети нужно подключиться к уже другой программой (адресатом) порту. Затем программе необходимо будет открыть порт, на котором она будет ждать ответа.

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

Синтаксис Nmap

Команда запуска Nmap очень проста для этого достаточно передать ей в параметрах целевой IP адрес или сеть, а также указать опции при необходимости:

$ nmap опции адрес

Теперь давайте рассмотрим основные опции, которые понадобятся нам в этой статье.

  • -sL - просто создать список работающих хостов, но не сканировать порты nmap;
  • -sP - только проверять доступен ли хост с помощью ping;
  • -PN - считать все хосты доступными, даже если они не отвечают на ping;
  • -sS/sT/sA/sW/sM - TCP сканирование;
  • -sU - UDP сканирование nmap;
  • -sN/sF/sX - TCP NULL и FIN сканирование;
  • -sC - запускать скрипт по умолчанию;
  • -sI - ленивое Indle сканирование;
  • -p - указать диапазон портов для проверки;
  • -sV - детальное исследование портов для определения версий служб;
  • -O - определять операционную систему;
  • -T - скорость сканирования, чем больше, тем быстрее;
  • -D - маскировать сканирование с помощью фиктивных IP;
  • -S - изменить свой IP адрес на указанный;
  • -e - использовать определенный интерфейс;
  • --spoof-mac - установить свой MAC адрес;
  • -A - определение операционной системы с помощью скриптов.

Теперь, когда мы рассмотрели все основные опции, давайте поговорим о том, как выполняется сканирование портов nmap.

Как пользоваться Nmap для сканирования портов в Linux

Дальше рассмотрим примеры nmap. Сначала давайте рассмотрим как найти все подключенные к сети устройства, для этого достаточно использовать опцию -sL и указать маску нашей сети. в моем случае это 192.168.1.1/24. Маску вашей локальной сети вы можете найти, выполнив команду:

Из вывода для используемого интерфейса возьмите число после слеша, а до слэша укажите ip вашего роутера. Команда на сканирование сети nmap будет выглядеть вот так:

nmap -sL 192.168.1.1/24

Иногда это сканирование может не дать никаких результатов, потому что некоторые операционные системы имеют защиту от сканирования портов. Но это можно обойти, просто использовав для сканирования ping всех ip адресов сети, для этого есть опция -sn:

nmap -sn 192.168.1.1/24

Как видите, теперь программа обнаружила активные устройства в сети. Дальше мы можем сканировать порты nmap для нужного узла запустив утилиту без опций:

sudo nmap 192.168.1.1

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

Чтобы узнать более подробную информацию о машине и запущенных на ней сервисах вы можете использовать опцию -sV. Утилита подключится к каждому порту и определит всю доступную информацию:

sudo nmap -sV 192.168.1.1

На нашей машине запущен ftp, а поэтому мы можем попытаться рассмотреть эту службу подробнее с помощью стандартных скриптов nmap. Скрипты позволяют проверить порт более детально, найти возможные уязвимости. Для этого используйте опцию -sC и -p чтобы задать порт:

sudo nmap -sC 192.168.56.102 -p 21

Мы выполняли скрипт по умолчанию, но есть еще и другие скрипты, например, найти все скрипты для ftp вы можете командой:

sudo find /usr/share/nmap/scripts/ -name "*.nse" | grep ftp

Затем попытаемся использовать один из них, для этого достаточно указать его с помощью опции --script. Но сначала вы можете посмотреть информацию о скрипте:

sudo nmap --script-help ftp-brute.nse

Этот скрипт будет пытаться определить логин и пароль от FTP на удаленном узле. Затем выполните скрипт:

sudo nmap --script ftp-brute.nse 192.168.1.1 -p 21

В результате скрипт подобрал логин и пароль, admin/admin. Вот поэтому не нужно использовать параметры входа по умолчанию.

Также можно запустить утилиту с опцией -A, она активирует более агрессивный режим работы утилиты, с помощью которого вы получите большую часть информации одной командой:

sudo nmap -A 192.168.1.1

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

Выводы

В этой статье мы рассмотрели как выполняется сканирование портов nmap, а также несколько простых примеров использования этой утилиты. Эти команды nmap могут быть полезными многим системным администраторам, чтобы улучшить безопасность их систем. Но это далеко не все возможности утилиты. Продолжайте экспериментировать с утилитой чтобы узнать больше только не в чужих сетях!

Об авторе

Основатель и администратор сайта сайт, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.

Команды nmap: самые популярные из них.

Всем привет, и в продолжение вводной статьи о программе сканирования Nmap я хотел бы предложить вам список наиболее используемых на практике команд этой программы, которые помогут использовать утилиту на всю катушку. В прошлый раз мы разбирали лишь общие команды, теперь – чуть подробнее. Итак, как применить команды nmap по полной программе. Здесь могут встретиться и бесконечно устаревшие флаги, но, так как они порой всё-таки “прокатывают”, я приведу и их.

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

Сканируем отдельный IP адрес – базовая команда (здесь и далее я буду опускать ОБЯЗАТЕЛЬНЫЙ флаг -Pn ; иначе Nmap будет выдавать ошибку host seems down – “хост, походу, не работает”):

Nmap 192.168.1.1

Сканируем хост:

Nmap site.com

Сканируем на скорую руку:

Nmap -F 192.168.1.1

Сканируем хост и ещё немного информации в дополнение:

Nmap -v site.com

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

Nmap 192.168.1.1 192.168.1.2 192.168.1.3

аналогична ей команда (и, как видно, побыстрее в наборе):

Nmap 192.168.1.1,2,3

можно указать диапазон адресов:

Nmap 192.168.1.1-20

или всю подсеть сразу:

Nmap 192.168.1.0/24

И тут вспоминаете, что некоторые адреса для … “анализа” бесполезны или их сканирование просто небезопасно. Можно их исключить – сама сеть может содержать много вкусненького:

Nmap 192.168.1.0/24 --exlude 192.168.0.115

Порядок написания адресов после флага exlude такой же, как и в команде поиска: можно указывать несколько адресов подряд или через дефис. Более того. Вы можете сформировать некий список адресов, на которых обожглись или просто не хотите “светиться”. Запишите из в какой-нибудь file.txt и при следующем сканировании диапазона в список исключений можно добавить не адреса, а этот список, указав его емя (file.txt):

Nmap 192.168.1.0/24 --exludefile file.txt

Читаем список сетей или хостов из файла. Опция -iL позволяет это сделать. Это полезно при сканировании большого количества сетей. Можно создать текстовый файл на манер:

Cat > /tmp/список.txt

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

Site.com 192.168.1.0/24 192.168.1.1/24 10.1.2.3 localhost

Соответственно, команда будет выглядеть как:

Nmap -iL /tmp/list.txt

Следующие команды Nmap заставят узнать название и версию работающей у жертвы операционной системы:

Nmap -A 192.168.1.254 nmap -v -A 192.168.1.1 nmap -A -iL /tmp/scanlist.txt

Проверим, работает ли фаерволл на стороне жертвы:

Nmap -sA 192.168.1.254 nmap -sA server1.site.com

Если фаерволл стоит, попробуем сканировать через него:

Nmap -PN 192.168.1.1 nmap -PN server1.site.com

Опция -6 позволит сканировать IPv6. Синтаксис команды будет таким:

Nmap -6 server1.site.com

Сканируем сеть с целью определить какие серверы и устройства запущены и работают:

Nmap -sP 192.168.1.0/24

Эти команды nmap покажут только открытые порты:

Nmap --open 192.168.1.1 nmap --open server1.site.com

Следующая команда покажет пакеты. Отправленные и полученные:

Nmap --packet-trace 192.168.1.1 nmap --packet-trace server1.site.com

Отобразить интерфейс хостов (команда покажет устройства с выходом в сеть с присвоенными адресами):

Nmap --iflist

Сканируем специальные порты:

nmap -p имя_хоста

сканирует 80 порт:

Nmap -p 80 192.168.1.1

сканирует TCP порт 80

Nmap -p T:80 192.168.1.1

сканирует UDP порт 53

Nmap -p U:53 192.168.1.1

сканирует два порта

Nmap -p 80,443 192.168.1.1

сканирует порты в диапазоне:

Nmap -p 80-200 192.168.1.1

Здесь несколько опций комбинируются:

Nmap -p U:53,111,137,T:21-25,80,139,8080 192.168.1.1 nmap -p U:53,111,137,T:21-25,80,139,8080 server1.site.com nmap -v -sU -sT -p U:53,111,137,T:21-25,80,139,8080 192.168.1.254

Вот эти команды nmap сканируют наиболее часто используемые порты:

Nmap --top-ports 5 192.168.1.1 nmap --top-ports 10 192.168.1.1

Самый быстрый способ отсканировать все устройства на предмет открытых портов:

Nmap -T5 192.168.1.0/24

Следующая команда сканирует адреса на предмет версий служб плюс на открытые TCP порты:

Nmap -p 1-65535 -sV -sS -T4 192.168.1.0/24

После этой команды результаты сканирования SYN по версии ОС и маршрутизации в подробностях, за счёт менее низкого тайминга они более аккуратные:

Nmap -v -sS -A -T4 192.168.1.0/24

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

Nmap -v -p 1-65535 -sV -O -sS -T4 192.168.1.0/24 nmap -v -p 1-65535 -sV -O -sS -T5 192.168.1.0/24

Как определить удалённую операционную систему? Используем известные вам команды и опции:

Nmap -O 192.168.1.1 nmap -O --osscan-guess 192.168.1.1 nmap -v -O --osscan-guess 192.168.1.1

Сканируем хост при помощи TCP ACK (PA) и TCP Syn (PS) ping. Если фаерволл блокирует стандартные пинги, можете попробовать вот эти команды:

Nmap -PS 192.168.1.1 nmap -PS 80,21,443 192.168.1.1 nmap -PA 192.168.1.1 nmap -PA 80,21,200-512 192.168.1.1

Сканируем хост с использованием IP ping:

Nmap -PO 192.168.1.1

Сканируем хост с использованием UDP ping (это сканирование помогает обойти фаерволы, которые защищают TCP соединение):

Nmap -PU 192.168.1.1 nmap -PU 2000.2001 192.168.1.1

Следующая команда обнаруживает наиболее используемые порты для протокола TCP, используя TCP SYN Scan (команды мало чем отличаются):

Команды nmap для скрытого сканирования:

Nmap -sS 192.168.1.1 nmap -sT 192.168.1.1 nmap -sA 192.168.1.1 nmap -sW 192.168.1.1 nmap -sM 192.168.1.1

Сканируем хост на предмет запущенных UDP сервисов:

Nmap -sU 192.168.1.1

Сканируем на предмет IP протокола (этот тип протокола позволяет обнаружить, какие Ip протоколы поддерживаются машиной жертвы):

Nmap -sO 192.168.1.1

Сканируем фаервол на предмет дыр в безопасности (неплох для тестирования безопасности против типичных атак):

Команда обманет фаервол и заставит отправить ответ:

Nmap -sN 192.168.1.254

TCP Fin сканирование для проверки брандмауэра. Устанавливает TCP FIN бит:

Nmap -sF 192.168.1.254

Сканируем фаервол на предмет фрагментов пакетов (идея заключается в том, чтобы раздробить заголовки TCP на несколько пакетов, что затрудняет их анализ фильтрами и другими защитными системами; так брандмауэр жертвы не понимает, что вы делаете в данный момент):

Nmap -f 192.168.1.1 nmap -f site.com

Сканируем фаерволл на предмет спуффинга mac адреса.

  • Подделаем собственный Mac адрес:
nmap --spoof-mac MAC-адрес 192.168.1.1
  • Добавим ещё немного опций:
nmap -v -sT -PN --spoof-mac MAC-адрес 192.168.1.1
  • используем случайный MAC адрес. Цифра 0 означает, что nmap выбирает абсолютно случайный MAC адрес:
nmap -v -sT -PN --spoof-mac 0 192.168.1.1