Как протестировать конфигурацию брандмауэра с помощью Nmap и Tcpdump
Введение
Настройка брандмауэра для вашей инфраструктуры — отличный способ обеспечить безопасность ваших служб. После того, как вы разработали политику, которой вы довольны, следующим шагом будет проверка правил брандмауэра. Важно получить хорошее представление о том, делают ли ваши правила брандмауэра то, что вы думаете, и получить представление о том, как ваша инфраструктура выглядит для внешнего мира.
В этом руководстве мы рассмотрим некоторые инструменты и методы, которые вы можете использовать для проверки правил брандмауэра. Это некоторые из тех же инструментов, которые могут использовать злоумышленники, поэтому вы сможете увидеть, какую информацию они могут найти, отправив запросы к вашим серверам.
Предпосылки
В этом руководстве мы предполагаем, что у вас есть брандмауэр, настроенный по крайней мере на одном сервере. Вы можете приступить к созданию политики брандмауэра, следуя одному или нескольким из этих руководств:
- Iptables
- Iptables Essentials: общие правила и команды брандмауэра
- Как настроить брандмауэр с помощью UFW в Ubuntu 22.04
- UFW Essentials: общие правила и команды брандмауэра
- Как настроить брандмауэр с помощью FirewallD в Rocky Linux 9
Вы также можете настроить облачные брандмауэры DigitalOcean, которые работают как дополнительный внешний уровень для ваших серверов в инфраструктуре DigitalOcean. Таким образом, вам не нужно настраивать брандмауэр на самих серверах.
В этом руководстве мы будем вызывать сервер, содержащий политики брандмауэра, которые вы хотите протестировать. В дополнение к вашей цели вам также потребуется доступ к серверу для тестирования, расположенному за пределами сети, которую защищает ваш брандмауэр. В этом руководстве вы будете использовать сервер Ubuntu 22.04 в качестве машины для аудита.
Если у вас есть сервер для тестирования и цели, которые вы хотите оценить, вы можете продолжить работу с этим руководством.
Вы должны выполнять действия, описанные в этом руководстве, только на инфраструктуре, которой вы управляете, с целью аудита безопасности. Законы, касающиеся сканирования портов, во многих юрисдикциях неопределенны. Известно, что интернет-провайдеры и другие провайдеры блокируют пользователей, у которых обнаружено сканирование портов.
Инструменты, которые мы будем использовать для тестирования политик брандмауэра
Существует довольно много различных инструментов, которые можно использовать для проверки наших политик брандмауэра. Некоторые из них имеют дублирующую функциональность. Мы не будем рассматривать все возможные инструменты. Вместо этого мы рассмотрим некоторые общие категории инструментов аудита и рассмотрим инструменты, которые будем использовать в этом руководстве.
Анализаторы пакетов
Анализаторы пакетов можно использовать для детального просмотра всего сетевого трафика, проходящего через интерфейс. Большинство анализаторов пакетов могут работать в режиме реального времени, отображая пакеты по мере их отправки или получения, или записывать информацию о пакете в файл и обрабатывать ее позднее. Анализ пакетов дает вам возможность увидеть на детальном уровне, какие типы ответов ваши целевые машины отправляют обратно на хосты в открытой сети.
Для целей этого руководства мы будем использовать инструмент
tcpdump
. Это хороший вариант, потому что он мощный, гибкий и вездесущий в системах Linux. Вы будете использовать его для захвата необработанных пакетов, когда мы запускаем наши тесты, на случай, если нам понадобится стенограмма для последующего анализа. Некоторые другие популярные опции — это Wireshark (илиtshark
, его двоюродный брат по командной строке) иtcpflow
, которые могут собирать воедино целые диалоги TCP в организованном порядке.Сканеры портов
Чтобы сгенерировать трафик и ответы для вашего анализатора пакетов, вы будете использовать сканер портов. Сканеры портов можно использовать для создания и отправки различных типов пакетов на удаленные хосты, чтобы определить тип трафика, который принимает сервер. Злоумышленники часто используют это в качестве инструмента обнаружения, чтобы попытаться найти уязвимые сервисы для использования (в первую очередь, это одна из причин использования брандмауэра), поэтому вы будете использовать это, чтобы попытаться увидеть, что может обнаружить злоумышленник.
В этом руководстве вы будете использовать инструмент сопоставления сети и сканирования портов
nmap
. Вы можете использоватьnmap
для отправки пакетов разных типов, чтобы попытаться выяснить, какие службы находятся на вашей целевой машине и какие правила брандмауэра ее защищают.Настройка машины аудита
Прежде чем начать, вы должны убедиться, что у нас установлены необходимые инструменты. Вы можете получить
tcpdump
иnmap
из репозиториев Ubuntu. Запуститеapt update
, чтобы обновить локальные списки пакетов, а затем установите их с помощьюapt install
:- sudo apt update
- sudo apt install tcpdump nmap
Затем создайте каталог, в котором вы можете хранить результаты сканирования:
- mkdir ~/scan_results
Чтобы убедиться, что вы получаете чистые результаты, выйдите из любых сеансов, которые вы могли открыть между вашей системой аудита и целевой системой. Сюда входят сеансы SSH, любые соединения HTTP(S), которые вы могли установить в веб-браузере, и т. д.
Сканируйте свою цель на наличие открытых TCP-портов
Теперь, когда у нас есть готовый сервер и файлы, вы начнете со сканирования целевого хоста на наличие открытых TCP-портов.
На самом деле есть несколько сканирований TCP, которые умеет выполнять
nmap
. Обычно лучше всего начинать с сканирования SYN, также известного как «полуоткрытое сканирование», потому что оно фактически никогда не согласовывает полное TCP-соединение. Это часто используется злоумышленниками, поскольку оно не регистрируется при обнаружении некоторых вторжений. системы, потому что он никогда не завершает полное рукопожатие.Настройка захвата пакетов
Перед сканированием вы настроите
tcpdump
для захвата трафика, сгенерированного тестом. Это поможет вам более подробно проанализировать отправленные и полученные пакеты позже, если это необходимо. Создайте каталог в~/scan_results
, чтобы вы могли хранить файлы, связанные с вашим SYN-сканированием, вместе:- mkdir ~/scan_results/syn_scan
Вы можете запустить захват
tcpdump
и записать результаты в файл в вашем каталоге~/scan_results/syn_scan
с помощью следующей команды:- sudo tcpdump host target_ip_addr -w ~/scan_results/syn_scan/packets
По умолчанию
tcpdump
будет запущен на переднем плане. Чтобы запустить сканированиеnmap
в том же окне, вам необходимо приостановить процессtcpdump
, а затем перезапустить его в фоновом режиме.Мы можем приостановить запущенный процесс, нажав
CTRL-Z
:Output^Z [1]+ Stopped sudo tcpdump host target_ip_addr -w ~/scan_results/syn_scan/packetsТеперь вы можете перезапустить задание в фоновом режиме, набрав
bg
:- bg
Вы должны получить аналогичную строку вывода, на этот раз без метки «Остановлено» и с амперсандом в конце, чтобы указать, что процесс будет выполняться в фоновом режиме (т. е. больше не блокировать ваш терминал):
Output[1]+ sudo tcpdump host target_ip_addr -w ~/scan_results/syn_scan/packets &Команда теперь работает в фоновом режиме, отслеживая любые пакеты, идущие между вашей аудиторской и целевой машинами. Теперь мы можем запустить сканирование SYN.
Запустите сканирование SYN
Когда
tcpdump
записывает ваш трафик на целевую машину, вы готовы запуститьnmap
. Вы можете запуститьnmap
со следующими флагами:-sS
: запускает сканирование SYN. Технически это сканирование по умолчанию, котороеnmap
будет выполнять, если тип сканирования не указан, но мы включим его здесь для ясности.-Pn
: указываетnmap
пропустить шаг обнаружения хоста, что приведет к досрочному прекращению теста, если хост не отвечает на пинг. Поскольку вы знаете, что цель находится в сети, вы можете пропустить это действие.-p-
: по умолчанию сканирование SYN будет проверять только 1000 наиболее часто используемых портов. Это говоритnmap
проверить каждый доступный порт.-T4
: задает временной профиль дляnmap
, указывающий ускорить тест с риском получения менее точных результатов. 0 — самый медленный, 5 — самый быстрый. Поскольку вы сканируете каждый порт, вы можете использовать его в качестве базового и повторно проверить все порты позже, которые могли быть указаны неправильно.-vv
: повышает уровень детализации вывода.--reason
: указываетnmap
указать причину, по которой состояние порта было сообщено определенным образом.-oN
: результаты записываются в файл, который можно использовать для последующего анализа.
Примечание. Чтобы проверить IPv6, вам нужно будет добавить флаг
-6
в свои команды…Вместе команда будет выглядеть примерно так:
- sudo nmap -sS -Pn -p- -T4 -vv --reason -oN ~/scan_results/syn_scan/nmap.results target_ip_addr
Даже если для временного шаблона установлено значение 4, сканирование, скорее всего, займет довольно много времени, поскольку выполняется через 65 535 портов. Результаты начнут распечатываться следующим образом:
OutputStarting Nmap 6.49BETA4 ( https://nmap.org ) at 2022-12-19 16:54 EDT Initiating Parallel DNS resolution of 1 host. at 16:54 Completed Parallel DNS resolution of 1 host. at 16:54, 0.12s elapsed Initiating SYN Stealth Scan at 16:54 Scanning 198.51.100.15 [65535 ports] Discovered open port 22/tcp on 198.51.100.15 Discovered open port 80/tcp on 198.51.100.15 SYN Stealth Scan Timing: About 6.16% done; ETC: 17:02 (0:07:52 remaining) SYN Stealth Scan Timing: About 8.60% done; ETC: 17:06 (0:10:48 remaining) . . .Остановить захват пакетов tcpdump
После завершения сканирования вы можете перевести наш процесс
tcpdump
обратно на передний план и остановить его.Выведите его из фона, запустив
fg
для «переднего плана»:- fg
Остановите запущенный процесс, нажав
Ctrl+C
.Анализ результатов
Теперь у вас должно быть два файла в каталоге
~/scan_results/syn_scan
. Один называетсяpackets
, сгенерированный запускомtcpdump
, и один, сгенерированныйnmap
, называетсяnmap.results
.Давайте сначала посмотрим на файл
nmap.results
:- less ~/scan_results/syn_scan/nmap.results
# Nmap 6.49BETA4 scan initiated Mon Dec 19 17:05:13 2022 as: nmap -sS -Pn -p- -T4 -vv --reason -oN /home/user/scan_results/syn_scan/nmap.results 198.51.100.15 Increasing send delay for 198.51.100.15 from 0 to 5 due to 9226 out of 23064 dropped probes since last increase. Increasing send delay for 198.51.100.15 from 5 to 10 due to 14 out of 34 dropped probes since last increase. Nmap scan report for 198.51.100.15 Host is up, received user-set (0.00097s latency). Scanned at 2022-12-19 17:05:13 EDT for 2337s Not shown: 65533 closed ports Reason: 65533 resets PORT STATE SERVICE REASON 22/tcp open ssh syn-ack ttl 63 80/tcp open http syn-ack ttl 63 Read data files from: /usr/local/bin/../share/nmap # Nmap done at Mon Dec 19 17:44:10 2022 -- 1 IP address (1 host up) scanned in 2336.85 seconds
Выделенная область выше содержит основные результаты сканирования. Вы можете сделать вывод, что порты 22 и 80 открыты на сканируемом узле, чтобы разрешить трафик SSH и HTTP. Вы также можете заметить, что 65 533 порта были закрыты. Другим возможным результатом может быть \отфильтровано. Отфильтровано означает, что эти порты были идентифицированы как остановленные чем-то на сетевом пути. Это может быть брандмауэр на цели, но это также могут быть правила фильтрации на любом из промежуточных хостов между аудит и целевые машины.
Чтобы увидеть фактический пакетный трафик, который был отправлен и получен от цели, вы можете прочитать файл
packets
обратно вtcpdump
, например:- sudo tcpdump -nn -r ~/scan_results/syn_scan/packets | less
Этот файл содержит весь разговор, который произошел между двумя хостами. Вы можете фильтровать несколькими способами.
Например, чтобы просмотреть только трафик, отправленный на цель, вы можете ввести:
- sudo tcpdump -nn -r ~/scan_results/syn_scan/packets 'dst target_ip_addr' | less
Аналогичным образом, чтобы просмотреть только ответный трафик, вы можете изменить
dst
наsrc
:- sudo tcpdump -nn -r ~/scan_results/syn_scan/packets 'src target_ip_addr' | less
Открытые порты TCP будут отвечать на эти запросы пакетом SYN. Мы можем напрямую искать ответы для этого типа с помощью такого фильтра:
- sudo tcpdump -nn -r ~/scan_results/syn_scan/packets 'src target_ip_addr and tcp[tcpflags] & tcp-syn != 0' | less
Это покажет вам только успешные ответы SYN и должно совпадать с портами, которые вы видели при запуске
nmap
:Outputreading from file packets, link-type EN10MB (Ethernet) 17:05:13.557597 IP 198.51.100.15.22 > 198.51.100.2.63872: Flags [S.], seq 2144564104, ack 4206039348, win 29200, options [mss 1460], length 0 17:05:13.558085 IP 198.51.100.15.80 > 198.51.100.2.63872: Flags [S.], seq 3550723926, ack 4206039348, win 29200, options [mss 1460], length 0Вы можете провести дополнительный анализ данных по своему усмотрению. Все это было захвачено для асинхронной обработки и анализа.
Сканируйте свою цель на наличие открытых портов UDP
Теперь, когда у вас есть хорошее представление о том, как запускать эти тесты, вы можете выполнить аналогичный процесс для сканирования открытых портов UDP.
Настройка захвата пакетов
Еще раз создайте каталог для хранения результатов:
- mkdir ~/scan_results/udp_scan
Снова запустите захват
tcpdump
. На этот раз запишите файл в новый каталог~/scan_results/udp_scan
:- sudo tcpdump host target_ip_addr -w ~/scan_results/udp_scan/packets
Приостановите процесс и переведите его в фоновый режим, нажав
Ctrl+Z
, а затем запустивbg
:- bg
Запустите UDP-сканирование
Теперь вы готовы запустить сканирование UDP. Из-за особенностей протокола UDP это сканирование обычно занимает значительно больше времени, чем сканирование SYN. На самом деле, если вы сканируете каждый порт в системе, это может занять целый день. UDP — это протокол без установления соединения, поэтому отсутствие ответа может означать, что целевой порт заблокирован, что он был принят или что пакет был потерян. Чтобы попытаться различить их,
nmap
должен повторно передать дополнительные пакеты, чтобы попытаться получить ответ.Большинство флагов будут такими же, как вы использовали для сканирования SYN. Фактически, единственный новый флаг:
-sU
: указываетnmap
выполнить сканирование UDP.
Ускорение UDP-теста
Если вас беспокоит, сколько времени займет этот тест, вы можете сначала протестировать только подмножество ваших UDP-портов. Вы можете протестировать только 1000 наиболее распространенных портов, опустив флаг
-p-
. Это может значительно сократить время сканирования. Однако, если вы хотите получить полную картину, вам придется вернуться позже и отсканировать весь диапазон портов.Поскольку вы сканируете собственную инфраструктуру, возможно, лучший способ ускорить сканирование UDP — временно отключить ограничение скорости ICMP в целевой системе. Как правило, хосты Linux ограничивают количество ответов ICMP до 1 в секунду (обычно это хорошо, но не для нашего аудита), что означает, что полное сканирование UDP займет более 18 часов. Вы можете проверить этот параметр на целевой машине, набрав:
- sudo sysctl net.ipv4.icmp_ratelimit
Outputnet.ipv4.icmp_ratelimit = 1000«1000» — это количество миллисекунд между ответами. Вы можете временно отключить это ограничение скорости в целевой системе, набрав:
- sudo sysctl -w net.ipv4.icmp_ratelimit=0
Очень важно вернуть это значение после теста.
Запуск теста
Обязательно запишите результаты в каталог
~/scan_results/udp_scan
. Все вместе команда должна выглядеть так:- sudo nmap -sU -Pn -p- -T4 -vv --reason -oN ~/scan_results/udp_scan/nmap.results target_ip_addr
После завершения сканирования вы должны вернуть ограничение скорости ICMP (если вы его изменили) на целевой машине:
- sudo sysctl -w net.ipv4.icmp_ratelimit=1000
Остановить захват пакетов tcpdump
Верните процесс
tcpdump
на передний план на компьютере для аудита, запустивfg
:- fg
Затем остановите захват пакета с помощью
Ctrl+C
.Анализ результатов
Теперь вы можете взглянуть на сгенерированные файлы.
Полученный файл
nmap.results
должен быть похож на последний результат:- less ~/scan_results/udp_scan/nmap.results
# Nmap 6.49BETA4 scan initiated Mon Dec 19 12:42:42 2022 as: nmap -sU -Pn -p- -T4 -vv --reason -oN /home/user/scan_results/udp_scan/nmap.results 198.51.100.15 Increasing send delay for 198.51.100.15 from 0 to 50 due to 10445 out of 26111 dropped probes since last increase. Increasing send delay for 198.51.100.15 from 50 to 100 due to 11 out of 23 dropped probes since last increase. Increasing send delay for 198.51.100.15 from 100 to 200 due to 3427 out of 8567 dropped probes since last increase. Nmap scan report for 198.51.100.15 Host is up, received user-set (0.0010s latency). Scanned at 2022-12-19 12:42:42 EDT for 9956s Not shown: 65532 closed ports Reason: 65532 port-unreaches PORT STATE SERVICE REASON 22/udp open|filtered ssh no-response 80/udp open|filtered http no-response 443/udp open|filtered https no-response Read data files from: /usr/local/bin/../share/nmap # Nmap done at Mon Dec 19 15:28:39 2022 -- 1 IP address (1 host up) scanned in 9956.97 seconds
Основное различие между этим результатом и предыдущим результатом SYN, скорее всего, будет заключаться в количестве портов, помеченных как
open|filtered
. Это означает, чтоnmap
не может определить, означает ли отсутствие ответа, что служба приняла трафик, или он был отброшен каким-либо брандмауэром или механизмом фильтрации на пути доставки.Анализ выходных данных
tcpdump
также значительно усложняется из-за отсутствия флагов подключения и необходимости сопоставления ответов ICMP с запросами UDP.Вы можете увидеть, сколько пакетов
nmap
пришлось отправить на порты, которые были отмечены какopen|filtered
, попросив просмотреть трафик UDP на один из указанных портов:- sudo tcpdump -nn -Q out -r ~/scan_results/udp_scan/packets 'udp and port 22'
Outputreading from file /home/user/scan_results/udp_scan/packets, link-type EN10MB (Ethernet) 14:57:40.801956 IP 198.51.100.2.60181 > 198.51.100.15.22: UDP, length 0 14:57:41.002364 IP 198.51.100.2.60182 > 198.51.100.15.22: UDP, length 0 14:57:41.202702 IP 198.51.100.2.60183 > 198.51.100.15.22: UDP, length 0 14:57:41.403099 IP 198.51.100.2.60184 > 198.51.100.15.22: UDP, length 0 14:57:41.603431 IP 198.51.100.2.60185 > 198.51.100.15.22: UDP, length 0 14:57:41.803885 IP 198.51.100.2.60186 > 198.51.100.15.22: UDP, length 0Сравните это с результатами одного из просканированных портов, который был помечен как «закрытый»:
- sudo tcpdump -nn -Q out -r ~/scan_results/udp_scan/packets 'udp and port 53'
Outputreading from file /home/user/scan_results/udp_scan/packets, link-type EN10MB (Ethernet) 13:37:24.219270 IP 198.51.100.2.60181 > 198.51.100.15.53: 0 stat [0q] (12)Вы можете попытаться вручную восстановить процесс, который проходит
nmap
, сначала составив список всех портов, на которые мы отправляем UDP-пакеты, используя что-то вроде этого:- sudo tcpdump -nn -Q out -r ~/scan_results/udp_scan/packets "udp" | awk '{print $5;}' | awk 'BEGIN { FS = "." } ; { print $5 +0}' | sort -u | tee outgoing
Затем вы можете увидеть, какие ICMP-пакеты мы получили в ответ, говоря, что порт недоступен:
- sudo tcpdump -nn -Q in -r ~/scan_results/udp_scan/packets "icmp" | awk '{print $10,$11}' | grep unreachable | awk '{print $1}' | sort -u | tee response
Затем вы можете взять эти два ответа и посмотреть, какие пакеты UDP никогда не получали ответа ICMP:
- comm -3 outgoing response
Это должно в основном соответствовать списку портов, который сообщил
nmap
(он может содержать некоторые ложные срабатывания из-за потерянных обратных пакетов).Обнаружение хостов и служб
Вы можете запустить дополнительные тесты на своей цели, чтобы увидеть, может ли
nmap
идентифицировать работающую операционную систему или любую из версий службы. Создайте каталог для хранения результатов управления версиями:- mkdir ~/scan_results/versions
Обнаружение версий служб на сервере
Вы можете попытаться угадать версии служб, работающих на цели, с помощью процесса, известного как снятие отпечатков пальцев. Вы получаете информацию с сервера и сравниваете ее с известными версиями в нашей базе данных.
В этом сценарии
tcpdump
не слишком полезен, поэтому его можно пропустить. Если вы все равно хотите его захватить, следуйте процессу, который вы использовали в прошлый раз.Необходимое сканирование
nmap
запускается флагом-sV
. Поскольку вы уже выполнили сканирование SYN и UDP, вы можете указать точные порты, которые вам нужно просмотреть, с помощью флага-p
. Здесь вы увидите 22 и 80 (порты, которые были показаны в нашем SYN-сканировании):- sudo nmap -sV -Pn -p 22,80 -vv --reason -oN ~/scan_results/versions/service_versions.nmap target_ip_addr
Если вы просмотрите полученный файл, вы можете получить информацию о запущенной службе, в зависимости от того, насколько «болтлив» ответ службы:
- less ~/scan_results/versions/service_versions.nmap
# Nmap 6.49BETA4 scan initiated Mon Dec 19 15:46:12 2022 as: nmap -sV -Pn -p 22,80 -vv --reason -oN /home/user/scan_results/versions/service_versions.nmap 198.51.100.15 Nmap scan report for 198.51.100.15 Host is up, received user-set (0.0011s latency). Scanned at 2022-12-19 15:46:13 EDT for 8s PORT STATE SERVICE REASON VERSION 22/tcp open ssh syn-ack ttl 63 OpenSSH 6.6.1p1 Ubuntu 2ubuntu2 (Ubuntu Linux; protocol 2.0) 80/tcp open http syn-ack ttl 63 nginx 1.4.6 (Ubuntu) Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel Read data files from: /usr/local/bin/../share/nmap Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . # Nmap done at Mon Dec 19 15:46:21 2022 -- 1 IP address (1 host up) scanned in 8.81 seconds
Здесь вы можете видеть, что тест смог определить версию сервера SSH и дистрибутив Linux, который его упаковал, а также принятую версию протокола SSH. Он также распознал версию Nginx и снова идентифицировал ее как соответствующую пакету Ubuntu.
Обнаружение операционной системы хоста
Вы можете попытаться заставить
nmap
угадать операционную систему хоста, основываясь также на характеристиках ее программного обеспечения и ответах. Это работает так же, как управление версиями службы. Опять же, мы не будем запускатьtcpdump
в этом тесте, но вы можете выполнить его, если хотите.Флаг, необходимый для определения операционной системы, —
-O
(заглавная буква \O). Полная команда может выглядеть примерно так:- sudo nmap -O -Pn -vv --reason -oN ~/scan_results/versions/os_version.nmap target_ip_addr
Если вы просмотрите выходной файл, вы можете увидеть что-то вроде этого:
- less ~/scan_results/versions/os_version.nmap
# Nmap 6.49BETA4 scan initiated Mon Dec 19 15:53:54 2022 as: nmap -O -Pn -vv --reason -oN /home/user/scan_results/versions/os_version.nmap 198.51.100.15 Increasing send delay for 198.51.100.15 from 0 to 5 due to 65 out of 215 dropped probes since last increase. Increasing send delay for 198.51.100.15 from 5 to 10 due to 11 out of 36 dropped probes since last increase. Increasing send delay for 198.51.100.15 from 10 to 20 due to 11 out of 35 dropped probes since last increase. Increasing send delay for 198.51.100.15 from 20 to 40 due to 11 out of 29 dropped probes since last increase. Increasing send delay for 198.51.100.15 from 40 to 80 due to 11 out of 31 dropped probes since last increase. Nmap scan report for 198.51.100.15 Host is up, received user-set (0.0012s latency). Scanned at 2022-12-19 15:53:54 EDT for 30s Not shown: 998 closed ports Reason: 998 resets PORT STATE SERVICE REASON 22/tcp open ssh syn-ack ttl 63 80/tcp open http syn-ack ttl 63 No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ). TCP/IP fingerprint: OS:SCAN(V=6.49BETA4%E=4%D=8/27%OT=22%CT=1%CU=40800%PV=N%DS=2%DC=I%G=Y%TM=55 OS:DF6AF0%P=x86_64-unknown-linux-gnu)SEQ(SP=F5%GCD=1%ISR=106%TI=Z%CI=Z%TS=8 OS:)OPS(O1=M5B4ST11NW8%O2=M5B4ST11NW8%O3=M5B4NNT11NW8%O4=M5B4ST11NW8%O5=M5B OS:4ST11NW8%O6=M5B4ST11)WIN(W1=7120%W2=7120%W3=7120%W4=7120%W5=7120%W6=7120 OS:)ECN(R=Y%DF=Y%T=40%W=7210%O=M5B4NNSNW8%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+ OS:%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=) OS:T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A OS:=Z%F=R%O=%RD=0%Q=)T7(R=N)U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPC OS:K=G%RUCK=G%RUD=G)U1(R=N)IE(R=N) Uptime guess: 1.057 days (since Mon Dec 12 14:32:23 2022) Network Distance: 2 hops TCP Sequence Prediction: Difficulty=245 (Good luck!) IP ID Sequence Generation: All zeros Read data files from: /usr/local/bin/../share/nmap OS detection performed. Please report any incorrect results at https://nmap.org/submit/ . # Nmap done at Mon Dec 12 15:54:24 2022 -- 1 IP address (1 host up) scanned in 30.94 seconds
Мы видим, что в этом случае
nmap
не делает никаких предположений для операционной системы на основе увиденной сигнатуры. Если бы он получил больше информации, он, вероятно, показал бы различные проценты, которые показывают, насколько подпись целевой машины соответствует подписям операционной системы в ее базах данных. Вы можете увидеть подпись отпечатка пальца, которуюnmap
получил от цели, под строкойTCP/IP fingerprint:
.Идентификация операционной системы может помочь злоумышленнику определить, какие эксплойты могут быть полезны в системе. Настройка брандмауэра для ответа на меньшее количество запросов может снизить точность некоторых из этих методов обнаружения.
Заключение
Тестирование вашего брандмауэра и понимание того, как выглядит ваша внутренняя сеть для внешнего злоумышленника, может помочь минимизировать ваш риск. Информация, которую вы обнаружите при исследовании собственной инфраструктуры, может стать поводом для обсуждения того, нужно ли пересмотреть какое-либо из ваших политик для повышения безопасности. Это также может выявить любые пробелы в вашей безопасности, которые могли возникнуть из-за неправильного порядка правил или забытых политик тестирования. Рекомендуется регулярно тестировать свои политики с помощью последних баз данных сканирования, чтобы улучшить или, по крайней мере, сохранить текущий уровень безопасности.
Чтобы получить представление о некоторых улучшениях политики для вашего брандмауэра, ознакомьтесь с этим руководством.