Как автоматически войти в плененные порталы на OS X?


67

Как я могу автоматически войти в плененные порталы на OS X?

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

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

Обновление: есть приложение для iOS под названием AutoWifi, которое в основном обрабатывает это. Если это возможно сделать на iOS со всеми ее ограничениями, наверняка должно быть возможно сделать что-то подобное в OS X, верно?


Связанный забавный факт: вот как Apple тестирует пленные порталы на OS X и iOS:

OS X и iOS делают запрос http://www.apple.com/library/test/success.htmlкаждый раз, когда вы подключаетесь к сети WiFi.

По состоянию на Йосемити URL сейчас: http://captive.apple.com/hotspot-detect.html

Этот URL возвращает следующий HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
    <TITLE>Success</TITLE>
</HEAD>
<BODY>
Success
</BODY>
</HTML>

1
Посмотрите на /Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plist. Манипулирование здесь предпочтениями может легко усугубить серьезные угрозы безопасности, помимо того, что Apple определенно реализовала их самостоятельно. Я не уверен, какой браузер вы используете для подключения через эти пленные порталы, но вы также можете попробовать настроить для них сетевое расположение или создать простой макрос в зависимости от того, что вы хотите автоматически заполнять.
L'L'л

2
В этом-то и дело - всякий раз, когда OS X обнаруживает захваченный портал, он открывает всплывающее окно WebView (не настоящий пользовательский интерфейс браузера) со страницей входа.
Матиас Биненс

Если у вас есть возможность опубликовать исходный код всплывающего окна.
L'L'л

@ioi Источник HTML страницы зависит от сети. Как только вы получите всплывающее окно, можно перейти к той же странице, просто открыв любой браузер и попытавшись загрузить URL.
Матиас Биненс

2
Ни один из ответов не отвечает на вопрос!
Tyilo

Ответы:


28

Вы можете переименовать

/System/Library/CoreServices/Captive Network Assistant.app

в

/System/Library/CoreServices/No More Captive Network Assistant.app

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


1
С нетерпением ждем, чтобы проверить это :) Нет минусов?
Матиас Биненс

1
Хотя это может быть простым (st?) Решением, я бы подумал, что ответ cwd - это правильный способ сделать это, даже если это и есть админ. На Mac есть определенные вещи, которые Apple заставляет нас быть администратором, когда мы хотим «думать иначе» от Apple.
Дэвид

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

54

Только что нашел эту Отключить поддержку Captive Network в OS X

Который упоминает «Чтобы отключить его, установите это предпочтение:»

sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.captive.control Active -boolean false

В случае, если вы захотите удалить этот параметр, вы можете сделать:

sudo defaults delete /Library/Preferences/SystemConfiguration/com.apple.captive.control Active

Затем, как упоминает @Leon, используйте обычный веб-браузер для входа. Или, если вы находитесь в сети, где это как-то не работает, вы все равно можете попробовать открыть приложение вручную (расположено в /System/Library/CoreServices/Captive Network Assistant.app).


2
cwd ++ Это все еще лучший ответ. Сегодня в Мохаве мне не удалось переименовать или удалить Captive Network Assistant.app, но я смог принудительно отключить через настройки по умолчанию
danielpops

16

Проект Tyilo NetworkAutoLogin на github - это демон os.x, который «автоматически входит в сети Captive Portal» с предоставленными пользователем учетными данными.

Он использует PhantomJS & CasperJS для публикации необходимой информации в полях на странице входа в портал. Это может быть секретный логин «пароль», пара имя пользователя-пароль или просто активация флажка EULA и кнопки «подключиться».

Я не могу точно вспомнить, как он запускается, но он регистрирует .plist с launchctl.

Вы помещаете параметры конфигурации в файл json, указав имя набора полей (необязательно) на странице портала авторизации и необходимые пары fieldname + content (обязательно). Вот пример файла конфигурации, хранящегося в~/.networkautologin.js

{ // Example with all possible options
    match: {
        SSID: ['Example WiFi 1', 'Example WiFi 2'],
        BSSID: '01:23:45:67:89:AB',
        URL: 'http://logon.example.org/?url=http://www.apple.com/library/test/success.html'
    },
    form_selector: 'form#login_form',
    fields: {
        'username': 'test',
        'password': '123123'
    }
}

1
не сумасшедший, что он требует, чтобы еще один демон работал в фоновом режиме
cwd

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

Точно так же (даже обновил его до новых настроек в yosemite +)
Jeef

6

Разве удаление (или переименование) не /Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plistостанавливает автоматическое исследование?

