picoCTF 2023 Writeup : Forensics

# 最初に

picoCTF 2023のForensicsの問題を解いていきます！

全部で6問です！


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/4816c92a-1152-40a2-b70b-1592fd8ada6c.png)


# Writeup


さっそく解いていきます！


## PcapPoisoning

初手でFTPのIDとパスワードを送付しています。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/4191ec67-11dc-4a9c-9d6e-140515a9aa9a.png)

結構さがしたのですが、何をしている通信なのかもなんとなくわからないですし、Writeupをみたところ、Grepだけでフラグがみつかるみたい。。。

```
┌──(kali㉿kali)-[~/…/PicoCTF/picoCTF_2023/Forensics/PcapPoisoning]
└─$ strings trace.pcap| grep pico -n -C 5
499-gc2VjcmV0OiBwaWNvQ1RGeF~
500-gc2VjcmV0OiBwaWNvQ1RGeF~
501-gc2VjcmV0OiBwaWNvQ1RGeF~
502-gc2VjcmV0OiBwaWNvQ1RGeF~
503-gc2VjcmV0OiBwaWNvQ1RGeF~
504:picoCTF{P64P_4N4L7S1S_SU55355FUL_31010c46}F~
505-gc2VjcmV0OiBwaWNvQ1RGeF~
506-gc2VjcmV0OiBwaWNvQ1RGeF~
507-gc2VjcmV0OiBwaWNvQ1RGeF~
508-gc2VjcmV0OiBwaWNvQ1RGeF~
509-gc2VjcmV0OiBwaWNvQ1RGeF~
```
## hideme

binwalkしたら、画像がさらにみつかって、そこにフラグが記載されています
```
                                                                                                                                        
┌──(kali㉿kali)-[~/…/PicoCTF/picoCTF_2023/Forensics/hideme]
└─$ binwalk flag.png -e

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             PNG image, 512 x 504, 8-bit/color RGBA, non-interlaced
41            0x29            Zlib compressed data, compressed
39739         0x9B3B          Zip archive data, at least v1.0 to extract, name: secret/
39804         0x9B7C          Zip archive data, at least v2.0 to extract, compressed size: 2858, uncompressed size: 3015, name: secret/flag.png
42897         0xA791          End of Zip archive, footer length: 22

```



## FindAndOpen

Zipにパスワードがかかっていて、それをPCAPから見つける問題です

```
┌──(kali㉿kali)-[~/…/PicoCTF/picoCTF_2023/Forensics/FindAndOpen]
└─$ unzip flag.zip                                 
Archive:  flag.zip
[flag.zip] flag password: 
password incorrect--reenter: 
   skipping: flag                    incorrect password
```


` strings dump.pcap `してみると、BASE64っぽい文字列がありましたが、BASE64ではなかったです（他も試したがうまくいかず）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/cfbd328d-d759-47f4-a654-060f5795c076.png)
```
AABBHHPJGTFRLKVGhpcyBpcyB0aGUgc2VjcmV0OiBwaWNvQ1RGe1IzNERJTkdfTE9LZF8=
```

なんでだろうとみていたのですが、おそらく肝心なデータの前の別のデータが一列になっているみたい
（Ethernetのデータを適当にHex Stringに変換したら、一行の途中からのデータがとれたので、気が付きました、、、）


48行目のDataからはフラグの前半（のBase64でエンコードされたもの）がみつかりました！

https://dencode.com/ja/string/base64?v=VGhpcyBpcyB0aGUgc2VjcmV0OiBwaWNvQ1RGe1IzNERJTkdfTE9LZF8%3D&oe=UTF-8&nl=crlf&line-break-each=


```
This is the secret: picoCTF{R34DING_LOKd_
```

ここで、詰みになってWriteupをみたら、上記のフラグの前半がZipのパスワードだったみたい。。。。。。






### Multicast Domain Name System

10行目以降でこのプロトコルの通信があったので、調べてみました


> 小さなネットワーク内でホスト名からIPアドレスを解決するプロトコル

