Основы пентестинга: Практический курс этичного хакинга

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

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

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

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

Что такое пентестинг?

Пентестинг (от англ. penetration testing — тестирование на проникновение) — это метод оценки безопасности компьютерных систем или сетей средствами моделирования атаки злоумышленника.

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

!Сравнение этичного хакера и злоумышленника: защита против разрушения

Основные цели пентестинга

  • Выявление уязвимостей: Найти слабые места до того, как это сделают реальные хакеры.
  • Проверка реакции защиты: Оценить, насколько эффективно работают системы мониторинга и команда безопасности (Blue Team).
  • Соблюдение стандартов: Многие индустрии (например, банковская сфера и стандарт PCI DSS) требуют регулярного проведения пентестов.
  • Правовые аспекты: Грань между работой и преступлением

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

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

    Документальная база

    Для легальной работы необходимы следующие документы:

    * NDA (Non-Disclosure Agreement): Соглашение о неразглашении. Гарантирует, что вы не сольете найденные уязвимости или данные клиента третьим лицам. * Договор на оказание услуг: Юридическое основание вашей работы. * Соглашение о границах работ (Scope of Work): Самый важный технический документ. В нем четко прописывается, какие IP-адреса, домены и подсети можно атаковать, а какие — строго запрещено.

    > Этичный хакинг заканчивается там, где начинаются действия, не согласованные с заказчиком.

    Виды тестирования: Цветовая градация

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

    !Визуализация методов Black Box, Gray Box и White Box

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

    Пентестер находится в роли внешнего хакера. У него нет никакой информации о внутренней структуре системы, исходных кодах или архитектуре. Ему известно только название компании или адрес целевого сайта.

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

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

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

    * Плюсы: Наиболее полный и глубокий анализ. Позволяет найти логические ошибки в коде и скрытые бэкдоры. * Минусы: Менее реалистично с точки зрения действий внешнего атакующего.

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

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

    * Цель: Оценить, какой ущерб может нанести инсайдер (недовольный сотрудник) или злоумышленник, взломавший аккаунт рядового пользователя.

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

    Чтобы пентест не превратился в хаотичное нажатие кнопок, специалисты следуют международным стандартам и методологиям.

    PTES (Penetration Testing Execution Standard)

    Это наиболее полный стандарт, описывающий весь жизненный цикл пентеста. Он состоит из 7 этапов:

  • Pre-engagement Interactions (Предварительное согласование): Обсуждение границ, юридические вопросы, подписание документов.
  • Intelligence Gathering (Сбор информации): OSINT (разведка по открытым источникам). Поиск IP-адресов, почт сотрудников, используемых технологий.
  • Threat Modeling (Моделирование угроз): Определение наиболее вероятных векторов атак для конкретного бизнеса.
  • Vulnerability Analysis (Анализ уязвимостей): Поиск слабых мест с помощью сканеров и ручных методов.
  • Exploitation (Эксплуатация): Попытка проникнуть в систему, используя найденные уязвимости.
  • Post Exploitation (Пост-эксплуатация): Определение ценности скомпрометированной системы. Что мы можем сделать дальше? Можем ли повысить привилегии или продвинуться глубже в сеть?
  • Reporting (Отчетность): Написание отчета с описанием найденных проблем и рекомендациями по их устранению.
  • OWASP (Open Web Application Security Project)

    Если PTES — это общий стандарт, то OWASP фокусируется на безопасности веб-приложений. Их документ OWASP Testing Guide является библией для веб-пентестеров. Также широко известен список OWASP Top 10, перечисляющий самые критичные уязвимости веб-приложений (SQL-инъекции, XSS и другие).

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

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

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

    Инструментарий пентестера

    Хотя «инструмент не делает мастера», знание софта необходимо. В нашем курсе мы будем часто использовать:

    | Категория | Инструменты | | :--- | :--- | | Операционная система | Kali Linux, Parrot OS | | Сканеры портов | Nmap, Masscan | | Анализ веб-уязвимостей | Burp Suite, OWASP ZAP | | Фреймворки эксплуатации | Metasploit Framework | | Перебор паролей | Hydra, John the Ripper |

    Заключение

    Пентестинг — это сложный, но увлекательный процесс, требующий не только технических знаний, но и высокой ответственности. Мы выяснили, что легальность действий определяется договором, а глубина проверки зависит от выбранного метода (Black/Gray/White Box).

    В следующей статье мы перейдем к практике и начнем с настройки вашей собственной лаборатории для безопасных экспериментов.

    2. Разведка и сканирование: сбор информации и анализ поверхности атаки

    Разведка и сканирование: сбор информации и анализ поверхности атаки

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

    Многие новички сразу бросаются искать эксплойты, пропуская этот шаг. Это фатальная ошибка. Вы не можете взломать то, о существовании чего не знаете. Профессиональный пентестер тратит до 60-70% времени именно на сбор информации.

    Философия разведки

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

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

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

    OSINT (Open Source Intelligence) — это разведка по открытым источникам. Интернет помнит всё, и ваша задача — найти эту информацию.

    1. Whois и регистрационные данные

    Первым делом мы узнаем, кому принадлежат домены и IP-адреса. Утилита whois или онлайн-сервисы позволяют получить информацию о владельце домена, дате регистрации и контактных данных администраторов.

    2. Google Dorking

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

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

    * site:target.com filetype:pdf — поиск всех PDF-файлов на сайте (часто содержат внутренние инструкции). * site:target.com "password" — поиск страниц, содержащих слово "пароль". * intitle:"index of" — поиск открытых директорий, где видны файлы сервера.

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

    Основной сайт компании (например, bank.com) обычно хорошо защищен. Но забытый тестовый сервер разработчиков dev.test.bank.com может содержать уязвимости пятилетней давности. Для поиска поддоменов используются инструменты вроде Sublist3r, Amass или онлайн-ресурсы типа VirusTotal.

    4. Shodan и Censys

    Если Google ищет сайты, то Shodan ищет устройства. Это поисковая система для "Интернета вещей". Она сканирует весь интернет и сохраняет баннеры сервисов. Вы можете узнать, какие порты открыты на сервере жертвы, даже не сканируя его самостоятельно.

    Активная разведка: Сканирование сети

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

    Основы сетевого взаимодействия

    Чтобы понять, как работает сканирование, нужно вспомнить, сколько всего "дверей" (портов) может быть у компьютера. Количество портов определяется структурой заголовка протокола TCP или UDP.

    Где — это общее количество возможных портов (65 536), а — это результат возведения основания двоичной системы (2) в степень 16 (количество бит, отведенных под номер порта в заголовке пакета).

    Это означает, что на одном IP-адресе нам потенциально нужно проверить более 65 тысяч точек входа. Диапазон портов делится на:

    * Well-known (0–1023): Системные порты (HTTP - 80, SSH - 22). * Registered (1024–49151): Зарегистрированные порты приложений (MySQL - 3306). * Dynamic (49152–65535): Временные порты.

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

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

    #### Типы сканирования в Nmap

  • TCP Connect Scan (-sT): Nmap выполняет полное тройное рукопожатие (Three-Way Handshake). Это самый надежный, но и самый "шумный" метод, так как соединение полностью устанавливается и логируется сервером.
  • SYN Scan (-sS): Также известен как "полуоткрытое" сканирование. Nmap посылает SYN-пакет (запрос на соединение). Если порт открыт, сервер отвечает SYN-ACK. Nmap не завершает соединение, а сразу посылает RST (сброс). Это быстрее и менее заметно для старых систем логирования.
  • UDP Scan (-sU): Сканирование протокола UDP. Оно идет значительно медленнее, так как UDP не требует подтверждения получения пакета, и сканеру приходится ждать таймаута.
  • Пример базовой команды для сканирования:

    * -sS: SYN-сканирование (скрытное). * -sV: Определение версий сервисов (Version Detection). * -p-: Сканировать все 65535 портов, а не только 1000 популярных.

    Banner Grabbing

    Узнав, что порт открыт, нам нужно понять, что именно там работает. Banner Grabbing — это техника получения текстового приветствия от сервиса. Например, подключившись к 22 порту, мы можем увидеть: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3. Эта строка сразу говорит нам версию ПО и операционную систему, что позволяет искать специфичные уязвимости (CVE) для этой версии.

    Анализ поверхности атаки (Attack Surface)

    Собрав все данные (домены, IP, открытые порты, версии ПО), мы формируем поверхность атаки. Это совокупность всех точек, через которые злоумышленник может попытаться проникнуть в систему.

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

    Где — примерное время сканирования, — количество хостов (hosts) в сети, — количество проверяемых портов на каждом хосте, а — скорость сканирования (rate), выраженная в пакетах в секунду. Эта формула помогает планировать время пентеста: если у заказчика сеть класса B (65 тысяч хостов) и нужно проверить все порты, сканирование может занять недели без оптимизации.

    Карта сети

    Результатом этапа разведки должна стать карта, на которой отмечены:

  • Внешний периметр: Сайты, VPN-шлюзы, почтовые сервера.
  • Теневые активы: Забытые сервера, о которых не знал даже IT-отдел заказчика.
  • Связи: Как поддомены связаны с основными серверами.
  • > Хороший пентестер видит сеть не так, как её нарисовал системный администратор, а так, как она выглядит на самом деле.

    Заключение

    Разведка — это фундамент. Если вы пропустите открытый порт на забытом сервере разработки, вы можете упустить единственный путь к успешному взлому. Мы научились собирать информацию пассивно (OSINT) и активно (Nmap), а также поняли, как формируется поверхность атаки.

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