Comment se connecter automatiquement aux portails captifs sur OS X?

Mathias Bynens

Comment se connecter automatiquement aux portails captifs sur OS X?


Comment puis-je me connecter automatiquement aux portails captifs sous OS X?

Un portail captif est utilisé par les réseaux sans fil (souvent non protégés par mot de passe) qui présentent une page Web dès que vous vous y connectez, vous obligeant à vous connecter.

Je dois me connecter à différents réseaux sans fil comme celui-ci très fréquemment, et aucun des portails captifs ne semble se souvenir de mes informations de connexion / mot de passe. Existe-t-il un moyen d’automatiser le processus de connexion d’une manière ou d’une autre, ou au moins de stocker les paires login / mot de passe dans le trousseau?

Mise à jour: il existe une application iOS appelée AutoWifi qui gère essentiellement cela. S’il est possible de le faire sur iOS avec toutes ses restrictions, il doit sûrement être possible de faire quelque chose comme ça sur OS X, non?


Fait amusant connexe: voici comment Apple teste les portails captifs sur OS X et iOS:

OS X et iOS font une demande à http://www.apple.com/library/test/success.html chaque fois que vous vous connectez à un réseau WiFi.

Depuis Yosemite, l’URL est maintenant: http://captive.apple.com/hotspot-detect.html

Cette URL renvoie le code HTML suivant:

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

Jetez un œil à /Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plist. La manipulation des préférences ici peut facilement aggraver les risques de sécurité graves en plus des nombreux Apple a décidément mis en œuvre par eux-mêmes. Je ne sais pas quel navigateur vous utilisez pour vous connecter via ces portails captifs, mais vous pouvez également essayer de configurer des emplacements réseau pour eux ou de créer une macro simple en fonction de ce que vous souhaitez remplir automatiquement.

Mathias Bynens

C’est la chose – chaque fois qu’OS X détecte un portail captif, il ouvre une fenêtre contextuelle WebView (pas une véritable interface utilisateur de navigateur) avec la page de connexion.

je vais

Si vous avez une chance de publier le code source de la popup.

Mathias Bynens

@ioi La source HTML de la page dépend du réseau. Une fois que vous obtenez le popup, il est possible de naviguer vers la même page en ouvrant simplement n’importe quel navigateur et en essayant de charger une URL.

Tyilo

Aucune des réponses ne répond à la question!

Réponses


 Léon

Vous pouvez renommer

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

dans

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

et vous êtes prêt. La saisie du mot de passe passe maintenant par le navigateur de votre choix et peut être stockée à l’aide de 1password ou d’autres plugins. Notez que si vous étiez déjà connecté pendant le changement de nom, l’expiration de votre session peut prendre un certain temps …

Mathias Bynens

Au plaisir de tester cela 🙂 Pas d’inconvénients?

David

Bien que cela puisse être une solution simple (st?), Je pense que la réponse de cwd est la bonne façon de le faire, même si c’est admin-ish. Il y a certaines choses sur Mac sur lesquelles Apple nous oblige à être administrateur, quand nous voulons « penser différemment » d’Apple.


 cwd

Je viens de trouver cette désactivation de la prise en charge du réseau captif dans OS X

Qui mentionne « Pour le désactiver, définissez cette préférence: »

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

Dans le cas où vous voudriez supprimer ce paramètre, vous pouvez faire:

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

Ensuite, comme @Leon le mentionne, utilisez le navigateur Web habituel pour vous connecter. Ou si vous êtes sur un réseau où cela ne fonctionne pas, vous pouvez toujours essayer d’ouvrir l’application manuellement (situé dans /System/Library/CoreServices/Captive Network Assistant.app )

danielpops

cwd ++ C’est toujours la meilleure réponse. Aujourd’hui sur Mojave, je n’ai pas pu renommer ou supprimer Captive Network Assistant.app, mais j’ai pu forcer la désactivation via les valeurs par défaut


 Mac Cowell

Le projet NetworkAutoLogin de Tyilo sur github est un démon os.x qui « se connecte automatiquement aux réseaux du portail captif » avec des informations d’identification fournies par l’utilisateur.

Il utilise PhantomJS & CasperJS pour publier les informations nécessaires dans les champs de la page de connexion au portail captif. Il peut s’agir du « mot de passe » de connexion secrète, d’une paire nom d’utilisateur-mot de passe, ou simplement d’activer une case EULA et le bouton « se connecter ».

Je ne me souviens pas exactement comment il est déclenché, mais il enregistre un .plist avec launchctl.

Vous placez les options de configuration dans un fichier json, en spécifiant le nom de l’ensemble de champs (facultatif) sur la page du portail captif et les paires nom de champ + contenu nécessaires (requis). Voici un exemple du fichier de configuration stocké dans ~/.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' } } 
cwd