> mDNSメッセージは以下のアドレスに送信されるマルチキャストUDPパケットである。
・IPv4アドレス 224.0.0.251 または IPv6アドレス ff02::fb
・UDPポート 5353
・イーサネットフレームを使用する場合、標準IPマルチキャストMACアドレス 01:00:5E:00:00:FB (IPv4の場合) または 33:33:00:00:00:FB (IPv6の場合)


https://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%82%AD%E3%83%A3%E3%82%B9%E3%83%88DNS





## MSB

以下の画像にノイズがのった画像がダウンロードできます

https://ja.m.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Ninja-and-Prince-Genji-Ukiyoe-Utagawa-Kunisada.png


以下のQiitaを参考にして画像の差分をだしていきます

https://qiita.com/yoya/items/2021944690bd9c0dafb1#composite--compose-difference

出力された画像は以下です。下側が真っ黒なのはいいのですが、完全なランダムノイズではなく、もとの画像に合わせたノイズな気がしますね。。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/0768cf14-2b50-4130-83cb-4fb69b5a28b3.png)



xxdコマンドで16進数にダンプしてみましたが、何も見つけられず、、、



分からなくなったので、以下のWriteupをみてみる

https://blog.hamayanhamayan.com/entry/2023/03/29/222129#Forensics-MSB


https://www.ta-oot.page/posts/ctf-writeups/picoctf2023/msb/



MSBは最上位ビットのことのなのか。。。
（LSBはよく聞いたことがあったから、そこから気が付ければ、、、）



ずっと避けてきた（嫌いなわけではない）青空白猫を使わないと解けなさそう。。。

以下からうさみみハリケーンをダウンロード。

https://www.vector.co.jp/soft/win95/prog/se375830.html



Zipの中にAoZoraSiroNeko.exeがあるので、それが青空白猫です！


さっそくRGBそれぞれのビットをみていくと、確かにすべてでノイズが混ざっています

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/6d62e024-dc23-4ec3-997b-c4710b157051.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/540a35ae-ee82-44d3-8cd8-ecba791e31f2.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/e9d6002c-3609-4358-b99c-551b3d0b7692.png)



右上あたりにある「ビット抽出」のボタンをおして、RGBすべての7ビット目を選択して、「バイナリデータ表示」を押すと、読める文章がでてきます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/cb3b169b-ba77-4b13-aabb-e9cb2be17284.png)


あとはこれをエクスポートしてLinuxにもってきて、Grepしたらフラグが見つかります！

```
strings 0221_1950_53\ BinExtract.bin| grep pico
picoCTF{15_y0ur_que57_qu1x071c_0r_h3r01c_24d55bee}
```


## Invisible WORDs

以下の画像がダウンロードできます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/899856cf-3653-442a-9d9b-6190d4beab7d.png)

> このサイバーパンクの悪役に見覚えはありますか？ 私たちもわかりません。 最近はAIアートジェネレーターが大流行しているので、信頼できる既知のカバー画像を入手するのは難しい。 でも、あなたなら分かるはずです。 容疑者はクラシックの密売をしていると思われます。 それはおそらくステゴをクラックする役には立たないだろうが、この犯人を裁く動機になることを期待している！


AIで生成した画像なんですかね、、、

ファイル名がoutput.bmpなので、何かの出力なんでしょうか。。。
周囲はノイズで囲まれていますね


あと、stegoが役に立たないけど、やってみる必要はありそうなので、binwalkをしてみたら、何もでてこない、、、？
少なくともBMPファイルは表示されるのでは？

```                                                           
┌──(kali㉿kali)-[~/…/PicoCTF/picoCTF_2023/Forensics/invisibleWORDs]
└─$ binwalk output.bmp                                             

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------

```



青空白猫で見てみます

バイナリデータ視覚化をすると、下の方がまだら模様になっていますね。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/4ac8aed6-7c66-4f4e-8a56-150f77008a89.png)


バイナリエディタで見てみると、オフセットが0x52D90（＝339344バイト目）のところから、`FF 00`が2バイトずつ入れられています

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/b5174731-72a1-4db6-aeec-2ffd98ff0aeb.png)



