- Captive portal собственными руками
- Captive portals
- Consistent connection handling
- Touch-friendly web pages
- Provision after purchase
- Offer app installation
- Captive Portal¶
- Общие настройки¶
- Настройка гостевого интерфейса¶
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- Быстрый, простой и рабочий способ обхода Captive Portal (hotspot с авторизацией на web-интерфейсе)
- Что такое Captive Portal
- Быстрый взлом хот-спота с авторизацией на web-интерфейсе
- Как сделать сигнал Перехватывающего Портала (Captive Portal) доступным для других устройств
- Как работает Captive Portal (Перехватывающий Портал)
- Как обойти Captive Portal (Перехватывающий Портал)
- Первый метод обхода Captive Portal: кража MAC и IP адреса
- Второй метод обхода Captive Portal: использование UDP VPN на 53 порту
- Третий метод обхода Captive Portal: кража учётных данных легитимных пользователей
- Заключение
Captive portal собственными руками
Каждый из нас подключался к беспроводной сети (аэропорты, кафе и тд) где необходимо согласится с некоторыми условиями или пройти авторизации прежде чем начинать пользоваться интернетом. Такая технология называется captive portal.
В мою задачу входило создать captive portal где каждому пользователю раз в 30 минут будет показываться определенный сайт (реклама), и пока он не нажмет «кнопочку» «далее» интернета не будет.
Для создания нам понадобится:
- Wifi-точка доступа любая (на практике можно использовать и проводной интернет)
- Маршрутизатор на любой *nix системе (в моем случае это debian wheezy)
Краткое описание принципа работы
- Любой пакет пришедший на маршрутизатор маркируем
- Любой запрос на 80 порт (пакеты уж маркированны) перенаправляем на нужную нам страницу
- При «авторизации»(нажатии кнопки далее) пользователя добавляем его мак в исключения и разрешаем доступ в интернет
- Скрипт вычисляет у кого прошел лимит времени и удаляет данного клиента.
У нас имеется маршрутизатор на базе debian, где eth0 — локальная сеть в моем случае (192.168.11.0/24), eth0:1 — интерфейс который смотрит в интернет.
Настройку интерфейсов мы пропустим, это каждый выполнит сам. Сразу перейдем к настройке iptables, я обычно прописываю iptables в rc.local:
/etc/rc.local
На этом конфигурация iptables заканчивается и переходим к странице которую получает пользователь: /var/lib/index.php
Данная страница может быть любой, смысл лишь в том, чтобы получить мак пользователя и добавить его в iptables.
В текущий момент получилась следующая схема:
- Iptables автоматически редиректит любой запрос на 80 порт на нашу страницу
- пользователь вводит свое имя и почту, скрипт php получает мак пользователя и добавляет в iptables правило исключения для этого мака
- Php скрипт складывает все данные пользователей (имя, почта, время добавления) в файл /var/lib/users
Осталось только сделать скрипт который будет:
- удалять правило из iptables для мака у которого вышло время
- удалять из файла данные по этому пользователю
Так как мои знания в программировании довольно плачевны был написан простенький скрипт на перле:
Все, задача выполенна, модифицируя файлик index.php можем показывать пользователю релкаму, смешные видео, заставлять его оставлять свою почту и т.д.
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
Captive portals
Most hotspots implement customer interaction by using a captive portal, which is a restricted network connection in which all client HTTP requests are redirected to the provider’s web site. The web site can then prompt users to agree to the operator’s terms and conditions, enter payment information, or enter credentials to verify prior payment arrangements.
Several problems exist by using such an experience:
Other applications (such as email clients) are also redirected. If the user tries to use an app other than the web browser first, they will encounter errors without knowing how to resolve them.
If the initial connection attempted is made over Secure Sockets Layer (SSL), the browser displays a security warning to the user before the user is redirected to the captive portal. This creates a confusing experience for users because they must ignore the security warning to get connected.
WindowsВ 8, WindowsВ 8.1, and WindowsВ 10 support captive portal networks by immediately opening the web browser if a captive portal is detected. The user sees your branded web page in the foreground of their device, which helps them to understand what actions they should take to authenticate by using the captive portal.
Windows provides mechanisms that can let users bypass captive portals on subsequent connection attempts. However, the captive portal is always the experience that is encountered by a first-time user.
This topic discusses the following best practices for using captive portals:
Consistent connection handling
To determine Internet connectivity and captive portal status when a client first connects to a network, Windows performs a series of network tests. The destination site of these tests is msftncsi.com, which is a reserved domain that is used exclusively for connectivity testing. When a captive portal is detected, these tests are periodically repeated until the captive portal is released.
To avoid false positive or false negative test results, your captive portal should not do the following:
Allow access to www.msftncsi.com when the user does not have access to the Internet.
Change the captive portal behavior that is displayed to clients. For example, do not redirect some requests and drop other requests; you should continue to redirect all requests until authentication succeeds.
Note
Denial of Service mitigations should be based on the frequency of attempts per client, not the number of attempts per client or the total attempts from all clients.
Touch-friendly web pages
The WindowsВ 8, WindowsВ 8.1, and WindowsВ 10 experience is designed to be touch-first. This extends to web pages. Consider laying out your web page with larger, easy-to-target controls for a touch user. Use layouts that do not require excessive scrolling to interact with, and break flows into multiple pages if necessary. For more information on touch-friendly web design, see Designing for Touch Input.
Provision after purchase
The same provisioning file that can be applied by an app can also be applied by a website. In the web page’s JavaScript, check for the availability of the window.external.msProvisionNetworks method. If it is present, the browser can relay a provisioning file to the operating system. See Using metadata to configure mobile broadband experiences for more information about how to generate this provisioning file.
NoteВ В This provisioning file must be signed when it is provided by a website or an app that is not the mobile broadband app.
Passing an XML provisioning file enables the operating system to automatically connect to other networks that are included in the user’s service, even if they have different service set identifiers (SSIDs). If you use static Wireless Internet Service Provider roaming (WISPr) credentials, it also enables a smoother connection experience because in the future, Windows can automatically authenticate with those credentials.
Offer app installation
The richest experience of WindowsВ 8, WindowsВ 8.1, and WindowsВ 10 is through the use of a mobile broadband app. It is not possible to allow access to only one app in the Microsoft Store through a captive portal, so the app cannot be installed prior to the user obtaining Internet connectivity. However, after the user has authenticated, consider directing them to the Microsoft Store to install your mobile broadband app.
Captive Portal¶
Traffic Inspector Next Generation реализует функционал Captive Portal.
Captive Portal — веб-портал, на который попадает пользователь после подключения к сети учреждения.
Страница, показываемая пользователю, может содержать информацию об учреждении, информацию о правилах использования Интернет-доступа в учреждении, рекламу учреждения, форму для идентификации пользователя. Визуальные характеристики страницы определяются шаблоном, который можно скачать и отредактировать по своему вкусу.
Captive Portal поддерживает следующие типы аутентификации:
Аутентификация по локальной базе пользователей
Аутентификация через LDAP в Active Directory
Аутентификация через RADIUS
Аутентификация по ваучерам / картам
Аутентификация по IP-адресам
Двухфакторная аутентификация по локальной базе пользователей
Аутентификация по СМС
После прохождения идентификации, пользователь получает доступ в Интернет.
При этом, устройство TING настраивается таким образом, что гостевые пользователи будут находиться в отдельном LAN-сегменте, из которого ограничен доступ на само устройство TING и не разрешен доступ в другие LAN-сегменты, подключенные к устройству TING.
На устройстве TING также настраивается DHCP-сервер для обеспечения гостевых пользователей базовыми TCP/IP-настройками.
При настройке доступа по ваучерам, внутреняя сеть может быть построена как на базе проводной (Ethernet), так и беспроводной (Wi-Fi) технологии. Если делается выбор в пользу Wi-Fi сети, она может быть настроена в открытом или закрытом режиме.
При настройке SMS-идентификации, внутреняя сеть, как правило, построена на базе беспроводной (Wi-Fi) технологии, а пользователи обращаются в Интернет со своих мобильных устройств (например, смартфонов).
Captive Portal распознает клиентские устройства, прошедшие идентификацию, по их MAC-адресам. Это означает, что клиентские устройства и гостевой LAN-адаптер устройства TING должны находиться в одном широковещательном LAN-сегменте. Другими словами, между клиентскими устройствами и устройством TING не должны находиться маршрутизаторы.
Общие настройки¶
Описываемые в данном разделе настройки являются базовыми. Их нужно осуществлять в независимости от того, собираетесь ли Вы настраивать Captive Portal с доступом по ваучерам или Captive Portal для SMS-идентификации.
Настройка гостевого интерфейса¶
Устройство TING подключается в гостевой сегмент посредством сетевого адаптера GUESTNET.
Данное имя GUESTNET используется в качестве примера и вы можете использовать любое другое, удобное для вас имя.
Для начала настройки, пройдите в раздел Интерфейсы -> Назначения портов и кликните на значок + для добавления в систему нового, еще неиспользуемого интерфейса. По умолчанию, данный интерфейс называется OPT1. Позже мы переименуем его. Нажмите Сохранить.
Новый интерфейс OPT1 отобразится как подраздел раздела Интерфейсы. Кликните по нему, чтобы перейти на страницу редактирования настроек интерфейса.
Установите флаг Включить интерфейс и настройте следующие параметры (поля, которые явно не указаны остаются по умолчанию):
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Быстрый, простой и рабочий способ обхода Captive Portal (hotspot с авторизацией на web-интерфейсе)
Что такое Captive Portal
С перехватывающим порталом (Captive Portal) вы можете столкнуться в аэропорту, гостинице, кондо, бизнес-центрах, также сейчас некоторые мобильные операторы организуют Wi-Fi точки доступа используя перехватывающие порталы – hotspot с авторизацией на web-интерфейсе.
Если вы не совсем понимаете, о чём идёт речь, то посмотрите на скриншот:
Имеется открытая сеть Wi-Fi, к которой можно подключиться без пароля (точка доступа без шифрования), но при попытке зайти на любой сайт, нас будет перебрасывать на страницу, где нужно ввести учётные данные, сделать оплату, подтвердить номер телефона с помощью СМС или что-то похожее.
Перехватывающий Портал – это альтернативный способ (вместо пароля от сети Wi-Fi) ограничить круг пользователей. Благодаря такому подходу, имеется возможность гибко регулировать доступ к Интернет-сети (например, выдать учётные данные, которые действуют заданный промежуток времени), и мониторить активность конкретного пользователя.
Иногда для получения доступа достаточно ввести ПИН из бесплатного СМС сообщения, либо спросить на рисепшене логин и пароль. Но иногда доступ необходимо купить. Например, на скриншоте выше:
В этом сообщении сказано, что в данный момент я подключён к сети кондо i Space, чтобы использоваться службой Интернет-доступа, мне необходимо обратиться в офис i Space. Я не хочу туда обращаться, поскольку и без того знаю, что они мне скажут: «500 бат фо ван манс анлиметед». Не уверен, что мне нужен Интернет на таких условиях.
Быстрый взлом хот-спота с авторизацией на web-интерфейсе
Мы будем использовать hack-captive-portals – скрипт для взлома любых перехватывающих порталов (Captive Portal), использующий технику спуфинга MAC.
Если у вас Kali Linux, Ubuntu, Linux Mint, Debian или любые их производные, то установите пару пакетов:
Сам скрипт вы можете скачать следующим образом:
Но я немного доработал этот скрипт (на некоторых сетях разницы в работе не будет, но на некоторых работа будет намного стабильнее и намного быстрее за счёт пропуска явных пустышек).
Чтобы использовать мою версию, создайте файл hack-captive-mial.sh:
И скопируйте туда:
Сделайте файл исполняемым:
Или (если используете оригинальную версию):
И дожидайтесь результата.
Как только увидите строку
Значит для вас уже открыт интернет доступ!
Вновь проверяем пинг:
Пробуем открыть сайт (я захожу на SuIP.biz, чтобы заодно узнать «своего» Интернет-провайдера):
Как сделать сигнал Перехватывающего Портала (Captive Portal) доступным для других устройств
Независимо от того, как вы получили доступ (легально или не совсем), можно расшарить ваше Интернет-соединение для нескольких устройств. Можно даже открыть интернет доступ из виртуальной машины реальному компьютеру…
В принципе, я использую метод описанный в статье «Усиление сигнала Wi-Fi».
Само-собой, нам понадобится 2 Wi-Fi адаптера – один подключён к Перехватывающему Порталу, второй – раздаёт Интернет для «своих».
На предыдущем этапе – когда мы взламывали Перехватывающий Портал, вполне возможно, что мы использовали подключение с помощью Network Manager. Мы сократим количество непонятных зависаний и сбережём свои нервы, если будем выполнять последующие действия без использования NetworkManager.
Устанавливаем дополнительные пакеты, если у вас их ещё нет:
Теперь останавливаем NetworkManager:
Если вы работаете из виртуальной машины, то нужно отключить (виртуальное) проводное соединение, чтобы скрипт не запутался, когда будет искать дефолтный шлюз (если нужно, поменяйте eth0 на имя вашего ПРОВОДНОГО сетевого интерфейса):
Есть некоторые отличия от подключения к Точке Доступа из командной строки, описанного в статье «Усиление сигнала Wi-Fi», поскольку там мы подключались к точке доступа с шифрованием (с паролем), а теперь мы будем подключаться к открытой точке доступа (без пароля).
Создайте конфигурационный файл, к примеру, с именем wpa_sup.conf:
Скопируйте в него следующее (замените i_spac_5FL-2.4GHz на имя сети Перехватывающего Портала):
Подключаемся (замените wlan0 на имя вашего беспроводного интерфейса, используемого для подключения к перехватывающему порталу, если вы выбрали другое имя для конфигурационного файла, то напишите его вместо wpa_sup.conf):
Дождитесь появления примерно такой строки (должны быть слова CTRL-EVENT-CONNECTED — Connection to):
Поскольку мы не перевели процесс в фон, то откройте новое окно консоли (предыдущее не закрывайте – иначе пропадёт подключение к Перехватывающему Порталу), в новом окне введите (это нужно, чтобы нашему беспроводному интерфейсу присвоился IP адрес):
В этом месте запустите скрипт для взлома Captive Portal:
Дождитесь успешного завершения.
Теперь нам нужно поднять свою собственную точку доступа, которая в качестве источника Интернет-доступа будет использовать интерфейс с перехватывающим порталом. Смотрим имена наших сетевых интерфейсов:
Запускается create_ap следующим образом:
Я хочу создать ТД с именем «HackWare» на интерфейсе wlan1, используя для Интернет-доступа интерфейс wlan0, тогда моя команда:
Если появилась строка
значит всё прошло успешно.
Командой выше создаётся ТД, подключение к которой не защищено паролем, если вы хотите создать защищённую паролем ТД, то используйте команду вида:
Например, чтобы моя ТД имела пароль MiAlrules я использую команду:
Если ваш беспроводной адаптер поддерживает IEEE 802.11n, то можно дополнительно использовать опцию —ieee80211n, которая включает IEEE 802.11n:
Поскольку все операции я выполнял в виртуальной машине, к которой подключены два USB Wi-Fi адаптера, то у виртуальной машины теперь Интернет есть, а у реального компьютера его нет. Но поскольку виртуальная машина запущена в ноутбуке со встроенной Wi-Fi картой, то мой реальный компьютер подключается к Точке Доступа, которую создаёт виртуальный компьютер:
Подключение произошло успешно и теперь на основном компьютере также есть Интернет:
Мне это кажется забавным: не существующий, виртуальный компьютер обеспечивает Интернетом реальный железный компьютер!
Также подключаю другие свои устройства (мобильные телефоны) к точке доступа из виртуальной машины:
Как работает Captive Portal (Перехватывающий Портал)
Чтобы понять, почему так легко обойти Перехватывающий Портал, а также увидеть другие способы обхода, нужно понять, как именно работает Captive Portal.
Как можно было уже увидеть – это открытая Точка Доступа, к которой может подключиться кто-угодно. Запомним это – у нас без всяких взломов уже имеется доступ к локальной сети. Если при словосочетании «локальная сеть» вам сразу приходит в голову слово «сниффинг» — то вы правы!
Сетевое оборудование настроено так, чтобы всех подключившихся перенаправлять на одну и туже веб-страницу, на которой размещены условия доступа к сети. На этой странице пользователь вводит ПИН из СМС или логин и пароль. Обычно для доступа к веб-странице перехватывающего портала используется протокол HTTP (а не HTTPS). Это связано с особенностями локальной сети – для локальных адресов невозможно получить валидные SSL сертификаты, а использование невалидных ничего не добавляет к безопасности, но при этом создаёт дополнительные проблемы.
Кстати, если вы подключились к Порталу и пытаетесь открыть что-то в веб-браузере, но у вас не происходит переадресация на веб-страницу Captive Portal, то вероятнее всего дело в том, что вы пытаетесь зайти на сайт с HTTPS протоколом – попробуйте открыть любой сайт на HTTP и вас всё-таки перебросит на страницу «входа»,
Чтобы пользователи не догадались использовать нестандартные порты (например, для подключения к VPN, использовать браузер Tor или прокси), то весь трафик на всех портах блокируется. Кроме трафика UDP на 53 порту – это необходимо чтобы пропускать запросы к DNS-серверу.
После того, как пользователь ввёл верные учётные данные, для его MAC-адреса и IP адреса открывается неограниченный доступ. Привязка идёт именно к MAC-адресу (либо к паре MAC-адрес и IP адрес), поскольку по-другому проблематично реализовать доступ для всего устройства. Современным компьютерам, а особенно мобильным устройствам, недостаточно браузера: телефоны используют разнообразные мессенджеры, многие программы пользуются сетью: онлайн игры, антивирусы для обновления баз, почтовый клиенты и т.д. Т.е. невозможно ограничится кукиз в веб-браузере или чем-то подобным: необходимо открывать полный доступ для сетевого интерфейса клиента, какой бы трафик и на каком бы порту ему не понадобился. Сетевые интерфейсы обладают уникальным идентификатором – MAC-адресом. Именно на основе него и «запоминается» устройство, которому разрешён доступ. Перехватывающий Портал может оставлять кукиз в веб-браузере, но они носят вспомогательный характер: например, для ускорения повторной аутентификации.
Здесь описана «сильная» конфигурация перехватывающего портала – с защитой «по полной». Конкретные реализации могут быть ещё слабее: например, для перенаправления на страницу Портала может использоваться DNS сервер, который на все запросы будет отвечать IP адресом Captive Portal, и при этом не будет должной фильтрации трафика. Как результат, такой Портал можно обойти просто использованием обычного VPN соединения, либо установкой в настройках DNS сервера в паре с браузером Tor и т.п.
Как обойти Captive Portal (Перехватывающий Портал)
Теперь, когда мы понимаем, на каких принципах основывается работа Captive Portal, очень хорошо видны его слабые места.
Первый метод обхода Captive Portal: кража MAC и IP адреса
Именно этот метод использует скрипт hack-captive-portals: он перехватывает IP и MAC от кого-либо, кто уже подключён и авторизован в перехватывающем портале.
Принцип работы очень простой – скрипт находит все «живые» хосты в локальной сети и по очереди «примеряет» их MAC и IP – сразу после примерки делается проверка – доступна ли глобальная сеть. Если доступна – скрипт останавливает работу, а мы можем наслаждаться чудесами сети Интернет. Если внешняя сеть недоступна – просто пробуются следующие MAC и IP и т.д.
Очень просто, но при этом ОЧЕНЬ эффективно. Обязательное требование – в локальной сети должен быть кто-нибудь, кто уже авторизовался в Перехватывающем Портале. В принципе, можно выписать несколько рабочих пар MAC-IP и подключаться даже когда «хозяев нет дома», но такие пары могут «протухать» — они могут быть действительны, например, только в течение суток (с момента аутентификации легитимным пользователем, а не с момента, когда мы узнали о них).
Тем не менее, это очень эффективный и самый универсальный метод.
Вы также можете взломать Перехватывающий Портал даже без скрипта: с помощью arp-scan исследуйте локальную сеть Портала, смену MAC делайте как описано в этой статье, а подменять IP можно прямо в графическом интерфейсе Network Manager. В нём же установите DNS сервер 8.8.8.8.
Второй метод обхода Captive Portal: использование UDP VPN на 53 порту
Обычно в перехватывающих порталах для пользователей, не прошедших аутентификацию, заблокированы все TCP и UDP порты. Все кроме одного – 53 UDP порта. При «обычной» работе сети, этот порт необходим для запроса к DNS серверам, чтобы преобразовать имена хостов в IP. Нужно начать с проверки, не выполняется ли спуфинг DNS запросов (обычно нет). Для этого выполните несколько раз команду dig для разных хостов, например, для получения IP хоста ya.ru:
Для получения IP хоста google.com
И т.д. – если результаты различные (а не, например, каждый раз 192.168.88.1 или другой локальный IP адрес), значит DNS запросы свободно проходят – порт 53 UDP открыт.
Через этот 53 порт можно настроить UDP прокси, VPN или другой туннель. Бесплатные UDP VPN на 53 порту можно найти прямо в Гугле.
Правда, у меня этот способ не получился на находящимся в непосредственной близости ко мне перехватывающем портале – возможно, я что-то не совсем верно делал, возможно, проблема в конкретном поставщике услуг VPN, или, всё-таки, мой Перехватывающий Портал каким-то образом ограничивал/блокировал трафик и на 53 UDP порту. У кого есть успешный опыт или свои мысли по этому поводу (UDP VPN на 53 порту, туннелизация через порт UDP 53) – пишите в комментариях, будет интересно узнать и мне и другим читателям.
Огромный плюс данного метода – нам не нужен клиент, который успешно аутентифицирован в Портале. Мы можем выполнять этот обход даже если мы подключены к Captive Portal в полном одиночестве. При первом методе, наш трафик учитывается и засчитывается в качестве израсходованного легитимным пользователем. Если трафик безлимитный – то никаких проблем нет. Если же трафик оплачивается по мегабайтам – то наши действия перестают быть простой шалостью и причиняют вполне конкретный имущественный вред конкретному человеку…
При использовании порта 53 UDP, прокаченный трафик не «вешается» ни на какого пользователя.
Третий метод обхода Captive Portal: кража учётных данных легитимных пользователей
Поскольку в Captive Portal мы находимся с другими пользователями в одной локальной сети, и данные для авторизации на Портале пересылаются по протоколу HTTP (а не HTTPS), то кажется вполне рабочей следующая схема:
- подключаемся к открытой сети
- запускаем ARP спуфинг
- запускаем сниффинг
- анализируем полученные данные: ищем в них логин и пароль
На практике, из-за особенностей построения сети Порталов (он может быть «заполнен» фейковыми пользователями, и эти фантомы сводят с ума такие программы как Bettercap) атака не всегда проходит успешно.
Менее инвазивный (и намного более удобный) метод предложен человеком с ником user100 на форуме Античат (соответствующая тема – авторский кейс в первом посту).
Мы воспользуемся фактом, что в открытых сетях трафик передаётся без шифрования. Т.е. мы не будем подключаться к сети, а будем использовать Airodump-ng для прослушивания трафика.
Останавливаем Network Manager и убиваем процессы, которые могут нам помешать:
Далее в командах, если нужно, замените имя wlan0 на имя вашего беспроводного интерфейса.
Переводим карту в режим монитора
Запускаем airodump-ng, чтобы узнать, на каком канале работает интересующая нас Точка Доступа:
Как можно увидеть на скриншоте имеется сразу несколько открытых ТД на разных частотах. Я выбираю ту, у которой сильнее сигнал (поскольку она и её клиенты должны быть ближе ко мне).
Теперь, когда мы увидели нужную информацию, запускаем airodump-ng ещё раз со следующими опциями:
- -w /root/open – эта опция для сохранения захваченных данных в файл
- —channel 10 – мы устанавливаем определённый канал, чтобы airodump постоянно прослушивала только его и не прыгала по другим каналам
Теперь просто ждите, когда накопится достаточное количество данных. Нам нужно чтобы в сети не просто присутствовал аутентифицированный пользователь, нам нужно дождаться того момента, когда аутентифицированный пользователь введёт свои учётные данные. В зависимости от количества пользователей сети, может понадобится несколько часов или более.
Обращайте внимание на поле #Data. Если оно совсем не меняется, значит к точке доступа никто не подключён. Если оно меняется вяло – значит кто-то подключён, но не серфит по Инету.
Для анализа полученных данных, открываем файл захвата (у меня он называется /root/cap-01.cap) в программе Wireshark:
Для ускорения поиска используйте фильтры Wireshark.
- Фильтр, который показывает только данные, переданные методом POST:
- Фильтр, который показывает только данные, переданные методом GET:
- Фильтр для показа всего HTTP трафика (фильтр пишется строчными буквами!):
- Ещё один вариант показа всего HTTP трафика:
- Поиск запросов к определённому сайту (хосту):
- Поиск запросов к определённому сайту по части имени:
- Показать весь трафик с определённого IP
- Показать весь трафик на определённый IP
- Показать весь трафик, у которого в качестве источника ИЛИ пункта назначения указан определённый IP:
Чтобы ускорить процесс, я подключился с другого устройства и выполнил вход с произвольными данными: в качестве имени пользователя я указал 11111111, а в качестве пароля — 22222222.
Там различная полезная информация, но главной является строка:
К сожалению, вместо пароля там хеш 15b4c47a3e0e44b9e40db20ac1225023. Причём не просто хеш, в исходном коде видно, что к паролю перед преобразованием добавляется соль:
Адрес JavaScript файла: http://portal.cloud-hotspot.com/md5.js, в нём есть та самая функция hexMD5:
Т.е., видимо, пароль сначала преобразовывается в бинарную строку, затем считается его MD5 хеш, затем бинарная строка преобразовывается в шестнадцатеричную.
Можно сказать, что мне не повезло. Если вам удалось перехватить пароль в открытом виде – то всё отлично. Если же у вас похожая ситуация – когда пароль хешируется, то его всё равно можно использовать! Хотя это требует лишних действий с нашей стороны.
Серверу важно получить правильную строку, а каким образом она создана, он никак не проверяет. Т.е. мы можем просто отправить запрос с помощью curl, содержащий все необходимые данные и сервер прекрасно примет наш хеш вместо самого пароля, поскольку от других пользователей он также получает именно хеш (а не пароль, как это обычно реализовано на веб-сайтах, где хеш вычисляется на самом сервере).
Более того, чтобы каждый раз не использовать curl, можно создать простой HTML файл с правильной формой, которая будет отправлять все нужные данные, в том числе хеш. Этот файлик можно закинуть на телефон и выполнять вход в Портал и с него.
В любом случае необходимо будет правильно определить все передаваемые поля (удобно делать с помощью Burp Suite), в том числе скрытые, указывать правильного реферера, в случае необходимости, и т.д. Все эти проблемы являются решаемыми.
Минус данного метода:
- необходимо не только наличие легитимного пользователя, выполнившего вход в портал, но и застать тот момент, когда он выполняет вход
- если разрешено использовать учётные данные только для одного устройства, то возникнут проблемы, если вы и легитимный пользователь одновременно пытаетесь выходить в Интернет через Портал
- пароль может передаваться в виде хеша, что усложняет его использование
Плюсы данного метода:
- после захвата учётных данных, можно использовать Интернет в Портале даже если в нём нет легитимных пользователей
- если разрешено использовать учётные данные на нескольких устройствах, то можно выполнить вход сразу с нескольких компьютеров/телефонов
Заключение
Рассмотрены самые часто встречающиеся конфигурации Captive Portal – хот-спотов с авторизацией через веб-интерфейс. В заметке собраны самые эффективные методы их обхода. Тем не менее, имеются и другие варианты Перехватывающих Порталов, использующих для идентификации пользователей больше данных – для таких случаев описанные здесь методы взлома открытых хот-спотов могут не сработать.
Отлично во взломе хот-спотов с веб-входом себя показал скрипт hack-captive-portals: полная автоматизация и хорошие результаты.