pas fou qu’il nécessite encore un autre démon pour fonctionner en arrière-plan

Mac Cowell

Je l’ai compilé mais je n’ai pas pu observer le déclencheur du démon lorsqu’il m’a présenté une page de connexion réseau captive prédéfinie.

Jeef

De même (même mis à jour les nouveaux paramètres dans yosemite +)


 Pro Backup

La suppression (ou le changement de nom) de /Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plist elle pas la /Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plist automatique?

Cela pourrait au moins arrêter l’ouverture de la fenêtre WebView.

Sinon, remplacez toutes les URL de ce fichier Settings.plist par une copie hébergée locale du fichier success.html et hébergez le fichier success.html sur votre serveur Web localhost.


 Alexander Unger

Je vois des demandes de portail captif sur mon réseau domestique toutes les 5 minutes. Mais j’ai changé dans le fichier /Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plist

chaîne: http://www.apple.com/library/test/success.html à http://captive.apple.com/hotspot-detect.html (je voulais dire la section ProbeURL). apple a changé l’URL de la sonde pour le nouveau système d’exploitation, je ne sais pas pourquoi, mais la nouvelle réponse de l’URL est 200 (OK) et devrait fonctionner (j’ai rencontré le même problème sur mon mbp 2011 Mavericks).


 Matt Love

Un portail captif n’est pas comme un mot de passe. Cela ressemble plus à une feuille de connexion. Chaque fois que le réseau auquel vous êtes connecté distribue une adresse IP via DHCP, il vous donne le portail captif pour vous connecter / accepter, puis il vous permet de vous connecter. D’après ce que je comprends, il s’agit d’une restriction multiplateforme qui ne peut pas être modifiée. Cela peut être quelque chose que les administrateurs réseau peuvent changer, mais cela peut même dépendre du type d’équipement utilisé.

Mathias Bynens

Vous avez tout à fait raison, cela ressemble plus à une feuille de connexion qu’à un mot de passe, mais je suis surpris qu’il ne semble pas y avoir de moyen facile de remplir automatiquement cette feuille 🙂 Sur iOS, il existe des applications qui peuvent prendre en charge cette. N’y a-t-il rien de similaire pour OS X?

Matt Love

Quelles applications pour iOS peuvent le faire? N’auriez-vous pas alors à utiliser cette application pour la navigation Web, etc.?

Mathias Bynens

L’application AutoWiFi gère cela automatiquement; tout ce que vous avez à faire est de cliquer une fois sur «Connecter» et vous êtes connecté.


 thoni56

Bien qu’il y ait quelques années, cette question et sa réponse montrent un haut niveau de recherche sur Google. Malheureusement, MacOS a changé depuis. Cette page sur MacWorld de 2016 semble décrire l’état actuel (au moment de la rédaction de cet article).

Ce qui est essentiellement dû au fait que SIP vous permet de désactiver l’assistant uniquement en mode de récupération. Je n’ai pas encore trouvé de solution à l’autre partie de cette question, « pouvons-nous automatiser la connexion? »

Henry Story

Dans High sierra, il ne semble plus possible de renommer Captive Network Assistant.app comme suggéré ici. Au moins, je ne pouvais même pas en tant que root.

historystamp

Vous devez désactiver cette dernière fonctionnalité de protection d’exploitation MacOS. support.intego.com/hc/en-us/articles/… Je ne sais pas si cette approche fonctionne toujours, mais au moins vous pouvez maintenant essayer.


 Koes N

Avec un peu d’aide pour utiliser AppleScript, Lynx, Fakeapp / Safari et ControlPlane, mon MacBook est désormais toujours connecté automatiquement au portail captif dans mon bureau. Ce n’est toujours pas un moyen efficace de le faire, mais il fait toujours le travail parfaitement. J’espère que quelqu’un pourra le simplifier.

Voici le code:

  1. Assurez-vous que le SSID est correct

     do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | awk '/ SSID: / {print $2}'" 
  2. Vérifier l’existence d’une adresse de portail captif

     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. Tester la connexion au portail

     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. Se connecter au portail

     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. Enregistrez ces scripts en une seule application. Utilisez ensuite les règles ControlPlane pour le faire fonctionner lorsqu’il est déclenché avec le SSID spécifié.

Le formulaire de connexion sur captive peut certainement avoir un autre élément HTML. Vous pouvez ajouter des boîtes de dialogue d’affichage ou des notifications, un autre SSID différent avec ses propres éléments HTML et nom d’utilisateur / mot de passe. Fake est un navigateur + automatiseur, il vous facilitera donc la vie.

N’oubliez pas de désactiver la fenêtre de connexion captive. Maintenant, votre Mac se connecte à 100% au portail.

J’espère que cela pourra aider.

 

automatiquement, aux, captifs, comment, connecter, OS, portails, se, sur, X

 

wiki

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *