Обход брандмауэров в Nmap

NmapNmapBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь продвинутым техникам использования Nmap для обхода защит брандмауэров в реальных сценариях кибербезопасности. Вы будете практиковать методы обхода, такие как фрагментированный сканирование и подмена IP-адресов-приманок, работая с брандмауэрами, настроенными с использованием iptables.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/timing_performance("Timing and Performance") nmap/NmapGroup -.-> nmap/syn_scan("SYN Scan") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") nmap/NmapGroup -.-> nmap/firewall_evasion("Firewall Evasion Techniques") nmap/NmapGroup -.-> nmap/stealth_scanning("Stealth and Covert Scanning") subgraph Lab Skills nmap/installation -.-> lab-549937{{"Обход брандмауэров в Nmap"}} nmap/port_scanning -.-> lab-549937{{"Обход брандмауэров в Nmap"}} nmap/target_specification -.-> lab-549937{{"Обход брандмауэров в Nmap"}} nmap/timing_performance -.-> lab-549937{{"Обход брандмауэров в Nmap"}} nmap/syn_scan -.-> lab-549937{{"Обход брандмауэров в Nmap"}} nmap/service_detection -.-> lab-549937{{"Обход брандмауэров в Nmap"}} nmap/firewall_evasion -.-> lab-549937{{"Обход брандмауэров в Nmap"}} nmap/stealth_scanning -.-> lab-549937{{"Обход брандмауэров в Nmap"}} end

Установка Nmap

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

