ペンギン技術 blog

CTFのWriteupなどを記載していこうと思います

setodaNoteCTF Writeup [Forensics]

Forensics

paint_flag

Wordファイルが渡される
Microsoft Office’s docx files are actually ___ files.がヒント

ZIPファイルを解凍できるソフトで、Wordファイルを解凍する

解凍すると、以下フォルダに画像が入っている
「paint_flag\word\media」

Mail

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 FromLoad history files from the specified history filesを選択
...ボタンを押し、Firefox欄にファイルパスを入力
例)C:\Users\~\stella_9s84jetw.default-release_places.sqlite

Filter by visit date/timeLoad 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」にする)

f:id:sPENGIN:20210906170800p:plain →(訂正)1024ではなく、1282ぐらいにしないと全部見えないです

画像をビュワーで見ると下のほうに見えなかった領域が見えるようになる
QRコードのようなものが見えるが、そのままでは読み取れないので、もう一工夫必要?

f:id:sPENGIN:20210906171713j:plain →上記は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

UTC

→なぜこれが正解か不明 ワークステーション名なのか、ソース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

https://crackstation.net/

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