```
[フォーマット解析情報]
タイプ：ビットマップ
960 x 540 (0x3C0 x 0x21C)  32bits  2073738 (0x1FA48A)Byte  BottomUp
画像データの開始位置(0000008A)が異常です
任意のデータ挿入の可能性があります
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/81d0c204-56f9-478c-ba76-48f83dc769f6.png)




`FF 00`が2バイトずつ入れられる直前で分割してみましたが、下側が抽出されただけでした、、、


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/b78b39fe-cbb8-49c5-82c4-e84e85c197db.png)




うーん、わからなくなった、、

Writeupをみてみたのですが、そんなに悪い線ではなかった。
FF00がダミーデータになっていることに気が付ければよかったのか、、

https://medium.com/@12gnathic.xsgb9/picoctf-2023-invisible-words-writeup-41ec5ebf45f4


他のWriteupだと、32ビットカラーであることに疑問をもっている人もいましたが、これは気が付かないな、、、

https://www.ta-oot.page/posts/ctf-writeups/picoctf2023/invisible-words/#:~:text=BMP%E3%81%A732%E3%83%93%E3%83%83%E3%83%88%E3%82%AB%E3%83%A9%E3%83%BC%EF%BC%88RGB%2BA%EF%BC%89%E3%81%A8%E3%81%84%E3%81%86%E3%81%AE%E3%81%AF%E3%81%82%E3%81%BE%E3%82%8A%E3%81%AA%E3%81%84%E3%81%AF%E3%81%9A



（とりあえず、64ビットで表現されている画像ファイルで、4文字連続でダミーのデータなら、それだけ分離するようにすればよかった、、、、）


以下のコードで、4バイトずつ見ていって、最初の2バイトを抽出します

```
with open('output.bmp', 'rb') as ip:
    data = ip.read()

with open('out', 'wb') as op:
    for idx in range(0, len(data), 4):
        op.write(data[idx:idx+2])
```

出力されたファイルの先頭はBMになっているので、PKが先頭になるようにします（確かにPKがあるなとは思っていた(;^ω^)）

そうするとZipになって、解凍できました！


ファイル名は`ZnJhbmtlbnN0ZWluLXRlc3QudHh0`です！
これの中で、picoを検索するとフラグが手に入りました！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/9022bf44-b21c-42e4-8bbd-c70e54887ce0.png)






## UnforgottenBits


与えられたイメージファイルをAutopsyで読み込ませると、4つのパーティションででてきました！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/ce9a8f82-4560-41e0-9668-8c52b65d495b.png)


### mount: disk

Keyword Searchしかできないので、picoで調べたところ、6つ見つかりました

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/9c44a068-28d5-4d74-adc6-d9de309a88c1.png)


#### 1つ目と2つ目

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/89211934-56d4-41e8-b1c3-d9343199d965.png)

サーバー関連でしょうか



#### 3つ目

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/5b9c3903-415b-44c5-8ec3-1bc257a85c69.png)

ルータ関連


#### 4つ目

関係なさそう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/2d27bbed-5dc4-4f7c-92e6-08c42ba6ee8d.png)



#### 5つ目

関係なさそう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/c76f887f-697b-45ef-8e1f-9d24c09c80bd.png)




#### 6つ目

関係なさそう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/b43969c3-d241-4105-9e4b-58764bf3d92a.png)



### mount: 1


#### keyword search 


keyword searchしていきます！
3つみつかりました！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/485691fb-6eab-4c73-9bfb-d8fd62e45077.png)



##### 1つ目と2つ目

サーバー関連でしょうか。
diskと似ています

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/221c9356-c5b0-4a18-b5d3-b99a73199992.png)


調べてみたところ、カーネルシンボルテーブルからのエントリのリストのようです




##### 3つ目



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/73b78b81-57db-4de8-9fcb-332e0c717e09.png)

ルータ関連？


#### File Analysis


Linuxのようですが、手がかりがないので、一旦スルーします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/a5912ec7-3a47-4ef2-aa5e-efe1ce1e7a7a.png)



### mount: raw

keyword searchしても引っかかるものはありませんでした。。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/c9abc8d1-31dd-442f-b7a5-3b090e51791f.png)


### mount: 3


#### keyword search 

picoで検索したところ、3つでてきたのですが、どれも関係なさそうでした、、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/041e0bd3-4305-4c16-9f10-1b3626b581f5.png)



#### File Analysis


ここが本命ですね



##### home/yone

格納されているディレクトリごとに見ていきます！

###### /.ash_history

rootに権限昇格した痕跡があります

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/28f4e6c6-8757-43ea-ae50-7ed52784e38f.png)


###### /.lynx/　

ログからは、Webにアクセスした形跡が見つかりました

エンコーディング手法について調べているみたい。
この後、見つかる文字列がこれらでエンコーディングされているとか？

```

