Этичный хакинг с нуля: Основы пентестинга

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

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

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

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

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

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

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

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

!Иллюстрация, показывающая составляющие этичного хакинга

Классификация хакеров («Шляпы»)

В сообществе принято делить хакеров по цветам «шляп» (термин пришел из вестернов):

| Тип | Описание | Мотивация | Законность | | :--- | :--- | :--- | :--- | | White Hat (Белые шляпы) | Этичные хакеры, пентестеры. | Улучшение безопасности, зарплата, контракт. | Полностью легально. | | Black Hat (Черные шляпы) | Киберпреступники. | Финансовая выгода, шпионаж, вандализм. | Нелегально. | | Grey Hat (Серые шляпы) | Исследователи, действующие на грани. | Любопытство, слава, иногда выгода. | «Серая зона», часто незаконно. |

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

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

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

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

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

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

    * NDA (Non-Disclosure Agreement) — соглашение о неразглашении конфиденциальной информации. * Соглашение о проведении работ — документ, в котором четко прописаны цели, сроки и границы дозволенного.

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

    Это один из важнейших терминов. Scope определяет, что именно вы имеете право атаковать. Например, заказчик может разрешить проверку веб-сайта example.com, но категорически запретить трогать сервер базы данных или личные ноутбуки сотрудников.

    Выход за пределы Scope (Out of Scope) может привести к юридическим последствиям и разрушению карьеры.

    Базовая терминология

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

    * Уязвимость (Vulnerability) — это слабое место в системе, программном обеспечении или процессе, которое может быть использовано для нарушения политики безопасности. Пример: незакрытая «дыра» в коде сайта, позволяющая читать чужие сообщения. * Эксплойт (Exploit) — это программный код или последовательность команд, которые используют уязвимость для проведения атаки. Если уязвимость — это открытый замок, то эксплойт — это ключ к нему. * Пэйлоад (Payload) — «полезная нагрузка». Это код, который выполняется на системе после успешной эксплуатации уязвимости. Пример: программа, которая открывает удаленный доступ к компьютеру жертвы. * Zero-day (Уязвимость нулевого дня) — уязвимость, о которой еще не знает разработчик программы, и для которой не существует исправления (патча). * Пентест (Penetration Test) — санкционированная имитация кибератаки на компьютерную систему для оценки ее безопасности.

    Настройка лаборатории

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

    Нам понадобятся три компонента:

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

    Шаг 1: Установка Гипервизора

    Мы будем использовать VirtualBox (бесплатный и кроссплатформенный) или VMware Workstation Player.

  • Скачайте VirtualBox с официального сайта.
  • Установите его как обычную программу.
  • Также рекомендуется установить VirtualBox Extension Pack для поддержки USB и других функций.
  • Шаг 2: Машина атакующего — Kali Linux

    Kali Linux — это специализированный дистрибутив Linux, созданный для пентестеров. В нем уже предустановлены сотни инструментов для хакинга (Nmap, Metasploit, Wireshark, Burp Suite и др.).

  • Перейдите на сайт kali.org.
  • Выберите раздел Virtual Machines (это важно, скачивайте готовый образ для VirtualBox, а не установочный ISO).
  • Скачайте файл (обычно это архив .7z или .ova).
  • Импортируйте файл в VirtualBox (Файл -> Импорт конфигураций).
  • Запустите машину. Логин и пароль по умолчанию часто: kali / kali.
  • Шаг 3: Машина жертвы — Metasploitable 2

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

  • Найдите и скачайте образ Metasploitable 2 (доступен на SourceForge).
  • Распакуйте архив.
  • В VirtualBox нажмите «Создать», выберите тип Linux (Ubuntu 64-bit).
  • В разделе жесткого диска выберите «Использовать существующий виртуальный жесткий диск» и укажите файл .vmdk из скачанного архива.
  • Шаг 4: Сетевая изоляция (КРИТИЧЕСКИ ВАЖНО)

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

  • В настройках VirtualBox для обеих машин (Kali и Metasploitable) перейдите в раздел «Сеть».
  • Выберите тип подключения: «Сетевой мост» (Bridged) — если вы понимаете риски, но лучше для начала выбрать «NAT Network» или «Виртуальный адаптер хоста» (Host-only).
  • * В режиме Host-only машины видят друг друга и ваш компьютер, но не имеют доступа в интернет. Это самый безопасный вариант. * В режиме NAT Network машины видят друг друга и имеют доступ в интернет через ваш ПК, но из интернета к ним не попасть.

    Рекомендуемая настройка для старта: Создайте в VirtualBox новую «NAT Network» (Файл -> Инструменты -> Менеджер сетей) и подключите обе машины к этой сети. Так у вас будет интернет на Kali для обновлений, и связь с Metasploitable.

    Проверка работоспособности

  • Запустите обе машины.
  • В Metasploitable войдите в систему (логин: msfadmin, пароль: msfadmin).
  • Узнайте IP-адрес жертвы, введя команду:
  • Запишите IP-адрес (например, 10.0.2.5).
  • Перейдите в Kali Linux, откройте терминал и попробуйте «пропинговать» жертву:
  • (замените адрес на тот, который вы увидели в Metasploitable).

    Если пинг идет (вы видите ответы с временем отклика) — поздравляю! Ваша лаборатория готова к работе.

    Заключение

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

    Помните: великая сила налагает великую ответственность. Используйте полученные знания только для защиты и обучения.

    2. Фундамент хакера: основы сетей, протоколы TCP/IP и работа в Linux Kali

    Фундамент хакера: основы сетей, протоколы TCP/IP и работа в Linux Kali

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

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

    Сетевые модели: как данные путешествуют по проводам

    Когда вы открываете сайт в браузере, происходит сложный процесс передачи данных. Чтобы стандартизировать этот хаос, были придуманы сетевые модели. Самая известная теоретическая модель — OSI (Open Systems Interconnection), но на практике весь интернет работает на стеке протоколов TCP/IP.

    !Сравнение теоретической модели OSI и практической модели TCP/IP

    Для хакера критически важны следующие понятия:

    1. IP-адрес и MAC-адрес

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

    * MAC-адрес (Media Access Control) — это физический адрес сетевой карты, «зашитый» на заводе. Это как отпечаток пальца устройства. Он работает только внутри локальной сети. Пример: 00:1A:2B:3C:4D:5E. * IP-адрес (Internet Protocol) — это логический адрес, выдаваемый устройству в сети. Это как почтовый адрес дома. Он позволяет найти устройство в глобальной сети. Пример: 192.168.1.5.

    > В локальной сети компьютеры общаются по MAC-адресам, но ищут друг друга по IP-адресам, используя протокол ARP. Атаки на этот протокол (ARP Spoofing) позволяют перехватывать чужой трафик.

    2. Порты и Протоколы

    Если IP-адрес — это адрес дома, то порт — это номер квартиры, в которой живет конкретная программа (сервис). Веб-сервер обычно живет в квартире №80, а почтовый сервер — в №25.

    Количество возможных портов ограничено математически. Поле номера порта в заголовке пакета занимает 16 бит. Рассчитаем максимальное количество портов:

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

    Это значит, что порты нумеруются от 0 до 65535. Хакеры сканируют эти порты, чтобы найти «открытые двери» — запущенные программы, которые можно атаковать.

    Транспортный уровень: TCP против UDP

    На транспортном уровне решается, как именно доставлять данные. Есть два главных игрока:

  • TCP (Transmission Control Protocol) — надежный протокол. Он гарантирует, что все данные дойдут в правильном порядке. Это как заказное письмо с уведомлением о вручении. Используется для загрузки сайтов, файлов, почты.
  • UDP (User Datagram Protocol) — быстрый, но ненадежный протокол. Он отправляет данные и не проверяет, дошли ли они. Это как крикнуть кому-то через улицу: часть слов может потеряться в шуме. Используется для видеозвонков и онлайн-игр.
  • Трехстороннее рукопожатие (Three-Way Handshake)

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

    !Схема установки TCP-соединения: SYN, SYN-ACK, ACK

  • SYN (Synchronize): Клиент говорит «Привет, хочу поговорить». Хакер отправляет этот пакет, чтобы проверить, открыт ли порт.
  • SYN-ACK (Synchronize-Acknowledge): Если порт открыт, сервер отвечает «Привет, я готов». Если закрыт — сервер отправляет RST (Reset).
  • ACK (Acknowledge): Клиент подтверждает «Отлично, начинаем».
  • > Популярный инструмент Nmap часто использует «полуоткрытое» сканирование (STEALTH scan). Он отправляет SYN, получает SYN-ACK, но не отправляет последний ACK, а сразу разрывает соединение (RST). Это позволяет узнать статус порта, не создавая полноценного соединения, которое может быть записано в логах.

    Основы работы в Kali Linux

    Kali Linux — это ваш основной инструмент. Большинство хакерских утилит не имеют красивых кнопок и графического интерфейса. Они работают в Терминале (консоли). Это дает огромную скорость и возможность автоматизации.

    Запустите вашу виртуальную машину Kali и откройте терминал (значок черного квадрата в верхней панели).

    Навигация по файловой системе

    В Linux нет дисков C: или D:. Есть единое дерево каталогов, начинающееся с корня /.

    * pwd (print working directory) — покажи, где я сейчас нахожусь. * ls (list) — покажи файлы в текущей папке. * ls -la — покажи все файлы (включая скрытые) подробным списком. * cd (change directory) — перейди в другую папку. * cd / — перейти в корень. * cd ~ — перейти в домашнюю папку пользователя. * cd .. — подняться на уровень выше.

    Работа с файлами

    * cat имя_файла — вывести содержимое файла на экран. * touch имя_файла — создать пустой файл. * mkdir имя_папки — создать папку. * cp что куда — копировать. * mv что куда — переместить (или переименовать). * rm имя_файла — удалить (будьте осторожны, корзины нет!).

    Права доступа и Суперпользователь

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

    Чтобы выполнить команду с правами администратора (root), перед ней нужно написать sudo (SuperUser DO).

    Пример обновления списка пакетов:

    Если вы видите в терминале знак $ — вы обычный пользователь. Если знак # — вы работаете от имени root (бога системы). В Kali по умолчанию вы работаете как обычный пользователь kali, поэтому часто придется использовать sudo.

    Сетевые команды

    Эти команды понадобятся вам постоянно:

  • Узнать свой IP-адрес:
  • Ищите интерфейс eth0 (проводной) или wlan0 (Wi-Fi). Адрес будет после слова inet.

  • Проверить доступность узла:
  • Остановить пинг можно комбинацией клавиш Ctrl + C.

    Практическое задание: Исследуем сеть

    Давайте применим знания на практике в вашей лаборатории.

  • Запустите Kali Linux и Metasploitable.
  • В Kali откройте терминал.
  • Узнайте свой IP-адрес командой ip a.
  • Попробуйте пропинговать машину Metasploitable (ее IP вы должны были узнать в прошлом уроке, например, 10.0.2.5).
  • Если пинг идет, попробуйте простую команду сканирования портов с помощью Nmap (мы изучим его глубже позже, но сейчас просто посмотрим):
  • * -sS — использовать SYN-сканирование (то самое, неполное рукопожатие). * -p- — сканировать все 65535 портов.

    Вы увидите список открытых портов и сервисов на машине жертвы. Это и есть результат работы протоколов TCP/IP, которые мы сегодня обсудили.

    Заключение

    Сегодня мы заложили теоретический фундамент. Вы узнали, что интернет держится на протоколах TCP/IP, поняли разницу между IP и MAC, разобрали механизм рукопожатия, который лежит в основе сканирования, и освоили базовые команды Linux.

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

    Помните: знание консоли — это ваша суперсила. Практикуйтесь в командах cd, ls и cat, пока они не станут вашей второй натурой.