Windows のキャプティブ ポータルを使用してネットワークに自動的にログインしますか?

Windows のキャプティブ ポータルを使用してネットワークに自動的にログインしますか?

オフィスにはWi-Fiネットワークがあり、ログインにはキャプティブポータルユーザー名とパスワードでログインする必要があります。

ブラウザを起動して開いたままにせずに、ネットワークに接続するとすぐに自動的にログインするスクリプトを何とか実行したいと思います。

奇妙なことに、Android用のそのようなクライアントを見つけることができました。クーバAXもう入手できませんが、Windows 用のものはありません。関係ないかもしれませんが、私は Windows 7 を使用しています。

これに対する簡単な解決策を持っている人はいますか? そのために独自のツールをコーディングするのに時間を費やしたくないのです。

答え1

シンプルかどうかは分かりませんが、私はウェブインジェクトWeb サイトをテストするため。これは、入力と期待される結果を指定できる Perl スクリプトであり、簡単に設定できます。動作させるには 1 時間かかる場合があります。

自動化の方法についてですが、Windows タスク スケジューラは非常に堅牢で、さまざまなイベントをトリガーできます。ログオン イベントまたはイベント ログ エントリに関連付けることも、5 分ごとに実行するようにすることもできます (これは少し面倒です)。たとえば、ネットワーク接続を確立すると、システム ログにイベント 32 が記録されます。これで解決できるかもしれません。

答え2

使用できますオオヤマネコ(SSL をサポートするバージョン) - テキスト ベースのブラウザー -cmd_argsログインに必要なコマンドを含むスクリプト ファイル付き。このようなスクリプト ファイルは、lynx を使用して wifi に一度ログインし、入力をログに記録することで生成できます。これを行うには、次の引数を使用して lynx を呼び出します。

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

次に、そのファイルの名前を変更し、次のように lynx を呼び出して使用できます。

lynx.exe -cmd_script=ファイル名_ここ

これをバッチ ファイルに入れます。(lynx 実行可能ファイルへのフル パスを使用するか、そのパスを PATH 環境変数に設定します。)

それが機能するようになったら、それを呼び出すログの10000ソースのイベント ID によってトリガーされるスケジュールされたタスクを作成します。NetworkProfileMicrosoft-Windows-NetworkProfile/Operational

タスク スケジューラ トリガーの例

個人的には、これをバンドルしてiexpress.exeバックグラウンドで非表示で実行し、ログオンしていない場合でもスケジュールされたタスクが実行されるように設定しています。数週間前にコンピューターにこれをセットアップしたばかりですが、うまく機能しています。

出典:私の記事キャプティブポータルのログインを自動化する方法

答え3

以前、Windows タスク スケジューラと php+mysqllite スクリプトを使用してこれを実行しました。php+mysqllite スクリプトは、Google に到達できるかどうかをチェックし、リダイレクトされた場合は、リダイレクト先のドメインのルーチンがあるかどうかをチェックし、ある場合はそれを実行しました。mysqllite は、php で実装したヘッドレス ブラウザの Cookie を保持するためのものでした。ログインを行うために、Greasemonkey と同等のものを使用する方が、おそらくはるかに作業が少なくなります。(欠点は、スケジューラが作動するたびにブラウザがポップアップして何かを実行することです。)

タスク スケジューラのトリガーはマシンによって異なります。Wi-Fi 接続をイベントとして記録するラップトップが 1 台あり、SSID も含まれていたため、必要な接続のみをトリガーするようにフィルターできました。

私の現在のラップトップでは、確実に発生するイベントは DHCP クライアント接続だけのようです。もちろん、IP アドレスを取得するたびにこのイベントは失敗し、SSID は表示されません。

Windows イベント ビューアーを使用して、トリガーできるイベントを確認できます。 Wi-Fi を 3 回オン/オフにして、過去 1 時間に 3 回トリガーされたイベントを確認しました。

答え4

ポータルの具体的な実装によっては、追加のソフトウェアが不要な場合もあります。

注記:このソリューションには、ウェブそしてその開発パネルブラウザの 2 番目のリンクは Chrome 用です。他のブラウザを使用している場合は、簡単な検索で簡単にアクセスできます。コマンドライン インターフェイスの使用をためらう必要はありませんが、専門家である必要はありません。


基本的に、キャプティブ ポータルは単なる HTML ウェブページです。認証の詳細を入力して送信すると、ブラウザーは資格情報を含む HTTP 要求 (おそらく GET または POST) を事前設定された URL に送信するだけです。もちろん、これはコマンド ライン ツールを使用して実行でき、他の回答で言及されているように、Windows Scheduler を使用して自動化できます。

幸いなことに、2018年からWindows 10にはカールユーティリティを使用すると、任意の HTTP リクエストを送信できます。ポータルを通じて認証情報を送信したときにブラウザが送信するリクエストを調べ、同じリクエストを送信する curl コマンドを作成します。curl を使用して POST リクエストを送信する方法を参照してください。ここ次に、コマンドをファイルに保存し.bat、タスク スケジューラを使用してネットワークに接続したときに実行されるように設定できます。@Menasheh が簡単なガイドを提供しているので、この部分は繰り返しません。

ただし、この解決策が機能することは保証されていません。より高度なポータルでは、タイムスタンプやトークン化など、リクエストに対してさまざまなチェックを実行する可能性があるため、ネットワークは不要です。それでも試してみる価値はあります。


このソリューションの潜在的な攻撃ベクトルは、タスクスケジューラがどのネットワークに接続しているかを気にしないため、接続時にこのスクリプトを実行することです。どれでもネットワーク。これにより、日和見的な攻撃者が自分のネットワークにフィッシング攻撃を仕掛ける可能性がゼロではなくなります。ただし、このような自動ログイン設定を実行する人はほとんどいないため、この可能性は非常に小さいことに注意する必要があります。また、職場の内部証明書を使用して HTTPS ポータルを設定するなど、これを軽減する手法もありますが、これはこの質問の範囲外です。

関連情報