DFIR用LinuxディストリビューションのTsurugi Linuxを使ってみた
AVTokyoでお披露目となったTsurugi Linuxのインストール&試用レポートです。
背景、経緯
2018/11/3に開催されたAVTokyoに参加してきました。
そこで配られていた入場カードに、何とUSBメモリが隠されていました!
before
after
USBメモリの中には、当日の最後のセッションを飾った "Tsurugi Linux"のisoファイルと、お試し用のCTF問題ファイルが格納されていました。
Tsurugi Linuxとは、デジタルフォレンジクス、マルウェア解析、OSINT等に使用するツールがあらかじめインストールされた、UbuntuベースのLinuxとのこと。
詳しくはこちら。
Tsurugi Linux | Digital Forensics and Osint Linux Distribution
せっかく頂いたので、帰ってから早速起動してみました。
Live起動
VirtualBoxで新規に仮想マシンを作成し、isoを読み込んで起動してみました。
いくつか選択肢がありますが、どれもインストールではなくLive起動する模様。フォレンジックの現場において、USBメモリあるいはDVDメディアから起動することを想定しているのでしょう。
一番上の「TSURUGI Linux Live(GUI Mode)」を選択して起動した直後の画面はこちら。解像度の設定がいまいちだったため、システムモニターやAV Tokyoのロゴが切れてしまっていますが、すんなり起動できました。
この後、System
->Displays
から解像度を大きくしました。
左上のApplications
から、いくつかツールを見てみました。
目的ごとにカテゴリ分けされていてわかりやすいです。
CODE BLUE 2018で講演のあったLogon Tracer
もデフォルトで入っていますね。
また、デスクトップ上にOSINT Switcher
という気になるショートカットを発見。
クリックしてみると、デスクトップの背景が竹林に変わりました。
また、左上のApplications
のメニューもOSINTに特化したものに変わりました。
インストール
毎回、Live起動では時間がかかりますし設定やデータの保存もできないため、インストールします。
デスクトップ上の、Install TSURUGI 2018.1
のショートカットをクリックすると、いくつか警告と確認のダイアログが表示された後、インストール先のハードディスクを選択する画面が表示されました。
更に進めていくとインストーラーが起動され、言語、タイムゾーン、ユーザ情報等を入力し、インストールできました。再起動すると、isoイメージからではなくハードディスクから起動されました。
インストール&再起動後の画面はこちら。
VirtualBox Guest Additionsのインストール
ホストPCとのクリップボードの共有や共有フォルダのため、VirtualBox Guest Additionsをインストールします。
- 仮想PCのウィンドウのメニューバーから
デバイス
->Guest Additions CDイメージの挿入
を選択 - 右上のCDのアイコンからマウント
- ターミナル起動
sudo /media/<username>/VBox_GAs_<version>/autorun.sh
を起動
しかし、インストールは最後まで走ったものの、インストールログである/var/log/vboxadd-setup.log
ログを見てみるとエラーが発生しています。
(snip) make[2]: *** [/tmp/vbox.0/utils.o] Error 1 Makefile:1522: recipe for target '_module_/tmp/vbox.0' failed make[1]: *** [_module_/tmp/vbox.0] Error 2 /tmp/vbox.0/Makefile.include.footer:101: recipe for target 'vboxsf' failed make: *** [vboxsf] Error 2
vboxsf、共有フォルダ周りですね・・・。
実際、クリップボード共有はできても、共有フォルダがうまくいきませんでした。
エラーメッセージ等でググった結果、以下のページがHIT。
一般的ソフトウェアエンジニアのTechメモ: ubuntuをWindowsOS上で動作させる - Guest Additionsインストールのエラーvboxsfがmodprobeできない対処 -
参考にして以下コマンドを実行したところ、エラーが発生しましたが、共有フォルダ設定はうまくいきました。
$ cd /usr/src/vboxguest-<version> $ sudo make $ sudo make install
念のため、共有フォルダの設定コマンドはこちら。
$ sudo mkdir /mnt/<適当なフォルダ名> $ sudo mount -t vboxsf <VirtualBoxで設定した共有フォルダ名> /mnt/<適当なフォルダ名>
試してみる
実際に、Tsurugi Linux
を使用して、USBメモリに同梱されていたCTF問題を解いてみます。
フラグの投稿先はこちら。いつまで生きているかは不明。
左上のApplicationsから、出題タイトルに関連しそうなツールを使用して、解くことができました。
Challenge1-WinRegistry
reglookup
を使います。
$ reglookup Challenge1-WinRegistry | grep flag /Classes/CLSID/{7BA4C740-9E81-11CF-99D3-00AA004AE837}/flags,DWORD,0x00000001, /Classes/CLSID/{C2FBB630-2971-11d1-A18C-00C04FD75D13}/flags,DWORD,0x00000001, /Classes/CLSID/{C2FBB631-2971-11d1-A18C-00C04FD75D13}/flags,DWORD,0x00000001, /Classes/CLSID/{D969A300-E7FF-11d0-A93B-00A0C90F2719}/flags,DWORD,0x00000000, /Microsoft/Windows/AVTOKYO2018/flag,SZ,HackThePlanet, /Microsoft/Windows NT/CurrentVersion/Print/Printers/Fax/DsSpooler/flags,DWORD,0x00000000, /Microsoft/Windows NT/CurrentVersion/Print/Printers/Microsoft XPS Document Writer/DsSpooler/flags,DWORD,0x00000000, /Microsoft/Windows NT/CurrentVersion/SoftwareProtectionPlatform/Plugins/Objects/msft:rm\x2Falgorithm\x2Fflags\x2F1.0,KEY,,2009-07-14 04:41:12 /Microsoft/Windows NT/CurrentVersion/SoftwareProtectionPlatform/Plugins/Objects/msft:rm\x2Falgorithm\x2Fflags\x2F1.0/ModuleId,SZ,c42d83ff-5958-4af4-a0dd-ba02fed39662, /Microsoft/Windows NT/CurrentVersion/SoftwareProtectionPlatform/Plugins/Objects/msft:rm\x2Falgorithm\x2Fflags\x2F1.0/IsService,DWORD,0x00000000,
HackThePlanet
がフラグでした。
Challenge2-BrowsingHistory
pasco
を使います。
$ pasco Challenge2-BrowsingHistory | grep flag URL Visited: IEUser@http://www.avtokyo2018.com/flag/is/20181103 09/04/2018 15:23:13 09/04/2018 15:23:13 URL Visited: IEUser@http://www.avtokyo2018.com/flag/is/20181103 09/04/2018 15:23:13 09/04/2018 15:23:13
20181103
がフラグでした。
Challenge3-DeletedFile.e01
autopsy
で開いて探索。
/usr/share/man/avtokyo2018/flag
配下に、削除されたtsurugiDFIR
というファイルを発見。 (手抜き説明
tsurugiDFIR
がフラグでした。
Challenge4-WinMemClipBoard
volatility
を使います。
$ volatility --profile=Win7SP1x86_23418 -f Challenge4-WinMemClipBoard clipboard Volatility Foundation Volatility Framework 2.6 Session WindowStation Format Handle Object Data ---------- ------------- ------------------ ---------- ---------- -------------------------------------------------- 1 WinSta0 CF_UNICODETEXT 0x230173 0xfe5fda68 ZmxhZyBpcyB0c3VydWdp 1 WinSta0 0x0L 0x10 ---------- 1 WinSta0 0x3000L 0x0 ---------- 1 WinSta0 0x0L 0x3000 ---------- 1 ------------- ------------------ 0x170067 0xfdfd1268
ZmxhZyBpcyB0c3VydWdpをBASE64でデコードしたらflag is tsurugi
。
しかしtsurugi
が通りませんでした・・・。何か足りない?
なお、ZmxhZyBpcyB0c3VydWdp
もflag is tsurugi
も通りませんでした。
(2018/11/5 12:00追記)
flag is tsurugi
で、フラグ通りました。
Challenge5-UnknownExecBinary
objdump
で処理内容を確認。
$ objdump -d -Mintel Challenge5-UnknownExecBinary (snip) 0804845b <weird>: 804845b: 55 push ebp 804845c: 89 e5 mov ebp,esp 804845e: 81 ec 98 00 00 00 sub esp,0x98 8048464: 83 ec 08 sub esp,0x8 8048467: ff 75 08 push DWORD PTR [ebp+0x8] 804846a: 8d 85 78 ff ff ff lea eax,[ebp-0x88] 8048470: 50 push eax 8048471: e8 aa fe ff ff call 8048320 <strcpy@plt> 8048476: 83 c4 10 add esp,0x10 8048479: c7 85 70 ff ff ff 41 mov DWORD PTR [ebp-0x90],0x4f545641 8048480: 56 54 4f 8048483: c7 85 74 ff ff ff 4b mov DWORD PTR [ebp-0x8c],0x4f594b 804848a: 59 4f 00 804848d: 83 ec 08 sub esp,0x8 8048490: 8d 85 70 ff ff ff lea eax,[ebp-0x90] 8048496: 50 push eax 8048497: 8d 85 78 ff ff ff lea eax,[ebp-0x88] 804849d: 50 push eax 804849e: e8 6d fe ff ff call 8048310 <strcmp@plt> 80484a3: 83 c4 10 add esp,0x10 80484a6: 85 c0 test eax,eax 80484a8: 0f 94 c0 sete al 80484ab: 0f b6 c0 movzx eax,al 80484ae: c9 leave 80484af: c3 ret (snip)
0x4f545641
と0x4f594b
がPrintableのため復号すると、OTVA
とOYK
となりました。
AVTOKYO
ですね。念のため実行して確認。
$ ./Challenge5-UnknownExecBinary AVTOKYO .:: TSURUGI BINARY CTF 2018 ::. Crack me! ;) Success!
ということで、AVTOKYO
がフラグでした。
まとめ
Kali Linux、BlackArch Linux、REMnux等との比較はできていませんが、きれいにツール群が整理されている点と、ライブ起動が早い点が良いですね。それにデスクトップもかっこいいです。
また、「カーネルレベルでのデバイス書き込みブロッキング」の機能があるとのことですが、試せておらず。別の方のレポートや公式サイトのドキュメントを待ちたいと思います。