X-MASCTF2019 Forensic Writeup(解けたやつ)
年越して、今頃感のX-MAS。
2019/12/13 ~ 12/20開催してやつの記録を残しておく。遅れても、アウトプット大事だと思っているのです。
Santa's Forensic
Santa needs the help of an experienced forensics analyst. But first, he has to make sure that you are worthy.
与えられたzipファイルを解凍する。出てきたpng画像にzipファイルが含まれている。そのzipファイルを解凍して出てきたpngファイルのバイナリのケツにflag.
X-MAS{W3lc0m3_t0_th3_N0rth_Pol3}
Santa's letter
It seems that Santa may have used some Invisible Ink to write this letter... he is surely playing Hide&Seek.
与えれるファイルはpngファイルのみ。Steganoなのは分かったけれど、うさみみとかsteghideとかで見ても手がかりが得られない。
たまたま「invisible ink hideseek」で調べたらこんなの発見。
Digital Invisible Ink Toolkit - Background
javaで動く。起動してみる。
Get imageに与えられたpngをセット。algorithmにHideSeekといういかにもっぽいものをセット。messeageの出力ファイルを設定する。GoしてSuccess出たら、出力ファイルをチェック。
X-MAS{NOBODY:_SANTA:Hyvää joulua!}
珍しくflagがユニコ。
A trip to grandma's house
This Christmas I went to grandma's house and booted up my old computer from when I was a kid! Sadly, I don't remember my password, but I'm really curious to see what I had in there :(
ディスクイメージがvdiで与えられて、とりあえずrawイメージに変換(qemu使用)してAutopsyで見てみたら何かWindows98だし、デスクトップに沢山謎のtxtファイルある。
これって実際起動してみないと分からんやつでは。ということで、virtualboxへ。
起動までに何度かミスったので、windows98で知らなかったこと一覧。
- メモリ1GB以上はデフォルトだと動作しない
→何も考えずに適当にメモリ4GB振ったら動かなかったので、virtualboxおススメらしい64MBで動かした。
- ログイン画面でescキーを押すとパスワード無くてもログインできる?
→Windows98にはパソコンのロックに十分な機能がないのでescキーで認証回避できる。しかし、localhostにログインするようになってしまった場合vmのネットワーク設定でネットワークアダプタのチェックを外す必要がある。
これらを利用して起動してみる。
なんとなく先ほどの沢山のtxtファイルの意味が分かった。何かのpasswordを示しているのだね。
デスクトップのファイルを色々弄ってみた結果気になったのは、
- 実行できない「m2.exe」
→調べてもよく分からない
- passwordとあるので関係ありそうな「TrueCrypt」
→暗号化された仮想ディスク作ったり、マウントしたりする。マウントにpassword使いそう。
- これまたpasswordと関係ありそうな「secret.txt」
→txtファイルとして開けない。
真ん中あたりにある「yeah thats the password」というファイルは特に重要ではなさそうだった。secret.txtは容量が大きく、txtファイルとして開けないし、24MBもあるのでとても怪しい。これTrueCryptでマウントするんじゃないか。ということで試す。passwordはlowercaseで「mysekritd4tum」
何かマウントされた。やはり「secret.txt」が暗号化されたドライブであったようだ。中を見てみる。
これはなんだろか。そんなこんなでregionフォルダに見覚えのない.mcaという拡張子を見つけた。
どうやらmcaファイルはマインクラフトのマップデータ?らしい。このマシンにはこのファイルから上手く情報を取り出せそうなものは無さそうなので、ここからファイルを取り出してビューワーを探す。
(autopsy経由で取り出してもう一度「secret.txt」をマウントした)
色々探した結果「Chunky」というのが良さそうだと思ったので使ってみる。
先ほどマウントした中身を別フォルダにコピーして、「Chunky」のChange Worldから、Change world directoryを選択。ここで、先ほど作成したフォルダを選択する。マップが正しく読み込まれれば、DimentionをOverWorld、Map viewの欄をLayer、scaleを13,Layerを0とかにすると何か出てきた。
X-MAS{Druaga1_W0uld've_ruN__th1s_0n_4n_SSD}
Windows98を扱ったのは面白かったけど、Minecraftの下りいらなかった。
最後に
まさにCTFって感じで、技術を楽しむものだった。
Forensics toolのまとめ(windows多め)最終更新2020/04/16
使ってないのも、使ったことがあるのも含めて色々まとめ。
使えないのもあるかも。間違っている部分はご教授ください。
また、全てのリンクを確認できていないので危険なリンクなどがあれば教えてください。
ディスクイメージ系
・FTK Imager Lite
ディスクイメージを参照
NTFSマスターファイルテーブル($MFT)を抽出したり、削除済みファイルを復元したりする。
・MFTDump
$MFTの情報を解析して表形式で出力する。
> mftdump.exe /o output.csv <MFTファイル/ディスクイメージ>
ディスクイメージを解析して見やすく表示
FTK Imagerにはない「ファイルタイプ別」「削除されたファイル」「EXIFメタデータ」「Eメールメッセージ」などの観点で一覧できる。
・Sleuthkit
ディスクイメージのCUI解析ツール(AutopsyのCUIバージョン)
使用例 Autopsy & The Sleuth Kitの基本的な使い方 - 4ensiX
・autoruns
システムで自動起動するように登録されたエントリを一覧できる
FTK Imagerなどでマウントしたドライブを対象に解析することもできる。
使用例 contrailCTF2019 Forensic Writeup - 4ensiX
・Log Parser Studio
SQLでイベントログを参照し、テキスト出力できる。
・Bulk Extractor with Record Carving
ディスクイメージからファイルをカービングする。
・OSForensics
ディスクイメージを解析して見やすく表示※有償・30日トライアル可能
日付を指定して操作履歴を確認、削除ファイルを含めてファイルを検索、
メモリダンプの詳細が確認できる。
ブラウザのパスワード、Windowsパスワードなども探索できる。
RAIDのrebuildができた。
・NTFS Log Tracker
$LogFileからファイル操作記録を抽出(要SQLite)。ファイル操作記録がどれほどのものなのかは未知。
・ADS Manaager
代替データストリームを表示。何に使うのか分かっていない。
$JやUSNジャーナルの解析に特化したツール。
SRUDB.datの解析。
RAIDのrebuildが足りないファイルがあってもできることがあった。
使用例 RR - HackTM CTF 2020 Forensic writeup - 4ensiX
・TestDisk
ファイル復元ソフト。パーティション?領域が壊れていなければ、読み取って復元できる。sleuth kitでファイル復元するよりは、こっちの方が簡単な気がする。
仕組みが分かっていないけれど、無理やりこいつが理解できたファイル形式のファイルを取り出す。
レジストリ系
・Windows Registry Recovery
レジストリビューワー。
windows hiveファイルからパスワードなどの情報を抜き出す。(windows機だとウイルス判定されそう)
メモリ系
・KaniVola
メモリダンプを解析する
メモリダンプの解析といえばこれだと思っている。プロセスのダンプではなく、メモリ全体のダンプでなければ解析できない。
windowsの実行ファイル解析だけでなく、windowsのプロセスメモリダンプ(windows minidump)にも使う。
ステガノグラフィー系
画像や音声にパスワードを使用してデータを埋め込み・取り出しを行う。javaで動く。
ファイルの隠ぺい
> steghide.exe -cf <ファイル> -ef <隠すファイル>
隠ぺいファイルの抽出
> steghide.exe extract [-xf <隠ぺいファイル>] -sf <ファイル>
隠ぺいファイル情報表示
> steghide.exe info <ファイル名>
使用例 NeverLAN CTF 2020 PCAP/Forensic writeup - 4ensiX
・Digital Invisible Ink Toolkit
複数のアルゴリズムで、画像にファイルや文字列を埋め込める/取り出せる。
使用例 X-MASCTF2019 Santa's letter
画像系
・PNG_Analyzer
pngのチャンクサイズを変更できる。
IHDRのEditorタブで縦横のサイズを増やし、左のIHDR項目をクリックするとCRCが更新され、画像の表示領域を増やせる。
pngのチャンクを一覧表示する。
【レビュー】PNG画像を解析して詳細なフォーマット情報を取得・表示するツール「TweakPNG」 - 窓の杜
・PCRT
pngのチャンクをチェックして、エラーがあれば修正してくれる。ヘッダー以外にpngに問題がある場合に活躍する可能性があるかもしれない。
使用例 UTCTF 2020 Forensics writeup - 4ensiX
・Stegsolve
画像のビット要素を分解して様々なパターンで表示することができる。リンク先には他にも色々あるけど分からん。Java環境必須。画像を弄るせいなのか、動作が重い。
・初音
PNGファイルに任意のファイルを埋め込んだり、取り出したり。
・OpenStego
画像ファイルにデータを埋め込む。
・StegoShare
画像ファイルにデータを埋め込む。
・Gimp
画像ファイル編集ソフト。
音声系
・MP3Stego
MP3にデータを埋め込むだり、取り出したり。
・Audacity
音声ファイル編集ソフト。
使用例 UTCTF 2020 Forensics writeup - 4ensiX
NeverLAN CTF 2020 PCAP/Forensic writeup - 4ensiX
SSTVが来たらこいつに聞かせる。音が再生されれば自動で録音が始まる。大音量で迷惑にならず、雑音の少ないところで使うべし。
使用例 UTCTF 2020 Forensics writeup - 4ensiX
動画系
動画の静止画キャプチャができる。
ZIP系
zipのパスワード解析。本当に簡単で短いパスワード(英数8桁くらい?)じゃないとダメだった気がする。
壊れたzipファイルを復元する。
暗号化されたzipファイルの中身のファイルの内、どれか一つでも平文のファイルを持っていればzipの暗号化を解けるというもの。とても癖が強いので今度ブログにまとめる。
Android系
・ dex2jar
dexをjarに変換。
apkファイルを展開する。
Kali Linux Forensics tools(2) [apktool] androidのアプリ用の.apkファイルを解析 - 4ensiX
AndroidManifest.xmlのバイナリをテキストに変換する。
apkファイルの編集が可能。apktool,uber-apk-signer,adb,zipalignが必要。
Util
PEのエディタ。
・HashMyFile
複数ファイルのハッシュを一度に計算できる。
・7zip
何だかんだで圧縮、解凍だけでなくimgとかfirmwareとか、binとか沢山色々なやつの構造が見れるので、実はとても役に立つ子なんです。
2つのファイルをXORしたファイルを作る。
・mpv
これ一つで動画も音声も色々再生できるプレーヤー。aptとかでも入る。
kgbファイルを開くときに利用する。aptとかでも入るハズ。
その他
色々な機能を備えた総合ツール。ファイル形式の解析、ファイル抽出、バイナリ表示など色々できる。
dll/ocx/exeに含まれるファイルを抽出する。
・pyOLEScanner
Office関連ファイルの解析で使えるツール。
・PDF Stream Dumper
PDF内のJavaScript解析してくれる。
・HashTab
ファイルのプロパティにハッシュを表示するタブを追加する。
windowsからパスワードハッシュを取得する。
apt-get install samdump2 bkhive
Windowsアカウントのパスワードをクラッキングする方法 - セキュリティ
・PDF Stream Dumper
PDF内のJavaScriptを解析してくれる。
・Hexinator
ファイルの種類に応じたバイナリ構造のハイライト機能を持ったバイナリエディタ
※一部機能は14日でトライアル切れとなる
・Unicode Steganography with Zero-Width Characters
ユニコードZero windthを使ったsteganoを解くやつ。いつかまた使う日を夢見ている。
使用例 UTCTF 2020 Forensics writeup - 4ensiX
未知のツールまとめ
色々ありすぎてまとめるのがメンドクサくなった。
ちゃんと探したら良いツールありそう。
参考
CTFで役立ちそうなツールの一覧 Windows編 - セキュリティこねこね
大部分はここ↑にお世話になりました。
CTF - A painter and a black cat
画像および音声オブジェクトの内部に情報を隠す4つの方法 | OSDN Magazine
GitHub - zardus/ctf-tools: Some setup scripts for security research tools.
実はほとんど未使用なので分かっていない部分が多い。
他にも良いツールがあれば教えてください。
某社のCTFに参加してそこで学んだことを軽くまとめておく
先日参加した某社のCTFにおいて、Forensics的に今後有用だと思ったことをまとめておく。
- Windows minidumpにはWindbg
- Windowsの認証情報を取り出すのが得意な「mimikatz」にはWindbgのために使えるライブラリがある
- 時にWRRでレジストリを眺めるだけじゃダメな時がある
Windows minidumpにはWindbg
実際に使ったことは無かったのでいい経験をした。
使用ごとにシンボルを忘れない。
Windowsにはlsaas.exeという重要プロセスがある
認証情報を持っているプロセス。
Windowsの認証情報を取り出すのが得意な「mimikatz」にはWindbgのために使えるライブラリがある
mimikatzは対windowsの認証情報ぶっこ抜きで様々なmetasploitに組み込まれているけれど、それがWindbgでも使えるとのこと。
mimikatzのDLは、ウイルスとして検知されるし、Windows Defenderにも止められるからwindowsの良く使用する環境ではやらん方がいい。というかそもそも、mimikatazをDLするURLがブロックされたりする。
時にWRRでレジストリを眺めるだけじゃダメな時がある
プログラムの起動回数等が簡単に分かったregripperが良かった
まだまだ、Forensicの基礎知識、基礎装備がなっていないことが分かった。
装備については少し整理する必要がある。
TUCTF2019 Misc writeup 解けたやつのみ
今回は、2019 11/30 08:00—12/02 08:00 JSTに開催された TUCTFのMiscの中でも、解けたやつのwriteupを記す。
Red Yarn
We like the simple things in life -- this file went back to the basics!
「DEBUG.COM」というファイルが与えられる。これは.comというMS-DOSの実行ファイルだが、ここはとりあえずバイナリエディタとかで開いてフラグフォーマットの「TUCTF」を検索してみると、
flag:TUCTF{D0NT_F0RG3T_TH3_B4S1CS!}
Super Secret
Something's blocking my flag from this file...
「document.odt」をダウンロードする。このファイルは、拡張子通りのファイルである。こういうドキュメントファイルは.zipとして解凍するのが相場なので、.zipとして解凍する。
とりあえず現れたファイルの中からflagの手がかりを探す。「META-INF/manifest.xml」を見ると、
flagの手がかりらしきものが見えるので、「Basic/Standard/flag.xml」を確認する。
flag: TUCTF{ST0P_TRUST1NG_M4CR0S_FR0M_4N_UNKN0WN_S0URC3}
Onions
Ogres are like files — they have layers!
「shrek.jpg」というファイルをDLして見てみる。画像自体は特に違和感なく、exiftoolから見える情報にも違和感無い。しかしbinwalkで確認してみると、
7zが見えるので、これを取り出す。これを解凍してみると、
「flag.tar.gz」が出てくる。これを解凍すると「flag.cpio」が出てくる。これは初めて見たので、メモを残しておく。
cpioメモ
ということで、「flag.cpio」を解凍すると、「flag.lzma」、その次は
ファイル名がflagの「current ar archive」、次いで「XZ compressed data」をdecompressするとASCII textのファイルが現れた。
flag: TUCTF{F1L3S4R3L1K30N10NSTH3YH4V3L4Y3RS}
終わりに
今回は、Forensicが無かったがmiscは少し楽しめた。CTFが終わってサーバが閉まって
しまったので、解けてない問題が色々楽しめなかったのが悲しい。
RITSEC CTF 2019 Forensic writeup(そのうち更新?)
11/16 (土) 2:00(JTC) - 11/18 (月) 14:00 に開催されたRITSEC CTF 2019のForensicのwriteupを解いたやつも解けてないやつも自分で理解できた分は解いた風にやる。
- Take it to the Cleaners 100pt 409 Solves
- Long Gone 100pt 238 Solves (writeup link)
- Vacation 100pt 138 Solves (writeup link)
- findme 320pt 169 Solves
- URGGGGG 480pt 58 Solves
- Lion 500pt 10 Solves (no writeup)
- Long GoneとVacationの分かりやすいwriteup
Take it to the Cleaners 100pt 409 Solves
Author: Impos73r Description: People hide things in images all the time! See if you can find what the artist forgot to take out in this one!
まず上のような画像をDLする。とりあえず色々見ているとexifに何か見つけた。
このUser Comment をbase64でデコードして、rot13すると,
$ echo "RVZHRlJQe1NCRVJBRlZQRl9TTlZZRl9KQkFHX1VSWUNfTEJIX1VSRVJ9" | base64 -d | nkf -r
RITSEC{FORENSICS_FAILS_WONT_HELP_YOU_HERE}
これがflag.
Long Gone 100pt 238 Solves (writeup link)
That data? No it's long gone. It's basically history
完全な理解に至らなかったので、writeupリンクのみ
Vacation 100pt 138 Solves (writeup link)
These are my favorite places to visit
完全な理解に至らなかったので、writeupリンクのみ
findme 320pt 169 Solves
Find me! Challenge created by Security Risk Advisors for RITSEC CTF
まず「findme.pcap」というパケットキャプチャファイルを見ていく。
大部分が「HTTP」の通信であり、二つのIPアドレスの通信が見られる。TCPストリームを追っていくと、2種類の怪しいbase64のような文字列がある。
それぞれbase64デコードしてみる。
aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1kUXc0dzlXZ1hjUQo=
↓ decode
https://www.youtube.com/watch?v=dQw4w9WgXcQ
この動画には特に何も無かった。
H4sIAFSZx10AA+3OMQuCQBiH8Zv9FPcFgrvUcw2kIWgydzG1EkQPvZui757S0lSTRPD8lmd43+F/6cqrWJmaGRMt1Ums3vtitkKHsdGJDqNtKJSeGwup1h628JMrRymFP/ve+Q9/X+5/Kjvkp316t1Vpp0KNReuKuq17V9x21jb9IwjSPDtuKukGWXXD1AS/XgwAAAAAAAAAAAAAAAAAWDwB38XEewAoAAA=
↓ decode
gzip compressed data, last modified: Sun Nov 10 05:00:04 2019, from Unix, original size modulo 2^32 10240
↓ Extract
↓ Extract
flag: ASCII text
↓
RITSEC{pcaps_0r_it_didnt_h@ppen}
flag出ました。
URGGGGG 480pt 58 Solves
One of our operatives sent us this packet capture but we aren't quite sure what to make of it, what can you find?
「USGGGGG.pcap」というUSBキーボードのパケットキャプチャが与えられる。USBのキャプチャデータはどこを見ればいいのか分からなかったが、少し調べると「Leftover Capture Data」という部分を見るといいらしい。
picoCTF -LEVEL2 Just Keyp Trying- - ぴよぴーよのチラ裏
サークル合宿で主催したCTFの解説|nekomaru|note
NCC Onsen-CTF 2018 Write-up - Qiita
USBキャプチャファイルについて参考サイト
Wireshark · Display Filter Reference: USB
CTF Series : Forensics — tech.bitvijays.com
USBのUSキーボードと16進数の関連
http://www.mindrunway.ru/IgorPlHex/USBKeyScan.pdf
キャプチャファイルからキーボード操作の抽出プログラムの参考
kaizen-ctf 2018 — Reverse Engineer usb keystrok from pcap file
GitHub - WangYihang/UsbKeyboardDataHacker: USB键盘流量包取证工具 , 用于恢复用户的击键信息
picoctf-2017-write-up/Just Keyp Trying.md at master · vabhishek-me/picoctf-2017-write-up · GitHub
これらを参考にして抽出プログラムをキャプチャファイルかキャプチャファイルから取り出した「Leftover Capture Data」をプログラムにかける。「RITSEC{」から始まり意味のありそうな文字列部分を取り出すと以下のようになった。(実際には一文字一文字が何度も繰り返されているので、少しguessing要素がある?)
RITSEC{wH0_s@d_ntw0rk1nG_wAs_tH3_oNlY_pAck3t_TyP3}
これを一度flagに通してみたが、お察しの通り違った。少し文としておかしなものになってしまっているので、まだ何か見逃しているようだ。実は、上のflagについて、
RITSEC{wH0_s@ d_n tw0rk1nG_wAs_tH3_oNlY_pAck3t_TyP3}
↑ ↑
この部分に色々な入力がされており、Left、Rigtht、[Ctrl]やx、c、vなどの様々な入力が見られた。ここでじっくり考えてみる。もしかすると、Ctrlやx、c、vを見るからに何か↑の部分で、コピペ?が行われているように思える。だが、何がコピペされているかはよく分からなかった。ここからはguessingかぁと思いながら、google翻訳にかけてみると、
who said networking was the only packet type ?
これか!?
少しいじってみたらいけました。
RITSEC{wH0_s@id_n3tw0rk1nG_wAs_tH3_oNlY_pAck3t_TyP3}
他の方のwriteup
Lion 500pt 10 Solves (no writeup)
when the lion rars, it's time to GO
ファイル入手できず。writeup見つからず。
Long GoneとVacationの分かりやすいwriteup
soji256さんにはForensicを学んでいく上でいつも感謝しっぱなしです。