🛡️

setodaNote CTF Exhibition Writeup (Forensics)

2024/10/19に公開

Forensics - paint_flag

要調査対象者の端末からあるファイルを押収することに成功しました。どうやら外部の協力者に機密データを送ろうとしたようです。組織内の監視網をかいくぐるため、一見すると機密データが含まれていなかのように加工がされているようです。ファイルを解析して機密データを取得してください。

添付されたファイルを解析し、フラグを入手してください。

問題にはpaint_flag.docxが添付されています。
このWordファイルを開いてみます。

flagは塗りつぶされていて分かりませんが、「Microsoft OfficeのWordファイルは実質ほにゃららファイルです」というヒントがあります。
実質「ZIP」ファイルなので、paint_flag.docxの拡張子を.zipに変更して展開します。
すると、paint_flag\paint_flag\word\media\flag.pngを発見できます。

正答:flag{What_m4tters_is_inside;)}

Forensics - Mail

あなたはメールデータの調査を依頼されました。組織内の要員が規定に反して組織内のデータを個人利用のクラウドサービスにバックアップとしてコピーしていたもののようです。メールデータに機密情報が含まれていないか、調査してください。

添付されたファイルを解析し、フラグを得てください。

問題にはImapMailというフォルダが添付されており、格納されているファイルは以下の通りです。

$ tree /f ImapMail
フォルダー パスの一覧:  ボリューム ボリューム
ボリューム シリアル番号は 1EB0-C167 です
ImapMail
│  mail.setodanote.net.msf
│
└─mail.setodanote.net
        Archives.msf
        Drafts.msf
        filterlog.html
        INBOX
        INBOX.msf
        Junk.msf
        msgFilterRules.dat
        Sent-1
        Sent-1.msf
        Sent.msf
        Templates.msf
        Trash.msf
$

Sent-1というファイルの内容を確認してみると、kimitsu.zipといういかにも機密そうなファイルを添付したメールを確認できます。

~省略~

From
To: akari akari@setodanote.net
From: stella stella@setodanote.net
Subject: =?UTF-8?B?5qmf5a+G5oOF5aCx44Gu6YCB5LuY?=
Message-ID: 6b9f76ab-43a8-c802-f7c0-3924452d8f34@setodanote.net
Date: Sun, 18 Jul 2021 13:24:47 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.12.0
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="------------5F58B5ABAAA48BBDE3549928"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------5F58B5ABAAA48BBDE3549928
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

アカリさん

ステラです。

サーバから依頼のあったファイルを取得しておきました。
 メールに添付いたしますので、ご確認ください。

以上です。

--------------5F58B5ABAAA48BBDE3549928
Content-Type: application/x-zip-compressed;
name="kimitsu.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="kimitsu.zip"

UEsDBBQAAAAIAEKk8lIYGu97DhgHAG8YBwALAAAAZ29vZGpvYi5wbmdUumN3JUy0Rrtj27Zt~省略~

Content-Transfer-Encoding: base64とあるので、UEsDBからHAAAAまでの文字列をBase64デコードしてkimitsu.zipとして保存します。

kimitsu.zipを展開するとgoodjob.pngが格納されていて、flagを取得できます。