В виртуальной среде LabEx уже установлены все необходимые зависимости, что делает процесс установки простым. Следуйте этим шагам, чтобы установить Nmap:

  1. Откройте терминал в виртуальной машине LabEx (вы можете использовать терминал Xfce или щелкнуть правой кнопкой мыши по рабочему столу и выбрать "Открыть терминал"). В терминале вы будете вводить все команды для этого практического занятия (лабораторной работы).

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

    sudo apt update
  3. Установите Nmap с помощью следующей команды. Флаг -y автоматически подтверждает все запросы во время установки:

    sudo apt install -y nmap
  4. После завершения установки проверьте, что Nmap установлен правильно, проверив его версию. Это подтверждает, что установка прошла успешно:

    nmap --version

    Вы должны увидеть вывод, похожий на следующий:

    Nmap version 7.92 ( https://nmap.org )
  5. Для дополнительной проверки выполните простой скан локального хоста (своего собственного компьютера). Это поможет вам понять, как работает Nmap, прежде чем сканировать другие цели:

    nmap -sV 127.0.0.1

    Эта команда сканирует вашу локальную машину (127.0.0.1) и показывает открытые порты (флаг -sV определяет версии сервисов). Вы увидите список запущенных на вашей машине сервисов, что полезно для понимания формата вывода Nmap.

Подготовка защищенного от брандмауэра целевого объекта

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

  1. Сначала убедимся, что iptables доступен на вашей системе. iptables - это утилита пользовательского пространства, которая позволяет администраторам настраивать правила брандмауэра в Linux. Она должна быть предустановлена в виртуальной машине LabEx:

    sudo iptables --version
  2. Прежде чем создавать новые правила, хорошей практикой является очистка всех существующих правил брандмауэра. Это гарантирует, что мы начинаем с "чистого листа" и избавляемся от возможных конфликтов с предыдущими настройками:

    sudo iptables -F
    sudo iptables -X
  3. Теперь установим политики по умолчанию. Политика по умолчанию определяет, что происходит с пакетами, которые не соответствуют ни одному конкретному правилу. Мы будем блокировать (DROP) весь входящий и перенаправленный трафик, в то время как исходящие соединения будут разрешены:

    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    sudo iptables -P OUTPUT ACCEPT
  4. Даже с жесткими правилами брандмауэра нам нужно разрешить внутреннее (локальное) (localhost (lo)) взаимодействие. Многие системные сервисы зависят от внутреннего взаимодействия, поэтому это исключение необходимо:

    sudo iptables -A INPUT -i lo -j ACCEPT
  5. Создадим конкретные правила для имитации защищенного веб - сервера. Эти правила разрешат входящий трафик только на стандартных портах для SSH (22), HTTP (80) и HTTPS (443), имитируя типичную конфигурацию сервера в производственной среде:

    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT  ## SSH
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT  ## HTTP
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT ## HTTPS
  6. После настройки правил важно проверить их. Флаг -L выводит все правила, -n показывает числовой вывод (быстрее и избавляет от DNS - запросов), а -v предоставляет подробную информацию:

    sudo iptables -L -n -v

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

  7. Наконец, сохраним правила, чтобы они были постоянными. Этот шаг особенно важен в нашей среде LabEx, так как мы не можем использовать systemctl в Docker для сохранения правил при перезагрузке:

    sudo sh -c "iptables-save > /etc/iptables.rules"

Выполнение фрагментированного сканирования

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

  1. Сначала убедитесь, что правила брандмауэра из предыдущего шага по - прежнему активны. Это поможет установить базовую линию перед тестированием методов обхода защиты:

    sudo iptables -L -n -v
  2. Выполните стандартное сканирование SYN с помощью Nmap на локальном хосте, чтобы увидеть, как брандмауэр реагирует без использования методов обхода защиты. Это покажет, какие порты активно блокируются:

    nmap -sS 127.0.0.1

    Обратите внимание, какие порты показаны как отфильтрованные или закрытые - это те, которые защищает брандмауэр.

  3. Теперь выполните фрагментированное сканирование, используя опцию -f. Эта опция сообщает Nmap разделить заголовки TCP на несколько более мелких пакетов (фрагменты размером 8 байт):

    nmap -f -sS 127.0.0.1

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

  4. Для более агрессивной фрагментации используйте меньшие размеры пакетов с помощью опции --mtu. Эта опция устанавливает Максимальную единицу передачи (Maximum Transmission Unit) равной 16 байтам, создавая еще более мелкие фрагменты:

    nmap --mtu 16 -sS 127.0.0.1

    Более мелкие фрагменты могут обойти более простые реализации брандмауэра.

  5. Сочетайте фрагментацию с контролем времени для дополнительной скрытности. Опция -T2 делает сканирование более медленным и менее вероятно, что оно вызовет срабатывание систем обнаружения вторжений:

    nmap -f -T2 -sS 127.0.0.1

    Этот подход имитирует более обычные паттерны сетевого трафика.

  6. Сравните результаты различных типов сканирования, чтобы оценить эффективность фрагментации:

    nmap -sS 127.0.0.1 | grep filtered
    nmap -f -sS 127.0.0.1 | grep filtered

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

Добавление поддельных IP - адресов

На этом этапе вы узнаете, как использовать метод сканирования с поддельными адресами (decoy scanning) в Nmap, чтобы скрыть ваш реальный IP - адрес среди нескольких поддельных адресов источника. Это помогает избежать обнаружения, поскольку становится сложнее определить реальную машину, выполняющую сканирование. Когда системы безопасности видят трафик, исходящий из нескольких IP - адресов, они не могут легко определить, какой из них является адресом реального сканера.

  1. Сначала проверьте ваш текущий IP - адрес, чтобы понять, что мы будем скрывать. Это установит базовую линию, чтобы вы могли увидеть, как поддельные IP - адреса будут скрывать ваш реальный адрес:

    ip a

    Обратите внимание на ваш фактический IP - адрес (обычно начинающийся с 172 или 192). Именно этот адрес мы будем скрывать среди поддельных.

  2. Выполните базовое сканирование с использованием поддельных IP - адресов с помощью опции -D. Здесь мы указываем три поддельных IP - адреса и включаем наш реальный IP с помощью заполнителя ME:

    sudo nmap -D 192.168.1.1,192.168.1.2,192.168.1.3,ME 127.0.0.1

    Заполнитель ME представляет ваш реальный IP - адрес, который будет перемешан с поддельными адресами.

  3. Для создания более реалистичных поддельных адресов используйте случайные IP - адреса. Это часто лучше, чем использование предсказуемых шаблонов IP - адресов:

    sudo nmap -D RND:5 127.0.0.1

    Это генерирует 5 случайных поддельных IP - адресов, которые выглядят более естественно для систем мониторинга.

  4. Сочетайте использование поддельных адресов с предыдущими методами обхода защиты, такими как фрагментация (-f) и контроль времени (-T2):

    sudo nmap -D 10.0.0.1,10.0.0.2,10.0.0.3 -f -T2 127.0.0.1

    Сочетание нескольких методов обхода защиты делает обнаружение еще более сложным.

  5. Проверьте эффект использования поддельных адресов, проверив логи брандмауэра (имитация). Это покажет, как брандмауэр видит несколько исходных IP - адресов:

    sudo iptables -L -n -v | grep -E "192.168|10.0"

    Вы должны увидеть записи для всех поддельных IP - адресов, которые мы использовали в наших сканированиях.

  6. Для более продвинутого использования укажите сети для поддельных адресов. Это создаст диапазон поддельных адресов из одной и той же сети:

    sudo nmap -D 192.168.1.1-10 127.0.0.1

    Это сгенерирует 10 последовательных поддельных IP - адресов из сети 192.168.1.0.

Проверка успешности обхода защиты

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

  1. Сначала проверьте текущие логи брандмауэра, чтобы увидеть зарегистрированные попытки сканирования. Это даст вам представление о том, как выглядит нормальная активность брандмауэра перед тестированием методов обхода защиты:

    sudo iptables -L -n -v | grep -E "DROP|REJECT"

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

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

    nmap -sS 127.0.0.1 -oN basic_scan.txt
    nmap -f -D RND:3 127.0.0.1 -oN evasion_scan.txt

    Первая команда выполняет стандартное сканирование SYN, а вторая использует фрагментацию (-f) и поддельные IP - адреса (-D RND:3).

  3. Проанализируйте различия между результатами сканирования, чтобы увидеть, какие порты были отфильтрованы в каждом случае:

    diff basic_scan.txt evasion_scan.txt

    Особое внимание уделите количеству "отфильтрованных" портов в каждом отчете - меньшее количество отфильтрованных портов в сканировании с обходом защиты указывает на успешный обход.

  4. Чтобы конкретно проверить успешность обхода защиты, сбросьте счетчики брандмауэра и выполните сканирование с обходом защиты, контролируя обнаружение:

    sudo iptables -Z && sudo nmap -f -D RND:3 127.0.0.1 && sudo iptables -L -n -v

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

  5. Для комплексного тестирования сочетайте несколько методов обхода защиты, чтобы максимизировать шансы на обход безопасности:

    sudo nmap -f -D RND:5 -T2 --data-length 24 127.0.0.1 -oN final_scan.txt

    Здесь используются фрагментация, 5 поддельных IP - адресов, более медленное сканирование (-T2) и случайное заполнение данных (--data-length 24).

  6. Наконец, сгенерируйте сводный отчет, сравнивающий количество отфильтрованных портов между базовым сканированием и сканированием с обходом защиты:

    echo "Basic scan filtered ports:" && grep filtered basic_scan.txt | wc -l
    echo "Evasion scan filtered ports:" && grep filtered evasion_scan.txt | wc -l

    Значительное уменьшение количества отфильтрованных портов между двумя сканированиями свидетельствует о успешном обходе защиты брандмауэра.

Резюме

В этом практическом занятии вы изучили основные методы обхода защиты брандмауэра с использованием Nmap для оценки безопасности в сфере кибербезопасности. В рамках упражнений вы ознакомились с установкой Nmap, базовым сканированием и созданием контролируемой тестовой среды с использованием iptables для имитации защищенных сетей.

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