佐賀の学習システムのバッチファイルが酷すぎると話題に

とても眠い人のブログ: 残念だが当然の結果

ここに佐賀の学習システムの教材のインストーラーがあるのですが、内容がすごい

On Error Resume Next

dim domname1
dim domnum1
dim domu
dim domp
dim domsv
dim sccmsv
dim apbatpass

domname1 = getjoindomainname()  // ***.saga-ed.jp ?
domnum1 = left(domname1, 3)  // "***" ?
domu = domnum1 & "Ie\administrator "
domp = "Ie" & domnum1 & "Saga-Edu"
domsv = domnum1 &  "Lesv004"
sccmsv = domnum1 & "Lesv005"
adbatpass = "\\" & sccmsv & "\" & "app$" & "\06\app06.bat"

set wshshell = wscript.createobject("wscript.shell")

wshshell.run("runas /user:" & domu & apbatpass) //管理者権限でバッチファイルを実行
wscript.sleep 1000 //一秒待つ
wshshell.sendkeys domp // パスワード送出
wshshell.sendkeys "{ENTER}" // 改行送出
wscript.sleep 1000 //一秒待つ

Function GetJoinDomainName()
 
On Error Resume Next
   Err.Clear
  Dim objWMIService
  Dim objComputer
  Dim colComputers

  Dim StrRet
  strRet = ""
  Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & IPADDRESS & "\root\cimv2")

  Set colComputers = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")

     For Each objComputer in colComputers
       strRet = objComputer.Domain
     Next


    GetJoinDomainName = strRet
  Err.Clear
End Function

1.水色の部分は、MSDNフォーラムからの丸パクリ
IPアドレスでリモートしている先のワークグループ名を取得したい【VBS】

2. ドメインごとのパスワードがドメイン名の左3文字ごとに変更してるだけで同じ。しかも、3年近く共有しているパスワード変更しなかったらしい
 【大切なので2回目の復習】パスワードの定期更新が必要なケース

3. このVBSは サーバーにある共有フォルダのバッチファイルを管理者権限で実行して、管理Userと Passwordを自動で打ち込むためにハードコードされたという原始的な代物。

4. しかもSendKeyで送信するので、送信先の アプリケーションが バッチファイルとは限らない
ちなみに、20行くらいの .Net アプリケーションを作ればちゃんとターゲットを決めて、パスワードコーディングして管理者権限でアプリケーションを実行することが可能ではあるがそれすらやっていない)

5. 1秒間待った後、管理者パスワードを入力できるようになっているということは、既定のログインがユーザーアカウントだが、UAC自体は無効になってる可能性が高い

snow
追記: 確認してみたら、UAC関係なく、動作的にこうなったので勘違いでした。

6. vbs は簡単なvbeに暗号化ができるのだが、それすら知らなかった可能性がある。(復号ソフトが存在するのであまり意味はない。日本語が入ってると復号できないが、私が日本語対応版作ってるので意味無し)

7. アプリケーションのインストールに、ドメイン管理者の administrator アカウントを直接使ってる

8. 学習PCは Java / Flash が入ってるのにアップデートされておらず、 Windows Update も正常にできない状態らしい。

9. On Error Resume Next を埋め込むことによって、エラーが発生しても、正常に終了しても分からないようになっている。

いや、ほんと酷いよ。絶対これは氷山の一角。

おすすめ

1件の返信

  1. 名無しのプログラマー より:

    これこそ生きた教材。
    セキュリティを実装する手段があって、実装を禁じる社内政治ってものがある。
    転じて、システムに任せていいデータと、任せてはいけないデータを考えよと。
    あなたがいつも遊んでるサービス、大丈夫? > 学生

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です