Основы пентестинга: от разведки до отчета

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

1. Введение в этичный хакинг, правовые основы и методологии проведения тестирования на проникновение

Введение в этичный хакинг, правовые основы и методологии проведения тестирования на проникновение

Добро пожаловать в курс «Основы пентестинга: от разведки до отчета». Мы начинаем погружение в захватывающий мир информационной безопасности. Прежде чем мы перейдем к сканированию портов или эксплуатации уязвимостей, необходимо заложить прочный фундамент. В этой статье мы разберем, кто такой этичный хакер, почему закон — ваш лучший друг, и по каким правилам играют профессионалы.

Кто такой этичный хакер?

Слово «хакер» часто ассоциируется с преступниками в капюшонах, которые крадут деньги банков или сливают личные данные. Однако в профессиональной среде этот термин имеет более широкое значение. Хакер — это исследователь, человек, который понимает, как работают системы, и может заставить их делать то, что не было предусмотрено разработчиками.

Этичный хакер (или пентестер) — это специалист, который использует свои навыки и инструменты для поиска уязвимостей в системах безопасности, но делает это легально и с целью защиты.

В индустрии принято цветовое разделение хакеров:

* White Hat (Белые шляпы): Исследователи безопасности и пентестеры, работающие строго в рамках закона и по договору с владельцем системы. Их цель — найти дыры, чтобы закрыть их. * Black Hat (Черные шляпы): Киберпреступники, взламывающие системы ради наживы, шпионажа или деструктивных целей. * Grey Hat (Серые шляпы): Находятся где-то посередине. Они могут взломать систему без спроса (что незаконно), но не ради кражи, а чтобы потом сообщить владельцу об уязвимости (иногда требуя вознаграждение).

!Диаграмма Венна, показывающая, что этичный хакинг требует наличия навыков, официального разрешения и благих намерений.

Наша цель в этом курсе — стать профессиональными «Белыми шляпами».

Триада CIA: Фундамент безопасности

