¿Iniciar sesión automáticamente en una red con un portal cautivo en Windows?

¿Iniciar sesión automáticamente en una red con un portal cautivo en Windows?

Tengo una red Wi-Fi en la oficina que requiere iniciar sesión con unportal cautivo. Requiere iniciar sesión con nombre de usuario y contraseña.

Me gustaría ejecutar de alguna manera un script que inicie sesión automáticamente tan pronto como me conecte a la red, sin tener que iniciar mi navegador y mantenerlo abierto.

Por extraño que parezca, logré encontrar un cliente de este tipo para Android,CoovaAXque ya no está disponible, pero no para Windows. Tengo Windows 7, si es importante.

¿Alguien tiene una solución sencilla para esto? Preferiría no tener que perder tiempo codificando mi propia herramienta para esto.

Respuesta1

No sé si es simple... uso una herramienta llamadawebinject.plpara probar sitios web. Es un script en Perl que le permite especificar entradas y resultados esperados y se puede configurar fácilmente para esto. Puede que le lleve una hora hacerlo funcionar.

En cuanto a cómo automatizarlo. El Programador de tareas de Windows es bastante sólido y puede activar una gran variedad de eventos. Puede vincularlo a un evento de inicio de sesión o a una entrada de registro de eventos, o simplemente ejecutarlo cada 5 minutos (eso es un poco doloroso). Por ejemplo, obtengo un evento 32 en el registro del sistema cuando establezco una conexión de red. Eso podría bastar.

Respuesta2

Puedes usarlince(la versión con soporte SSL): un navegador basado en texto, con un cmd_argsarchivo de secuencia de comandos que contiene los comandos necesarios para iniciar sesión. Puede generar dicho archivo de secuencia de comandos iniciando sesión en wifi con lynx una vez y registrando la entrada. Haga esto llamando a lynx con el siguiente argumento:

lynx.exe -cmd_log=%PERFIL DE USUARIO%\lynxlog.txt`

Luego puedes cambiar el nombre de ese archivo y usarlo llamando a lynx de la siguiente manera:

lynx.exe -cmd_script=NOMBRE DE ARCHIVO_AQUÍ

Pon esto en un archivo por lotes. (Utilice la ruta completa al ejecutable de Lynx o establezca esa ruta en la variable de entorno PATH).

Una vez que esto funcione, cree una tarea programada activada por la identificación del evento 10000en la fuente NetworkProfiledel registro Microsoft-Windows-NetworkProfile/Operationalque la llama:

Ejemplo de activación del Programador de tareas

Personalmente, lo incluyo para iexpress.exeejecutarlo oculto en segundo plano y asegurarme de que la tarea programada esté configurada para ejecutarse incluso si no he iniciado sesión. ¡Acabo de configurar esto en mi computadora hace unas semanas y ha funcionado muy bien!

Fuente: Mi artículo sobreCómo automatizar el inicio de sesión en un portal cautivo.

Respuesta3

He hecho esto en el pasado con el programador de tareas de Windows y un script php+mysqllite. El script php+mysqllite simplemente verificó si podía llegar a Google, si fue redirigido, verificó si tenía una rutina para el dominio al que fue redirigido, si es así, la ejecutó. El mysqllite era para conservar las cookies para el navegador sin cabeza que implementé en php. Probablemente sería mucho menos trabajo usar simplemente un equivalente de Greasemonkey para iniciar sesión. (La desventaja es que el navegador aparecería y haría cosas cada vez que se active el programador).

El activador del programador de tareas variará de una máquina a otra. Tenía una computadora portátil que registraba las conexiones wifi como eventos e incluían el ssid para poder filtrar y activar solo las que me interesaban.

En mi computadora portátil actual, parece que el único evento que se activa de manera confiable es la conexión del cliente DHCP. Por supuesto, esto se fríe cada vez que obtengo una dirección IP y no me dice un SSID.

Puede verificar qué eventos están disponibles para activar con el visor de eventos de Windows. Simplemente encendí y apagué mi wifi 3 veces y verifiqué qué eventos se activaron 3 veces en la última hora.

Respuesta4

Dependiendo de la implementación específica del portal, es posible que ni siquiera necesite ningún software adicional.

Nota:Esta solución requiere conocimientos básicos deHTTPy elpanel de desarrollode su navegador. El segundo enlace es para Chrome; Si utiliza otros navegadores, una búsqueda rápida le llevará allí fácilmente. Tampoco deberías tener miedo de utilizar la interfaz de línea de comandos, aunque ciertamente no necesitas ser un experto.


Básicamente, el portal cautivo es sólo una página web HTML. Cuando ingresa sus datos de autenticación y los envía, su navegador simplemente envía una solicitud HTTP (probablemente GET o POST) con sus credenciales a una URL preconfigurada. Por supuesto, esto se puede lograr utilizando herramientas de línea de comandos y, por lo tanto, automatizar utilizando el Programador de Windows, como se ha mencionado en otras respuestas.

Afortunadamente, desde 2018 Windows 10 se envía con elrizoutilidad, que le permite enviar solicitudes HTTP arbitrarias. Entonces, lo que puede hacer es inspeccionar la solicitud que envía su navegador cuando envía sus credenciales a través del portal y redactar un comando curl que envíe la misma solicitud. Vea cómo enviar una solicitud POST usando curlaquí. Luego puede guardar el comando en un .batarchivo y configurarlo para que se ejecute cuando se conecte a una red mediante el Programador de tareas. @Menasheh ha proporcionado una guía sencilla, por lo que no repetiré esta parte.

Sin embargo, no se garantiza que esta solución funcione encadared, ya que un portal más sofisticado podría realizar varias comprobaciones de la solicitud, como sellado de tiempo o tokenización. Pero de todos modos vale la pena intentarlo.


Un posible vector de ataque de esta solución es que, dado que al Programador de tareas no le importa a qué red se está conectando, ejecutará este script cuando se conecte.CUALQUIERred. Esto hace que exista una posibilidad distinta de cero de que un atacante oportunista pueda configurar un ataque de phishing en su propia red. Cabe señalar que la posibilidad de que esto ocurra es muy pequeña, dado que muy pocas personas ejecutan una configuración de inicio de sesión automático como esta. Y existen técnicas de mitigación para esto, como configurar un portal HTTPS con un certificado interno del lugar de trabajo, pero esto está fuera del alcance de esta pregunta.

información relacionada