www.google.com
https://www.google.com/search?q=number+encodings&source=hp&ei=WeC9Y77KJ_iwqtsP0sGu6A0&iflsig=AK50M_UAAAAAY73uaRxDkbHRUH8jn4OVhOgM8riUqvVI&ved=0ahUKEwj-2r_EgL78AhV4mGoFHdKgC90Q4dUDCAk&uact=5&oq=number+encodings&gs_lcp=Cgdnd3Mtd2l6EAMyBggAEBYQHjIFCAAQhgMyBQgAEIYDMgUIABCGAzIFCAAQhgM6DgguEIAEELEDEIMBENQCOgsIABCABBCxAxCDAToRCC4QgAQQsQMQgwEQxwEQ0QM6CAgAELEDEIMBOgsILhCABBCxAxCDAToFCAAQgAQ6CAgAEIAEELEDOggILhCABBDUAjoHCAAQgAQQCjoHCC4QgAQQClAAWI0VYPAXaABwAHgDgAHDA4gB-iKSAQkwLjMuNS40LjOYAQCgAQE&sclient=gws-wiz
https://en.wikipedia.org/wiki/Church_encoding
https://cs.lmu.edu/~ray/notes/numenc/
https://www.wikiwand.com/en/Golden_ratio_base
```




###### /gallery/

4つの画像ファイルがありました

binwalkした結果、3と7の画像ファイルに何かあるみたいです

```
binwalk vol4-3.home.yone.gallery.3.bmp -e

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             PC bitmap, Windows 3.x format,, 1024 x 1024 x 24
374391        0x5B677         ZBOOT firmware header, header size: 32 bytes, load address: 0x3E463E43, start address: 0x393F453C, checksum: 0x3F373840, version: 0x333D3337, image size: 808466480 bytes
973590        0xEDB16         HPACK archive data
1004337       0xF5331         HPACK archive data
1007406       0xF5F2E         HPACK archive data
1047390       0xFFB5E         HPACK archive data
1188423       0x122247        ZBOOT firmware header, header size: 32 bytes, load address: 0x3840393C, start address: 0x27303830, checksum: 0x1D16262E, version: 0x050D0515, image size: 768 bytes
2483766       0x25E636        ZBOOT firmware header, header size: 32 bytes, load address: 0x3C423940, start address: 0x30373D34, checksum: 0x32283238, version: 0x2A30272E, image size: 606613029 bytes
2508345       0x264639        ZBOOT firmware header, header size: 32 bytes, load address: 0x3D433A42, start address: 0x31383E35, checksum: 0x332A3539, version: 0x292F262D, image size: 572992804 bytes
```



```
 binwalk vol4-3.home.yone.gallery.7.bmp -e

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             PC bitmap, Windows 3.x format,, 1024 x 1024 x 24
1108489       0x10EA09        Intel x86 or x64 microcode, sig 0x24054525, pf_mask 0xe023317, 1C08-09-34, rev 0x1e0e0105, size 262656
```


binwalk -e では抽出できなかった、、、


HPACKのデータがありますが、HTTTP2のヘッダーを圧縮したデータでしょうか

以下に解凍の仕方が記載されていますね。

とりあえず先に進んで、詰まったらかえってきます

https://qiita.com/0xfffffff7/items/68e8d3d4af489bc00a3b#hpack-tools

（それにしても、４，５，６の画像ファイルのはないのかな？）





###### /irclogs/

チャットをしているログを格納するところですね
いろいろな情報がありそう。


Google翻訳使いつつ、一通り見てみましたが、意味がありそうだったのは` /3/home/yone/irclogs/01/04/#avidreader13.log`だけでした

以下は全文コピペです！

```
[08:12] <yone786> Ok, let me give you the keys for the light.
[08:12] <avidreader13> I’m ready.
[08:15] <yone786> First it’s steghide.
[08:15] <yone786> Use password: akalibardzyratrundle
[08:16] <avidreader13> Huh, is that a different language?
[08:18] <yone786> Not really, don’t worry about it.
[08:18] <yone786> The next is the encryption. Use openssl, AES, cbc.
[08:19] <yone786> salt=0f3fa17eeacd53a9 key=58593a7522257f2a95cce9a68886ff78546784ad7db4473dbd91aecd9eefd508 iv=7a12fd4dc1898efcd997a1b9496e7591
[08:19] <avidreader13> Damn! Ever heard of passphrases?
[08:19] <yone786> Don’t trust em. I seed my crypto keys with uuids.
[08:20] <avidreader13> Ok, I get it, you’re paranoid.
[08:20] <avidreader13> But I have no idea if that would work.
[08:21] <yone786> Haha, I’m not paranoid. I know you’re not a good hacker dude.
[08:21] <avidreader13> Is there a better way?
[08:22] * yone786 yawns.
[08:24] <yone786> You’re ok at hacking. I’m good at writing code and using it
[08:24] <avidreader13> What language are you writing in?
[08:26] <yone786> C
[08:26] <avidreader13> Oh, I see.
[08:26] <yone786> I’m glad you like it. I’m sure you wouldn’t understand half of what I was doing.
[08:28] <avidreader13> I understand enough, but I do wish you wouldn’t take so much time with it.
[08:28] <yone786> Sorry. Well, I wish you could learn some things.
[08:29] <avidreader13> But it’s an incredible amount of time you spend on it.
[08:29] <yone786> Haha, don’t take it like that.
```

要点は以下
- steghideしていて、パスワードは`akalibardzyratrundle`
- ファイルを openssl　AES CBCで暗号化していて、
    - `salt = 0f3fa17eeacd53a9
    - `key=58593a7522257f2a95cce9a68886ff78546784ad7db4473dbd91aecd9eefd508`
    - `iv=7a12fd4dc1898efcd997a1b9496e7591`
    - パスフレーズがわからないが、C言語でそれをクラックするプログラムを書いている？



BMPファイルにsteghideしたのかな？

というわけで、調べてみたら、１，２，３は何か埋め込まれていました！
（password.txtに、`akalibardzyratrundle`を記載しています）

しかし、すべて暗号化されていますね、、、、
それがＡＥＳで暗号化している、という意味だったんですね
```
                                                                                                                                            
┌──(kali㉿kali)-[~/…/picoCTF_2023/Forensics/UnforgottenBits/from_gallery]
└─$ stegseek vol4-3.home.yone.gallery.1.bmp password.txt          
StegSeek 0.6 - https://github.com/RickdeJager/StegSeek

[i] Found passphrase: "akalibardzyratrundle"

[i] Original filename: "les-mis.txt.enc".
[i] Extracting to "vol4-3.home.yone.gallery.1.bmp.out".
                                                                                                                                                
┌──(kali㉿kali)-[~/…/picoCTF_2023/Forensics/UnforgottenBits/from_gallery]
└─$ stegseek vol4-3.home.yone.gallery.2.bmp password.txt
StegSeek 0.6 - https://github.com/RickdeJager/StegSeek

[i] Found passphrase: "akalibardzyratrundle"

[i] Original filename: "dracula.txt.enc".
[i] Extracting to "vol4-3.home.yone.gallery.2.bmp.out".
                                                                                                                                                
┌──(kali㉿kali)-[~/…/picoCTF_2023/Forensics/UnforgottenBits/from_gallery]
└─$ stegseek vol4-3.home.yone.gallery.3.bmp password.txt
StegSeek 0.6 - https://github.com/RickdeJager/StegSeek

[i] Found passphrase: "akalibardzyratrundle"

[i] Original filename: "frankenstein.txt.enc".
[i] Extracting to "vol4-3.home.yone.gallery.3.bmp.out".
                                                                                                                                                
