Як автоматично увійти до порталів, що перебувають у полоні на OS X?


66

Як я можу автоматично увійти до порталів, що перебувають у полоні в OS X?

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

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

Оновлення: є програма для iOS під назвою AutoWifi, яка в основному справляється з цим. Якщо це можливо зробити на iOS з усіма його обмеженнями, напевно, має бути можливо зробити щось подібне на OS X, правда?


Пов’язаний цікавий факт: Ось як Apple тестує для захоплених порталів на OS X та iOS:

OS X і iOS надсилають запит http://www.apple.com/library/test/success.htmlщоразу, коли ви підключаєтесь до мережі WiFi.

Станом на Yosemite 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'l

2
У цьому справа - коли OS X виявляє захоплений портал, він відкриває спливаюче вікно WebView (не справжній інтерфейс браузера) зі сторінкою входу.
Mathias Bynens

Якщо у вас є можливість опублікувати вихідний код спливаючого коду.
l'L'l

@ioi Джерело HTML сторінки залежить від мережі. Після отримання спливаючого вікна можна перейти на ту саму сторінку, просто відкривши будь-який веб-переглядач і намагаючись завантажити URL-адресу.
Матіас Байненс

2
Жодна з відповідей не відповідає на питання!
Тайло

Відповіді:


27

Ви можете перейменувати

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

в

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

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


1
З нетерпінням чекаю цього випробувати :) Немає недоліків?
Mathias Bynens

1
Хоча це може бути простим (st?) Рішенням, я думаю, що відповідь cwd - це правильний спосіб зробити це, навіть якщо це адміністратор-ish. На Mac є певні речі, які Apple змушує нас бути адміністраторами, коли ми хочемо "думати інакше" від Apple.
Девід

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

54

Щойно знайшли цю відключену підтримку мережевої підтримки в ОС X 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 ++ Це все ще найкраща відповідь. Сьогодні в Mojave я не зміг перейменувати або видалити Captive Network Assistant.app, але мені вдалося змусити відключити функцію за замовчуванням
danielpops

16

Проект NetworkAutoLogin Tyilo в github - це демон os.x, який "Автоматично входить у мережу портативних порталів" за допомогою наданих користувачем облікових даних.

Він використовує PhantomJS & CasperJS, щоб розмістити необхідну інформацію в полях на сторінці входу на захоплений портал. Це може бути таємний "пароль" для входу, пара імені користувача-пароля або просто активація прапорця EULA та кнопка "підключити".

Я не можу точно пригадати, як це спрацьовує, але він реєструє .plist з startctl.

Ви розміщуєте параметри конфігурації у файлі json, вказуючи ім'я набору полів (необов’язково) на сторінці порталу, що перебуває у положенні, та необхідну назву поля + пари вмісту (обов'язково). Ось приклад конфігураційного файлу, що зберігається в~/.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файл на своєму веб-сервері localhost.


3

Я бачу запити на захоплені портали у своїй домашній мережі кожні 5 хв. Але я змінив файл /Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plist

рядок: http://www.apple.com/library/test/success.html на 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 та ім'ям користувача / паролем. Підробка - це браузер + автоматизатор, тому це полегшить життя.

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

Сподіваюся, що це допомагає.


2

Портал, що перебуває в полоні, не схожий на пароль. Це більше схоже на табличку на аркуші. Кожен раз, коли мережа, до якої ви підключені, передає IP-адресу через DHCP, вона дає вам портальний портал для входу / згоди, а потім дозволяє вам підключитися. Наскільки я розумію, це обмеження на крос-платформу, яке неможливо змінити. Можливо, адміністратори мережі можуть щось змінити, але навіть це може залежати від типу обладнання, яке використовується.


Ви абсолютно праві, що це більше нагадує аркуш для входу, ніж пароль, але я здивований, що, здається, це не простий спосіб автоматичного заповнення цього аркуша :) На iOS є додатки, які можуть подбати про це. це. Хіба немає нічого подібного для OS X?
Mathias Bynens

Які програми для iOS можуть це зробити? Чи не було б тоді вам потрібно використовувати цей додаток для веб-перегляду тощо?
Метт Любов

1
Додаток AutoWiFi обробляє це автоматично; все, що вам потрібно зробити, це натиснути кнопку «Підключитися» один раз, і ви ввійдете в систему.
Mathias Bynens

2

Незважаючи на те, що вже кілька років це питання та відповіді демонструють високу швидкість у цьому. На жаль, MacOS змінився з того часу. Ця сторінка на MacWorld з 2016 року, схоже, описує поточний (станом на цей час) стан.

По суті, це те, що через SIP ви можете відключити помічника лише у режимі відновлення. Я ще не знайшов рішення для іншої частини цього питання, "чи можемо ми автоматизувати вхід?"


1
У Високій Сьєррі вже не представляється можливим перейменувати Captive \ Network \ Assistant.app, як там запропоновано. Принаймні я не міг навіть при запуску як root.
Генрі Історія

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

0

Ви можете використовувати Mili , інструмент з відкритим кодом, який я написав для сторінок гарячої точки автоматичного входу. Він також працює на Linux.

Коли ви змінюєте Wi-Fi-з'єднання, Mili перевіряє наявність послуг Mikrotik, а потім намагається увійти з допомогою даних для входу.

Ви також можете використовувати такі дані, як:

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

Ласкаво просимо до "Запитайте різних". Правила сайту вимагають вказати у своїй відповіді, якщо ви пов'язані з програмним забезпеченням, яке ви рекомендуєте. У цьому випадку ви є автором, але ви не заявляєте про це у своїй відповіді. Будь ласка, перегляньте, як відповісти на інформацію про надання тут відповідей та відредагуйте свою відповідь, щоб включити інформацію про відсутність.
fsb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.