Writeup FTP Forensik

Gemastik XII Final

Posted by rmn0x01 on Wednesday, October 30, 2019

Soal forensik final Gemastik XII di Telkom University. Poin 200

Intro

File yang diberikan berupa

$ file *
images.png:               PNG image data, 358 x 141, 8-bit colormap, non-interlaced
trafik-gemastik12.pcapng: pcap-ng capture file - version 1.0

images.png yang diterima menerangkan bagaimana File Transfer Protocol (FTP) bekerja FTP

TLDR

  1. FTP Packet filter
  2. Analisis paket
  3. Dump JPG File
  4. Recover file
  5. Dapatkan password ZIP
  6. Get the flag

Full Steps

Sesuai dengan judul soal dan images.png yang sudah sangat amat terang jelas mengarah pada FTP, maka file trafik-gemastik12.pcapng dibuka dengan wireshark dan difilter ftp Wireshark-FTP

Pada paket no. 356, terdapat aktivitas yang menarik dimana dilakukan request terhadap file

/home/gemastik12/files/file/data-gemastik.jpg

Wireshark-FTP Packet 356

Dilakukan pencarian terhadap file data-gemastik.jpg dengan cara mencari FF D8 FF (hex-value dari JPG), kemudian follow tcp streams tersebut, dump as raw dan simpan sebagai data-gemastik.jpg Wireshark-FTP tcp streams

data-gemastik.jpg

$ file data-gemastik.jpg 
data-gemastik.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 300x300, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=4, manufacturer=Canon, model=Canon EOS 5D Mark III], baseline, precision 8, 510x340, components 3

Kemudian dilakukan pencarian terhadap file lain di data-gemastik.jpg menggunakan binwalk

$ binwalk data-gemastik.jpg 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             JPEG image data, JFIF standard 1.01
30            0x1E            TIFF image data, big-endian, offset of first image directory: 8
22337         0x5741          Zip archive data, at least v1.0 to extract, compressed size: 93051, uncompressed size: 93051, name: data.png
115426        0x1C2E2         Zip archive data, at least v2.0 to extract, compressed size: 206330, uncompressed size: 210266, name: flag-diproteksi.pdf
321805        0x4E90D         Zip archive data, at least v1.0 to extract, compressed size: 322317, uncompressed size: 322317, name: tree.jpg
644441        0x9D559         End of Zip archive, footer length: 22

Recover semuanya dengan foremost

$ foremost data-gemastik.jpg 
Processing: data-gemastik.jpg
|foundat=data.png�PNG


foundat=flag-diproteksi.pdf�Rcp%\̈́۶�b���b[/�'�L<I&�1ыm۶�Ŷ�ݭu��ت���{���>���R�l,Ի{Sld�d����
foundat=tree.jpg����
*|

File zip yang di-recover berisi

$ unzip 00000043.zip 
Archive:  00000043.zip
 extracting: data.png                
  inflating: flag-diproteksi.pdf     
 extracting: tree.jpg 

Tidak semudah itu ferguso - Panitia gemastik12

File PDF tidak dapat dibuka karena password protected, asumsi selanjutnya adalah password disembunyikan di salah satu gambar, antara data.png atau tree.jpg, sehingga kemudian dilakukan zsteg.

$ zsteg data.png 
meta Raw profile type APP1.. text: "\ngeneric profile\n     202\n4578696600004d4d002a000000080004010e00020000001f0000003e0128000300000001\n0002000002130003000000010001000088250004000000010000005e000000004e4f2043\n4f444520455845435554494f4e20414c4c4f574544204845524500000004000100020000\n00024e000000000200050000000300000094000300020000000245000000000400050000\n0003000000ac000000000000002b0000000100000036000000010001914000001d1b0000\n0009000000010000003a0000000100004eb100001000\n"
b1,g,msb,xy         .. file: PGP\011Secret Key -
b1,rgb,lsb,xy       .. text: "cGFzc3dvcmQgcGRmIGZpbGUgYWRhbGFoIGdhbGl0ZXJ1c3NhbXBhaWQ0cDR0a2F3YW4="
b2,r,msb,xy         .. text: "@UUUUUUUUA"
b2,g,msb,xy         .. text: "TUUUUUUU"
b2,rgba,lsb,xy      .. text: "{k?g#s?{cs"
b2,abgr,msb,xy      .. text: "GCSSSSSSSSSSSSSSS"
b3,rgba,lsb,xy      .. text: "?Wu?wwwWu?s"
b4,r,lsb,xy         .. text: "fUEEEU#2 "
b4,r,msb,xy         .. text: "DD\"\"33333333\"\"\"DD"
b4,g,lsb,xy         .. text: "3#\"3vwfgvffvvuB#"
b4,g,msb,xy         .. text: ";3;3;33w"
b4,b,lsb,xy         .. text: "gfwwgfgv"
b4,b,msb,xy         .. text: "ffff\"\"\"\"DTUU"
b4,rgb,lsb,xy       .. text: "c62b'2b'#c)3"
b4,bgr,lsb,xy       .. text: "3b6\"b7\"c'#c9"
b4,abgr,msb,xy      .. text: "h_`o(o(o"

Decode string

cGFzc3dvcmQgcGRmIGZpbGUgYWRhbGFoIGdhbGl0ZXJ1c3NhbXBhaWQ0cDR0a2F3YW4=

$ echo 'cGFzc3dvcmQgcGRmIGZpbGUgYWRhbGFoIGdhbGl0ZXJ1c3NhbXBhaWQ0cDR0a2F3YW4=' | base64 -d
password pdf file adalah galiterussampaid4p4tkawan

Buka file flag-diproteksi.pdf dengan password galiterussampaid4p4tkawan, didapatkan flagnya Flag

Flag

gemastik12{a4e5e3b7ac929b5ec11726f7820cb1cd}

Shortcut

Cek dahulu apakah ada string flag di dalam paket

$ strings trafik-gemastik12.pcapng | grep -i flag
flag-diproteksi.pdf
flag-diproteksi.pdf

Jika ada, gunakan filter tcp contains flag di Wireshark, kemudian follow tcp stream tersebut dan dump file data-gemastik.jpg, kemudian dapat dilanjutkan dengan step 5 dan seterusnya seperti biasa.

Rant

Saya benci cheese kimbap