setodaNoteCTF Writeup [Forensics]
Forensics
paint_flag
Wordファイルが渡される
Microsoft Office’s docx files are actually ___ files.
がヒント
ZIPファイルを解凍できるソフトで、Wordファイルを解凍する
解凍すると、以下フォルダに画像が入っている
「paint_flag\word\media」
50
あなたはメールデータの調査を依頼されました。 組織内の要員が規定に反して組織内のデータを個人利用のクラウドサービスにバックアップとして コピーしていたもののようです。メールデータに機密情報が含まれていないか、調査してください。 添付されたファイルを解析し、フラグを得てください。
「Sent-1」をテキストエディタで開く
下のほうに大量の文字がある
filename="kimitsu.zip"の下の文字列をコピーする
サイバーシェフでBase64デコードする
https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true)
以下のような表示なので、ZIPファイルであっていそう
PK........B(略)
サイバーシェフの画面にある、「Save Output to File」ボタンを押す
ダウンロードされたファイルを解凍すると、フラグが書いてある画像が出てきた
Deletedfile
ディスクイメージが渡される。
削除したファイルを復元したいとのこと。
photorecを使うと、削除フラグが立てられたファイルを
出来る限り復元してくれるようなので試してみる。
$ sudo apt install testdisk $ photorec deletedfile.raw
画面に従って復元する。
3ファイルが復元された。
フラグは「f0000076.jpg」にあった。
別解
https://www.autopsy.com/download/
Windows GUIの上位ソフトでも削除されたファイルを取り出せる
但し、VERSION 4.19.1 FOR WINDOWSは動かず(Case作成に失敗する)
4.11.0は利用できた
Timeline
100
君はタイムラインを知っているかね。ベンチに腰かけた老紳士がこちらに向かって話しかけてきます。 あまり使われてはいないようだがね。老紳士はそう話を続けながら正面に向き直りため息をつきます。 だが、完全に消えてしまう前にどんなアーティファクトであったか確かめてみてもいいとは思わんかね。 そういって老紳士は1枚のディスクを私に手渡すと、静かに去っていきました。 どうやらディスクを解析する必要があるようです。 添付のファイルを解析し、フラグを入手してください。
https://blog.group-ib.com/windows10_timeline_for_forensics
最も簡単な方法は、SQLiteビューア(無料のツールであるDB Browser for SQLiteなど)を使用して ActivitiesCache.dbに含まれるデータを確認することです。 開いてみたが、ダミーフラグしか見つからず
(ここまで) (解けていない)
(追記)
https://y0m0g1.hatenablog.com/entry/20210904/1630759171
ActivityテーブルのAppActivityIdカラムをnotepadでフィルタして、ファイル名を縦に読むとフラグがあった
ECB32AF3-1440-4086-94E3-5311F97F89C4\E:\AppData\f.txt ECB32AF3-1440-4086-94E3-5311F97F89C4\E:\AppData\l.txt ECB32AF3-1440-4086-94E3-5311F97F89C4\E:\AppData\a.txt ECB32AF3-1440-4086-94E3-5311F97F89C4\E:\AppData\g.txt ECB32AF3-1440-4086-94E3-5311F97F89C4\E:\AppData\{.txt ECB32AF3-1440-4086-94E3-5311F97F89C4\E:\AppData\T.txt ECB32AF3-1440-4086-94E3-5311F97F89C4\E:\AppData\h.txt :
browser_db
以下ツールの「parser\browsinghistoryview-x64」内にある
「BrowsingHistoryView.exe」で確認する
https://github.com/CyberDefenseInstitute/CDIR-A
使い方
起動時に表示されるAdvanced Options画面の
Load History From
でLoad history files from the specified history files
を選択
...
ボタンを押し、Firefox欄にファイルパスを入力
例)C:\Users\~\stella_9s84jetw.default-release_places.sqlite
Filter by visit date/time
でLoad history items from any time
を選択
OK
ボタンを押す
ブラウザ履歴が表示されるので確認
Titleにフラグがある
MFT
C_$MFTが渡され、日時とファイルサイズからファイル名を特定する
極秘情報のダウンロードされた日時が 2021-07-18 18:30頃 であることと、 ファイルサイズが 465030 であることのみが伝えられています。 添付ファイルを解析し、極秘情報のファイル名を特定してください。 例えばファイル名が file.txt の場合は flag{file.txt} と回答してください。
以下ツールの「mft.exe」で変換して確認する
https://github.com/CyberDefenseInstitute/CDIR-A
使い方
コマンドプロンプト上で以下の形式で実行します。 > プログラム -o 出力フォルダ 入力ファイルもしくは入力フォルダ 入力ファイルは解析したいファイル
>mft.exe -o output C_$MFT input: C_$MFT output: output\C_$MFT_output.csv
ファイルサイズから、該当は以下のみ
"." "kimitsu.zip" "C:\Users\stella\Downloads" "101525" "File(Deleted)" "465030" "2021/07/19 03:35:21.555" "2021/07/18 20:34:14.857" "2021/07/19 05:24:31.359" "2021/07/19 05:24:31.343" "2021/07/19 03:35:21.555" "2021/07/18 20:34:14.857" "2021/07/19 03:35:21.608" "2021/07/19 03:35:21.593" "+09:00" "0" "1674" ""
tkys_another_day
100
無事でいてくれているだろうか。あなたは後輩の端末に残されていたある画像ファイルが気になっています。 作成された日付は音信不通となる前日。ファイルは作りかけなのか、断片的な情報しか表示されません。 もしかすると後輩の消息についての重要な手がかりが隠されているのではないか。 あなたはファイルを詳しく解析することにしました。 添付されたファイルを解析し、フラグを入手してください。
PNGファイルが渡される。
APNG(アニメーションPNG)と思われる。
Windowsなら以下ソフトで各レイヤーを表示可能
FireAlpaca
https://forest.watch.impress.co.jp/library/software/firealpaca/
MACだと標準ビュアーで見えてしまっていた
(ので何かもっと仕掛けがあると思って探してしまった)
TITLE
120
仕事を終えて帰宅の途につくあなた。人通りの少ない住宅街を通り過ぎ、 自宅のマンションにたどり着きます。 ちょうど部屋のドアの前に立った時に手に持っていた携帯が鳴りメールを受信したことを伝えます。 件名:これが最後の警告だ そのメールには画像が添付されていました。 添付されたファイルを解析し、フラグを得てください。
画像の右下に四角い模様のような何かがある
8*3行ある
8bit?
11101100 00100101 10001110
ec 25 8e
ì%.
00010011 11011010 01110001
13 da 71
.Úq
RGB?
lo3rs1tkd.jpg
ファイル名はシュタインズゲート第11話のネタっぽい 問題タイトルがTITLEなので関係あるのだろうか lo3rs1tkd.jpg
(解けていない)
(追記) 画像の下のほうに見えていない領域がある
以下を参考に画像サイズ(height)を含む場所を探す
https://blog.mirakui.com/entry/2012/09/17/121109
SOF0 0xffc0 基本DCT方式のフレーム開始
→画像サイズ(height)はffc0の後ろにある
今回の例では
「FF C0 00 11 08 HH HH (HHがHeight)」
JPEGファイルをバイナリエディタ(010 Editor)で開き、
struct SOFx sof0(マーカーFFC0)
WORD Y_imageを1024にする(マーカーFFC0の後ろ4、5バイト目)
(A3hから2バイトを「04 00」にする)
→(訂正)1024ではなく、1282ぐらいにしないと全部見えないです
画像をビュワーで見ると下のほうに見えなかった領域が見えるようになる
→QRコードのようなものが見えるが、そのままでは読み取れないので、もう一工夫必要?
→上記はheightを1400にしたもの。大きくしすぎても意外と表示できる。
(追記2)
strong qr decoderで戻せるらしい
https://github.com/waidotto/strong-qr-decoder
QRコードの入力が画像でなく、テキスト(#)なので、手動ではつらい
https://qiita.com/kusano_k/items/e0024db9fe9802121bbb
上記の通り、プログラムを組むと楽にできる
from PIL import Image im = Image.open("lo3rs1tkd3.png") for x in range(29): l = "" for y in range(26): if im.getpixel((975+10*x, 965+10*y))[0]<128: l += "#" else: l += " " print(l)
strong-qr-decoderをダウンロード
$ git clone https://github.com/waidotto/strong-qr-decoder
QR(画像)からテキストに変換
$ python3 read_img_qr.py lo3rs1tkd3.png > output_qr.txt $ mv output_qr.txt strong-qr-decoder/ $ cd strong-qr-decoder/
python3だと動かない
$ python3 sqrd.py output_qr.txt File "sqrd.py", line 246 print '' ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print('')?
Python 2.7.17にて実行
(エラー訂正レベル、マスクパターンをforループで回し、総当たり)
-e ERROR_CORRECTION, --error-correction ERROR_CORRECTION エラー訂正レベル(1:L 0:M 3:Q 2:H) -m MASK, --mask MASK マスクパターン(0〜7)
$ for e in $(seq 0 3); do for m in $(seq 0 7); do python2 sqrd.py -e $e -m $m output_qr.txt; done; done Traceback (most recent call last): File "sqrd.py", line 1024, in <module> num = int(data_bits[:10], 2) ValueError: invalid literal for int() with base 2: '' flag{Y0u_h4ve_w1tnessed_t00_much} : (大量に出るが、途中にフラグが出る)
CSIRT_asks_you_01
Windowsのイベントログを見る問題
ネットワーク経由のログインが成功したことを示している最初の記録日時(TimeCreated SystemTime) と Event ID を特定することです。 フラグは UTC での記録日時 を yyyy/mm/dd_hh:mm:ss 形式にし、最後に Event ID をアンダースコアで つなげた形で答えてください。 例えば 記録日時 が 2020/01/10 7:05:13.9234567Z 、Event ID が 1234 の場合は flag{2020/01/10_07:05:13_1234} となります。記録日時は UTC+0 で回答することに注意してください。
以下をダウンロード
Introducing: Log Parser Studio
https://techcommunity.microsoft.com/t5/exchange-team-blog/introducing-log-parser-studio/ba-p/601131
https://techcommunity.microsoft.com/gxcuf89792/attachments/gxcuf89792/Exchange/16744/1/LPSV2.D2.zip
Log Parser 2.2 日本語版
https://www.microsoft.com/ja-jp/download/details.aspx?id=24659
Log Parser Studioに以下ファイルのXMLをインポート
https://github.com/CyberDefenseInstitute/CDIR-A/blob/master/parser/lpslib/LPSLibrary_CDI.XML
Log Parser Studioにて「【認証】ネットワークログオン」にて検索
出てきたうち、以下が一番早いアクセス日時
ソースIP 10.1.2.105 ワークステーション名 DESKTOP-05C7F53 日時 2021/07/18 6:50:40 UTC flag{2021/07/17_21:50:40_4624} →ハズレ
次に怪しいアクセス
ソースIP 192.168.224.120 ワークステーション名 lizardface 日時 2021/07/19 5:09:21
→なぜこれが正解か不明 ワークステーション名なのか、ソースIPなのか
参考
【認証】ネットワークログオンの検索クエリ(EventIDは4624)
SELECT TimeGenerated AS 日時, ComputerName AS コンピュータ名, EventLog AS ファイル名, /* EXTRACT_TOKEN(Strings,0,'|') AS 元SID, EXTRACT_TOKEN(Strings,1,'|') AS 元ユーザ, EXTRACT_TOKEN(Strings,2,'|') AS 元ドメイン, EXTRACT_TOKEN(Strings,3,'|') AS 元ログオンID,*/ EXTRACT_TOKEN(Strings,4,'|') AS SID, EXTRACT_TOKEN(Strings,5,'|') AS ユーザ, EXTRACT_TOKEN(Strings,6,'|') AS ドメイン, EXTRACT_TOKEN(Strings,7,'|') AS ログオンID, EXTRACT_TOKEN(Strings,9,'|') AS ログオンプロセス, EXTRACT_TOKEN(Strings,10,'|') AS 認証パッケージ, EXTRACT_TOKEN(Strings,11,'|') AS ワークステーション名, EXTRACT_TOKEN(Strings,12,'|') AS ログオンGUID, EXTRACT_TOKEN(Strings,16,'|') AS プロセスID, EXTRACT_TOKEN(Strings,17,'|') AS プロセス名, EXTRACT_TOKEN(Strings,18,'|') AS ソースIP FROM '[LOGFILEPATH]' WHERE SourceName = 'Microsoft-Windows-Security-Auditing' AND EventID = 4624 AND EXTRACT_TOKEN(Strings,8,'|') = '3' AND ユーザ <> 'ANONYMOUS LOGON' AND ソースIP <> '-' AND ソースIP <> '::1'
unallocated_space
150
「こりゃ今夜は帰れそうにないな」同僚がそう言いながらハードディスクやUSBメモリが大量に詰まった箱を どさっとデスクに置きます。 すべてある組織で使用されていたもので本来は破壊処理されるはずが、 不正に利益を得ようとした人物が仲介したことにより、破壊処理されずに中古市場に 出回ってしまったもののようです。 今日が記念日だという同僚を早く帰すため、あなたはディスクの解析調査を手伝うことにしました。 復元可能なデータがないか確認してください。 添付されたファイルを解析し、フラグを入手してください。
何のファイルか確認
$ file unallocated_space unallocated_space: DOS/MBR boot sector MS-MBR Windows 7 english at offset 0x163 "Invalid partition table" at offset 0x17b "Error loading operating system" at offset 0x19a "Missing operating system", disk signature 0x23303fcc
$ fdisk -lu unallocated_space Disk unallocated_space: 30 MiB, 31457280 bytes, 61440 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x23303fcc
$ foremost unallocated_space →0 FILES EXTRACTED
(解けていない)
(追記)
https://y0m0g1.hatenablog.com/entry/20210904/1630759171
うさみみハリケーンの青い空を見上げればいつもそこに白い猫(AoZoraSiroNeko.exe)
でファイル抽出できる(ペイントでフラグファイルを作るmp4動画)
※AoZoraSiroNeko.exeでの操作
ファイル・データ抽出→検索実行→リスト選択項目を保存
CSIRT_asks_you_02
200
組織内のインシデント対応部署から引き続き急ぎ解析してほしいとの依頼を受けています。 一つ目の解析依頼(CSIRT_asks_you_01)の結果と別の証拠などから、 あるアカウントのパスワードが脆弱である可能性が示唆されています。 添付されたファイルを解析し、そのパスワードを特定してください。 フラグはアカウント名とパスワード(平文)をアンダースコアでつないで回答してください。 例えばアカウント名が user 、パスワードが pass の場合は flag{user_pass} と回答します。
Ubuntuにて
$ sudo apt install bkhive
$ bkhive bkhive: command not found
インストールしたのになぜかコマンドがない
kaliLinuxではsamdump2を使うっぽい
$ sudo apt install bkhive 127 ? Package bkhive is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: ★samdump2に置き換えられた samdump2 E: Package 'bkhive' has no installation candidate
Ubuntuにてbkhiveをいれたときに一緒に入ったsamdump2を使う
$ samdump2 ./SYSTEM ./SAM > hashes.txt
結果を見てみる
$ cat hashes.txt *disabled* Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: *disabled* Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: *disabled* :503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: *disabled* :504:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: stella:1001:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: :1002:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: :1003:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
パスワードハッシュが出ている
john the ripperで解析する
$ sudo apt install john $ john hashes.txt Created directory: /home/user/.john Loaded 7 password hashes with no different salts (LM [DES 128/128 SSE2-16]) Press 'q' or Ctrl-C to abort, almost any other key for status () () (stella) (*disabled* ) (*disabled* ) (*disabled* Guest) (*disabled* Administrator) 7g 0:00:00:00 100% 2/3 100.0g/s 42028p/s 42028c/s 294200C/s 123456..MARLEY Use the "--show" option to display all of the cracked passwords reliably Session completed $ john hashes.txt --show *disabled* Administrator::500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: *disabled* Guest::501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: *disabled* ::503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: *disabled* ::504:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: stella::1001:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: ::1002:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: ::1003:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: 7 password hashes cracked, 0 left
解析が終わったのにパスワードがでてなさそう?
https://crackstation.net/でも「Result」はカラ
→結論からすると、上記はカラのハッシュだった
(参考)ネットにあったサンプルはすぐにパスワードが判明した
$ john hashes_sample.txt --wordlist password.lst --format=NT : test (Administrator) ★ $ john hashes_sample.txt --show --format=NT Administrator:test:500:01fc5a6be7bc6929aad3b435b51404ee:0cb6948805f797bf2a82807973b89537::: ★password ★LM ★NTLM
Hash Type Result 01fc5a6be7bc6929aad3b435b51404ee LM TEST Hash Type Result 0cb6948805f797bf2a82807973b89537 NTLM test ※「Result」がパスワード
samdump2でのハッシュ取り出しがうまくいっていない?
Windows10にも対応している別のツールにてハッシュを取り出してみる
仮想マシンにてスナップショットをとる
Windows Defenderを無効にする
pwdump8.2をダウンロード
https://www.openwall.com/passwords/windows-pwdump
Windows 2000/XP/Vista/7/2008/8/8.1/10/2012/2016/2019 ←★対応OS
※プログラムの性質上、悪用されることもあり、ウイルス対策ソフトにひっかかる
仮想マシンで実行し、終了後スナップショットに戻すと安心
pwdump8と同じディレクトリにCTFの問題として提供された以下ファイルをおく
・SYSTEM
・SAM
・SECURITY
管理者にて以下を実行(ローカルファイル名を指定してハッシュを取得する)
>pwdump8.exe -f SYSTEM SAM SECURITY > result.txt
PwDump v8.2 - dumps windows password hashes - by Fulvio Zanetti & Andrea Petralia @ http://www.blackMath.it Administrator:500:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C089C0 Guest:501:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C089C0 DefaultAccount:503:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C089C0 WDAGUtilityAccount:504:AAD3B435B51404EEAAD3B435B51404EE:27C3A146AA209B2120F7ECC9DB065540 stella:1001:AAD3B435B51404EEAAD3B435B51404EE:2F8AE2E260D0CFE3756FF53E639E3377 test:1002:AAD3B435B51404EEAAD3B435B51404EE:3C99B8901B00758369F18B9DF72012C8 akari:1003:AAD3B435B51404EEAAD3B435B51404EE:B66EADE488CE2C23BA226427E40FED41 ★User ★LM ★NTLM
アカウントが見えており、samdump2とは違うカラでないハッシュも見えている
LM
AAD3B435B51404EEAAD3B435B51404EE
はカラのパスワード
NTLM
31D6CFE0D16AE931B73C59D7E0C089C0
はカラのパスワードなのでそれ以外を対象とする
以下をhttps://crackstation.net/にて確認
27C3A146AA209B2120F7ECC9DB065540 2F8AE2E260D0CFE3756FF53E639E3377 3C99B8901B00758369F18B9DF72012C8 B66EADE488CE2C23BA226427E40FED41
Hash Type Result 27C3A146AA209B2120F7ECC9DB065540 Unknown Not found. 2F8AE2E260D0CFE3756FF53E639E3377 Unknown Not found. 3C99B8901B00758369F18B9DF72012C8 NTLM testtest ★パスワード判明 B66EADE488CE2C23BA226427E40FED41 Unknown Not found.
アカウント:test パスワード:testtest
最後に、忘れずにスナップショットに戻す
(参考)SAM.LOG1などは読めなかった
>pwdump8.exe -f SYSTEM.LOG1 SAM.LOG1 SECURITY.LOG1 PwDump v8.2 - dumps windows password hashes - by Fulvio Zanetti & Andrea Petralia @ http://www.blackMath.it err: 1017 loading SYSTEM hive from file err: 1017 loading SAM hive from file err: 1017 loading SECURITY hive from file error opening syskey reg hive error readng syskey error 2 opening user's key.. >pwdump8.exe -f SYSTEM.LOG2 SAM.LOG2 SECURITY.LOG2 PwDump v8.2 - dumps windows password hashes - by Fulvio Zanetti & Andrea Petralia @ http://www.blackMath.it err: 1017 loading SYSTEM hive from file err: 1017 loading SAM hive from file error opening syskey reg hive error readng syskey error 2 opening user's key..