|
|
@@ -0,0 +1,136 @@
|
|
|
+# Как просканирование сетевой периметр сервиса с помощью OpenSource-инструментов
|
|
|
+---
|
|
|
+Nmap для профи: от тихого скана до мощи NSE
|
|
|
+
|
|
|
+Nmap (Network Mapper) — это не просто сканер портов. Это мощнейший опенсорсный инструмент для исследования сети и проведения аудита безопасности. Для пентестера или ИБ-специалиста владение Nmap — это как для хирурга владение скальпелем: обязательно и требует точности. Сегодня мы не будем разжевывать, что такое IP-адрес. Мы сосредоточимся на тактиках, которые отличают новичка от профессионала, и разберем, как превратить стандартное nmap сканирование портов в целенаправленное исследование.
|
|
|
+Основы основ: выбор правильного типа сканирования
|
|
|
+Каждое сканирование начинается с выбора метода. И тут кроется первый важный нюанс, который влияет и на скорость, и на скрытность. Два самых популярных типа TCP-сканирования — это TCP Connect (-sT) и SYN Stealth (-sS). В чем же их принципиальная разница?
|
|
|
+
|
|
|
+---
|
|
|
+### **TCP Connect Scan (-sT)**
|
|
|
+- Этот метод использует системный вызов connect() операционной системы для установки полного трехстороннего рукопожатия (SYN, SYN/ACK, ACK).
|
|
|
+
|
|
|
+ Плюс: Не требует прав суперпользователя (root).
|
|
|
+Минус: Очень "шумный". Установка полного соединения легко обнаруживается и логируется большинством файрволов и IDS. Это как громко постучать в дверь и дождаться, пока ее откроют.
|
|
|
+
|
|
|
+---
|
|
|
+### **SYN Scan (-sS)**
|
|
|
+- А вот это уже классика пентеста, не зря он используется по умолчанию при запуске от root. Nmap отправляет SYN-пакет, как бы собираясь начать соединение.
|
|
|
+
|
|
|
+ Если в ответ приходит SYN/ACK — порт открыт. Nmap, вместо отправки финального ACK, посылает RST-пакет, обрывая соединение до его полного установления.
|
|
|
+ Если приходит RST — порт закрыт.
|
|
|
+ Если ответа нет — порт, скорее всего, фильтруется.
|
|
|
+ Плюс: Гораздо более скрытный метод, так как полное соединение не устанавливается. Его называют "полуоткрытым" сканированием.
|
|
|
+Минус: Требует прав root для создания "сырых" сокетов.
|
|
|
+
|
|
|
+---
|
|
|
+**Практический пример:**
|
|
|
+
|
|
|
+Представим, что мы хотим быстро и относительно незаметно проверить, открыт ли веб-сервер (порт 80) и SSH (порт 22) на цели scanme.nmap.org.
|
|
|
+Bash:
|
|
|
+#Требует прав root/sudo
|
|
|
+sudo nmap -sS -p 22,80 scanme.nmap.org
|
|
|
+
|
|
|
+Запустив эту команду, мы получим быстрый и точный результат, минимизируя вероятность быть замеченными на базовом уровне мониторинга. Использование -sT в профессиональной среде — скорее исключение, когда нет root-доступа.
|
|
|
+Продвинутые техники: копаем глубже
|
|
|
+Хорошо, с портами разобрались. Но что за ними скрывается? Наша задача — собрать как можно больше информации.
|
|
|
+Определение версий служб и ОС (-sV)
|
|
|
+Знать, что порт 80 открыт — это полдела. А вот знать, что за ним стоит Apache 2.4.52 на Ubuntu, а не IIS 10.0 на Windows — это уже ценная информация для поиска эксплойтов. Здесь в игру вступает ключ -sV.
|
|
|
+Bash:
|
|
|
+#Сканируем топ-20 портов, определяя версии сервисов
|
|
|
+sudo nmap -sS -sV --top-ports 20 scanme.nmap.org
|
|
|
+
|
|
|
+
|
|
|
+Nmap отправит специальные пробы на открытые порты и проанализирует ответы, чтобы максимально точно определить сервис и его версию. Это один из самых полезных ключей в арсенале.
|
|
|
+Сканирование UDP (-sU)
|
|
|
+Многие забывают, что кроме TCP существует и UDP. А ведь через него работают такие важные сервисы, как DNS (53), SNMP (161) и VPN (OpenVPN, IKE). Сканирование UDP — процесс медленный и муторный, так как протокол не подразумевает установку соединения. Отсутствие ответа не всегда означает, что порт закрыт. Однако игнорировать его — преступная халатность.
|
|
|
+Bash:
|
|
|
+#Медленное, но важное сканирование популярных UDP-портов
|
|
|
+sudo nmap -sU --top-ports 50 scanme.nmap.org
|
|
|
+
|
|
|
+Будьте готовы, что такой скан займет значительно больше времени, чем TCP.
|
|
|
+Обход файрволов
|
|
|
+Когда на пути стоит файрвол или IDS/IPS, стандартные сканы могут не пройти. Тут нужны хитрости:
|
|
|
+
|
|
|
+ Фрагментация пакетов (-f): Этот ключ разбивает TCP-заголовок на мелкие фрагменты. Некоторые старые файрволы, пытаясь сэкономить ресурсы, не собирают такие пакеты для анализа и пропускают их.
|
|
|
+ Указание MTU (--mtu): Можно задать свой размер пакета, например, --mtu 8, чтобы отправить 8-байтовые пакеты. Это тоже может запутать некоторые системы защиты.
|
|
|
+ Подмена источника (-D RND:10): Создает 10 "ложных" IP-адресов (декоев), которые якобы сканируют цель вместе с вами. Ваш реальный IP будет затерян в этом шуме, что усложнит анализ логов.
|
|
|
+---
|
|
|
+**Пример комплексной команды для "тихого" сканирования:**
|
|
|
+Максимально аккуратный скан с фрагментацией и медленным таймингом
|
|
|
+sudo nmap -sS -f -T2 -p 22,80,443 (target_ip)
|
|
|
+
|
|
|
+Здесь -T2 (Polite) замедляет сканирование, чтобы не вызывать подозрений у систем мониторинга аномальной сетевой активности.
|
|
|
+
|
|
|
+---
|
|
|
+### **Сила скриптов: Nmap Scripting Engine (NSE)**
|
|
|
+
|
|
|
+Вот мы и подобрались к самому интересному. NSE — это сердце Nmap, превращающее его из сканера в многофункциональный комбайн для аудита. Скрипты, написанные на языке Lua, могут выполнять тысячи задач: от поиска уязвимостей до брутфорса учетных записей.
|
|
|
+
|
|
|
+Использовать их просто. Основной ключ — --script.
|
|
|
+
|
|
|
+### **Поиск уязвимостей (категория vuln):**
|
|
|
+
|
|
|
+Это набор скриптов, которые ищут конкретные, известные уязвимости на основе обнаруженных сервисов.
|
|
|
+Bash:
|
|
|
+
|
|
|
+#Запускаем все скрипты из категории vuln на цели
|
|
|
+sudo nmap -sS -sV --script=vuln -p 80,443 (target_ip)
|
|
|
+
|
|
|
+Если на веб-сервере обнаружится, например, уязвимость типа Heartbleed, Nmap об этом сообщит.
|
|
|
+
|
|
|
+### **Использование популярных скриптов:**
|
|
|
+
|
|
|
+Один из самых полезных скриптов — vulners, который сверяет версии ПО с огромной базой данных уязвимостей на vulners.com.
|
|
|
+Bash:
|
|
|
+
|
|
|
+#Требуется предварительно скачать скрипт или использовать дистрибутив, где он есть
|
|
|
+sudo nmap -sV --script=vulners (target_ip)
|
|
|
+
|
|
|
+Результат будет содержать не только список открытых портов, но и перечень CVE, ассоциированных с запущенным на них софтом, часто даже со ссылками на эксплойты. Применение таких скриптов особенно эффективно при аудите внутренних сетей, где часто можно наткнуться на распространенные конфигурации. Это первый шаг к более сложным сценариям, таким как тестирование на проникновение в Active Directory, где результаты сканирования Nmap дают основу для дальнейших атак.
|
|
|
+
|
|
|
+---
|
|
|
+### **Использование OpenVAS**
|
|
|
+
|
|
|
+ Open Vulnerability Assessment System
|
|
|
+
|
|
|
+ это программное обеспечение с открытым исходным кодом для управления уязвимостями и проведения сканирований на уязвимости.
|
|
|
+
|
|
|
+Оно предоставляет более широкий спектр возможностей по сравнению с Nmap, который в первую очередь является сетевым сканером портов.
|
|
|
+
|
|
|
+Преимущества OpenVAS по сравнению с Nmap:
|
|
|
+
|
|
|
+ специализированный инструмент для управления уязвимостями
|
|
|
+ OpenVAS фокусируется на обнаружении уязвимостей и их управлении, в то время как Nmap используется для общего сканирования сети и определения сервисов;
|
|
|
+ автоматизированные сканирования
|
|
|
+ OpenVAS позволяет проводить автоматизированные сканирования на основе расписания, что удобно для регулярной проверки безопасности систем;
|
|
|
+ обширная база данных уязвимостей
|
|
|
+ OpenVAS включает в себя большую базу данных уязвимостей, которая регулярно обновляется сообществом. Это позволяет обнаруживать новые и актуальные уязвимости;
|
|
|
+ комплексный анализ и отчеты
|
|
|
+ OpenVAS предоставляет подробные отчеты о найденных уязвимостях, включая рекомендации по их устранению, что делает его полезным инструментом для аудиторов и специалистов по безопасности;
|
|
|
+ web-интерфейс для управления
|
|
|
+ OpenVAS предлагает удобный веб-интерфейс для управления сканированиями и просмотра результатов, что облегчает работу с инструментом;
|
|
|
+ поддержка различных типов сканирования
|
|
|
+ OpenVAS поддерживает как локальные, так и удаленные сканирования, предоставляя более глубокий анализ систем;
|
|
|
+ модульность и расширяемость
|
|
|
+ OpenVAS позволяет добавлять и обновлять тесты на уязвимости, что делает его адаптируемым к изменяющимся требованиям безопасности.
|
|
|
+---
|
|
|
+### **Portmaster**
|
|
|
+
|
|
|
+Инструмент представили в январе 2022 года. Он совмещает функции сетевого мониторинга и файрвола, позволяет писать историю активности каждого приложения и сервиса. Утилита может автоматически блокировать вредоносные соединения, фильтрует рекламу по спискам IP-адресов и доменов. При этом Portmaster не просто отслеживает DNS-запросы, но и шифрует их при помощи DNS-over-TLS [есть мнение, что это более оптимальный способ, по сравнению с DNS-over-HTTPS].
|
|
|
+
|
|
|
+Portmaster поддерживает Windows и Linux и распространяется бесплатно под лицензией AGPLv3. Хотя есть и платная версия. Она открывает доступ к собственной сети компании — SPN (альтернатива VPN).
|
|
|
+
|
|
|
+---
|
|
|
+## **Gyeeta**
|
|
|
+
|
|
|
+Утилита для мониторинга инфраструктуры, которая вышла в конце 2022 года. Инструмент может отслеживать несколько десятков тысяч хостов одновременно и поддерживает работу не только с HTTP-сервисами. Программа содержит самообучающиеся алгоритмы для поиска сбоев в работе хостов. Есть интеграция с Kubernetes и другими оркестровщиками.
|
|
|
+
|
|
|
+Среди особенностей Gyeeta можно выделить сбор статистики по количеству запросов в секунду, времени отклика и ошибках HTTP. Gyeeta работает только на Linux и распространяется бесплатно под лицензией GPLv3. Протестировать систему можно без предварительной загрузки — на сайте разработчика доступна активная демоверсия. Она позволяет познакомиться с интерфейсом и основными настройками «не отходя от кассы».
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+https://selectel.ru/blog/tutorials/how-to-scan-network-perimeter/
|
|
|
+https://github.com/IKarasev/Study/blob/main/vuln_det/02_%D0%92%D0%B2%D0%B5%D0%B4_%D0%B2%D1%81%D0%BA%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8_%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D1%8B%D0%B5_%D1%81%D0%BA%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F.md
|
|
|
+
|
|
|
+
|