2015/06/26(金)VBSでログイン

 なでしこの「キー送信」に相当するVBS(WSH)のSendKeysを使ってインターネットエクスプローラーで宮崎銀行のネットバンキングに自動ログインするスクリプトを書いてみた。参考にしたのはIEへのキー入力をVBScriptで再現する。 - Qiita。なでしこのインストールが不要なのでこちらの方が手軽だが、クリップボードのデータではなく、直接IDとパスワードを入力しているのでキーロガー対策はない。IEでクリップボードのデータを使おうとすると、警告メッセージが出るから。パソコンにスパイウェアが入ってなければ、心配はありませんが。

'シェルを起動する
Dim wsh
Set wsh = WScript.CreateObject("WScript.Shell")
'IEを起動する
Dim ie 
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
'指定URLを開く
ie.Navigate("https://mib.miyagin.co.jp/MYIK/BankIK?xtr=aulogon01000&NLS=IKP")
Do While ie.Busy = True Or ie.readyState <> 4
Loop
'キー入力する
Wscript.Sleep 1000 
wsh.SendKeys "ID" 'ここにIDを書く
Wscript.Sleep 1000 
wsh.SendKeys "{tab}"
Wscript.Sleep 1000 
wsh.SendKeys " " 'スクリーンキーボードのチェックを外す
Wscript.Sleep 2000 
wsh.SendKeys "{enter}" '警告ダイアログにエンターキーを送る
Wscript.Sleep 1000 
wsh.SendKeys "PASSWORD"  'ここにパスワードを書く
Wscript.Sleep 1000 
wsh.SendKeys "{enter}" 'ログインを実行する

キー送信もSendKeysもパソコンの負荷が高い時などタイミングによっては失敗することがある。だから1秒とか2秒の時間を空けてコマンドを送っているが、それでもダメな時はダメですね。

2015/06/25(木)宮崎銀行の自動ログイン

 資産管理ソフトのMoney Look(マネールック)で宮崎銀行のネットバンキングに自動ログインできなくなった。4月にサイトのデザインが変わって以来だ。そのうち対応してくれるだろうと思っていたのだが、いっこうに改善されないのでサポートに要望メールを出した。ユーザーから要望がないと、サポートとしても不具合が起きているかどうかも分からないだろう。

その日のうちに「対応したのでテストしてみてほしい」と返信メールが来た。早い。で、やってみたが、ダメ。数回、メールのやり取りをして、インストールしている PhishWallTrusteer Rapportなどフィッシング詐欺・ウィルス対策ソフトが一因だろうとの結論になった。「お客様の環境によって自動ログインができない現象が発生する場合があり、現在対応が困難な状況です。恐れ入りますがご了承いただきますようお願い申し上げます」。ま、しょうがない。環境によってはそういうこともあるだろう。

 ただ、気になったのは他の銀行には普通に自動ログインできていること。ということはフィッシング詐欺・ウィルス対策ソフトが原因とは考えにくく、サイト固有の問題だろう。しょうがないので、日本語プログラム言語なでしこで作ってみた。サイトへの自動ログインツールは「Webサイトへのログイン作業を簡単にする自動化ツールを作ろう(第134回)《クジラ飛行机「文系サラリーマンのための仕事に役立つプログラミング入門」》」などに書いてあるように比較的簡単に作れる。なでしこにはサイトのフォーム入力のために「ブラウザINPUT値設定」という命令がある。これを使ってみたが、入力されない。サイトのソースを見ると、ユーザーIDの入力フォームがオートコンプリートオフの設定になっていることと、スクリーンキーボード使用のチェックを外さないと、パスワードのフォームに入力できないことが原因のようだ。

 それならばと、「キー送信」命令でやってみたら、あっさりできた。フォーム自動入力のソースは以下の通り

「{ユーザーID}」をコピー
母艦へ『^v』をキー送信 #ユーザーIDをコピーしてCTRL+Vで貼り付け
1秒待つ
母艦へ『{TAB}』をキー送信 #タブキーでチェックボックスにフォーカス
1秒待つ
母艦へ『 』をキー送信 #スペースキーを送信してチェックを外す
#ここで注意を促すダイアログが出るので手動でOKボタンを押す
1秒待つ
「{パスワード}」をコピー
母艦へ『^v』をキー送信 #パスワードをコピーしてCTRL+Vで貼り付け
1秒待つ
母艦へ『{ENTER}』をキー送信 #エンターキーをキー送信

 スクリーンキーボードはキーロガーを防ぐためには意味があるが、それならば、ユーザーIDを入力するフォームにも適用した方がいいでしょう、宮銀さん。ちなみにIDとパスワードをコピーしてCTRL+Vで貼り付けると、キーロガーされても盗まれるのはCTRLとVだけなので、上のソースを使っても安心です。

 それにしても感心したのはMoneyLookサポートの対応の早さ。返事が来るまで2、3日かかるかなと思っていたのだ。解決はしなかったけど、対応が早いのは気持ちが良い。問い合わせ(ユーザー)が多くないのだろうか? MoneyLookは使い始めて3年。サーバー上にIDやパスワードなどのデータを置かないので他の同種のソフト(サイト)よりセキュリティーは高いと思う。