Определение несанкционированной точки доступа и портала захвата

Beginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы изучите основные шаги по обнаружению несанкционированной точки доступа (AP) и вредоносного портала. Несанкционированная точка доступа (rogue AP) — это беспроводная точка доступа, установленная в сети без явного разрешения владельца сети. Злоумышленники часто используют их для запуска атак типа "человек посередине" (man-in-the-middle) с целью перехвата трафика.

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

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

Сканирование Wi-Fi сетей на клиентском устройстве

На этом этапе вы симулируете сканирование доступных Wi-Fi сетей. В реальных условиях вы бы использовали такие инструменты, как nmcli, iwlist или airodump-ng. Для этой лабораторной работы мы подготовили скрипт scan-wifi.sh, который имитирует вывод сканирования сети. Это позволяет нам провести лабораторную работу без необходимости использования физического Wi-Fi оборудования.

Все файлы для этой лабораторной работы находятся в директории ~/project. Давайте выполним скрипт, чтобы увидеть список симулированных Wi-Fi сетей.

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

~/project/scan-wifi.sh

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

IN-USE  BSSID              SSID        MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
*       AA:BB:CC:11:22:33  CorpWifi    Infra  6     54 Mbit/s   90      ▂▄▆█  WPA2
        AA:BB:CC:44:55:66  CorpWifi    Infra  11    54 Mbit/s   95      ▂▄▆█  --
        DE:F0:12:34:56:78  GuestWifi   Infra  1     54 Mbit/s   70      ▂▄▆_  WPA2

Заметьте две сети с одинаковым именем (ESSID)

На этом этапе вы проанализируете результаты сканирования, чтобы выявить аномалию. ESSID (Extended Service Set Identifier) — это общедоступное имя Wi-Fi сети.

Внимательно посмотрите на вывод предыдущего шага. Вы должны заметить, что две разные сети используют один и тот же SSID — "CorpWifi". Это классический признак потенциальной атаки "Evil Twin". Одна сеть является легитимной, а другая — несанкционированной точкой доступа (rogue AP), установленной злоумышленником.

Ключевое отличие заключается в столбце SECURITY. Легитимная сеть использует шифрование WPA2, в то время как несанкционированная сеть открыта (обозначена --). Злоумышленники часто создают открытые сети, поскольку пользователи с большей вероятностью подключатся к ним без необходимости ввода пароля.

Чтобы сделать это более наглядным, давайте используем команду grep для фильтрации вывода и отображения только сетей с именем CorpWifi.

~/project/scan-wifi.sh | grep CorpWifi

Эта команда выдаст следующий вывод, выделяя две сети.

*       AA:BB:CC:11:22:33  CorpWifi    Infra  6     54 Mbit/s   90      ▂▄▆█  WPA2
        AA:BB:CC:44:55:66  CorpWifi    Infra  11    54 Mbit/s   95      ▂▄▆█  --

Подключение к открытой (незашифрованной) версии сети

На этом этапе мы симулируем подключение к подозрительной, открытой сети "CorpWifi". В реальном сценарии операционная система вашего устройства будет управлять подключением. Для нашей симуляции "подключение" будет включать запуск локального веб-сервера, который будет действовать как портал захвата (captive portal) несанкционированной точки доступа.

Файлы для этого поддельного портала находятся в директории ~/project/portal. Мы запустим простой веб-сервер на Python из этой директории. Чтобы освободить наш терминал для других команд, мы запустим сервер как фоновый процесс.

Сначала перейдите в директорию ~/project/portal:

cd ~/project/portal

Затем запустите веб-сервер Python в фоновом режиме, используя символ &:

python3 server.py &

Вы увидите идентификатор процесса и подтверждающее сообщение, указывающее, что сервер запущен.

[1] 1234
Serving captive portal on port 8000

Сервер теперь запущен и ожидает подключений на порту 8000, имитируя окружение несанкционированной сети.

Наблюдение за автоматическим перенаправлением на страницу входа

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

Мы симулируем это, используя команду curl для попытки доступа к веб-сайту. Поскольку наша симулированная сетевая среда контролируется сервером Python, который мы только что запустили, любой HTTP-запрос на localhost:8000 будет "захвачен" и получит файл index.html с нашего портала.

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

curl http://localhost:8000

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

<!DOCTYPE html>
<html>
  <head>
    <title>CorpWifi Login</title>
    <style>
      body {
        font-family: sans-serif;
        background: #f0f2f5;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 100vh;
        margin: 0;
      }
      .login-box {
        background: white;
        padding: 20px 40px;
        border-radius: 8px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        text-align: center;
      }
      input {
        margin: 10px 0;
        padding: 8px;
        width: 200px;
        border: 1px solid #ddd;
        border-radius: 4px;
      }
      button {
        padding: 10px 20px;
        background-color: #1877f2;
        color: white;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        width: 100%;
      }
    </style>
  </head>
  <body>
    <div class="login-box">
      <h2>CorpWifi Access</h2>
      <p>Please log in to continue.</p>
      <input type="text" placeholder="Username" />
      <br />
      <input type="password" placeholder="Password" />
      <br />
      <button>Log In</button>
      <p style="font-size: 12px; color: #888; margin-top: 15px;">
        Powered by CorpWifi-Login.net
      </p>
    </div>
  </body>
</html>

Определение того, что URL не является легитимным доменом

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

В реальном браузере вы бы проверили адресную строку. В нашей симуляции мы можем найти подсказки, изучив HTML-содержимое. Просмотрев HTML из предыдущего шага, мы можем найти подозрительную строку текста внизу. Давайте используем grep для поиска ее в файле index.html.

Сначала вернемся в основную директорию проекта.

cd ~/project

Теперь найдем подозрительный текст в HTML-файле портала:

grep 'CorpWifi-Login.net' portal/index.html

Команда найдет и отобразит строку, содержащую подозрительный домен.

    <p style="font-size: 12px; color: #888; margin-top: 15px;">Powered by CorpWifi-Login.net</p>

Домен CorpWifi-Login.net вызывает сильные подозрения. Злоумышленники часто регистрируют домены, которые звучат официально, но таковыми не являются. Легитимный корпоративный портал размещался бы на официальном домене компании (например, wifi.corp.com). Это обнаружение подтверждает, что открытая сеть является несанкционированной точкой доступа (rogue AP), а страница входа — попыткой фишинга.

Итоги

В этой лабораторной работе вы успешно выявили несанкционированную точку доступа (rogue AP) и вредоносный портал захвата (captive portal) путем симуляции. Вы освоили практический пошаговый процесс выявления распространенных угроз Wi-Fi.

Вы выполнили следующее:

  • Сканировали сети Wi-Fi и обнаружили незашифрованную сеть "evil twin" с тем же именем, что и у безопасной сети.
  • Симулировали подключение к несанкционированной точке доступа, запустив локальный сервер.
  • Наблюдали, как портал захвата перехватывает веб-трафик и отображает страницу входа.
  • Проанализировали содержимое страницы входа, чтобы найти подозрительное, нелегитимное доменное имя, подтвердив попытку фишинга.

Ключевой вывод: всегда будьте осторожны с открытыми сетями Wi-Fi и внимательно проверяйте URL любой страницы входа перед вводом конфиденциальной информации.

Наконец, давайте остановим фоновый процесс сервера. %1 относится к первой фоновой задаче.

kill %1