Hati-hati, Screenshot HP Kamu Bisa Bocorin Rahasia!

Demonstrasi Kerentanan Screenshot (CVE-2023-21036) di kehidupan sehari-hari dan simulasinya dalam CTF Digial Forensic

Testimonial 01

Berlian Gabriel M.

Co-Founder

banner

Masalah keamanan siber yang satu ini sebenarnya gampang dimengerti, bahkan buat orang yang kurang paham teknologi. Tapi, dampaknya bisa parah banget dan kasusnya lumayan sering terjadi loh! Parahnya lagi, memanfaatkan kelemahan ini ternyata gampang banget. Pakai situs kayak https://acropalypse.app/, siapa aja bisa 'meretas' screenshot kamu, tanpa memerlukan skill khusus. Lebih serem lagi, screenshot yang udah 'terinfeksi' ini gak ada obatnya. Meskipun kerentanan pada aplikasi pengambil screenshot-nya sudah diperbaiki, file-file screenshot yang sudah terlanjur terkirim bakalan tetap rawan bocor selamanya.

Apa sih aCropalypse itu?

aCropalypse (dikenal juga dengan kode CVE 2023-21036 dan CVE-2023-28303) adalah celah keamanan yang menyerang fitur edit screenshot di HP Google Pixel sejak tahun 2018, juga aplikasi Microsoft Snip & Sketch di Windows 10 dan Snipping Tool di Windows 11. Di artikel ini, kita akan membahas kasus yang terjadi di Google Pixel dengan skenario dunia nyata, dan juga tentang bagaimana konsep aCropalypse ini dimanfaatkan sebagai soal CTF beserta solusi teknisnya.

Skenario Dunia Nyata

Buat kalian yang ingin mencoba aCropalypse, bisa download file screenshot-nya disini

Data Sensitif di HP

Kamu baru aja berhasil dapat kerja di perushaan, dan lagi ngobrol sama IT Support buat setup akun kantor. Nah, obrolannya ini ada informasi rahasia kayak username dan password sementara buat akun kerja kamu.

Screenshot Di-crop

Saking senangnya dapet info akun kerja kamu sudah ready, kamu buru-buru berbagi kabar ke temen kantor dan cerita kalau kamu semangat mau kerja keras biar bos kamu terkesan. Tapi, karena kamu teliti dan ingin berhati-hati dengan pekerjaan barumu, kamu inget buat meng-crop bagian sensitif di chat kamu dengan IT Support, sebelum mengirimkan screenshot yang kamu ambil pake HP Pixel lamamu.

Dampak Eksploiatasi

Temenmu ini ternyata pernah denger soal aCropalypse dan tau kalo kamu pake HP Pixel. Iseng-iseng, dia nyoba masukin screenshotmu ke https://acropalypse.app/. Ternyata, bagian yang kamu crop bisa dia lihat dong! Termasuk username dan password sementara! Apesnya lagi, karena kamu lagi sibuk, kamu belum sempet ganti password sementaranya, jadi temen kamu bisa ‘nge-hack’ kamu dengan login ke akun kerja kamu pake password yang bocor dari screenshot yang rentan tadi. Nasib pekerjaan barumu sekarang bergantung pada akhlak temenmu... serem kan?

Kok Bisa Sih?

Penjelasan sederhananya, alat edit screenshot di HP Pixel buat nge-crop itu enggak beneran ngehapus bagian yang di-crop. Yang mereka lakukan cuma mengubah ‘data dimensi' dari file gambarnya. ‘Data dimensi’ ini nantinya dibaca sama aplikasi galeri, buat menentukan ukuran gambar yang bakal ditampilin. Jadi aplikasi galeri cuma menampilkan bagian yang udah di-crop, meskipun sebenernya informasi di gambar aslinya masih utuh. Screenshot yang kamu kirim ke teman kamu tadi, pas dilihat di galeri, gambar yang muncul cuma akan berukuran 1080x1045, bukan ukuran asli sebelum di crop, 1080x2340.

Buat mastiin bagian terpotong nggak kehapus, coba deh cek ukuran file screenshot yang di-crop. Pasti akan sama dengan file aslinya! Padahal logikanya, kalo kamu nge-crop gambar, harusnya ukuran file gambar nya akan berkurang (misal dari 100 KB jadi 50 KB) karena dimensi gambar setelah di-crop akan mengecil. Nah, karena semua data gambarnya masih ada, pakai aplikasi kayak alat bantu kayak https://acropalypse.app/, kita bisa memanipulasi 'data dimensi' untuk melihat lagi bagian yang harusnya sudah hilang di crop.

Teruntuk kalian yang tertarik untuk memahami lebih dalam tentang teknis dari eksploitasi aCropalypse ini, kita akan kupas bersama lewat soal CTF berikut ini.

aCropalypse di CTF

aCropalypse muncul sebagai soal CTF CyberJawara 2023 kategori Digital Forensic. Bagi kamu yang ingin ikutan mencoba mengerjakan soal CTF ini, file-nya bisa kamu download di sini. Kamu dikasih dua file screenshot yang udah rusak, jadi tidak bisa di buka di galeri. Tujuan kita adalah memulihkan screenshot ini, siapa tau di dalamnya ada informasi soal flag yang kita cari.

Memulihkan PNG Rusak

Nah, ternyata screenshot ini bisa diserang pake aCropalypse (dikenal juga dengan kode CVE 2023-21036). Tapi sebelumnya, kita harus memulihkan dulu dua screenshot yang rusak ini. Masalahnya, beberapa length data dan CRC-nya hilang buat bagian IHDR, sRGB, sBIT, eXIf, sama IDAT. Biar lebih gampang paham strukturnya yang ilang, mending kita bandingkan screenshot yang rusak ini sama screenshot lain yang sudah di crop dan berfungsi normal.