正答:flag{You've_clearly_done_a_good_job_there!!}

Forensics - Deletedfile

そのファイルを削除した刹那、あなたはそれが誤りだったと悟ります。どうやら重要なファイルが削除されてしまったようです。あなたはディスクのイメージファイルの入手に成功しました。削除されてしまったファイルを復元し、窮地を脱してください。

添付されたファイルを解析し、フラグを得てください。

問題にはdeletedfile.rawが添付されています。
binwalkを使用してディスクイメージからファイルを抽出します。

$ binwalk deletedfile.raw                 
/usr/lib/python3/dist-packages/binwalk/core/magic.py:431: SyntaxWarning: invalid escape sequence '\.'
  self.period = re.compile("\.")

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
104448        0x19800         JPEG image data, JFIF standard 1.01
163840        0x28000         JPEG image data, JFIF standard 1.01
$ binwalk -D jpeg deletedfile.raw
/usr/lib/python3/dist-packages/binwalk/core/magic.py:431: SyntaxWarning: invalid escape sequence '\.'
  self.period = re.compile("\.")

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
104448        0x19800         JPEG image data, JFIF standard 1.01
163840        0x28000         JPEG image data, JFIF standard 1.01
$

抽出した19800という画像を開くと、flagが記載されています。

正答:flag{nosce_te_ipsum}

Forensics - Timeline

君はタイムライン機能を知っているかね。ベンチに腰かけた老紳士がこちらに向かって話しかけてきます。あまり使われてはいないようだがね。老紳士はそう話を続けながら正面に向き直りため息をつきます。だが、完全に消えてしまう前にどんなアーティファクトであったか確かめてみてもいいとは思わんかね。そういって老紳士は1枚のディスクをあなたに手渡すと、静かに去っていきました。どうやらディスクを解析する必要があるようです。

添付のファイルを解析し、フラグを入手してください。

問題にはCというフォルダが添付されており、格納されているファイルは以下の通りです[1]

$ tree C                                
C
└── Users
    └── stella
        └── AppData
            └── Local
                └── ConnectedDevicesPlatform
                    └── L.stella
                        ├── ActivitiesCache.db
                        ├── ActivitiesCache.db-shm
                        └── ActivitiesCache.db-wal

7 directories, 3 files
$

問題文中にある「タイムライン機能」とはユーザのアクティビティの履歴を保存する機能で、Windows 10で実装されていました。
タイムラインはActivitiesCache.dbというSQLiteデータベースファイルに記録されます。
そこで、今回はWindowsTimeline parserを使用してActivitiesCache.dbを調査します。

https://github.com/kacos2000/WindowsTimeline?tab=readme-ov-file

内容を確認すると、メモ帳で開いているテキストファイル名を繋げるとflagになりそうです。
タイムラインをCSVファイルとして保存し、File Opened列にて「.txt」でフィルタをかけてみます。

ETag File Opened
467 NiceTry.txt
463 lookllookdammyflag.txt
425 }.txt
418 w.txt
408 0.txt
398 N.txt
369 _.txt
352 s.txt
337 1.txt
328 _.txt
313 e.txt
299 r.txt
288 U.txt
279 7.txt
270 u.txt
260 F.txt
248 _.txt
236 3.txt
230 h.txt
220 T.txt
203 {.txt
193 g.txt
184 a.txt
168 l.txt
160 f.txt
121 OKdammyFlag.txt

正答:flag{Th3_Fu7Ure_1s_N0w}

Forensics - browser_db

調査対象者のパソコンから Web ブラウザの情報を取得しました。ファイルを解析して調査対象者が怪しい行動をしていないか調査するのが今回のあなたの仕事です。

添付されたファイルを解析し、フラグを得てください。

問題にはstella_9s84jetw.default-release_places.sqliteが添付されています。
DB Browser for SQLiteで内容を確認します。

https://sqlitebrowser.org/dl/

Firefoxでの検索履歴が記録されているmoz_placesテーブルにflagが記載されています。

正答:flag{goosegoosego}

Forensics - MFT

内部告発によりある要員が極秘情報をファイルサーバからダウンロードしていることが判明しました。組織は要員の身柄を抑え、端末から証拠となるデータを抽出しました。今回のあなたの仕事は、端末から抽出したデータを解析し、ダウンロードされた極秘情報のファイル名を特定することです。組織からは極秘情報のダウンロードされた日時が 2021-07-18 18:30頃 であることと、ファイルサイズが 465030 であることのみが伝えられています。

添付ファイルを解析し、極秘情報のファイル名を特定してください。例えばファイル名が file.txt の場合は flag{file.txt} と回答してください。

問題にはC_$MFTというMFTファイル[2]らしきものが添付されています。
MFTCmdを使って内容を確認します。

https://github.com/EricZimmerman/MFTECmd

$ MFTECmd.exe -f "F:\CTF\setodaNote CTF Exhibition\Forensics\MFT\C_$MFT" --csv "F:\CTF\setodaNote CTF Exhibition\Forensics\MFT"
MFTECmd version 1.2.2.1

Author: Eric Zimmerman (saericzimmerman@gmail.com)
https://github.com/EricZimmerman/MFTECmd

Command line: -f F:\CTF\setodaNote CTF Exhibition\Forensics\MFT\C_$MFT --csv F:\CTF\setodaNote CTF Exhibition\Forensics\MFT

File type: Mft

Processed F:\CTF\setodaNote CTF Exhibition\Forensics\MFT\C_$MFT in 1.0661 seconds

F:\CTF\setodaNote CTF Exhibition\Forensics\MFT\C_$MFT: FILE records found: 114,215 (Free records: 366) File size: 112MB
        CSV output will be saved to F:\CTF\setodaNote CTF Exhibition\Forensics\MFT\20241017144247_MFTECmd_$MFT_Output.csv
$

出力したCSVファイルにてCreated0x10列が2021-07-18 18:30付近、FileSize列が465030である行を探すと、.\Users\stella\Downloads\kimitsu.zipを発見できます。

EntryNumber ParentPath FileName FileSize Created0x10
101525 .\Users\stella\Downloads kimitsu.zip 465030 2021/7/18 18:35:22

正答:flag{kimitsu.zip}

Forensics - tkys_another_day

無事でいてくれているだろうか。あなたは後輩の端末に残されていたある画像ファイルが気になっています。作成された日付は音信不通となる前日。ファイルは作りかけなのか、断片的な情報しか表示されません。もしかすると後輩の消息についての重要な手がかりが隠されているのではないか。あなたはファイルを詳しく解析することにしました。

添付されたファイルを解析し、フラグを入手してください。

問題にはtkys_another_day.pngとして以下の画像が添付されています。

exiftoolを使ってメタデータを確認します。

$ exiftool tkys_another_day.png 
ExifTool Version Number         : 12.76
File Name                       : tkys_another_day.png
Directory                       : .
File Size                       : 13 kB
File Modification Date/Time     : 2024:10:16 23:03:14+09:00
File Access Date/Time           : 2024:10:18 00:58:01+09:00
File Inode Change Date/Time     : 2024:10:18 00:57:25+09:00
File Permissions                : -rwxrwx---
File Type                       : APNG
File Type Extension             : png
MIME Type                       : image/apng
Image Width                     : 640
Image Height                    : 480
Bit Depth                       : 8
Color Type                      : RGB with Alpha
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
Animation Frames                : 5
Animation Plays                 : inf
Warning                         : [minor] Text/EXIF chunk(s) found after APNG IDAT (may be ignored by some readers)
Software                        : APNG Assembler 2.91
Image Size                      : 640x480
Megapixels                      : 0.307
$

tkys_another_day.pngはただのPNGファイルではなく、APNGファイル[3]のようです。
Animation Frames: 5という記載より、APNG Disassemblerで5フレーム分抽出します。

https://apngdis.sourceforge.net/

$ apngdis tkys_another_day.png

APNG Disassembler 2.9

Reading 'tkys_another_day.png'...
extracting frame 1 of 5
extracting frame 2 of 5
extracting frame 3 of 5
extracting frame 4 of 5
extracting frame 5 of 5
all done
$

抽出した各フレームを組み合わせるとflagを取得できます。


正答:flag{a_fake_illness_is_the_most_serious_disease_f5ab7}

Forensics - MESSAGE

仕事を終えて帰宅の途につくあなた。人通りの少ない住宅街を通り過ぎ、自宅のマンションにたどり着きます。ちょうど部屋のドアの前に立った時に手に持っていた携帯が鳴りメールを受信したことを伝えます。

件名:これが最後の警告だ

そのメールには画像が添付されていました。

添付されたファイルを解析し、フラグを得てください。

問題にはlo3rs1tkd.jpgとして以下の画像が添付されています。

何かが画像右下で見切れているので、画像サイズを変更してみます。
JPGファイルの画像サイズはSOFセグメントにて定義されているのですが、SOFセグメントの始まり2バイトは13種類あります[4]
そのため、まずはexiftoolにてSOFの始まり2バイトを特定します。

$ exiftool lo3rs1tkd.jpg                   
ExifTool Version Number         : 12.76
File Name                       : lo3rs1tkd.jpg
Directory                       : .
File Size                       : 2.2 MB
File Modification Date/Time     : 2024:10:16 23:03:22+09:00
File Access Date/Time           : 2024:10:18 11:38:38+09:00
File Inode Change Date/Time     : 2024:10:18 11:10:49+09:00
File Permissions                : -rwxrwx---
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : None
X Resolution                    : 1
Y Resolution                    : 1
Image Width                     : 1280
Image Height                    : 959
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:4:4 (1 1)
Image Size                      : 1280x959
Megapixels                      : 1.2
$

Encoding Process: Baseline DCT, Huffman codingとあるので、lo3rs1tkd.jpgのSOFセグメントの始まり2バイトはffc0です。
次に、SOFセグメントを確認します。

$ xxd lo3rs1tkd.jpg | grep 'ffc0 ' -A 1 
00000090: 0202 0202 0202 0202 0202 0202 0202 ffc0  ................
000000a0: 0011 0803 bf05 0003 0111 0002 1101 0311  ................
$

画像の高さは03bf(959ピクセル)、幅は0500(1,280ピクセル)です。
ここで、画像の高さを0500(1,280ピクセル)にしてみます。

$ xxd lo3rs1tkd.jpg | grep 'ffc0 ' -A 1
00000090: 0202 0202 0202 0202 0202 0202 0202 ffc0  ................
000000a0: 0011 0805 0005 0003 0111 0002 1101 0311  ................
$ 

画像右下にQRコードの断片が現れました。
これをQRazyBox上で地道に描画します。

https://merri.cx/qrazybox/

あとは「Tools」 > 「Extract QR Information」と進むだけです。

QR version : 3 (29x29)
Error correction level : L
Mask pattern : 1
Number of missing bytes (erasures) : 0 bytes (0.00%)
Data blocks :
["01000010","00010110","01100110","11000110","00010110","01110111","10110101","10010011","00000111","01010101","11110110","10000011","01000111","01100110","01010101","11110111","01110011","00010111","01000110","11100110","01010111","00110111","00110110","01010110","01000101","11110111","01000011","00000011","00000101","11110110","11010111","01010110","00110110","10000111","11010000","11101100","00010001","11101100","00010001","11101100","00010001","11101100","00010001","11101100","00010001","11101100","00010001","11101100","00010001","11101100","00010001","11100111","10011001","10000110","00010001","11001110","01001001","01110001","11011100","10011001","10011001","10011000","01100110","01100110","01100111","10011001","10011001","10011000","01100110","01100110"]
Final data bits :
01000010000101100110011011000110000101100111011110110101100100110000011101010101111101101000001101000111011001100101010111110111011100110001011101000110111001100101011100110111001101100101011001000101111101110100001100000011000001011111011011010111010101100011011010000111110100001110110000010001111011000001000111101100000100011110110000010001111011000001000111101100000100011110110000010001111011000001000111100111100110011000011000010001
[0100] [00100001] [011001100110110110001101100001011011001110110111101101001011001001001100000110111010101001011111011011010000010011010001101110110011011001010100101111101101110111001001100010110111010001101101110011011001010110111001101101110011011011001010110110010001001011111011011101000010011000000100110000010010111110110110110101101110101011011000110110110100001101111101000]
Mode Indicator : 8-bit Mode (0100)
Character Count Indicator : 33
Decoded data : flag{Y0u_h4ve_w1tnessed_t00_much}
Final Decoded string : flag{Y0u_h4ve_w1tnessed_t00_much}

正答:flag{Y0u_h4ve_w1tnessed_t00_much}

Forensics - 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 で回答することに注意してください。

問題にはSecurity.evtxが添付されています。
まず、Log Parser StudioでSecurity.evtxの内容を確認します。

https://techcommunity.microsoft.com/t5/exchange-team-blog/introducing-log-parser-studio/ba-p/601131

SELECT *
FROM 'F:\CTF\setodaNote CTF Exhibition\Forensics\CSIRT_asks_you_01\Security.evtx'
ORDER BY TimeGenerated

イベントログ全体をざっと眺めてみると、イベントID「4625」(ログオン失敗)が大量に記録されていることが分かります。
よって、Brute Force Attackが成功してネットワーク経由のログオンが成功した可能性があります。
次に、ネットワーク経由のログオン成功(イベントID「4624」かつログオンタイプ「3」)のイベントログのみ表示します。

SELECT TimeGenerated, EventID, EXTRACT_TOKEN(Strings, 5, '|') AS AccountName,
       EXTRACT_TOKEN(Strings, 6, '|') AS AccountDomain,
       EXTRACT_TOKEN(Strings, 8, '|') AS LogonType,
       EXTRACT_TOKEN(Strings, 18, '|') AS SourceNetworkAddress
FROM 'F:\CTF\setodaNote CTF Exhibition\Forensics\CSIRT_asks_you_01\Security.evtx'
WHERE EventID=4624 AND LogonType='3'
ORDER BY TimeGenerated

3件表示されます。
再びイベントログ全体を確認すると、2021/07/18 6:50:40の直前にBrute Force Attackの形跡はなく、2021/07/19 5:09:21の直前にイベントID「4625」(ログオン失敗)が大量に記録されていることが分かります。
したがって、flagはflag{2021/07/19_05:09:21_4624}…と言いたいところですが、UTC+0000で解答するために9時間前の日時に直す必要があります。
正答:flag{2021/07/18_20:09:21_4624}

Forensics - unallocated_space

「こりゃ今夜は帰れそうにないな」同僚がそう言いながらハードディスクやUSBメモリが大量に詰まった箱をどさっとデスクに置きます。すべてある組織で使用されていたもので本来は破壊処理されるはずが、不正に利益を得ようとした人物が仲介したことにより、破壊処理されずに中古市場に出回ってしまったもののようです。今日が記念日だという同僚を早く帰すため、あなたはディスクの解析調査を手伝うことにしました。復元可能なデータがないか確認してください。

添付されたファイルを解析し、フラグを入手してください。

問題にはunallocated_spaceというファイルが添付されています。
まず、fileコマンドでファイルの種類を特定します。

$ 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
$

unallocated_spaceはディスクイメージファイルのようです。
次に、Autopsyでunallocated_spaceの中身を見てみます。

https://www.autopsy.com/download/

「削除されたファイル」に含まれる

  • f0007360.mp4
  • f0008464.mp4
  • f0009560.mp4

をダウンロードして再生してみるとflagが表示されます。

正答:flag{file_carving_gogo}

Forensics - CSIRT_asks_you_02

組織内のインシデント対応部署から引き続き急ぎ解析してほしいとの依頼を受けています。

一つ目の解析依頼(CSIRT_asks_you_01)の結果と別の証拠などから、あるアカウントのパスワードが脆弱である可能性が示唆されています。添付されたファイルを解析し、そのパスワードを特定してください。

フラグはアカウント名とパスワード(平文)をアンダースコアでつないで回答してください。例えばアカウント名が user 、パスワードが pass の場合は flag{user_pass} と回答します。

問題には以下のファイルが添付されています。

  • SAM
  • SAM.LOG1
  • SAM.LOG2
  • SECURITY
  • SECURITY.LOG1
  • SECURITY.LOG2
  • SYSTEM
  • SYSTEM.LOG1
  • SYSTEM.LOG2

まず、CSIRT_asks_you_01の結果より、パスワードが脆弱であるアカウントはtestだと分かっています。
次に、Kali Linuxに既定で用意されているimpacket-secretsdumpを使って、SYSTEMSECURITYSAMからアカウントtestの認証情報を取得します。

$ impacket-secretsdump -system SYSTEM -security SECURITY -sam SAM LOCAL
Impacket v0.12.0.dev1 - Copyright 2023 Fortra

[*] Target system bootKey: 0xc2f71c8a15cee734ce4ab65b3e9da4e1
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
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:::
[*] Dumping cached domain logon information (domain/username:hash)
[*] Dumping LSA Secrets
[*] DefaultPassword 
(Unknown User):_TBAL_{68EDDCF5-0AEB-4C28-A770-AF5302ECA3C9}
[*] DPAPI_SYSTEM 
dpapi_machinekey:0xd4a669f9f497412cee7cd70c13c318c1b743c4d7
dpapi_userkey:0xe8a7ce7d52e77f0632f7225fe1cb66bccafb0171
[*] NL$KM 
 0000   49 EA 37 D4 AD 86 BC F9  1D C3 70 FD B3 1F 14 5D   I.7.......p....]
 0010   42 AD 20 DB 9F AB C9 30  3F 72 4D 0A 08 63 53 70   B. ....0?rM..cSp
 0020   7F E2 25 F5 57 21 94 D2  98 31 E7 A4 D6 3C D9 37   ..%.W!...1...<.7
 0030   A0 D2 3D ED 49 FD 98 7B  76 34 CF A6 F0 7E 76 B6   ..=.I..{v4...~v.
NL$KM:49ea37d4ad86bcf91dc370fdb31f145d42ad20db9fabc9303f724d0a086353707fe225f5572194d29831e7a4d63cd937a0d23ded49fd987b7634cfa6f07e76b6
[*] Cleaning up...
$

最後に、test:1002:aad3b435b51404eeaad3b435b51404ee:3c99b8901b00758369f18b9df72012c8:::hash.txtとして保存し、Kali Linuxに既定で用意されている辞書ファイル(rockyou.txt)を用いてパスワードクラックを実施します。

$ cat hash.txt                             
test:1002:aad3b435b51404eeaad3b435b51404ee:3c99b8901b00758369f18b9df72012c8:::
$ cp /usr/share/wordlists/rockyou.txt.gz ./
$ gzip -d rockyou.txt.gz
$ hashcat -m 1000 -a 0 hash.txt rockyou.txt --opencl-device-types 1
hashcat (v6.2.6) starting

OpenCL API (OpenCL 3.0 PoCL 6.0+debian  Linux, None+Asserts, RELOC, LLVM 17.0.6, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
============================================================================================================================================
* Device #1: cpu-penryn-12th Gen Intel(R) Core(TM) i5-12400F, 6944/13952 MB (2048 MB allocatable), 2MCU

Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1

Optimizers applied:
* Zero-Byte
* Early-Skip
* Not-Salted
* Not-Iterated
* Single-Hash
* Single-Salt
* Raw-Hash

ATTENTION! Pure (unoptimized) backend kernels selected.
Pure kernels can crack longer passwords, but drastically reduce performance.
If you want to switch to optimized kernels, append -O to your commandline.
See the above message to find out about the exact limits.

Watchdog: Temperature abort trigger set to 90c

Host memory required for this attack: 0 MB

Dictionary cache hit:
* Filename..: rockyou.txt
* Passwords.: 14344385
* Bytes.....: 139921507
* Keyspace..: 14344385

3c99b8901b00758369f18b9df72012c8:testtest                 
                                                          
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 1000 (NTLM)
Hash.Target......: 3c99b8901b00758369f18b9df72012c8
Time.Started.....: Sat Oct 19 08:59:06 2024 (0 secs)
Time.Estimated...: Sat Oct 19 08:59:06 2024 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:   712.6 kH/s (0.18ms) @ Accel:1024 Loops:1 Thr:1 Vec:4
Recovered........: 1/1 (100.00%) Digests (total), 1/1 (100.00%) Digests (new)
Progress.........: 47104/14344385 (0.33%)
Rejected.........: 0/47104 (0.00%)
Restore.Point....: 45056/14344385 (0.31%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#1....: heinrich -> liverpool05
Hardware.Mon.#1..: Util: 24%

Started: Sat Oct 19 08:59:05 2024
Stopped: Sat Oct 19 08:59:07 2024
$

アカウントtestのパスワードはtesttestであることが分かります。
正答:flag{test_testtest}

脚注
  1. Windowsのtreeコマンドだと隠しフォルダ「AppData」を表示できないので、Linuxのtreeコマンドを使用します。 ↩︎

  2. MFTファイルとはNTFSファイルシステム内のファイル・フォルダ情報を管理するファイルです。 ↩︎

  3. APNG(Animated PNG)ファイルとはGIFファイルのように複数のPNGファイルをアニメーション再生できるファイルです。 ↩︎

  4. https://hp.vector.co.jp/authors/VA032610/JPEGFormat/marker/SOF.htm ↩︎

Discussion