Любое тестирование на проникновение направлено на проверку того, насколько хорошо система защищает данные. В основе информационной безопасности лежит концепция, называемая Триада CIA (не путать с ЦРУ).

  • Confidentiality (Конфиденциальность): Гарантия того, что доступ к информации имеют только те, кому он разрешен. Пример нарушения: утечка базы паролей.
  • Integrity (Целостность): Гарантия того, что информация не была изменена неавторизованным способом. Пример нарушения: злоумышленник изменил сумму транзакции в базе данных.
  • Availability (Доступность): Гарантия того, что авторизованные пользователи имеют доступ к информации и ресурсам, когда это им необходимо. Пример нарушения: DDoS-атака, положившая сайт магазина.
  • Пентестер проверяет систему на устойчивость именно по этим трем векторам.

    Правовые основы: Грань между работой и тюрьмой

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

    Главное правило пентестера

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

    В контексте законодательства (например, УК РФ), несанкционированный доступ к компьютерной информации (ст. 272), создание вредоносных программ (ст. 273) и нарушение правил эксплуатации (ст. 274) являются уголовными преступлениями. Договор с заказчиком — это ваша страховка, подтверждающая, что ваши действия санкционированы.

    Область действия (Scope)

    Перед началом работ всегда определяется Scope (область действия). Это список IP-адресов, доменов и подсетей, которые заказчик разрешил атаковать.

    * Если вы случайно «положите» сервер, который не входил в Scope, это может привести к судебным искам. * Если вы атакуете облачный сервис (например, AWS или Azure), на котором хостится заказчик, не уведомив провайдера (если это требуется правилами провайдера), вы нарушаете правила использования сервиса.

    Виды тестирования на проникновение

    В зависимости от того, сколько информации о цели вам предоставляется на старте, пентесты делятся на три типа:

    1. Black Box (Черный ящик)

    Пентестер находится в роли внешнего хакера. У него нет никакой информации о внутренней структуре сети, исходном коде или архитектуре. Известно только название компании или адрес сайта. * Плюсы: Максимально реалистичная симуляция внешней атаки. * Минусы: Занимает много времени на разведку, можно пропустить внутренние уязвимости.

    2. White Box (Белый ящик)

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

    3. Gray Box (Серый ящик)

    Золотая середина. Пентестеру выдают частичную информацию, например, учетную запись обычного пользователя системы и схему взаимодействия серверов. * Плюсы: Позволяет проверить, что может сделать злоумышленник, уже проникший внутрь периметра или купивший аккаунт сотрудника.

    !Визуальное сравнение методов тестирования в зависимости от доступной информации.

    Оценка рисков

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

    где — итоговый уровень риска, — вероятность реализации угрозы (насколько легко её эксплуатировать), а — степень влияния на бизнес (ущерб от реализации).

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

    Методологии пентестинга

    Хаотичные попытки взлома редко приводят к хорошему результату. Профессионалы следуют методологиям — пошаговым инструкциям, которые гарантируют, что ничего не будет упущено.

    Основные стандарты

  • PTES (Penetration Testing Execution Standard): Один из самых популярных стандартов. Он делит процесс на 7 этапов:
  • * Pre-engagement Interactions (Предварительное согласование) * Intelligence Gathering (Сбор информации) * Threat Modeling (Моделирование угроз) * Vulnerability Analysis (Анализ уязвимостей) * Exploitation (Эксплуатация) * Post Exploitation (Пост-эксплуатация) * Reporting (Отчетность)

  • OWASP (Open Web Application Security Project): Это «библия» для тестирования веб-приложений. Если ваша цель — сайт или веб-сервис, вы обязательно будете использовать OWASP Testing Guide.
  • OSSTMM (Open Source Security Testing Methodology Manual): Более научный и метрический подход к тестированию безопасности, фокусирующийся на операционной безопасности.
  • В нашем курсе мы будем придерживаться структуры, близкой к PTES, так как она наиболее логично описывает полный цикл атаки.

    Этапы работы пентестера (Краткий обзор)

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

  • Разведка (Reconnaissance): Мы собираем данные о цели. IP-адреса, почты сотрудников, используемые технологии. Чем больше мы знаем, тем легче атаковать.
  • Сканирование (Scanning): Активный поиск открытых портов и сервисов. Мы стучимся в двери, чтобы узнать, кто за ними живет.
  • Получение доступа (Exploitation): Самая «киношная» часть. Мы используем найденные уязвимости, чтобы проникнуть в систему.
  • Поддержание доступа (Maintaining Access): Установка бэкдоров (backdoors), чтобы вернуться в систему позже, даже если уязвимость закроют.
  • Заметание следов (Covering Tracks): Удаление логов и файлов, чтобы скрыть свое присутствие (в рамках этичного хакинга это делается условно или по согласованию, чтобы проверить работу синих команд — защитников).
  • Отчетность (Reporting): Написание документа, где описаны все найденные проблемы и даны рекомендации по их устранению.
  • Заключение

    Пентестинг — это сложная, но невероятно интересная профессия, требующая постоянного обучения. Сегодня мы разобрали правила игры: этику, закон и методологию. Помните: разница между экспертом и преступником — в разрешении на работу и этике.

    В следующей статье мы перейдем к практике и начнем первый этап любого взлома — Сбор информации и разведку (OSINT).

    2. Разведка и сбор информации: методы OSINT и активное сканирование сетевой инфраструктуры

    Разведка и сбор информации: методы OSINT и активное сканирование сетевой инфраструктуры

    В предыдущей статье мы заложили фундамент: разобрались с этикой, правовыми аспектами и методологиями. Теперь, когда у нас есть разрешение на работу (Scope) и подписанный договор, мы приступаем к первому и самому важному техническому этапу пентеста — разведке (Reconnaissance).

    Существует поговорка в среде специалистов по безопасности: «Нельзя взломать то, что вы не видите». По статистике, профессиональные пентестеры тратят до 60-70% времени проекта именно на сбор информации. Чем больше данных вы соберете на этом этапе, тем выше шанс найти неочевидный вектор атаки.

    Пассивная и активная разведка

    Глобально процесс сбора информации делится на два типа:

  • Пассивная разведка (Passive Reconnaissance): Вы собираете информацию о цели, не взаимодействуя с её инфраструктурой напрямую. Вы ищете данные в открытых источниках, архивах интернета, социальных сетях.
  • Риск обнаружения:* Почти нулевой. Системные администраторы цели не видят ваших запросов в своих логах.
  • Активная разведка (Active Reconnaissance): Вы напрямую взаимодействуете с серверами цели. Сюда входит сканирование портов, проверка версий сервисов, пинг-запросы.
  • Риск обнаружения:* Высокий. Системы обнаружения вторжений (IDS) и фаерволы могут зафиксировать вашу активность.

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

    OSINT: Разведка по открытым источникам

    OSINT (Open Source Intelligence) — это методология сбора и анализа информации из общедоступных источников. Это не просто «гугление», а структурированный поиск данных, которые организация случайно или намеренно оставила в сети.

    Google Dorking: Искусство поисковых запросов

    Поисковые системы индексируют гораздо больше, чем просто текст на страницах. Они видят конфигурационные файлы, документы с паролями, панели администратора и сообщения об ошибках. Используя специальные операторы (Google Dorks), мы можем найти эти сокровища.

    Основные операторы:

    * site: — поиск только по конкретному домену. * filetype: — поиск конкретных типов файлов (pdf, docx, xlsx, txt, config). * intitle: — поиск страниц, в заголовке которых есть искомое слово. * inurl: — поиск слов в URL-адресе.

    Примеры использования:

  • Поиск публичных документов компании:
  • Поиск конфигурационных файлов, которые могли быть случайно выложены:
  • Поиск панелей входа (админок):
  • > Google Hacking Database (GHDB) — это огромная база готовых дорков, поддерживаемая сообществом Exploit-DB. Там можно найти запросы для поиска уязвимых серверов, открытых веб-камер и файлов с паролями. Google Hacking Database

    DNS-разведка и Whois

    Доменные имена скрывают за собой IP-адреса и структуру сети. Наша задача — узнать, какие поддомены и почтовые серверы использует цель.

    Whois — это протокол, позволяющий узнать владельца домена, дату регистрации и контактные данные администраторов. Иногда там можно найти личную почту сисадмина, что пригодится для социальной инженерии.

    DNS-записи, которые нас интересуют:

    * A (Address): Сопоставляет доменное имя с IPv4-адресом. * MX (Mail Exchange): Указывает на почтовые серверы. Это открывает вектор атак на корпоративную почту (фишинг). * TXT: Часто содержит записи SPF (политики почты), которые могут рассказать, какие сервисы разрешено использовать для отправки писем от имени компании. * NS (Name Server): DNS-серверы, обслуживающие зону.

    Для работы с DNS в Linux используются утилиты nslookup, host и dig.

    Пример запроса MX-записей через dig:

    Поиск поддоменов (Subdomain Enumeration)

    Компании часто хорошо защищают основной сайт (www.target.com), но забывают про тестовые среды или забытые сервисы, например dev.target.com, test.target.com или vpn.target.com. Именно через такие «забытые двери» часто происходит взлом.

    Инструменты для автоматизации: * TheHarvester: Собирает email-адреса, поддомены, хосты, имена сотрудников из различных открытых источников (поисковики, PGP-серверы). * Sublist3r: Быстрый инструмент для перечисления поддоменов.

    Shodan: Поисковик для хакеров

    Если Google индексирует контент сайтов, то Shodan индексирует баннеры сервисов. Он сканирует весь интернет 24/7 и сохраняет информацию о каждом устройстве, подключенном к сети: веб-камеры, роутеры, серверы, светофоры, промышленные контроллеры.

    С помощью Shodan можно найти серверы компании, не отправляя к ним ни одного пакета самостоятельно (полная пассивность). Вы просто спрашиваете базу данных Shodan: «Покажи мне все устройства, принадлежащие IP-диапазону компании X».

    Активное сканирование: Стучимся в двери

    Собрав список IP-адресов и доменов, мы переходим к активной фазе. Теперь мы будем отправлять пакеты на серверы цели. Здесь важно помнить про Scope (область действия), оговоренную в контракте.

    Сканирование портов

    Компьютер имеет множество «дверей» для общения с внешним миром — портов. Всего их существует определенное количество, определяемое разрядностью поля в заголовке пакета.

    Количество портов рассчитывается по формуле:

    где — общее количество доступных портов (от 0 до 65535), — основание двоичной системы счисления, а — количество бит, отведенных под номер порта в протоколах TCP и UDP.

    Наша задача — найти открытые порты, то есть те, на которых запущены программы (веб-сервер, база данных, почта), готовые принять соединение.

    Nmap: Король сканеров

    Nmap (Network Mapper) — это стандарт де-факто для сканирования сетей. Он умеет определять живые хосты, открытые порты, версии сервисов и даже операционную систему.

    [VISUALIZATION: Схема процесса сканирования портов. Слева ноутбук хакера с логотипом Nmap, справа сервер-жертва. Показаны три стрелки между ними, иллюстрирующие TCP Handshake. Первая стрелка от хакера к серверу подписана