「ブラッディ・マンデイ」の藤丸がもってるUSBメモリの作り方

ブラッディ・マンデイ、ついに最終回が終わりましたね。 今回はブラッディ・マンデイの主人公、高木藤丸がもっているUSBメモリ(的な)の作り方を。 (※自己責任でつくってねん。ちなみに不正侵入は犯罪だよ!ダメ!絶対!)

このUSBメモリの中身を作るにあたって、参考にしたサイトは下記の通りです。 ■高校生サーバー管理者の考察日誌 ブラッディ・マンデイが始まってから『「ブラッディ・マンデイ」を考察する』というブログを書き始められたのですが、 このブログを書いてるのはなんと高校生!脱帽です。 ■【BackTrack 3】:Royal Windows 今回のUSBメモリ作成にあたって選んだOS『backtrack3』について記事を書かれているatc-500 さんのブログ。 今回の作成方法もここを丸パクりと言っていほど参考にしています。

高木藤丸仕様ですが、USBメモリ内にUSBブート可能なOSを入れて、 そいつをもろもろカスタマイズして使ってるんではないかと。 という訳で、USBブート可能なLinuxを使います。 ubuntuでも良いし、USBブートできるFedoraでも良いし、OSは何でも良いです。 今回僕はペネトレーションテスト用OS、『backtrack3』を使います。 (backtrackについては自分で調べてくださいね。)

ちなみに、ざっくりとした作り方はこちら

▼準備するもの [1] ubuntu Linux (LiveCD) or VMware版 ubuntu Linux ※ubuntuはUSBメモリのパーティションを分割するために使います。 ※パーティション分割できればOKなので、OSはubuntuじゃなくても可。 [2] USBメモリ(4GB以上がオススメ)
とりあえず上記があればつくれます。あとUSBブートできるパソコンも必要ね! [3]backtrack3final (ペネトレーション用OS) [4]ophcrack (windowsパスワードクラッカー)

要は、[2]に[3]と[4]をぶっこむというわけです。(完成!?w)

まずはUSBメモリを分割します。 fdiskを使って分割していきましょう。

root@ubuntu-vm:~# fdisk /dev/sdb
Command (m for help): p

Disk /dev/sdb: 4009 MB, 4009754624 bytes
5 heads, 32 sectors/track, 48947 cylinders
Units = cylinders of 160 * 512 = 81920 bytes
Disk identifier: 0x9fe248cd

   Device Boot      Start         End      Blocks   Id  System

まず、fdiskのpコマンドで、USBメモリ内にパーティションがないことを確認。 通常は、パーティションが何かしらあると思うので、dコマンドでパーティションを削除しておくこと。

では、パーティションがないという前提ですすめていく。

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-48947, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-48947, default 48947): 24473

fdiskのnコマンドでプライマリパーティションを切っていく。 まず一つ目。シリンダーサイズが48947となっているので、半分(24473)のところでパーティションをぶち切る。 そして、ファーストパーティションはwindows形式(FAT32)にする。

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): b
Changed system type of partition 1 to b (W95 FAT32)

Command (m for help): p

Disk /dev/sdb: 4009 MB, 4009754624 bytes
5 heads, 32 sectors/track, 48947 cylinders
Units = cylinders of 160 * 512 = 81920 bytes
Disk identifier: 0x9fe248cd

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       24473     1957824    b  W95 FAT32

tコマンドで、b を選ぶとファイルシステムがwindows形式(FAT32)になった。

同じ要領でセカンドパーティションを作っていく。

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (24474-48947, default 24474):
Using default value 24474
Last cylinder or +size or +sizeM or +sizeK (24474-48947, default 48947):
Using default value 48947

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 83

Command (m for help): p

Disk /dev/sdb: 4009 MB, 4009754624 bytes
5 heads, 32 sectors/track, 48947 cylinders
Units = cylinders of 160 * 512 = 81920 bytes
Disk identifier: 0x9fe248cd

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       24473     1957824    b  W95 FAT32
/dev/sdb2           24474       48947     1957920   83  Linux

セカンドパーティションはファイルシステムをLinuxにした。 セカンドパーティションは設定データなどを保存するためのディスクになる。

