Простые приёмы сбора информации для пентеста

Вступление

Автор — новичок, только начинающих изучать пентест, приведённые ниже материалы являются моими заметками, сделанными по ходу практики. Они не полны, прошу опытных специалистов указать на ошибки.

I. Сбор базовой информации

(I) Сбор доменов

  • Сбор доменов: Помимо стандартных методов, используйте такие инструменты, как DomainTools, SpyOnWeb для получения исторических Whois-записей домена, просмотра изменений прав собственности и истории DNS-разрешений, чтобы выявить потенциальную информацию.

  • Поддомены

    • Синтаксис Google Search: Умейте использовать специальные синтаксические конструкции, например, «site: целевой_домен -www» для поиска некоторых поддоменов.

    • Погонопространственные поисковые системы: Например, ZoomEye, Shodan и другие, для обнаружения поддоменов с точки зрения поиска в киберпространстве.

    • OneForAll: Поддерживает множество источников данных, позволяет гибко настраивать параметры для эффективного сбора поддоменов.

    • Subdomainsbrute: Многопоточное сканирование, оптимизация словаря и количества потоков для повышения эффективности сканирования.

    • Subdomain3: Повышение обнаружения поддоменов за счёт постоянного обновления словаря и корректировки стратегии сканирования.

    • SubFinder + KSubdomain + HttpX: Комбинирование преимуществ инструментов. SubFinder быстро обнаруживает поддомены, KSubdomain углублённо исследует их, а HttpX проверяет их доступность.

(II) IP и CDN

  • Обход реального IP и CDN

    • Получение реального IP

      • Метод ping: Первоначальное определение типа операционной системы на основе значения TTL, что помогает в локализации, но имеет ограничения. Не позволяет обойти CDN.

      • Метод nslookup: Запрос DNS-записей для получения IP-адреса. В некоторых случаях подвержен влиянию CDN. Не позволяет обойти CDN.

      • Онлайн-инструменты: Инструменты для вебмастеров удобны и быстры, но точность результатов требует дополнительного подтверждения.

      • Инструмент traceroute: В системах Linux и macOS отслеживание маршрута пакетов позволяет попытаться обойти CDN и найти реальный IP.

      • Заголовки электронной почты: Если у цели есть почтовый сервис, анализ заголовков писем может помочь получить IP-адрес почтового сервера, который может быть реальным IP или связанным IP.

      • Обход CDN:

        • Использование
    • Инструменты обнаружения CDN: Сравнение CloudFlare Radar, специализирующегося на обнаружении CDN CloudFlare, и CDNView, охватывающего многих основных поставщиков CDN, повышает надёжность обнаружения при сочетании нескольких инструментов.

II. Информация о сетевой и системной архитектуре

(I) Порты и сетевые службы

  • Порты и сетевые службы

    • Сканирование портов: Использование nmap, выбор метода сканирования в зависимости от цели, например, TCP SYN-сканирование (-sS) обладает хорошей скрытностью; комбинация со скриптами сканирования (-sC) и определением версий (-sV) для получения подробной информации о службе.

    • Сетевая топология: Использование SolarWinds Network Topology Mapper для автоматического обнаружения устройств и построения карты топологии; Netdiscover специализируется на обнаружении устройств локальной сети для помощи в построении.

(II) Система и промежуточное ПО

  • Операционная система

    • Определение через ping: Значение TTL у Windows обычно равно 128, у Linux — 64. Значение TTL больше 100 обычно указывает на Windows, а значение в несколько десятков — на Linux. При пинге IPv6 значение TTL отсутствует, можно пинговать только IPv4. Обычно не очень точно.

    • nmap: Получение информации об операционной системе путём сканирования.
      Команда: nmap -o IP
      Может быть заблокирован некоторыми механизмами защиты при сканировании.

    • Чувствительность к регистру: Windows нечувствителен к регистру, Linux чувствителен. При попытке доступа к файлам или каталогам на целевой системе, если наблюдается нечувствительность к регистру, скорее всего, это Windows; наоборот, скорее всего, это Linux.

    • Инструмент p0f: Пассивный перехват сетевого трафика, анализ характеристик пакетов для определения типа, версии операционной системы и сетевых настроек.

  • Промежуточное ПО и контейнеры

    • Просмотр поля Server в заголовках ответа через F12: Переключение на вкладку сети, обновление страницы для поиска начального запроса и просмотра поля «server» для определения. Например, если отображается «Apache», возможно, используется веб-сервер Apache HTTP.

    • Онлайн-инструменты: WhatWeb, Wappalyzer могут идентифицировать различные технологические компоненты.

    • Анализ страниц ошибок: Различное промежуточное ПО и контейнеры имеют характерные страницы ошибок с определённой информацией и макетом. Например, страница ошибки Tomcat содержит информацию о версии.

(III) Тип веб-сервиса, тип контейнера, тип скрипта

  • В разделе «Сеть» в F12 наблюдайте за расширениями загружаемых файлов: Например, .js — это файл JavaScript, .php — файл скрипта PHP.

  • Анализ содержимого ответа и поведения запроса: Определённые признаки синтаксиса скриптов или меток в содержимом ответа веб-страницы позволяют сделать вывод. Например, появление тега «» на HTML-странице.

  • Определение типа контейнера:

    • Просмотр поля Server в заголовках ответа:
      Если отображается «Apache», возможно, используется контейнер на базе Apache.
      Если отображается «Nginx», возможно, используется контейнер на базе Nginx.
      Использование whatweb.
  • Определение типа скрипта:

    • По расширениям файлов:
      .jsp, .asp, .aspx, .php

    • По информации об ответе сервера:
      Можно посмотреть значение cookie.
      Можно проанализировать значение Server.

    • Онлайн-инструменты: whatweb.

    • По типу сервера:
      IIS: обычно связан с .asp или .aspx.
      Tomcat, Resin, JBoss: обычно связаны с .jsp.
      Nginx: может работать с различными языками скриптов, такими как PHP, Python и др. Nginx — это высокопроизводительный веб-сервер, часто используемый в связке с PHP-FPM для запуска PHP-скриптов; также может выступать в качестве обратного прокси-сервера для приложений на других языках (например, фреймворках Flask и Django на Python).

