Введение
В этом практическом занятии (лабораторной работе) вы научитесь продвинутым техникам использования Nmap для обхода защит брандмауэров в реальных сценариях кибербезопасности. Вы будете практиковать методы обхода, такие как фрагментированный сканирование и подмена IP-адресов-приманок, работая с брандмауэрами, настроенными с использованием iptables.
Практические упражнения помогут вам пройти процесс установки Nmap, настройки правил брандмауэра и анализа результатов. Вы получите практический опыт оценки и обхода сетевых мер безопасности с помощью контролируемых сканирующих экспериментов.
Установка Nmap
На этом этапе вы установите Nmap, мощный инструмент для сетевого сканирования, используемый для аудита безопасности и исследования сетей. Nmap помогает определить хосты и сервисы в сети, отправляя пакеты и анализируя ответы. Представьте его как цифрового картографа, который обнаруживает, какие устройства подключены к сети и какие сервисы они запускают.
В виртуальной среде LabEx уже установлены все необходимые зависимости, что делает процесс установки простым. Следуйте этим шагам, чтобы установить Nmap:
Откройте терминал в виртуальной машине LabEx (вы можете использовать терминал Xfce или щелкнуть правой кнопкой мыши по рабочему столу и выбрать "Открыть терминал"). В терминале вы будете вводить все команды для этого практического занятия (лабораторной работы).
Сначала обновите список пакетов, чтобы убедиться, что вы получите последнюю версию. Это похоже на обновление магазина приложений перед загрузкой новой программы:
sudo apt updateУстановите Nmap с помощью следующей команды. Флаг
-yавтоматически подтверждает все запросы во время установки:sudo apt install -y nmapПосле завершения установки проверьте, что Nmap установлен правильно, проверив его версию. Это подтверждает, что установка прошла успешно:
nmap --versionВы должны увидеть вывод, похожий на следующий:
Nmap version 7.92 ( https://nmap.org )Для дополнительной проверки выполните простой скан локального хоста (своего собственного компьютера). Это поможет вам понять, как работает Nmap, прежде чем сканировать другие цели:
nmap -sV 127.0.0.1Эта команда сканирует вашу локальную машину (
127.0.0.1) и показывает открытые порты (флаг-sVопределяет версии сервисов). Вы увидите список запущенных на вашей машине сервисов, что полезно для понимания формата вывода Nmap.
Подготовка защищенного брандмауэром целевого объекта
На этом этапе вы настроите простой брандмауэр с использованием iptables, чтобы создать защищенную целевую среду для ваших тестов сканирования с помощью Nmap. Брандмауэры действуют как барьеры безопасности, которые контролируют сетевой трафик, и понимание того, как сканировать через них, является важной навыком для профессионалов в области сетевой безопасности. Эта настройка имитирует реальный сценарий, когда при сетевом сканировании необходимо обойти защиты брандмауэра.
Сначала убедимся, что
iptablesдоступен на вашей системе.iptables- это утилита пользовательского пространства, которая позволяет администраторам настраивать правила брандмауэра в Linux. Она должна быть предустановлена в виртуальной машине LabEx:sudo iptables --versionПрежде чем создавать новые правила, хорошей практикой является очистка всех существующих правил брандмауэра. Это гарантирует, что мы начинаем с "чистого листа" и избавляемся от возможных конфликтов с предыдущими настройками:
sudo iptables -F sudo iptables -XТеперь установим политики по умолчанию. Политика по умолчанию определяет, что происходит с пакетами, которые не соответствуют ни одному конкретному правилу. Мы будем блокировать (DROP) весь входящий и перенаправленный трафик, в то время как исходящие соединения будут разрешены:
sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPTДаже с жесткими правилами брандмауэра нам нужно разрешить внутреннее (локальное) (localhost (lo)) взаимодействие. Многие системные сервисы зависят от внутреннего взаимодействия, поэтому это исключение необходимо:
sudo iptables -A INPUT -i lo -j ACCEPTСоздадим конкретные правила для имитации защищенного веб - сервера. Эти правила разрешат входящий трафик только на стандартных портах для 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После настройки правил важно проверить их. Флаг
-Lвыводит все правила,-nпоказывает числовой вывод (быстрее и избавляет от DNS - запросов), а-vпредоставляет подробную информацию:sudo iptables -L -n -vВы должны увидеть вывод, показывающий ваши настроенные правила с политикой DROP по умолчанию для несоответствующего трафика.
Наконец, сохраним правила, чтобы они были постоянными. Этот шаг особенно важен в нашей среде LabEx, так как мы не можем использовать systemctl в Docker для сохранения правил при перезагрузке:
sudo sh -c "iptables-save > /etc/iptables.rules"
Запуск фрагментированного сканирования
На этом этапе вы узнаете, как выполнить фрагментированное сканирование с помощью Nmap, чтобы обойти базовые защиты брандмауэра. Брандмауэры обычно проверяют целые сетевые пакеты, но фрагментация разбивает пакеты на более мелкие части, что делает их более сложными для обнаружения простыми правилами брандмауэра, которые не восстанавливают фрагменты.
Сначала убедитесь, что правила брандмауэра из предыдущего шага по - прежнему активны. Это поможет установить базовую линию перед тестированием методов обхода защиты:
sudo iptables -L -n -vВыполните стандартное сканирование SYN с помощью Nmap на локальном хосте, чтобы увидеть, как брандмауэр реагирует без использования методов обхода защиты. Это покажет, какие порты активно блокируются:
nmap -sS 127.0.0.1Обратите внимание, какие порты показаны как отфильтрованные или закрытые - это те, которые защищает брандмауэр.
Теперь выполните фрагментированное сканирование, используя опцию
-f. Эта опция сообщает Nmap разделить заголовки TCP на несколько более мелких пакетов (фрагменты размером 8 байт):nmap -f -sS 127.0.0.1Некоторые брандмауэры могут не правильно восстанавливать эти фрагменты, что позволяет сканированию пройти через них.
Для более агрессивной фрагментации используйте меньшие размеры пакетов с помощью опции
--mtu. Эта опция устанавливает Максимальную единицу передачи (Maximum Transmission Unit) равной 16 байтам, создавая еще более мелкие фрагменты:nmap --mtu 16 -sS 127.0.0.1Более мелкие фрагменты могут обойти более простые реализации брандмауэра.
Сочетайте фрагментацию с контролем времени для дополнительной скрытности. Опция
-T2делает сканирование более медленным и менее вероятно, что оно вызовет срабатывание систем обнаружения вторжений:nmap -f -T2 -sS 127.0.0.1Этот подход имитирует более обычные паттерны сетевого трафика.
Сравните результаты различных типов сканирования, чтобы оценить эффективность фрагментации:
nmap -sS 127.0.0.1 | grep filtered nmap -f -sS 127.0.0.1 | grep filteredОбратите внимание на различия в количестве отфильтрованных портов - меньшее количество отфильтрованных портов указывает на успешный обход защиты брандмауэра.
Добавление поддельных IP-адресов
На этом этапе вы узнаете, как использовать метод сканирования с поддельными адресами (decoy scanning) в Nmap, чтобы скрыть ваш реальный IP - адрес среди нескольких поддельных адресов источника. Это помогает избежать обнаружения, поскольку становится сложнее определить реальную машину, выполняющую сканирование. Когда системы безопасности видят трафик, исходящий из нескольких IP - адресов, они не могут легко определить, какой из них является адресом реального сканера.
Сначала проверьте ваш текущий IP - адрес, чтобы понять, что мы будем скрывать. Это установит базовую линию, чтобы вы могли увидеть, как поддельные IP - адреса будут скрывать ваш реальный адрес:
ip aОбратите внимание на ваш фактический IP - адрес (обычно начинающийся с 172 или 192). Именно этот адрес мы будем скрывать среди поддельных.
Выполните базовое сканирование с использованием поддельных 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 - адрес, который будет перемешан с поддельными адресами.Для создания более реалистичных поддельных адресов используйте случайные IP - адреса. Это часто лучше, чем использование предсказуемых шаблонов IP - адресов:
sudo nmap -D RND:5 127.0.0.1Это генерирует 5 случайных поддельных IP - адресов, которые выглядят более естественно для систем мониторинга.
Сочетайте использование поддельных адресов с предыдущими методами обхода защиты, такими как фрагментация (
-f) и контроль времени (-T2):sudo nmap -D 10.0.0.1,10.0.0.2,10.0.0.3 -f -T2 127.0.0.1Сочетание нескольких методов обхода защиты делает обнаружение еще более сложным.
Проверьте эффект использования поддельных адресов, проверив логи брандмауэра (имитация). Это покажет, как брандмауэр видит несколько исходных IP - адресов:
sudo iptables -L -n -v | grep -E "192.168|10.0"Вы должны увидеть записи для всех поддельных IP - адресов, которые мы использовали в наших сканированиях.
Для более продвинутого использования укажите сети для поддельных адресов. Это создаст диапазон поддельных адресов из одной и той же сети:
sudo nmap -D 192.168.1.1-10 127.0.0.1Это сгенерирует 10 последовательных поддельных IP - адресов из сети 192.168.1.0.
Проверка успешности обхода защиты
На этом последнем этапе вы оцените эффективность методов обхода защиты при сканировании, проанализировав логи брандмауэра и сравнив результаты сканирования, полученные разными методами. Это поможет вам понять, какие методы успешно обошли обнаружение брандмауэром, а какие были отмечены как подозрительная активность.
Сначала проверьте текущие логи брандмауэра, чтобы увидеть зарегистрированные попытки сканирования. Это даст вам представление о том, как выглядит нормальная активность брандмауэра перед тестированием методов обхода защиты:
sudo iptables -L -n -v | grep -E "DROP|REJECT"Эта команда показывает, сколько пакетов было заблокировано правилами вашего брандмауэра, а счетчики указывают на попытки обнаружения.
Теперь создайте два отчета о сканировании для сравнения - один с использованием базового сканирования, а другой с применением методов обхода защиты. Разница между ними покажет эффективность ваших методов обхода:
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).Проанализируйте различия между результатами сканирования, чтобы увидеть, какие порты были отфильтрованы в каждом случае:
diff basic_scan.txt evasion_scan.txtОсобое внимание уделите количеству "отфильтрованных" портов в каждом отчете - меньшее количество отфильтрованных портов в сканировании с обходом защиты указывает на успешный обход.
Чтобы конкретно проверить успешность обхода защиты, сбросьте счетчики брандмауэра и выполните сканирование с обходом защиты, контролируя обнаружение:
sudo iptables -Z && sudo nmap -f -D RND:3 127.0.0.1 && sudo iptables -L -n -vЗначения счетчиков показывают, сколько пакетов было обнаружено брандмауэром во время вашей попытки обхода защиты.
Для комплексного тестирования сочетайте несколько методов обхода защиты, чтобы максимизировать шансы на обход безопасности:
sudo nmap -f -D RND:5 -T2 --data-length 24 127.0.0.1 -oN final_scan.txtЗдесь используются фрагментация, 5 поддельных IP - адресов, более медленное сканирование (
-T2) и случайное заполнение данных (--data-length 24).Наконец, сгенерируйте сводный отчет, сравнивающий количество отфильтрованных портов между базовым сканированием и сканированием с обходом защиты:
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 - адресов для скрытия источника сканирования. Эти навыки позволяют вам оценивать сетевое защитное обеспечение, повторяя реальные сценарии атак, при этом соблюдая этические стандарты тестирования.