┌──(kali㉿kali)-[~/…/picoCTF_2023/Forensics/UnforgottenBits/from_gallery]
└─$ stegseek vol4-3.home.yone.gallery.7.bmp password.txt
StegSeek 0.6 - https://github.com/RickdeJager/StegSeek


[!] error: Could not find a valid passphrase.
```



irclogにあった情報を使って、以下のコマンドで復号化できました！（２と３も同様に復号化できます）
```
openssl enc -d -aes-256-cbc -in vol4-3.home.yone.gallery.1.bmp.out -out decrypted_file_1.txt -K 58593a7522257f2a95cce9a68886ff78546784ad7db4473dbd91aecd9eefd508 -iv 7a12fd4dc1898efcd997a1b9496e7591 -S 0f3fa17eeacd53a9

```


ただ、3つのテキストファイルの中に、`pico`は含まれていませんでした、、、、


とりあえず次に行きます！



###### /Maildir



まずは`/cur`から！

メールの履歴が見れるみたいですが、3つは削除されているみたいです。
見れるメールは見てみましたが、なんとなくスパムメールっぽい笑

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/68bd40e0-6d25-4638-a132-456caa89d473.png)


そのうちの一つはメールですらなさそうです・・・

```
Contents Of File: /3/home/yone/Maildir/cur/1673722272.M376010P394146Q6.haynekhtnamet:2,S


su root
```




続いて、`new/`　！

ファイルは一つだけでした

```
Contents Of File: /3/home/yone/Maildir/new/1673722272.M424681P394146Q14.haynekhtnamet


subject: Deleting emails
to: Sten Walker <yone786@gmail.com>
from: Bob Bobberson <azerite17@gmail.com>

Yone,

This is just a reminder to delete all of our emails and scrub your trash can as well. We don't want our precious light falling into the wrong hands. You know the punishment for such 'crimes'.

To the Light and All it reveals,
- The Azerite Master

```

メールを削除するように依頼するメールですね。どこかに削除されたメールがあるかも。。。



###### /notes

3つのファイルがあります

1つ目
```
Contents Of File: /3/home/yone/notes/1.txt


chizazerite
```


2つ目
```
Contents Of File: /3/home/yone/notes/2.txt


guldulheen
```



3つ目
```
Contents Of File: /3/home/yone/notes/3.txt


I keep forgetting this, but it starts like: yasuoaatrox...
```



このあたりが、ＡＥＳ暗号化のパスフレーズになるのかな、、、




手がかりがなくなってしまった、、、、

以下のWriteupを見てみましたが、この問題はかなりハードだったんですね、、、


https://medium.com/@12gnathic.xsgb9/picoctf-2023-unforgottenbits-writeup-3f758528bcdc



まず、削除されたメールから！
メールを削除するように言っていたのは`azerite17@gmail.com`なので、Autopsyのキーワード検索で検索したら、消されたと思われる以下のメールが見つかりました！

```
ASCII Contents of Fragment 56370 in disk.flag.img-731136-2097151


subject: Re: Enlightened passwords
to: Sten Walker <yone786@gmail.com>
from: Bob Bobberson <azerite17@gmail.com>

Very good.

- The Azerite Master

> subject: Re: Enlightened passwords
> to: Bob Bobberson <azerite17@gmail.com>
> from: Sten Walker <yone786@gmail.com>

> I've adopted this for my passwords, Azerite. For my most important password, I use it both for my ledger and for my user account on my machine, just so I remember it better without writing it down.

>> subject: Enlightened passwords
>> to: Sten Walker <yone786@gmail.com>
>> from: Bob Bobberson <azerite17@gmail.com>

>> Yone,

>> You asked me about good passwords. I have some advice on this topic as it relates greatly to our shared endeavor of spreading light.

>> I cannot recommend this philosophy of passwords highly enough: https://xkcd.com/936/ My only adaptation is that I use unique words from my favorite game, World of Warcraft.

>> Please delete this email as soon as you have taken whatever notes you need and censored any damning details.