(IV) Тип базы данных

  • Распространённые типы баз данных: Oracle, MySQL, SQL Server, PostgreSQL и др.

  • Типы баз данных на стороне клиента: ASP соответствует SQL Server, Access; .NET — SQL Server; PHP — MySQL, PostgreSQL; Java — Oracle, MySQL.

  • Распространённые порты баз данных: Oracle — 1521, MySQL — 3306, SQL Server — 1433, PostgreSQL — 5432, MongoDB — 27017.

  • Методы определения:

    • Использование инструмента: whatweb.

    • Определение SQL-инъекций.

(V) Идентификация CMS

  • CMS: Система управления контентом используется для управления статьями и контентом сайта. Распространённые: WordPress, Joomla, Drupal, DedeCMS (Ткацкий станок), Discuz, phpcms и др.

  • Инструменты обнаружения и идентификации CMS: CMSeeK, joomscan, wpscan, TPscan и др.

III. Информация о бизнесе и приложениях

(I) Конфиденциальные каталоги и файлы

  • Распространённые конфиденциальные файлы или каталоги: robots.txt, crossdomain.xml, sitemap.xml, каталог административной панели, каталог установки сайта и др.

  • Утечка исходного кода

    • Утечка через GitHub: Разработчики загружают код, не удалив важную информацию.

    • Утечка .git

      • Причины и опасность: Неправильная конфигурация при автоматическом развертывании с использованием git для контроля версий приводит к развёртыванию файлов .git на production-сервере, что вызывает утечку исходного кода. Атакующий может провести аудит кода и выявить уязвимости.

      • Методы защиты: Удаление папки .git при развертывании, блокировка доступа к каталогу .git в конфигурации nginx, регулярная проверка и очистка конфиденциальных файлов и каталогов, защита резервных файлов сайта надёжными паролями и их безопасное хранение.

  • Сканирование каталогов: Инструменты включают feroxbuster, dirb, dirsearch, dirmap, dirBuster, Yujian и др. Выберите подходящий словарь в зависимости от цели, настройте количество потоков сканирования и время ожидания.

  • Google Hacking: Использование специального синтаксиса поиска для выявления конфиденциальной информации, например, «inurl:admin login» для поиска URL, содержащих определённые ключевые слова.

(II) Уязвимости и меры защиты

  • Сканирование уязвимостей: OpenVAS — открытый инструмент, активное сообщество, быстрое обновление базы правил. Настройте стратегию сканирования в зависимости от цели.

  • Идентификация WAF

    • wafw00f: Адрес инструмента https://github.com/EnableSecurity/wafw00f, https://www.kali.org/tools/wafw00f/.

    • Скрипты Nmap: Использование nmap -sV --script=http-waf-detect <целевой_IP> для обнаружения.

    • Ручное тестирование: Отправка атакующих запросов и наблюдение за ответом цели для определения WAF и уровня защиты.

IV. Информация о предприятии и социальной инженерии

(I) Архитектура предприятия и данные о персонале

  • Профиль организации: Запрос информации о дочерних компаниях, партнёрах, поставщиках, внимание к отраслевым тенденциям, слияниям и поглощениям, проектам и сотрудничеству для выявления потенциальных точек атаки.

  • Информация о персонале: Сбор через социальные сети, утечки кода на GitHub или исторические базы паролей; использование Maltego для интеграции и связывания информации, построения сети отношений.

V. Конфиденциальная информация и эксплуатация уязвимостей

(I) Бизнес-логика и права доступа

  • Точки входа в систему: Исследование адресов административной панели, API-интерфейсов и учётных данных по умолчанию; анализ структуры URL и ресурсных файлов для поиска скрытых точек входа.

  • Пути повышения привилегий: Анализ ролей пользователей, использование Burp Suite для перехвата пакетов и изменения параметров для тестирования уязвимостей несанкционированного доступа; поиск возможностей повышения привилегий в сочетании с бизнес-логикой.

(II) Связь с историческими уязвимостями

  • Уязвимости аналогичных систем: Использование баз данных CVE Details, SecurityFocus и других для поиска уязвимостей аналогичных систем; внимание к предупреждениям и рекомендациям по исправлению от производителей безопасности и сообществ.

  • Несколько приёмов для уязвимостей EDU (образовательных учреждений)

    • Проводите обычный сбор доменов, IP, портов, каталогов и др., обращайте внимание на публикации студентов в социальных сетях для поиска утечек информации.

    • На сайте университета выполняйте поиск по официальным объявлениям, в публикациях официальных аккаунтов ищите номера студенческих билетов, находите инструкции по эксплуатации и адреса электронной почты. Используйте синтаксис поиска site:example.com login | admin | номер_студента | стипендия | номер_идентификации | аккаунт | пароль | admin | login. body=“login”

    • Публикация объявлений о подработке для получения персональных данных (данный метод сопряжён с юридическими рисками, приводится только в целях технического обсуждения).

    • Попробуйте войти в систему, собрав информацию; проверьте параметры на периферийных активах на использование паролей по умолчанию.

1 лайк