Привет всем, сегодня продолжаем разбирать по полочкам сканер Nmap, и попробуем выяснить, почему так часто сканирование заканчивается неудачей, и что обязательно нужно знать тому, кто впервые набирает команду nmap в терминале Кали. И, наконец, что такое тихое сканирование, и почему оно так важно.
Так или иначе вопрос удачного сканирования лежит в плоскости обхода систем защиты от того же сканирования, и их появилось немало. Времена, когда простым пингованием и выбором подходящего скрипта можно было вытрясти из хоста всю информацию, давно канули в лету. Так что пентестеру приходится изрядно изощряться для того, чтобы получить хоть какой-то результат.
Работа в глобальной сети тем и отличается от сети локальной, что в последней можно скорректировать линию защиты подопытной ОСи для достижения максимальных результатов сканирования. Однако зачем себя же и обманывать?
Однако основная проблема начинающих тестеров в том, что они просто забывают о том, что программы, подобные Nmap – это не инструмент вторжения в чужое пространство. Это именно инструмент тестирования на безопасность. А потому большинство опций, здесь представленных, не пригодны для IT-ниндзя: они рассчитаны на производительность в условиях бесконечных прав на проверку безопасности. А глобальная сеть – это устройства, которые нужно “преодолеть” перед тем, как вы настигнете конечный компьютер-жертву. Что и где настроено на стороне пассивной защиты – основная цель пентестера. Однако практически ни один из его шагов незамеченным не останется – ведь многие техники сканирования предназначена именно для достижения оптимального результата с чёткими ответами. И в случае несанкционированного проникновения в сеть жертвы выход видится один – максимально тихое сканирование.
Далее. Все действия по пингованию и сканированию производятся от имени привилегированного пользователя. У Nmap есть отличительная особенность: она следит за регистром команд и флагов, а одинаковые команды с одними флагами обрабатываются у разных пользователей по-разному. Хотите чистоту полевых испытаний – работайте из-под root.
По умолчанию, как вы знаете, Nmap запускает сканирование по типу TCP SYN (это флаг -sS в команде nmap). Оно (ТиСиПи СИН сканирование) никогда не откроет сессию ни одного из приложений и, значит, не сильно с ними конфликтует, но теоретически способно обнаружить открытые порты (равно как фильтруемые и закрытые). Это относительно тихое сканирование, но пассивная защита (далее просто защита) может его зафиксировать по необычному – относительно остального потока интернет-трафика – числу попыток соединений (подключился-отключился) к различным портам системы. Отсюда вывод первый:
Казалось бы, наиболее подходящим в случае разведки стали бы следующие виды скана по типу FIN (-sF) и Xmas-tree (-sX). Сюда же можно добавить и Null-сканирование (-sN). Отличительная особенность их (ФИН, ИксМАС-три и Нулл) сканирования – в сторону жертвы уходит единичный блок (фрейм) TCP протокола, один же блок и возвращается. Никаких рукопожатий или дополнительных фреймов: всё ограничивается этой парой. А значит:
НО. Вывод второй:
Остаётся ACK (-sA) АК-скан – идеальный до недавнего времени вариант сканирования. Умеет перепрыгивать через фаероволлы, и, также как и предыдущие, способен экономить сетевой трафик, не выказывая подлинных намерений атакующего компьютера. Отсюда и некоторые ограничения в результатах:
В Nmap существует целый ряд техник, применять которые не рекомендуется, если вы собираетесь остаться неузнанным системами безопасности и не бросаться в глаза в логах. Это не означает, что их их нужно похерить: просто у них есть ряд серьёзных ограничений.
С типами сканирования более-менее разобрались. Обратим внимание на утилиту отправителя пакетов PING. Не лишним стало бы напомнить, что по умолчанию Nmap пытается пинговать все устройства, на которые утилита наткнётся. Так что, вероятно, есть смысл В КАЖДОМ ИЗ ТИПОВ СКАНИРОВАНИЯ использовать обнулённый пинг, добавив в команду nmap флаг -P0. Если уж нам понадобилось пропинговать цель перед сканированием, помните, что:
Когда мы вводим в команду nmap нужный нам IP адрес, скрипт обязательно попытается преобразовать IP адрес в имя DNS. Для случаев корректной отправки почтовых сообщений с собственного сервера это просто необходимо, а в нашем случае зачем? Согласен, способ попахивает паранойей, и вы ощутите потерю в скорости работы. Если же вы определяете цель по доменному имени вместо IP, способность воспроизвести разрешение имени может дать сбой. А потому возьмите на заметку:
Следующую статью я посвящу очередной порции полезных настроек короля сканеров Nmap: мы рассмотрим Тайминги сканирования, которые придадут многим, казалось бы, простеньким командам остроту и конкретность в результатах.
Успехов.