DEV Community

Hendra Bangun Dwi R
Hendra Bangun Dwi R

Posted on

Tantangan CTF: File yang Dihapus (Root-Me Forensik)

Deskripsi Tantangan

  • Judul: File yang Dihapus
  • Poin: 5
  • Kesulitan: Validasi 11471, tingkat keberhasilan 4%
  • Deskripsi: Sepupu Anda menemukan USB drive di perpustakaan pagi ini. Dia tidak terlalu ahli dengan komputer, jadi dia berharap Anda bisa menemukan pemiliknya! Flag adalah identitas pemilik dalam bentuk firstname_lastname.
  • Checksum SHA256: cd9f4ada5e2a97ec6def6555476524712760e3d8ee99c26ec2f11682a1194778
  • File yang Disediakan: ch39.gz

Tulisan Solusi

Langkah 1: Memahami Tantangan

Ini adalah tantangan forensik yang melibatkan gambar USB drive di mana sebuah file telah dihapus. Tujuannya adalah memulihkan file yang dihapus dan mengidentifikasi pemilik dari metadatanya. Format flag adalah firstname_lastname.

Langkah 2: Mengekstrak File

File yang disediakan adalah ch39.gz, arsip yang dikompresi dengan gzip. Kami mengekstraknya untuk mengungkap ch39, yang merupakan arsip tar POSIX.

gunzip ch39.gz
tar -xvf ch39
Enter fullscreen mode Exit fullscreen mode

Ini mengekstrak usb.image, gambar filesystem FAT16 dengan sektor boot DOS/MBR yang diberi label "USB" dengan kapasitas 32 MB.

Langkah 3: Menganalisis Gambar Filesystem

Gambar tersebut adalah filesystem FAT16. Kami memasangnya untuk memeriksa isinya.

mkdir -p /tmp/usb_mount
sudo mount -t vfat -o loop usb.image /tmp/usb_mount
ls -la /tmp/usb_mount
Enter fullscreen mode Exit fullscreen mode

Direktori yang dipasang kosong, menunjukkan bahwa file telah dihapus dan tidak terlihat di filesystem.

Langkah 4: Memulihkan File yang Dihapus

Untuk memulihkan file yang dihapus, kami memeriksa entri direktori root di gambar FAT16. Direktori root dimulai pada sektor 132 (setelah 4 sektor cadangan dan 128 sektor FAT).

Ekstrak direktori root (32 sektor, 16384 byte):

dd if=usb.image bs=512 skip=132 count=32 | hexdump -C
Enter fullscreen mode Exit fullscreen mode

Analisis hexdump mengungkap:

  • Label volume "USB".
  • Entri file yang dihapus (byte pertama 0xE5) dengan nama pendek "NONUME.PNG" dan nama panjang "anonymous.png".
  • Ukuran file: 246.320 byte.
  • Cluster awal: 3 (penomoran cluster FAT16).

Entri nama panjang berisi karakter Unicode untuk "anonymous.png".

Langkah 5: Mengekstrak File yang Dihapus

Area data dimulai pada sektor 164. Cluster 3 dimulai pada sektor 168 (164 + (3-2)*4).

Ekstrak data file (482 sektor untuk mencakup 246.320 byte):

dd if=usb.image bs=512 skip=168 count=482 of=anonymous.png
Enter fullscreen mode Exit fullscreen mode

Verifikasi file:

file anonymous.png
# Output: PNG image data, 400 x 300, 8-bit/color RGB, non-interlaced
Enter fullscreen mode Exit fullscreen mode

Langkah 6: Menganalisis File yang Dipulihkan

File tersebut adalah gambar PNG. Ekstrak string untuk menemukan metadata:

strings anonymous.png | sed -n '/xpacket begin/,/xpacket end/p'
Enter fullscreen mode Exit fullscreen mode

Metadata XMP mengungkap pembuat:

<?xpacket begin='
' id='W5M0MpCehiHzreSzNTczkc9d'?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 11.88'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
 <rdf:Description rdf:about=''
  xmlns:dc='http://purl.org/dc/elements/1.1/'>
  <dc:creator>
   <rdf:Seq>
    <rdf:li>Javier Turcot</rdf:li>
   </rdf:Seq>
  </dc:creator>
 </rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end='r'?>
Enter fullscreen mode Exit fullscreen mode

Pembuatnya adalah Javier Turcot, diidentifikasi sebagai pemilik.

Langkah 7: Menentukan Flag

Identitas pemilik adalah Javier Turcot. Flag adalah javier_turcot (huruf kecil dengan garis bawah seperti yang ditentukan).

Pembelajaran Utama

  • Struktur filesystem FAT16: sektor boot, tabel FAT, direktori root, area data.
  • File yang dihapus di FAT: ditandai dengan 0xE5 di entri direktori, data tetap ada sampai ditimpa.
  • Pemulihan forensik: Gunakan dd untuk mengekstrak data mentah, analisis entri direktori secara manual.
  • Ekstraksi metadata: File PNG dapat berisi metadata XMP dengan informasi pembuat.
  • Alat yang digunakan: gunzip, tar, mount, dd, hexdump, file, strings.

Verifikasi

  • Integritas file: Gambar dan PNG yang diekstrak cocok dengan format yang diharapkan.
  • Format flag: Cocok dengan persyaratan firstname_lastname.

Flag: javier_turcot

Top comments (0)