ここまでできたら、fdisk の w コマンドで設定を保存し終了する。 fdiskを抜けたら、ふたつのパーティションをフォーマットする。

もしマウントされていたら、umountコマンドでアンマウントしておくこと。

root@ubuntu-vm:~# mkfs.vfat /dev/sdb1
root@ubuntu-vm:~# mkfs.ext2 /dev/sdb2

次に、データ保存用の“changes"フォルダをつくる。

root@ubuntu-vm:~# mount /dev/sdb2 /media/disk
root@ubuntu-vm:~# cd /media/disk/
root@ubuntu-vm:/media/disk# ls
lost+found
root@ubuntu-vm:/media/disk# mkdir changes
root@ubuntu-vm:/media/disk# ls
changes  lost+found

上記例では、/media/disk にUSBメモリのセカンドパーティションをマウントして、 mkdir で "changes"フォルダを作っている。

ここまでで、USBメモリ側の準備はできた。

さて、これからが本番である。 backtrack本体とophcrackをUSBメモリにつっこんでいく。 MBRはbacktrack3のものを使う。そして、backtrack3とophcrackのカーネルを共存させる。

ここからはwindowsでもmacでもLinuxでも作業方法は何でも良い。 ここではwindowsをベースに説明していく。(ここからは超簡単。)

まずはダウンロードしてきたbacktrackを解凍する。 すると中に、

/boot /BT3
というフォルダがあるので、こいつらをUSBメモリのファーストパーティションにコピーする。 そしたら次にダウンロードしたophcrackを解凍して中身を確認する。
/boot /ophcrack
というフォルダが確認できるだろう。 そしたら、”/ophcrack"フォルダだけ、USBメモリにコピーする。 (レインボーテーブルもダウンロードした人はレインボーテーブルも。)

ここまでできたら、次にUSBメモリ内に移動する。 そして、"/boot" フォルダ内に “oph"というフォルダをつくる。

#ここまでのUSBメモリ内 /boot /boot/oph /ophcrack /BT3

※他にもフォルダやファイルはあるが、割愛する。

ここまでできたら、”/boot/oph" フォルダ内に、ophcrackのカーネルイメージを入れる。
#ophcrackを解凍した際にできた"/boot"フォルダ内から、 “vmlinuz” と “initrd.gz” をUSBメモリ内の“/boot/oph” にコピーする。
これでUSBメモリ内に必要なファイルはすべて揃った。

次にブートメニューをいじっていく。 USBメモリ内にある、"/boot/syslinux" フォルダ内の“syslinux.cfg” をカスタマイズする。 このファイルがブートメニューの設定ファイルである。

必要なものは下記の3つあたりだろう。 ちなみに下記は僕がすでにカスタマイズしたあとです。 ポイントは“changes=/dev/sdb2” ←こいつ。 セカンドパーティションが設定やらのデータ保存領域になります。

#backtrack3 グラフィックモード
LABEL pchanges
MENU LABEL BackTrack3
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw changes=/dev/sdb2 autoexec=xconf;kdm

#backtrack3 テキストモード
LABEL BT3
MENU LABEL BackTrack3 text_mode
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw changes=/dev/sdb2

#ophcrack グラフィックモード
LABEL oph
MENU LABEL Ophcrack
KERNEL /boot/oph/vmlinuz
APPEND initrd=/boot/oph/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;startx changes=/slax/

これですべての準備は整いましたね。 最後に、下記のファイルを実行して、USBブートを可能にする。

#USBメモリ内の、下記ファイルを実行。※必ずUSBメモリ内で実行してください!
#windowsのローカル上で実行するとwindowsがぶっこわれる可能性が。

/boot/bootinst.bat

これで完成です。長かったですね・・・。 あとは、USBメモリをブートすれば、藤丸仕様っぽいUSBメモリが完成です。 パスワードクラックでも、侵入テストでも何でもテキトーにやってみてください。 (自分のマシンを対象にやってねん。人のマシンはダメよ!)

ってな感じで以上です。 なんか間違ってる部分とかあったらご指摘くださいませ。(まだまだ勉強中です…。)