Это может по крайней мере остановить открытие всплывающего окна WebView.

В противном случае замените все URL-адреса в Settings.plistнем локальной размещенной копией success.htmlфайла и разместите success.htmlфайл на локальном веб-сервере.


3

Я вижу запросы портального портала в моей домашней сети каждые 5 минут. Но я изменил в файле /Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plist

Строка: http://www.apple.com/library/test/success.html to http://captive.apple.com/hotspot-detect.html (я имел в виду раздел ProbeURL). Apple изменила URL-адрес зонда для новой ОС, я не знаю, почему, но новый URL-адрес равен 200 (ОК) и должен работать (я столкнулся с той же проблемой на моем Mbp 2011 Mavericks).


3

С помощью AppleScript, Lynx, Fakeapp / Safari и ControlPlane My MacBook теперь всегда автоматически подключается к встроенному порталу в моем офисе. Это все еще не эффективный способ сделать это, но он все еще выполняет работу отлично. Я надеюсь, что кто-то может сделать это проще.

Вот код:

  1. Убедитесь, что мы в правильном SSID

    do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | awk '/ SSID: / {print $2}'"
    
  2. Проверьте наличие адреса портала.

    try
        do shell script ("ping -c 2 " & CaptiveAddress) -- set your captive address here
        set CaptiveExist to "yes"
    on error
        set CaptiveExist to "no"
    end try
    
  3. Тестовое соединение с порталом

    try
        set PortalOpened to do shell script ("/usr/local/bin/lynx --dump http://www.apple.com/library/test/success.html | grep 'Success'")
        if PortalOpened is "   Success" then
            set PortalOpened to "yes"
        else
            set PortalOpened to "no"
        end if
    on error
        set PortalOpened to "no"        
    end try
    
  4. Вход на портал

    tell application "Fake"
        load URL "http://YourPortalAddress.html" -- put your captive address here
        set value of element with name "username" to "user"
        set value of element with name "password" in form with name "password" to "password"
        click element with id "logincaption"
    end tell
    
  5. Сохраните эти сценарии как одно приложение. Затем используйте правила ControlPlane, чтобы он запускался при запуске с указанным SSID.

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

Не забудьте отключить всплывающее окно входа в систему. Теперь ваш Mac на 100% автоматически подключается к порталу.

Надеюсь, это поможет.


2

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


Вы абсолютно правы в том, что это больше похоже на лист входа, чем на пароль, но я удивлен, что не представляется простым способ автозаполнения этого листа :) В iOS есть приложения, которые могут позаботиться о это. Разве нет ничего похожего на OS X?
Матиас Биненс

Какие приложения для iOS могут это сделать? Разве вам не придется использовать это приложение для просмотра веб-страниц и т. Д.?
Мэтт Лав

1
Приложение AutoWiFi обрабатывает это автоматически; все, что вам нужно сделать, это нажать «Подключиться» один раз, и вы вошли в систему.
Mathias Bynens

2

Хотя несколько лет этот вопрос и ответ показывают, высоко в поисках этого. К сожалению, MacOS изменился с тех пор. Эта страница на MacWorld с 2016 года, кажется, описывает текущее (на момент написания) состояние.

По сути, благодаря SIP вы можете отключить помощника только в режиме восстановления. Мне еще предстоит найти какое-либо решение для другой части этого вопроса, "мы можем автоматизировать вход в систему?"


1
В High sierra больше не представляется возможным переименовать Captive \ Network \ Assistant.app, как предлагается там. По крайней мере, я не мог даже при запуске от имени root.
Генри Стори

Вам необходимо отключить эту последнюю функцию защиты операционной системы MacOS. support.intego.com/hc/en-us/articles/… Я не знаю, если этот подход все еще работает, но, по крайней мере, теперь вы можете попробовать.
историческая отметка

0

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

Когда вы меняете подключение к Wi-Fi, Мили проверяет наличие услуг Mikrotik, а затем пытается войти в систему, используя свои данные для входа.

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

{
    "username": "USER 1",
    "password": "PASS 1",
    "share": 5
}, 
{
    "username": "USER 2",
    "password": "PASS 2",
    "share": 1
}

Добро пожаловать, чтобы спросить другого. Правила сайта требуют, чтобы вы указали в своем ответе, связаны ли вы с программным обеспечением, которое вы рекомендуете. В этом случае вы автор, но вы не указали это в своем ответе. Пожалуйста, см. Как ответить для получения информации о предоставлении ответов здесь и отредактируйте свой ответ, чтобы включить недостающую информацию.
ФСБ
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.