Профессия Пентестер: Полный курс по этичному хакингу

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

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

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

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

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

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

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

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

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

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

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

    * Статья 272 УК РФ. Неправомерный доступ к компьютерной информации. Наказывается штрафом или лишением свободы. Достаточно просто скопировать закрытые данные, чтобы попасть под эту статью. * Статья 273 УК РФ. Создание, использование и распространение вредоносных компьютерных программ. Если вы скачали вирус для тестов и случайно отправили его в сеть — это преступление. * Статья 274 УК РФ. Нарушение правил эксплуатации средств хранения, обработки или передачи компьютерной информации и информационно-телекоммуникационных сетей.

    Документация и границы дозволенного

    Перед началом любых работ профессиональный пентестер подписывает несколько документов:

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

    Если в Scope of Work указан IP-адрес 192.168.1.5, а вы решили «заодно» проверить 192.168.1.6, вы нарушили закон. Четкое следование техническому заданию — признак профессионализма.

    Виды пентестинга

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

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

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

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

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

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

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

    !Визуализация методов тестирования: Black Box, White Box и Grey Box

    Настройка лаборатории пентестера

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

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

    Шаг 1: Выбор гипервизора

    Гипервизор — это программа, управляющая виртуальными машинами. Два самых популярных решения:

    * Oracle VirtualBox — бесплатный, открытый, кроссплатформенный. Идеален для новичков. * VMware Workstation Player — бесплатная версия для личного использования. Считается более стабильной и производительной, но имеет закрытый исходный код.

    Для нашего курса мы рекомендуем VirtualBox, так как он прост в настройке и имеет огромное сообщество.

    Шаг 2: Машина атакующего (Kali Linux)

    Стандартом де-факто в мире этичного хакинга является операционная система Kali Linux. Это дистрибутив на базе Linux (Debian), в который уже предустановлены сотни инструментов для пентестинга: сканеры сетей, взломщики паролей, анализаторы трафика и фреймворки для эксплуатации.

    Вам не нужно устанавливать Kali как основную систему на свой ноутбук. Мы скачаем готовый образ виртуальной машины с официального сайта Kali.org и импортируем его в VirtualBox.

    Шаг 3: Машина жертвы (Metasploitable 2)

    Атаковать самого себя скучно. Нам нужна цель. Для этого существуют специально созданные уязвимые машины. Одной из лучших для старта является Metasploitable 2.

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

    ВНИМАНИЕ: Никогда не выставляйте Metasploitable в открытый интернет (режим сетевого моста). Ее взломают за считанные минуты реальные злоумышленники и могут использовать для атак на вашу домашнюю сеть.

    Шаг 4: Сетевая изоляция

    Чтобы ваша лаборатория была безопасной, необходимо правильно настроить сеть в VirtualBox. Мы будем использовать режим «Внутренняя сеть» (Internal Network) или «Сетевой мост» (NAT Network).

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

    При такой настройке:

  • Виртуальные машины видят друг друга (Kali может атаковать Metasploitable).
  • Виртуальные машины могут выходить в интернет для обновлений (через NAT).
  • Из интернета никто не может подключиться к вашим виртуальным машинам.
  • Резюме

    Сегодня мы заложили первый камень в фундамент вашей новой профессии. Мы усвоили, что этичный хакинг невозможен без разрешения владельца системы. Мы разобрали юридические риски и поняли, что такое Scope of Work. Наконец, мы определили архитектуру нашей домашней лаборатории: VirtualBox + Kali Linux + Metasploitable.

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

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

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

    В предыдущей статье мы подготовили нашу лабораторию: установили Kali Linux и запустили уязвимую машину Metasploitable. Теперь, когда у нас есть инструменты и цель, пришло время действовать. Но профессиональный пентестер не бросается в атаку сразу. Сначала он наблюдает.

    Этап сбора информации (Information Gathering) — самый важный в работе этичного хакера. По статистике, он занимает до 70-80% времени всего проекта. Чем больше вы узнаете о цели до начала активных действий, тем выше шансы на успех и ниже риск быть обнаруженным.

    Мы разделим этот процесс на два этапа:

  • Пассивная разведка (OSINT) — сбор данных из открытых источников без прямого контакта с целью.
  • Активная разведка (Scanning) — взаимодействие с целевой системой для выявления открытых портов и сервисов.
  • Пассивная разведка: OSINT

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

    Google Dorking: искусство поиска

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

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

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

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

  • Поиск публичных PDF-документов на сайте цели (часто содержат метаданные, имена сотрудников, версии ПО):
  • site:example.com filetype:pdf
  • Поиск открытых конфигурационных файлов:
  • site:example.com filetype:conf
  • Поиск панелей входа (админок):
  • site:example.com inurl:admin

    TheHarvester

    В Kali Linux есть мощный инструмент для автоматизации OSINT — TheHarvester. Он собирает email-адреса, поддомены, имена хостов и открытые порты, используя Google, Bing, LinkedIn и другие источники.

    Запуск в терминале:

    Где -d указывает домен цели, а -b — источник данных (в данном случае Google).

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

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

    С помощью Shodan можно узнать, какие порты открыты на сервере компании и какое ПО там используется, даже не сканируя этот сервер самостоятельно.

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

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

    > Важно: Активное сканирование оставляет следы в логах (журналах событий) систем защиты (IDS/IPS/Firewall). Без письменного разрешения (Scope of Work) это действие является незаконным.

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

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

    Компьютер в сети имеет IP-адрес (как адрес дома) и множество портов (как двери в квартиры). Каждый порт связан с определенной службой (программой).

    Всего существует следующее количество портов:

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

    Наша задача — найти «открытые двери» (порты) и узнать, кто за ними живет (версию сервиса).

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

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

    #### Базовое сканирование

    Запустите Kali Linux и Metasploitable. Узнайте IP-адрес Metasploitable (команда ifconfig внутри Metasploitable, например, это будет 10.0.2.5).

    Самая простая команда:

    Nmap проверит 1000 самых популярных портов и покажет, какие из них открыты.

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

    Nmap умеет сканировать по-разному. Два основных метода:

  • TCP Connect Scan (-sT). Nmap выполняет полное подключение к порту. Это надежно, но очень шумно и легко обнаруживается.
  • SYN Scan / Stealth Scan (-sS). Это режим по умолчанию (если вы root). Nmap не завершает соединение, обрывая его на полпути. Это быстрее и менее заметно.
  • !Сравнение полного TCP-соединения и скрытного SYN-сканирования

    #### Определение версий сервисов и ОС

    Просто знать, что порт 80 открыт — мало. Нам нужно знать, что там работает: Apache, Nginx или IIS? И какой версии? Старые версии часто содержат уязвимости.

    Используйте флаг -sV (Service Version):

    Чтобы попытаться определить операционную систему цели, добавьте флаг -O:

    #### Агрессивное сканирование

    Для получения максимума информации одной командой используется флаг -A. Он включает определение ОС, версий, скриптовое сканирование и трассировку:

    Интерпретация результатов

    После сканирования Metasploitable вы увидите вывод, похожий на этот:

    | PORT | STATE | SERVICE | VERSION | | :--- | :--- | :--- | :--- | | 21/tcp | open | ftp | vsftpd 2.3.4 | | 22/tcp | open | ssh | OpenSSH 4.7p1 | | 80/tcp | open | http | Apache httpd 2.2.8 |

    Что это нам дает?

  • 21 порт (FTP): Работает программа vsftpd версии 2.3.4. Это критически важная информация. В будущем мы узнаем, что именно эта версия содержит знаменитый бэкдор (лазейку).
  • 80 порт (HTTP): Работает старый Apache. Возможно, на сайте есть уязвимые веб-скрипты.
  • Статусы портов

    Nmap может показать не только open (открыт), но и другие статусы: * Closed (Закрыт): На порту никто не слушает. Соединение сбрасывается. * Filtered (Фильтруется): Nmap не может определить, открыт порт или нет, так как пакеты блокируются межсетевым экраном (фаерволом). Это признак того, что защита активна.

    Резюме

    Сегодня мы научились видеть невидимое. Мы разобрали:

  • OSINT: Как использовать Google и специальные инструменты для сбора данных без риска обнаружения.
  • Nmap: Как проводить активное сканирование, находить открытые порты и определять версии сервисов.
  • Теперь у нас есть карта атаки. Мы знаем, какие «двери» открыты и какие «замки» (версии ПО) на них висят. В следующей статье мы перейдем к этапу анализа уязвимостей, где научимся подбирать ключи к этим замкам.

    Домашнее задание

  • Запустите Kali Linux и Metasploitable в VirtualBox.
  • Проведите сканирование Metasploitable с ключом -A.
  • Сохраните результаты в текстовый файл для дальнейшего анализа.
  • Попробуйте найти в Google информацию о найденных версиях сервисов (например, введите в поиск vsftpd 2.3.4 vulnerabilities).
  • 3. Анализ защищенности веб-приложений и работа с уязвимостями OWASP Top 10

    Анализ защищенности веб-приложений и работа с уязвимостями OWASP Top 10

    В предыдущей статье мы научились сканировать сеть и находить открытые порты с помощью Nmap. Вы наверняка заметили, что на нашей учебной машине Metasploitable открыт порт 80 (HTTP). Это «парадная дверь» веб-сервера. За ней скрываются веб-приложения — сайты, порталы, административные панели и API.

    Сегодня веб-приложения являются самой популярной целью для хакеров. Почему? Потому что они доступны из любой точки мира 24/7 и часто содержат критически важные данные: от номеров кредитных карт до персональной информации пользователей. В этой статье мы погрузимся в мир веб-хакинга, познакомимся с главным инструментом пентестера — Burp Suite, и разберем «библию» веб-безопасности — рейтинг OWASP Top 10.

    Архитектура веб-приложений: как это работает?

    Прежде чем ломать, нужно понять, как это устроено. Веб работает по модели Клиент-Сервер.

  • Клиент (ваш браузер) отправляет HTTP-запрос (Request). Например: «Покажи мне страницу профиля пользователя с ID=5».
  • Сервер обрабатывает запрос, обращается к базе данных, формирует HTML-код и отправляет HTTP-ответ (Response).
  • Проблема возникает, когда сервер слепо доверяет тому, что прислал клиент. Пентестер — это тот, кто отправляет серверу неожиданные данные, чтобы заставить его совершить ошибку.

    Инструментарий: Burp Suite

    Браузер скрывает от нас «подкапотную» часть общения с сервером. Чтобы видеть и изменять запросы «на лету», нам нужен Proxy-сервер.

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

    !Схема работы Intercepting Proxy: Burp Suite как посредник между клиентом и сервером

    В Kali Linux предустановлена бесплатная версия Burp Suite Community Edition. Для начала работы вам нужно запустить Burp и настроить браузер (обычно используется встроенный в Burp браузер Chromium) на работу через него.

    OWASP Top 10: Карта миннoго поля

    В мире веб-безопасности существует организация OWASP (Open Web Application Security Project). Каждые несколько лет они выпускают документ OWASP Top 10 — рейтинг десяти самых критичных уязвимостей веб-приложений. Это не просто список, это стандарт, на который ориентируются все: и защитники, и нападающие.

    Давайте разберем самые опасные и распространенные уязвимости из этого списка, с которыми вы столкнетесь в нашей лаборатории Metasploitable (в приложении DVWA — Damn Vulnerable Web App).

    1. Инъекции (Injection)

    Инъекция происходит, когда недоверенные данные, отправленные пользователем, интерпретируются сервером как часть команды или кода. Самый известный вид — SQL-инъекция (SQLi).

    Представьте, что код сайта проверяет логин и пароль так:

    Если вы введете имя admin, запрос будет искать пользователя admin. Но что, если вместо имени вы введете специальную конструкцию?

    Допустим, злоумышленник вводит в поле логина: admin' OR '1'='1.

    В основе SQL-инъекций часто лежит булева логика (алгебра логики). Рассмотрим простейшее логическое выражение, которое использует хакер:

    Где: * — первое утверждение (например, username = 'admin'), которое может быть ложным. * — логический оператор «ИЛИ» (OR). * — второе утверждение (например, '1'='1'), которое всегда истинно. * — результат вычисления, который всегда будет «Истина» (True), так как в логике «ИЛИ» достаточно одной правды.

    В итоге база данных получает команду: «Найди пользователя, у которого имя admin ИЛИ у которого 1 равно 1». Так как 1 всегда равно 1, база данных возвращает первую запись в таблице — обычно это аккаунт администратора. Вы вошли в систему без пароля.

    2. Некорректный контроль доступа (Broken Access Control)

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

    Пример IDOR (Insecure Direct Object References):

    Вы заходите в свой профиль на сайте банка и видите в адресной строке URL: https://bank.com/account?id=1050

    Что сделает пентестер? Он попробует изменить id=1050 на id=1051.

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

    3. XSS (Cross-Site Scripting) — Межсайтовый скриптинг

    Если SQL-инъекция атакует базу данных (сервер), то XSS атакует других пользователей (клиентов).

    Уязвимость возникает, когда приложение вставляет данные пользователя на страницу без фильтрации. Злоумышленник может внедрить вредоносный JavaScript-код.

    Существует три основных типа XSS:

  • Stored (Хранимая): Самая опасная. Хакер оставляет комментарий на форуме, содержащий скрипт <script>alert('Hacked')</script>. Этот комментарий сохраняется в базе данных. Теперь каждый, кто зайдет на эту страницу, «заразится» — его браузер выполнит скрипт.
  • Reflected (Отраженная): Скрипт не сохраняется на сервере, а передается в ссылке. Хакер отправляет жертве ссылку вида site.com/search?q=<script>.... Если жертва нажмет на нее, скрипт выполнится.
  • DOM-based: Уязвимость в клиентском JavaScript-коде на самой странице.
  • !Механизм работы хранимой XSS атаки

    Чем это опасно? С помощью JavaScript можно украсть Session ID (сессионные куки). Получив куки пользователя, хакер может войти в его аккаунт, не зная логина и пароля.

    4. Небезопасная конфигурация (Security Misconfiguration)

    Это «человеческий фактор» администраторов. Сюда относятся: * Оставленные стандартные пароли (admin/admin). * Включенные режимы отладки, которые показывают подробные ошибки с путями к файлам. * Открытые облачные хранилища (AWS S3 buckets). * Устаревшее программное обеспечение (то, что мы искали с помощью nmap -sV).

    Практика в лаборатории

    В вашей виртуальной машине Metasploitable есть веб-приложение DVWA (Damn Vulnerable Web App). Это специальный тренировочный полигон.

    Чтобы попасть в него:

  • Узнайте IP-адрес Metasploitable (например, 10.0.2.5).
  • В Kali Linux откройте браузер Firefox.
  • Введите в адресную строку http://10.0.2.5/dvwa.
  • Логин/пароль по умолчанию: admin / password.
  • В DVWA есть настройки уровня сложности (Security Level). Для начала всегда ставьте Low. Ваша задача — пройти разделы «SQL Injection» и «XSS», используя знания из этой статьи.

    > «Безопасность — это не продукт, это процесс». — Брюс Шнайер, эксперт по криптографии и компьютерной безопасности. Блог Брюса Шнайера

    Резюме

    Веб-пентестинг — это огромная область, требующая понимания того, как работают браузеры, протоколы и базы данных. Сегодня мы разобрали:

  • Burp Suite — наши «очки ночного видения» для анализа трафика.
  • OWASP Top 10 — список главных угроз.
  • SQLi и XSS — два самых популярных метода атак.
  • Главное правило защиты от большинства этих уязвимостей — никогда не доверять пользовательскому вводу. Все данные, приходящие от клиента, должны проходить строгую фильтрацию и валидацию.

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

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

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

    Мы прошли долгий путь: настроили лабораторию, провели разведку (OSINT), просканировали порты с помощью Nmap и даже проанализировали веб-уязвимости. Теперь у нас есть список потенциальных «дыр» в безопасности. Настало время самого захватывающего этапа — эксплуатации.

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

    Основы эксплуатации: Терминология

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

  • Уязвимость (Vulnerability) — ошибка в коде или конфигурации системы (например, «дыра» в сервисе FTP).
  • Эксплойт (Exploit) — программа или скрипт, который использует эту уязвимость, чтобы «пробить» защиту. Это ваш таран.
  • Пейлоад (Payload) — полезная нагрузка. Это код, который выполняется на системе жертвы после того, как эксплойт сработал. Обычно это командная оболочка (shell), позволяющая управлять компьютером.
  • > «Эксплойт — это способ открыть дверь, а пейлоад — это то, кого вы впускаете внутрь».

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

    Перед запуском эксплойта профессионал всегда оценивает риски. Неудачный эксплойт может обрушить сервис (вызвать Denial of Service). В профессиональной среде риск рассчитывается по формуле:

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

    Metasploit Framework: Оружие профессионала

    Если Nmap — это король сканеров, то Metasploit Framework (MSF) — это король эксплуатации. Это огромная база данных готовых эксплойтов и инструментов для их доставки.

    В Kali Linux он запускается командой:

    Структура Metasploit

    MSF состоит из модулей: * Exploits: Код для использования уязвимостей. * Payloads: Код, выполняемый после взлома (например, shell). * Auxiliary: Вспомогательные модули (сканеры, фаззеры). * Post: Модули для работы после взлома (сбор паролей, слежка).

    Практика: Взлом vsftpd 2.3.4

    В статье про сканирование мы обнаружили на машине Metasploitable сервис vsftpd 2.3.4 на 21 порту. Это легендарная уязвимость: разработчик случайно (или намеренно) оставил в коде бэкдор. Если в имени пользователя ввести смайлик :), сервер открывает доступ к системе.

    Алгоритм действий в Metasploit:

  • Поиск эксплойта:
  • Выбор модуля:
  • Настройка цели:
  • Нам нужно указать IP-адрес жертвы (RHOSTS — Remote Hosts). (Замените 10.0.2.5 на IP вашей Metasploitable машины)
  • Запуск:
  • Если все прошло успешно, вы увидите приглашение командной строки. Поздравляем, вы внутри!

    Типы оболочек (Shells): Bind vs Reverse

    Когда вы получаете доступ к системе, вам нужен канал связи для отправки команд. Существует два основных типа соединения.

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

    Атакующий подключается к жертве. Эксплойт открывает порт на машине жертвы (например, 4444) и ждет, пока хакер к нему подсоединится.

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

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

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

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

    !Сравнение Bind Shell (блокируется фаерволом) и Reverse Shell (обходит фаервол)

    Повышение привилегий (Privilege Escalation)

    Часто после взлома вы получаете права обычного пользователя или сервисного аккаунта (например, www-data). Этого недостаточно для полного контроля. Вам нужен root (в Linux) или SYSTEM/Administrator (в Windows).

    Этот процесс называется Privilege Escalation (PrivEsc).

    Горизонтальное и Вертикальное повышение

    * Горизонтальное: Вы захватили аккаунт менеджера Бориса и получили доступ к аккаунту бухгалтера Анны. Уровень прав тот же, но данные другие. * Вертикальное: Вы были обычным пользователем, а стали администратором.

    Методы повышения прав в Linux

  • Эксплойты ядра (Kernel Exploits):
  • Если операционная система старая (как в Metasploitable), в самом ядре Linux могут быть ошибки. Знаменитый пример — Dirty COW. Запуск такого эксплойта мгновенно дает права root.

  • SUID бинарники:
  • В Linux есть файлы с флагом SUID. При запуске такой программы она выполняется с правами владельца файла (обычно root), а не того, кто её запустил. Если в такой программе есть уязвимость, через нее можно стать рутом. Поиск таких файлов:

  • Небезопасная конфигурация sudo:
  • Иногда администраторы разрешают пользователям запускать определенные команды от имени root без пароля. Проверить свои права можно командой:

    Обход средств защиты (Evasion)

    Современные антивирусы (AV) и системы обнаружения вторжений (IDS) не дремлют. Если вы попытаетесь отправить стандартный пейлоад Metasploit, его, скорее всего, заблокируют.

    Кодирование (Encoding)

    Антивирусы часто ищут известные последовательности байтов (сигнатуры). Чтобы обмануть их, хакеры используют кодировщики (Encoders). Они меняют вид кода, но сохраняют его функциональность.

    В Metasploit популярным кодировщиком является Shikata Ga Nai (с японского «ничего не поделаешь»). Он полиморфный — каждый раз генерирует разный код.

    Пример генерации вредоносного файла с кодированием:

    Living off the Land (LotL)

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

    * В Windows: использование PowerShell или Certutil для скачивания и запуска кода. * В Linux: использование Bash, Python или Perl для создания Reverse Shell.

    Пример Reverse Shell на Python (одной строкой):

    Антивирус не среагирует, так как Python — это легальная программа.

    Резюме

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

  • Как использовать Metasploit для автоматизации атак.
  • Почему Reverse Shell эффективнее прямого подключения.
  • Зачем нужно повышение привилегий и как стать root.
  • Как маскировать свои действия методами Evasion.
  • Помните: полученный доступ — это огромная ответственность. В следующей, заключительной статье курса, мы разберем то, что отличает преступника от профессионала: написание отчета и рекомендации по устранению уязвимостей.

    5. Пост-эксплуатация, закрепление в системе и составление профессионального отчета

    Пост-эксплуатация, закрепление в системе и составление профессионального отчета

    Поздравляю! В предыдущих модулях мы прошли путь от разведки до получения оболочки (shell) на целевой машине. Вы видите заветный символ # или C:\>, означающий, что у вас есть доступ. У новичка на этом этапе возникает эйфория и желание бежать дальше. У профессионала начинается настоящая работа.

    Взлом — это лишь 30% успеха. Остальные 70% — это умение удержать доступ, продвинуться глубже в сеть, собрать доказательства и, самое главное, грамотно описать всё это в отчете. Ведь заказчик платит не за то, что вы «крутой хакер», а за документ, который поможет ему защитить бизнес.

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

    Пост-эксплуатация: Сбор трофеев

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

    Сбор информации (Enumeration)

    Первым делом нужно осмотреться. В Linux мы проверяем:

    * whoami — кто мы? * id — в каких мы группах? * cat /etc/shadow — хеши паролей пользователей (если мы root). * cat /root/.bash_history — история команд администратора (там часто бывают пароли). * netstat -antp — активные сетевые соединения.

    В Windows мы ищем файлы конфигурации, сохраненные пароли в браузерах и дампим базу SAM (Security Account Manager) или память процесса LSASS, чтобы извлечь хеши паролей администраторов. Для этого часто используется инструмент Mimikatz.

    Пивотинг (Pivoting)

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

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

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

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

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

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

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

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

  • Cron Jobs: Планировщик задач. Можно добавить задачу, которая каждые 5 минут будет запускать ваш Reverse Shell.
  • SSH Keys: Если у вас есть root, вы можете сгенерировать свою пару ключей и добавить публичный ключ в файл /root/.ssh/authorized_keys. Теперь вы сможете заходить по SSH без пароля в любое время.
  • Методы закрепления в Windows

  • Реестр (Registry Run Keys): Программы, прописанные в ветке HKCU\Software\Microsoft\Windows\CurrentVersion\Run, запускаются автоматически при входе пользователя.
  • Службы (Services): Создание вредоносной службы, которая стартует вместе с системой.
  • Заметание следов

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

    В процессе работы вы создаете файлы (эксплойты, скрипты сбора данных) и генерируете логи.

  • Удаление файлов: Всегда удаляйте загруженные инструменты из папок /tmp или C:\Windows\Temp.
  • Очистка логов: В Linux логи хранятся в /var/log (auth.log, syslog). В Windows — в Event Viewer.
  • > «Удалять логи полностью — плохая идея. Это сразу вызовет подозрение у администратора, который увидит пустой файл. Профессионалы редактируют логи, удаляя только свои записи».

    Составление отчета: Главный продукт пентестера

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

    Профессиональный отчет о пентесте всегда состоит из двух основных частей:

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

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

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

    Пример: Плохо: «Мы проэксплуатировали уязвимость MS17-010 через 445 порт используя EternalBlue». Хорошо: «Мы обнаружили критическую ошибку в настройке серверов, которая позволяет злоумышленнику получить полный контроль над финансовой отчетностью и остановить работу бухгалтерии».

    Для оценки финансовых рисков в отчетах часто используют формулу ALE (Annualized Loss Expectancy):

    Где — ожидаемые годовые потери (сумма, которую компания рискует потерять за год), — потери от одного успешного инцидента (Single Loss Expectancy), а — ежегодная частота возникновения угрозы (Annualized Rate of Occurrence).

    Эта формула помогает бизнесу понять: стоит ли тратить 1 миллион рублей на защиту, если риск потерь составляет всего 100 тысяч рублей в год?

    2. Технический отчет (Technical Report)

    Эта часть для системных администраторов и разработчиков. Здесь нужны максимальные подробности.

    Структура описания уязвимости:

  • Название и CVSS: (например, SQL Injection, CVSS 9.8).
  • Описание: В чем суть проблемы.
  • Доказательство (Proof of Concept): Скриншоты, куски кода, пошаговая инструкция по воспроизведению. Администратор должен суметь повторить ваши действия.
  • Рекомендации (Remediation): Как исправить. Не просто «обновите систему», а конкретные шаги или примеры безопасного кода.
  • Система оценки CVSS

    Чтобы не спорить, какая уязвимость важнее, используется стандарт CVSS (Common Vulnerability Scoring System). Это калькулятор, который выдает балл от 0.0 до 10.0.

    Оценка базируется на метриках. Упрощенно логику можно представить так:

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

    Этика и завершение работ

    После сдачи отчета ваша работа не заканчивается. Хорошим тоном считается:

  • Retest (Повторное тестирование): Через месяц заказчик исправляет ошибки, и вы проверяете, действительно ли «дыры» закрыты.
  • Удаление данных: Вы обязаны уничтожить все данные клиента (базы данных, пароли), которые скопировали к себе на компьютер в процессе теста. Хранить их — преступление.
  • Заключение курса

    Мы прошли большой путь в курсе «Профессия Пентестер».

  • Мы начали с этики и законов, поняв, что разрешение — это главное отличие хакера от преступника.
  • Мы изучили OSINT и сканирование, научившись находить цели.
  • Мы разобрали веб-уязвимости, поняв, как ломать сайты.
  • И сегодня мы завершили цикл пост-эксплуатацией и отчетами.
  • Помните: кибербезопасность — это бесконечная гонка. Технологии меняются каждый день. Чтобы оставаться профессионалом, вы должны учиться постоянно. Используйте полученные знания во благо, защищайте системы и делайте цифровой мир безопаснее.

    Удачи в ваших первых пентестах!