Приветствую тебя, дорогой читатель, в четвертой части серии статей «Приручение черного дракона. Этичный хакинг с Kali Linux».

Полный список статей прилагается ниже, и будет дополняться по мере появления новых.

Приручение черного дракона. Этичный хакинг с Kali Linux:

Часть 1. Вводная часть. Подготовка рабочего стенда.

Часть 2. Фазы атаки.

Часть 3. Footprinting. Разведка и сбор информации.

Часть 4. Сканирование и типы сканирования. Погружение в nmap.


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

Как ты вероятно заметил, большая часть инструментов применяемых нами в прошлый раз, это различные сканеры, которые ищут определенную информацию об интересующем нас объекте используя различные подходы. Условно весь процесс сканирования можно разделить на несколько типов (методов):

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 является обязательным инструментом в арсенале любого пентестера.

Комментарии (8)


  1. mrkaban
    25.10.2022 11:47
    +1

    Вот про скрипт поиска уязвимостей к nmap не знал, интересно...

    Судя по всему, он просто определяет версию ПО и смотрит на сайте (vulners com) какие есть уязвимости для этой версии.


    1. V1p3rL0rd Автор
      25.10.2022 12:40
      +2

      Здравствуйте! Да, совершенно верно! Все именно так и происходит. Благодарю за отзыв!)


      1. s207883
        26.10.2022 13:47

        Насколько я понял, этот сайт раскрывает подробности только от 1к евро в месяц. Есть ли менее жадные ресурсы?


        1. V1p3rL0rd Автор
          26.10.2022 14:05
          +1

          Если говорить про бесплатные полноценные сканеры уязвимостей, то все так или иначе в бесплатном варианте имеют некие ограничения (те же OpenVAS и Nessus). Опять же, для эффективного обнаружения уязвимостей ничто не мешает просканировать ресурс при помощи nmap с ключом -sV и на exploit-db.com поискать эксплоит для версии того или иного сервиса.


          1. mrkaban
            27.10.2022 06:21

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


  1. s207883
    25.10.2022 13:40

    Будут ли какие-то рекомендации по ресурсам/курсам/книгам и прочим полезным вещам? За серию статей спасибо, было интересно попробовать применить metasploit к предоставленному ftp серверу.


    1. V1p3rL0rd Автор
      25.10.2022 13:58
      +2

      Порекомендовать из литературы могу несколько книг:

      1. Дэниел Г. Грэм - Этичный хакинг. Практическое руководство по взлому

      2. Ш. Парасрам, А. Замм - Kali Linux. Тестирование на проникновение и безопасность

      3. Т. Арнольд, Д. Зейтц - Black Hat Python: программирование для хакеров и пентестеров

      Помимо вышеперечисленных учебников, на старте очень советую ресурс vulnhub.com, поскольку CTF тренажеры - именно то, что дает реальный прирост в плане скилов. Далее в серии статей мы будем взламывать несколько уязвимых машин с vulnhub и разберем на этих примерах самые популярные способы, которые постоянно применяются в практике тестирования на проникновение.


    1. V1p3rL0rd Автор
      25.10.2022 14:04

      Как раз дописываю статью по metasploit и там разбирается этот момент)