Приветствую тебя, дорогой читатель, в четвертой части серии статей «Приручение черного дракона. Этичный хакинг с Kali Linux».
Полный список статей прилагается ниже, и будет дополняться по мере появления новых.
Приручение черного дракона. Этичный хакинг с Kali Linux:
Часть 1. Вводная часть. Подготовка рабочего стенда.
Часть 3. Footprinting. Разведка и сбор информации.
Часть 4. Сканирование и типы сканирования. Погружение в nmap.
Часть 5. Методы получения доступа к системе.
Часть 6. Пост-эксплуатация. Способы повышения привилегий.
Часть 7. Пост-эксплуатация. Закрепление в системе.
Часть 8. Методы и средства внешней разведки.
В прошлых частях мы развернули нашу виртуальную лабораторию и поговорили о фазах атак, познакомились с первой фазой разведки, опробовали в деле несколько профессиональных инструментов для сбора различной информации об исследуемом ресурсе.
Как ты вероятно заметил, большая часть инструментов применяемых нами в прошлый раз, это различные сканеры, которые ищут определенную информацию об интересующем нас объекте используя различные подходы. Условно весь процесс сканирования можно разделить на несколько типов (методов):
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 <IP адрес цели>
Как мы видим, результат весьма впечатляющий. Опять же не забываем о том, что все тесты мы проводим исключительно на специально подготовленной уязвимой машине.
В выпадающем списке обнаруженных уязвимостей мы можем перейти прямо по ссылкам рядом с номером уязвимости и ознакомиться с подробной информацией по ней на сайте https://vulners.com/ либо на крупнейшем ресурсе в сети https://www.exploit-db.com/
(сразу скажу, что все ресурсы только англоязычные, но по отдельным популярным уязвимостям можно найти немало информации и в рунете).
Вот мы и рассмотрели ряд основных возможностей сканера nmap, который вполне заслужено является золотым стандартом в своей области применения. В ходе практики мы закрепим полученные знания и опробуем различные методы сканирования, а так же скрипты, которых, как мы уже знаем, в составе nmap великое множество.
На этой ноте я прощаюсь с тобой, дорогой читатель, и до новых встреч. В следующий раз мы поговорим о методах получения доступа к системе и познакомимся с таким мощным инструментом, как Metasploit, который так же, как и nmap является обязательным инструментом в арсенале любого пентестера.