Screenshot yang rusak ini adalah file PNG, yang kehilangan beberapa bagian data internalnya, atau juga sering disebut sebagai ‘byte data’-nya. Ide dasar untuk memulihkan screenshot-nya adalah, kita mesti atur ulang length data di bagian yang bermasalah tadi, terus hitung CRC yang sesuai. Nah, buat ngecek CRC, kita bisa pakai command-line tool yang namanya 'pngcheck'. Terus, untuk membuat proses benerin file-nya otomatis, kita bisa pakai tool PCRT dari github.

Perhatikan langkah-langkah ini ketika menggunakan tools tadi:

  • Kalian bisa menggunakan website Hexedit untuk meng-edit byte data dari Screenshot tadi
  • Waktu pakai PCRT, ganti dulu byte IEND paling awal dengan data lain, biar si PCRT nya bisa ngelakuin proses cek ukuran dan CRC sampe ke bagian akhir file
  • IHRC length, nilainya disetel ke 0D
  • sRGB length, nilainya disetel ke 01
  • sBIT length, nilainya disetel ke 04
  • IDAT length, nilainya disetel ke 0020, kecuali IDAT chunk sebelum IEND

Begitu length data sama CRC udah bener, screenshot rusak tadi udah bisa dibuka di galeri, hasilnya seperti yang bisa kalian liat dibawah. Kalo kalian pingin mengamati struktur file PNG hasil pemulihan lebih lanjut atau mempraktekan aCropalypse pada screenshot tersebut, kalian bisa download file-nya di sini.

Screenshot 1



Screenshot 2

Nah, keliatan kan kalo screenshot ini ternyata isinya adalah tulisan flag yang kita cari, yaitu CJ2023{cb2aa1108. Sayangnya, tulisan flag nya masih kepotong. Kalo flag nya lengkap, karakter terakhir harusnya }. Nah, gimana caranya kita bisa tau sisa tulisan flag yang udah di-crop? Pakai aCropalypse dong jawabannya!

Website acropalypse.app

Langsung deh, kita lanjut pake website acropalypse.app buat balikin screenshot ke bentuk awal, sebelum di-crop. Kalau diliat dari metadata di kedua screenshot tadi, ada tulisan "Google Inc. 2016". Ditambah juga dari ukuran width-nya yang 1440 pixel, kayaknya HP yang dipakai untuk mengambill screenshot tadi adalah Pixel XL, HP keluaran 2016 dengan resolusi 2560x1440 pixels. Di 'acropalypse', kita pakai 'custom resolution' dengan angka segitu. Nah, ternyata hasil screenshot asli sebelum di-crop harusnya keliatan kayak gini...

Screenshot 1



Screenshot 2

Di screenshot hasil proses aCropalypse, kita bisa ngeliat full tulisan flag yang tadinya gak keliatan. Jadi, flag yang kita cari adalah: CJ2023{cb2aa1108f6aebb88c30}

Teknis Eksploitasi aCropalypse

Jadi gini, file gambar berformat PNG itu punya aturan: harus selalu diakhiri dengan bagian data bernama 'IEND'. Bagian apa pun setelah 'IEND' ini akan diabaikan aja sama aplikasi penampil gambar.

Contohnya, ini ada file PNG normal dari situs Wikimedia:

Kalau file PNG yang normal itu kita buka pakai aplikasi kayak Hexedit, bakal keliatan kalo 'IEND'-nya cuma satu dan berada di ujung bawah file. Jadi, file PNG ini diakhiri 'IEND' dan enggak ada tambahan data lain setelahnya.

Nah, masalahnya muncul pas pakai editing tool Markup screenshot di HP Google Pixel. Pas gambar di-crop dan disimpan, versi barunya nimpa file yang lama. Masalahnya, ‘byte data’ sisa-sisa file lama itu enggak dihapus, dan masih tetap berada di posisi original mereka, tepatnya di bagian setelah 'IEND data chunk'. Kalian bisa lihat, ketika screenshot tadi kita buka di Hexedit, ada banyak ‘byte data’ setelah ‘IEND’.

Kalau dibuka pakai aplikasi penampil gambar biasa, yang ditampilin sih tetep gambar yang udah di-crop, soalnya bagian data setelah 'IEND' diabaikan oleh penampil gambar. Tapi, di sinilah alat bantu kayak aCropalypse beraksi. Alat ini bakal mengolah data-data yang posisinya terletak setelah ‘IEND’, yang merupakan sisa-sisa bagian dari file screenshot original yang seharusnya sudah dibuang. Data-data ini akan dipake untuk mencoba mengembalikan bagian screenshot yang hilang karena di-crop.

Kesimpulan

Lewat artikel ini, jadi paham kan, bahwa lewat CTF kita bisa lebih waspada tentang gimana celah keamanan di fitur screenshot (aCropalypse) bisa merugikan kita di kehidupan sehari-hari?

Pesan moralnya? Selalu update software dan HP kamu secepatnya secara berkala! Meskipun pakai HP Android mahal, bahkan buatan Google sendiri, belum tentu aman dari hacker. Ada banyak banget pintu masuk buat akun kamu kena hack, jadi alangkah baiknya jika kamu selalu waspada.

Di Cylabus, kami berdedikasi untuk menularkan Cybersecurity Awareness kepada siapapun. Kami percaya bahwa di dunia yang serba digital ini, semua orang bisa mendapat manfaat dengan memiliki pengetahuan Cybersecurity. Salah satu upaya nyata yang kami lakukan adalah dengan memperkenalkan CTF ke masyarakat awam dan mengedukasi anak SMA dan SMP sejak dini tentang Cybersecurity lewat bermain CTF.