>> To the Light and All it reveals,
>> - The Azerite Master
```



ここで記載されているURLを見てみると、4つの単語を組み合わせてパスワードを作成することが記載されています。

そして、Stegseekした時のパスワードはleague of legends（LOL）のチャンピオン（キャラクター）の名前を4つ並べたものだとのこと、、、（それは知らんよ、、、）


Writeupのやり方に従って、LOLのチャンピオンの名前からパスワードを生成して、Stegseekするとうまくファイルが取り出せましたが、Opensslの復号化はできないです。。。

```
                                                                                                                                            
┌──(kali㉿kali)-[~/…/picoCTF_2023/Forensics/UnforgottenBits/from_gallery]
└─$ stegseek vol4-3.home.yone.gallery.7.bmp lol_wordlist.txt 
StegSeek 0.6 - https://github.com/RickdeJager/StegSeek

[i] Found passphrase: "yasuoaatroxashecassiopeia"
[i] Original filename: "ledger.1.txt.enc".
[i] Extracting to "vol4-3.home.yone.gallery.7.bmp.out".
                                                                                               ```
                                                                                               ```                                                 
┌──(kali㉿kali)-[~/…/picoCTF_2023/Forensics/UnforgottenBits/from_gallery]
└─$ openssl enc -d -aes-256-cbc -in vol4-3.home.yone.gallery.7.bmp.out -out decrypted_file_7.txt -K 58593a7522257f2a95cce9a68886ff78546784ad7db4473dbd91aecd9eefd508 -iv 7a12fd4dc1898efcd997a1b9496e7591 -S 0f3fa17eeacd53a9
bad decrypt
40376394A37F0000:error:1C800064:Provider routines:ossl_cipher_unpadblock:bad decrypt:../providers/implementations/ciphers/ciphercommon_block.c:107:
```




Writerupによれば、キーワード検索で、「Slack」と検索すれば、黄金比が記載された「1.txt」のSlack領域が表示されるみたいなのですが、自分のAutopsyでは表示されなかった、、、

いろいろ試行錯誤していくと、


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/54a3db72-8d09-43d8-8d52-4705efb552ea.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/70e56505-fb3d-4fd9-ad8f-5eed1dbd9d60.png)


```
ASCII Contents of Fragment 56274 in disk.flag.img-731136-2097151


chizazerite
01010010100.01001001000100.01001010000100.00101010010101.01000100100100.00100100000100.01000100000101.01000100001010.00000100000001.00001001010000.00000100010010.01000100010010.01001001001000.10001001000101.01001001010000.00001001000100.01001001010001.00000100000010.01000100010000.00001001001000.10000100010100.01000000010100.01001010000010.00101001010000.00001010101000.10000100100100.00101001000100.01000100010100.01001001010001.00000100010010.01000100010000.00001001000101.01000100010010.01000100010001.00000100001000.10001001000101.01001001001010.00000100010100.01000100000100.01000100010001.00000100000001.00000100001010.00000100010001.00001001000100.01000100000001.00000100001010.00000100001000.10000100000001.00000100010010.01001001001010.00000100000100.01000100010001.00000100001000.10001001010000.00001001010000.00000100000101.01001001000100.01000100010010.01000100010010.01001001000100.01000100010010.01000100000101.01001001000100.01001001001010.00000100010100.01000100010001.00000100000100.01000100000100.01000100000010.01000100010001.00001001000101.01000100010010.01000100000010.01001001010001.00001001001010.00001001001000.10000100000100.01001001000101.01001001000101.01000100010010.01001001010000.00000100010010.01001001001000.10001001000100.01000100010010.01000100010001.00000100000101.01000100010000.00001001001010.00001001000100.01000000010100.01001001010101.01001010100010.00100100100100.00100100010100.01000100000001.00000100010010.01000100001000.10000100001010.00000100010010.01001001010000.00000100001000.10000100010010.01001001010001.00001001001000.10000100010010.01001001001010.00001001000101.01000100000010.01001001001000.10000100001010.00001001000100.01000100001000.10000100010000.00001001010001.00000100000010.01000100010010.01001001010001.00000100000001.00001001010001.00001001010000.00001001000101.01000100000010.01000100000010.01000100010100.01001001010001.00000000010100.010.

