- Приручение черного дракона. Этичный хакинг с Kali Linux. Часть 4. Сканирование и типы сканирования. Погружение в nmap
- 20 Потрясающих Примеров Команды Nmap
- 1. Сканирование Одного Хоста или IP Адреса
- 2. Сканирование Множества IP Адресов
- 3. Поиск Активных Компьютеров в Сети
- 4. Сканирование Списка Хостов из Файла
- 5. Исключение IP/Хостов/Сетей из Сканирования
- 6. Сканирование Определенных Портов
- 7. Определение Поддерживаемых IP Протоколов
- 8. Сканирование TCP/UDP Портов
- 9. Быстрое Сканирование
- 10. Показывать Причину Состояния Порта
- 11. Показывать Только Открытые Порты
- 12. Определение ОС
- 13. Определение Версии Сервисов
- 14. Обнаружение Фаервола
- 15. Подмена MAC Адреса
- 16. Сканирование Фаервола на Уязвимости
- 17. Скрытое Сканирование
- 18. Отключение Обнаружения Хостов (No Ping)
- 19. Отключение Использования DNS
- 20. Сохранение Результатов Сканирования Nmap в Файл
Приручение черного дракона. Этичный хакинг с Kali Linux. Часть 4. Сканирование и типы сканирования. Погружение в nmap
Приветствую тебя, дорогой читатель, в четвертой части серии статей «Приручение черного дракона. Этичный хакинг с Kali Linux».
Полный список статей прилагается ниже, и будет дополняться по мере появления новых.
Приручение черного дракона. Этичный хакинг с Kali Linux:
В прошлых частях мы развернули нашу виртуальную лабораторию и поговорили о фазах атак, познакомились с первой фазой разведки, опробовали в деле несколько профессиональных инструментов для сбора различной информации об исследуемом ресурсе.
Как ты вероятно заметил, большая часть инструментов применяемых нами в прошлый раз, это различные сканеры, которые ищут определенную информацию об интересующем нас объекте используя различные подходы. Условно весь процесс сканирования можно разделить на несколько типов (методов):
1) Сканирование сети в целях построения ее карты и понимания того, какие устройства кроме нашего в нем присутствуют (например, как мы это делали утилитой arp-scan)
2) Сканирование портов в целях обнаружения активных служб используемых на целевом устройстве (тут подойдет простое сканирование утилитой nmap, а если использовать дополнительные ключи, то можно получить гораздо больше информации о цели)
3) Сканирование уязвимостей которые можно будет успешно использовать для следующей фазы — получения доступа к системе (тут можно использовать как nmap с определенным набором скриптов, так и специальные сканеры уязвимостей вроде OpenVAS и Nessus либо отдельные сканеры для определенных сервисов по типу nikto).
В принципе, для более эффективного сканирования, я бы советовал использовать все возможные варианты, но сегодня мы познакомимся поближе со сканером nmap и рассмотрим его основные возможности, которых на начальном этапе нам будет более чем достаточно.
Для начала выполняем уже привычные нам действия: запускаем нашу машину с Kali Linux, открываем терминал и переходим в режим суперпользователя с root правами. параллельно запускаем уязвимую машину Metasploitable2 на которой и будем отрабатывать все типы сканирования.
Вводим команду nmap -h для того, чтобы отобразить всю вспомогательную информацию о нашем инструменте. Выпадающий список весьма внушителен и далеко не сразу понятно, что тут вообще происходит.
Разберемся во всем по порядку. Согласно официальной документации, которую можно найти как в вольном переводе на различных форумах, так и в оригинале на официальном сайте:
https://nmap.org/book/ Все команды (а вернее сказать параметры или ключи, имеющие в свою очередь определенные атрибуты) в этом списке разделены на группы. Рассмотрим самые значимые из них:
TARGET SPECIFICATION — содержит параметры определяющие тип (специфику) цели (например, если мы хотим просканировать разом целый список из множества целей вместо одной).
HOST DISCOVERY — содержит параметры обнаружение хоста (например, если нам нужно просканировать только командой ping, чтобы понять за какими адресами хосты активны, или просканировать все хосты в сети как активные не прибегая к их обнаружению).
SCAN TECHNIQUES — содержит параметры определяющие методы (техники) сканирования (например, молниеносное сканирование портов методом TCP SYN или сканирование по протоколу UDP таких сервисов как DNS, SNMP либо DHCP).
PORT SPECIFICATION AND SCAN ORDER — содержит параметры определяющие тип порта и порядок сканирования (например, если нам нужно сканировать определенный диапазон портов).
SERVICE/VERSION DETECTION — обнаружение сервиса/версии (например, в случае когда нам надо определить версию и семейство ОС установленной на целевом хосте).
SCRIPT SCAN — сканирование при помощи различных скриптов. Пожалуй, самый интересный раздел, поскольку скриптов у nmap великое множество под совершенно различные задачи, от брутфорса паролей по словарю для Telnet и SSH, до сканера CVE уязвимостей.
FIREWALL/IDS EVASION AND SPOOFING — обход сетевых средств защиты таких как межсетевые экраны и системы обнаружения вторжений. Думаю, что тут и так все понятно, для чего оно нам нужно:)
Что же, с теорией покончено, если есть желание узнать о каждом параметре подробнее, то ссылка на официальную документацию была предложена выше. Мы же рассмотрим на практике детально те параметры, с которыми будем сталкиваться во время практики чаще всего.
В том случае если мы хотим узнать как можно больше о цели (узнать какие сетевые службы каких версий на ней используются, определить тип операционной системы, ее версию и применить скрипты сканирования уязвимостей), нам идеально подойдет параметр -A.
Сравним результаты сканирования без параметра -A и с ним:
Обычное сканирование без каких-либо атрибутов:
Сканирование с параметром -A:
Первое, что кидается в глаза, так это… да, именно то, что время сканирования при использовании параметра -А намного дольше, чем в обычном режиме.) Однако, если при сканировании без каких либо дополнительных параметров nmap нам показывает лишь порты обнаруженных служб и их состояние, то во втором случае сканирования nmap идентифицирует архитектуру и версию ОС, сервис и версию каждого открытого порта и бонусом работает в режиме сканера уязвимостей. А как мы знаем, чем больше у нас информации о цели, тем выше шанс на успех в поиске ее уязвимых мест.
И так, с определением типа и версии ОС, а так же служб все понятно. Но вот касаемо применения скриптов остаются вопросы. Для того, чтобы вывести весь список имеющийся в арсенале nmap скриптов перейдем в директорию usr/share/nmap/scripts и выведем ее содержимое командой ls
Перед нами выпадает огромнейший список скриптов, каждый из которых выполняет свою определенную функцию. Тут есть, как скрипты для поиска уязвимостей в CMS системах, базах данных SQL и отдельных сетевых службах, так и скрипты для перебора паролей методом брутфорса и много чего еще, делающего из nmap поистине мощнейший инструмент для пентестера. Разбирать все мы разумеется не будем, а остановимся только на одном в качестве примера. Это скрипт поиска по базе данных общеизвестных уязвимостей vulners.nse
Давайте запустим nmap с ключом -A и атрибутом —script прописав после атрибута полное имя файла скрипта. Важно учитывать, что запускаться скрипты должны из директории /usr/share/nmap/scripts. Для этого необходимо сперва перейти в директорию, а затем запустить команду nmap -A —script vulners.nse
Как мы видим, результат весьма впечатляющий. Опять же не забываем о том, что все тесты мы проводим исключительно на специально подготовленной уязвимой машине.
В выпадающем списке обнаруженных уязвимостей мы можем перейти прямо по ссылкам рядом с номером уязвимости и ознакомиться с подробной информацией по ней на сайте https://vulners.com/ либо на крупнейшем ресурсе в сети https://www.exploit-db.com/
(сразу скажу, что все ресурсы только англоязычные, но по отдельным популярным уязвимостям можно найти немало информации и в рунете).
Вот мы и рассмотрели ряд основных возможностей сканера nmap, который вполне заслужено является золотым стандартом в своей области применения. В ходе практики мы закрепим полученные знания и опробуем различные методы сканирования, а так же скрипты, которых, как мы уже знаем, в составе nmap великое множество.
На этой ноте я прощаюсь с тобой, дорогой читатель, и до новых встреч. В следующий раз мы поговорим о методах получения доступа к системе и познакомимся с таким мощным инструментом, как Metasploit, который так же, как и nmap является обязательным инструментом в арсенале любого пентестера.
20 Потрясающих Примеров Команды Nmap
Ниже вы найдете 20 базовых примеров использования команды Nmap.
Вы узнаете, как использовать Nmap из командной строки в Linux для поиска активных хостов в сети и сканирования открытых портов.
Вы увидите, как удаленно определить операционную систему с помощью отпечатков стека TCP/IP и как узнать версию программного обеспечения запущенного на удаленном сервере.
Я так-же покажу как с помощью Nmap осуществить скрытое сканирование, как определить фаервол и как подменить MAC адрес.
1. Сканирование Одного Хоста или IP Адреса
Сканировать Отдельный IP Адрес:
Сканировать сервер по Имени Хоста:
Увеличить Уровень Детализации результатов сканирования:
$ nmap -v server.shellhacks.com
$ nmap -vv server.shellhacks.com
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):
3. Поиск Активных Компьютеров в Сети
Сканировать сеть в поиске Активных Хостов:
4. Сканирование Списка Хостов из Файла
Сканирование списка хостов/сетей из Файла:
# Записи могут быть представлены в любом из форматов, с которыми работает
# Nmap из командной строки (IP адреса, имена хостов, CIDR, IPv6, или октетные
# диапазоны). Записи должны разделятся одним или более пробелами, табуляциями
# или переходами на новую строку.
$ cat input.txt
server.shellhacks.com
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 --top-ports 5 192.168.1.1
$ nmap --top-ports 10 192.168.1.1
7. Определение Поддерживаемых IP Протоколов
Определить какие IP Протоколы (TCP, UDP, ICMP, и т.д.) поддерживает сканируемый хост:
8. Сканирование TCP/UDP Портов
Сканировать все TCP Порты:
Сканировать определенные TCP Порты:
Сканировать все UDP Порты:
Сканировать определенные UDP Порты:
Объединение сканирования разных портов:
$ nmap -p U:53,79,113,T:21-25,80,443,8080 192.168.1.1
9. Быстрое Сканирование
Активировать Быстрый Режим сканирования:
* Сканирует меньшее кол-во портов, чем при обыкновенном сканировании.
10. Показывать Причину Состояния Порта
Показать Причину, по которой Nmap считает что порт находится в определенном состоянии:
11. Показывать Только Открытые Порты
Показать Только Открытые Порты (либо возможно открытые):
12. Определение ОС
Одна из наиболее известных функциональных возможностей Nmap — это удаленное определение ОС на основе анализа работы стека TCP/IP. Nmap посылает серию TCP и UDP пакетов на удаленный хост и изучает ответы.
После проведения множества тестов, Nmap сравнивает результаты со своей базой данных и, при нахождении соответствий, выводит информацию об ОС.
Включить Определение ОС:
13. Определение Версии Сервисов
Включить Определение Версии Сервисов:
* Определяет версии программ, запущенных на удаленном сервере.
14. Обнаружение Фаервола
Узнать, защищен ли компьютер какими-либо Пакетными Фильтрами или Фаерволом:
15. Подмена MAC Адреса
Подменить MAC Адреса:
$ nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1
Подменить MAC Адрес Случайным MAC-ом:
16. Сканирование Фаервола на Уязвимости
Эти три типа сканирования используют незаметную лазейку в TCP RFC, чтобы разделять порты на открытые и закрытые.
Когда сканируется система отвечающая требованиям RFC, любой пакет, не содержащий установленного бита SYN, RST или ACK, повлечет за собой отправку RST в ответ в случае, если порт закрыт, или не повлечет никакого ответа, если порт открыт.
Т.к. ни один из этих битов не установлен, то любая комбинация трех оставшихся (FIN, PSH и URG) будет являться правильной.
TCP Null сканирование:
* Не устанавливаются никакие биты (Флагов в TCP заголовоке 0).
TCP Fin сканирование:
* Устанавливается только TCP FIN бит.
TCP Xmas сканирование:
* Устанавливаются FIN, PSH и URG флаги (пакет светится как новогодняя елка).
17. Скрытое Сканирование
TCP SYN сканирование:
* Известное как сканированием с использованием полуоткрытых соединений, так как не отрывает полных TCP соединений.
18. Отключение Обнаружения Хостов (No Ping)
Не пинговать хосты перед сканированием:
19. Отключение Использования DNS
Никогда не производить обратное преобразование DNS имен для каждого обнаруженного активного IP адреса:
20. Сохранение Результатов Сканирования Nmap в Файл
Сохранить результат сканирования Nmap в Текстовый Файл:
$ nmap 192.168.1.1 > output.txt
$ nmap -oN output.txt 192.168.1.1
Сохранить результат сканирования Nmap в XML Файл:
$ nmap -oX output.xml 192.168.1.1