在 Windows 中通过强制门户自动登录网络?

在 Windows 中通过强制门户自动登录网络?

我在办公室有一个 Wi-Fi 网络,需要使用强制门户. 需要用用户名和密码登录。

我希望以某种方式运行一个脚本,让我在连接到网络时立即自动登录,而无需启动浏览器并保持打开状态。

奇怪的是,我找到了这样一个 Android 客户端,酷瓦不再可用,但不适用于 Windows。如果有关系的话,我有 Windows 7。

有人有一个简单的解决方案吗?我不想花时间为此编写自己的工具。

答案1

我不知道简单...我使用一个叫做webinject.pl以便测试网站。这是一个 perl 脚本,允许您指定输入和预期结果,并且可以轻松配置。您可能需要一个小时才能使其工作。

至于如何实现自动化。Windows 任务计划程序非常强大,可以触发无数事件。您可以将其与登录事件或事件日志条目绑定,或者只是让它每 5 分钟运行一次(这有点麻烦)。例如,当我建立网络连接时,我会在系统日志中收到事件 32。这可能会成功。

答案2

您可以使用山猫(支持 SSL 的版本)- 基于文本的浏览器 - 带有cmd_args包含登录所需命令的脚本文件。您可以通过使用 lynx 登录 wifi 一次并记录输入来生成这样的脚本文件。通过使用以下参数调用 lynx 来执行此操作:

lynx.exe -cmd_log=%USERPROFILE%\lynxlog.txt`

然后,您可以重命名该文件并通过调用 lynx 来使用它,如下所示:

lynx.exe -cmd_script=文件名

将其放入批处理文件中。(使用 lynx 可执行文件的完整路径或在 PATH 环境变量中设置该路径。)

一旦完成该操作,请10000NetworkProfile日志源中创建一个由事件 ID 触发的计划任务Microsoft-Windows-NetworkProfile/Operational并调用它:

任务计划程序触发器示例

就我个人而言,我iexpress.exe会将其与隐藏在后台运行的程序捆绑在一起,并确保即使我没有登录,计划任务也会运行。几周前我刚刚在我的计算机上设置了它,效果很好!

来源:我的文章如何实现自动门户登录

答案3

我以前用 Windows 任务调度程序和 php+mysqllite 脚本做过这个。php+mysqllite 脚本只是检查它是否可以到达 google,如果它被重定向,它会检查它是否有重定向到的域的例程,如果有,它就会运行它。mysqllite 是为了保存我在 php 中实现的无头浏览器的 cookie。使用与 greymonkey 等效的程序进行登录可能会省去很多工作。(缺点是每次调度程序被触发时浏览器都会弹出并执行操作。)

任务调度程序触发器因机器而异。我有一台笔记本电脑会将 wifi 连接记录为事件,并且它们包括 ssid,因此我可以进行筛选,只触发我关心的那些。

在我现在的笔记本电脑上,似乎唯一可靠触发的事件是 DHCP 客户端连接。当然,每次我获得 IP 地址时,它都会触发,并且不会告诉我 SSID。

您可以使用 Windows 事件查看器检查可以触发哪些事件。我刚刚打开和关闭了我的 wifi 三次,并检查了过去一小时内触发了哪些事件三次。

答案4

根据门户的具体实施,您甚至可能不需要任何额外的软件。

笔记:此解决方案需要以下基本知识HTTP开发面板您的浏览器。第二个链接适用于 Chrome;如果您使用其他浏览器,快速搜索应该可以轻松带您到达那里。您也不应该害怕使用命令行界面,尽管您当然不需要成为专家。


从根本上讲,强制门户只是一个 HTML 网页。当您输入身份验证详细信息并提交时,您的浏览器只是将包含您的凭据的 HTTP 请求(可能是 GET 或 POST)发送到预配置的 URL。这当然可以使用命令行工具来实现,从而使用 Windows Scheduler 实现自动化,正如其他答案所提到的。

幸运的是,自 2018 年起,Windows 10 已附带卷曲实用程序,它允许您发送任意 HTTP 请求。因此,您可以做的是检查浏览器在您通过门户提交凭据时发送的请求,并编写发送相同请求的 curl 命令。了解如何使用 curl 发送 POST 请求这里。然后,您可以将命令保存在文件中.bat,并将其设置为在使用任务计划程序连接到网络时运行。@Menasheh 提供了一个简单的指南,所以我不会重复这部分。

然而,这个解决方案并不能保证有效每一个网络,因为更复杂的门户可能会对请求执行各种检查,例如时间戳或标记。但无论如何,还是值得一试。


该解决方案的一个潜在攻击媒介是,由于任务计划程序不关心您连接到哪个网络,因此它将在您连接到任何网络。这使得机会主义攻击者有一定几率在自己的网络上发起网络钓鱼攻击。但必须注意的是,这种情况发生的可能性非常小,因为很少有人运行这样的自动登录设置。并且有一些缓解技术可以解决此问题,例如使用工作场所内部证书设置 HTTPS 门户,但这超出了本问题的讨论范围。

相关内容