```

ちなみに`2.txt`には何も記載されていません。。。
これに気が付くのは至難の業だ。。。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/905c9d2d-b18a-423d-9096-fab2baefb763.png)


また、この０と１の文字列を15文字区切りにすることも、なかなか難しい、、、
末尾がピリオドの後に3文字続いていることから、それが1区切りと判断したみたいです


Writeupのスクリプトを使って、デコードしたら、salt, key, iv が手に入るので、これで７のBMPを復号化したら、フラグが手に入ります！


```
                                                                                                                                             
┌──(kali㉿kali)-[~/…/picoCTF_2023/Forensics/UnforgottenBits/from_gallery]
└─$ openssl enc -d -aes-256-cbc -in vol4-3.home.yone.gallery.7.bmp.out -out decrypted_file_7.txt -K a9f86b874bd927057a05408d274ee3a88a83ad972217b81fdc2bb8e8ca8736da -iv 908458e48fc8db1c5a46f18f0feb119f  -S 2350e88cbeaf16c9

                                                                                                                                                
┌──(kali㉿kali)-[~/…/picoCTF_2023/Forensics/UnforgottenBits/from_gallery]
└─$ cat decrypted_file_7.txt| grep pico
picoCTF                                                    UNPAID
    picoCTF{f473_53413d_89417a6d}

```






# 最後に

今回学んだことは以下です
- pcapファイルもStringコマンドが有効、、、
- 青空白猫を使った（なぜこれまで避けてきたのか。。。）
- Autopsyで、通常画面で表示されていない領域にデータがあること









# 参考




### PcapPoisoningのメモ

（すべて無駄になったのですが、頑張って調べたので、残しておきたい。。。！！）

17から22が少しかわった動きをしていたので、ピックアップ

| No. | Time     | Source      | Destination   | Protocol  | Length | Info                           |
|-----|----------|-------------|---------------|-----------|--------|-------------------------------|
| 17  | 0.003049 | 10.253.0.55 | 192.168.5.5   | FTP-DATA  | 62     | FTP Data: 22 bytes            |
| 18  | 0.003049 | 10.253.0.55 | 192.168.5.5   | EXEC      | 62     | Client -> Server data         |
| 19  | 0.003049 | 10.253.0.55 | 192.168.5.5   | Rlogin    | 62     | Data: gc2VjcmV0OiBwaWNvQ1RGe   |
| 20  | 0.003049 | 10.253.0.55 | 192.168.5.5   | RSH       | 62     | Client -> Server data         |
| 21  | 0.003049 | 10.253.0.55 | 192.168.5.5   | LPD       | 62     | LPD continuation               |
| 22  | 0.003049 | 10.253.0.55 | 192.168.5.5   | FTP-DATA  | 62     | FTP Data: 22 bytes            |


- 18：遠隔からサーバー（192.168.5.5）のコマンドを実行しようとしている（https://hi-nemos.com/port/?port=512#:~:text=tcp-,EXEC,-%5BEXEC%20%EF%BC%88remote%20process）
- 19：リモートログインしようとしています
- 20：遠隔からサーバーの実行ファイルを実行するためのコマンド（https://hi-nemos.com/port/?port=514#:~:text=wikipedia-,514,-tcp）
- 21：Line Printer Deamon Protocol：印刷ジョブをリモートプリンタに送信するためのネットワーク印刷プロトコル（https://ja.wikipedia.org/wiki/Line_Printer_Daemon_protocol#:~:text=Line%20Printer%20Daemon%20protocol%20/%20Line%20Printer%20Remote%20protocol）




![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/d5e51a4d-8c7e-401c-aa0a-a1625d817291.png)

```
676332566a636d56304f69427761574e765131524765
```

怪しい文字列。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/77ce484b-d0e0-45a3-88fe-ea4fb32da6f1.png)

```
gc2VjcmV0OiBwaWNvQ1RGe
```

なんだか、この値をずっと送っているな、、、、


と、思ったら、別のデータも送っていた

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/b11b2561-4a2f-4b9b-90cf-84787779c898.png)

```
765131524765
```


RSYNCプロトコルを使ったファイル同期をしているんですかね、、、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/1268477c-869a-419a-a8e9-e24107c57e12.png)