佐賀の学習システムのバッチファイルが酷すぎると話題に
とても眠い人のブログ: 残念だが当然の結果
ここに佐賀の学習システムの教材のインストーラーがあるのですが、内容がすごい
On Error Resume Next
dim domname1 domname1 = getjoindomainname() // ***.saga-ed.jp ? set wshshell = wscript.createobject("wscript.shell") wshshell.run("runas /user:" & domu & apbatpass) //管理者権限でバッチファイルを実行 Function GetJoinDomainName() For Each objComputer in colComputers
GetJoinDomainName = strRet |
1.水色の部分は、MSDNフォーラムからの丸パクリ
IPアドレスでリモートしている先のワークグループ名を取得したい【VBS】
2. ドメインごとのパスワードがドメイン名の左3文字ごとに変更してるだけで同じ。しかも、3年近く共有しているパスワード変更しなかったらしい
【大切なので2回目の復習】パスワードの定期更新が必要なケース
3. このVBSは サーバーにある共有フォルダのバッチファイルを管理者権限で実行して、管理Userと Passwordを自動で打ち込むためにハードコードされたという原始的な代物。
4. しかもSendKeyで送信するので、送信先の アプリケーションが バッチファイルとは限らない。
ちなみに、20行くらいの .Net アプリケーションを作ればちゃんとターゲットを決めて、パスワードコーディングして管理者権限でアプリケーションを実行することが可能ではあるがそれすらやっていない)
5. 1秒間待った後、管理者パスワードを入力できるようになっているということは、既定のログインがユーザーアカウントだが、UAC自体は無効になってる可能性が高い。
追記: 確認してみたら、UAC関係なく、動作的にこうなったので勘違いでした。
6. vbs は簡単なvbeに暗号化ができるのだが、それすら知らなかった可能性がある。(復号ソフトが存在するのであまり意味はない。日本語が入ってると復号できないが、私が日本語対応版作ってるので意味無し)
7. アプリケーションのインストールに、ドメイン管理者の administrator アカウントを直接使ってるw
8. 学習PCは Java / Flash が入ってるのにアップデートされておらず、 Windows Update も正常にできない状態らしい。
9. On Error Resume Next を埋め込むことによって、エラーが発生しても、正常に終了しても分からないようになっている。
いや、ほんと酷いよ。絶対これは氷山の一角。
これこそ生きた教材。
セキュリティを実装する手段があって、実装を禁じる社内政治ってものがある。
転じて、システムに任せていいデータと、任せてはいけないデータを考えよと。
あなたがいつも遊んでるサービス、大丈夫? > 学生