The SUM of All FEARS

Monstrum ex Machina で用いたファイルについて、 同じ名前で拡張子が .exe.bin のファイルのMD5を要求された。

pcap-challenge-final.pcapngstrings コマンドを適用した結果から .exe を検索すると、以下の部分が見つかった。

Regarding the file used in Monstrum ex Machina, MD5 of files that shares the name and the extensions are .exe and .bin were asked.

I searched for .exe from the output of the strings command for the file pcap-challenge-final.pcapng, and found this part:

08-07-21 09:07PM 31776 lytton-crypt.bin 08-07-21 09:07PM 105984 lytton-crypt.exe 08-22-21 05:45PM 194 secret_decoder.bin 07-31-21 10:27PM 63827 zlib.dll

この結果より、lytton-crypt.binlytton-crypt.exe は条件を満たしそうである。

続いて、lytton-crypt.exe で検索すると、以下の部分が見つかった。

From this result, the files lytton-crypt.bin and lytton-crypt.exe should satisfy the condition.

Then, I searched for lytton-crypt.exe and found this part:

Z227 Entering Passive Mode (192,168,100,103,193,243). 1{<J G1|<J 6<}?_\ J|<B RETR /TOOLS/lytton-crypt.exe Z125 Data connection already open; Transfer starting.

これはFTPっぽいと思い、 Founding this looks like FTP, I referred FILE TRANSFER PROTOCOL (FTP) を参照すると、以下の記述が見つかった。 and found this part:

A port command would be:

PORT h1,h2,h3,h4,p1,p2

where h1 is the high order 8 bits of the internet host address.

これを参考に、192,168,100,103,193,243 はIPアドレス 192.168.100.103、ポート番号 193 * 256 + 243 = 49651 を表すと推測した。

そして、Wiresharkpcap-challenge-final.pcapng を開き、 ip.addr == 192.168.100.103 && tcp.port==49651 でフィルタをかけた。
さらに、表示された適当なパケットで「追跡 → TCPストリーム」を行い、「としてデータを表示」を「Raw(無加工)形式」にした上で、「…として保存」で保存した。
すると、105,984バイトのデータが得られ、最初の情報と一致した。

次に、stringsコマンドの結果から lytton-crypt.bin で検索すると、以下の部分が見つかった。

Based on this, I guessed that 192,168,100,103,193,243 stands for an IP address 192.168.100.103 and a port number 193 * 256 + 243 = 49651.

Then, I opened pcap-challenge-final.pcapng on Wireshark and applied a filter ip.addr == 192.168.100.103 && tcp.port==49651.
Then, I used "Follow → TCP stream" on some displayed packet, set "Show data as" to "Raw", and saved the data via "Save as…".
As a result, 105,984-byte data was saved. This size matches with the information I firstly obtained.

Then, I searched for lytton-crypt.bin from the output of the strings command, and found this part:

V227 Entering Passive Mode (192,168,100,103,193,241). 5<<J {=<J RETR /TOOLS/lytton-crypt.bin @mC<x V125 Data connection already open; Transfer starting.

同様に、Wiresharkでフィルタ ip.addr == 192.168.100.103 && tcp.port==49649 をかけ、データを保存した。
すると31,776バイトのデータが得られ、これも最初の情報と一致した。

得られたデータのMD5をそれぞれ md5sum コマンドで求め、指定の形式に当てはめることで、flagが得られた。

In the same way, I applied a filter ip.addr == 192.168.100.103 && tcp.port==49649 on Wireshark and saved the data.
As a result, 31,776-byte data was saved and this size also matches with the imformation.

I obtained the flag by using md5sum command to obtain MD5 of saved data and formatting them as specified.

flag{9cb9b11484369b95ce35904c691a5b28|4da8e81ee5b08777871e347a6b296953}

DEADFACE CTF