Ghidra Tools Reverse Engineering dari NSA

Baru-baru ini NSA (National Security Agency) Amerika merilis tools RE baru bernama Ghidra yang gratis. Rencananya ini akan open source, tapi saat ini repositorynya masih kosong. Ghidra ini merupakan saingan IDA Pro yang saat ini harganya sangat mahal. Sebagai informasi: harga license IDA Pro paling murah ratusan USD (versi starter edition), sampai totalnya puluhan ribu USD jika kita ingin paket lengkap (IDA Pro dengan semua plugin decompilernya).

Ghidra

Tulisan kali ini merupakan kesan pertama memakai Ghidra. Perlu dicatat bahwa pekerjaan utama saya bukan reversing. Ini sekedar hobi buat saya. namun demikian saya sudah melakukan reversing beraneka hal baik yang populer seperti Windows/Linux/Mac/Android/iOS maupun berbagai target yang unik, misalnya (yang sudah saya terbitkan tulisannya): hardware Pokemon Go Plus (berbasis ARM), berbagai challenge Flare-On (campuran), Challenge BEVX (Arm), dan RHME (AVR).

Lanjutkan membaca “Ghidra Tools Reverse Engineering dari NSA”

Root check dan jailbreak check pada aplikasi mobile

Artikel ini akan membas mengenai metode untuk mengecek root (pada Android) atau jailbreak (pada iOS) dan mengapa pemeriksaan ini diperlukan. Berikut saya akan membahas bagaimana melakukan bypass pengecekan ini supaya seorang pentester bisa melakukan testing pada aplikasi mobile.

Apa itu rooting/jailbreak?

Baik rooting maupun jailbreak gunanya adalah untuk mendapatkan hak akses setara administrator pada mobile device yang kita miliki. Di Android kita bebas menginstall aplikasi apa saja, di iOS sebuah aplikasi hanya bisa diinstall dalam mode development, dengan jailbreak maka aplikasi tambahan bisa diinstall.

Jika device sudah dijailbreak/root maka sebuah aplikasi kemudian bisa diberi hak untuk melakukan apa saja, termasuk juga membaca data privat aplikasi lain. “Melakukan apa saja” bisa berarti positif, misalnya kita bisa mengganti berbagai aplikasi sistem dengan versi yang lebih baik, menghapus aplikasi bawaan sistem yang tidak terpakai, dsb.

Biasanya seseorang dengan sengaja melakukan rooting/jailbreaking pada devicenya sendiri supaya bisa melakukan hal-hal yang sebelumnya tidak bisa diijinkan oleh sistem. Contohnya: kita bisa mengganti isi file hosts untuk memblokir iklan di berbagai aplikasi, atau meningkatkan privasi dengan menggunakan aplikasi tertentu yang mencegat berbagai kebocoran informasi (misalnya dengan XPrivacyLua), atau bahkan sekedar untuk mencurangi game tertentu.

Lanjutkan membaca “Root check dan jailbreak check pada aplikasi mobile”

Ransomware, Reverse Engineering dan Backup

Cukup banyak yang bertanya ke saya mengenai ransomware, selain itu sering juga di group reverse engineering ada yang bertanya: saya kena ransomware (dengan scren capture layar permintaan tebusan), diteruskan dengan: apa yang harus saya lakukan? Tulisan ini akan berusaha menjawab kenapa sulit mengatasi ini, kenapa percuma meminta tolong ke group reverse engineering, dan kenapa sebaiknya Anda perlu membackup file Anda.

Ransomware

Ransomware adalah jenis malware (software jahat) yang memaksa Anda mengirimkan uang ke pembuatnya melalui berbagai cara. Cara yang saat ini paling banyak dipakai adalah mengenkripsi file Anda, lalu jika Anda mengirim uang tebusan, maka Anda akan dikirimi key atau program untuk membuka file Anda. 

Jawaban singkat untuk yang kena ransomware: cobalah ke situs No More Ransom. Jika Anda beruntung, file Anda bisa kembali. Jika tidak, maka harapannya sangat kecil. Coba juga search nama ransomwarenya (jika ada nama yang unik yang muncul di layar ransom) dan coba baca apakah sudah ada yang membuat tool gratis untuk membukanya. Bagian berikut artikel ini hanya ingin menjelaskan kenapa file Anda sulit kembali.

Alternatif lain: Anda bisa membayar tebusan, tapi perlu dicatat: Andaikan Anda membayar uang tebusan, belum tentu file Anda bisa kembali. Tidak ada jaminan dari para penjahat ini bahwa file Anda masih aman. Sebagian ransomware merusak file tanpa bisa dikembalikan dengan cara apapun (membayar atau pun cara lain).

Lanjutkan membaca “Ransomware, Reverse Engineering dan Backup”

Flare-On 5 (2018)

Ini sudah keempat kalinya saya mengikuti challenge tahunan Flare-On dari FireEye. Saya sudah pernah menuliskan tentang Flare-On ini di posting saya yang lain, tapi akan saya ulangi sedikit.

Flare-On adalah challenge reverse engineering, alias tantangan membongkar program. Bentuk Flare-On adalah challenge, semua yang selesai adalah pemenang. Ini ibaratnya seperti marathon, semua yang berhasil menyelesaikan disebut sebagai finisher. Ini berbeda dari CTF lain yang biasanya sifatnya adalah lomba (seperti lari Sprint) di mana yang duluan memecahkan adalah pemenangnya (contoh seperti ini adalah ketika saya menang hadiah ke Hong Kong dari reverse engineering). 

Hadiah Flare-On Tahun ini
Lanjutkan membaca “Flare-On 5 (2018)”

BEVX Conference

Tanggal 20-21 September saya mengikuti BEVX Conference di Hong Kong. Hari pertama adalah training dan saya mengambil  iOS Sandbox Escape Vulnerability and Exploitation oleh Hao Xu/Pangu.  Team Pangu ini sempat terkenal karena Jailbreaknya yang dirilis umum untuk iOS 7/8/9. Team ini masih aktif, tapi tidak lagi merilis jailbreak umum, di pelatihan yang dibahas adalah exploit iOS 11 dan mereka sudah punya jailbreak untuk iOS 12.

Biaya training plus conferencenya cukup mahal (1000 USD), tapi saya mendapatkannya gratis, plus tiket pesawat dan hotel juga. Ini saya dapatkan dari challenge Reverse Engineering yang saya kerjakan bulan April lalu. Writeup untuk challengenya saya tulis di blog saya yang berbahasa Inggris.

Sebagai informasi, saya ini bukan profesional di bidang Security, hanya part time saja melakukan pentesting secara remote. Saya juga tidak rajin mencari bug di berbagai website atau app, kadang-kadang saja saya menemukan bug ketika sedang iseng. Bidang security dan reverse engineering ini sekedar hobi bagi saya. Saya belum pernah menghadiri conference security (pernah ke HITB sekedar CTF saja). Saya cukup senang hobi ini tahun lalu mengantar saya ke Belanda dan tahun ini sekeluarga ke Hong Kong.

Training

Sekarang ke cerita trainingnya. Biasanya materi training iOS ini diberikan dalam 2 hari, dan baru kali ini pengajarnya berusaha mengkompres materinya menjadi 1 hari. Bagi yang tidak punya background development di macOS dan iOS akan sangat sulit mengikuti semuanya, untungnya walau sudah lama tidak develop macOS dan iOS saya masih mengikuti perkembangannya. Sayangnya di akhir kurang bisa cukup praktiknya, hanya sempat sampai membuat device crash.

Saya menyarankan bagi yang ingin mengikuti training sejenis ini agar mempersiapkan diri dulu dengan berbagai ilmu development iOS dan macOS (Objective C dan berbagai konsepnya). Seluruh dasar teori selama sehari penuh diperlukan untuk menjelaskan satu eksploit saja.

Lanjutkan membaca “BEVX Conference”

Trik Reverse Engineering Kode Python

Entah kenapa akhir-akhir ini saya banyak melihat pertanyaan mengenai reverse engineering kode Python yang sudah di-obfuscate, baik di Facebook maupun Telegram. Sudah ada beberapa artikel dalam Bahasa Indonesia yang membahas ini misalnya Bermain dengan Python Bytecode dan  Reverse Engineering Python Bytecode. Kedua artikel itu sudah bagus, jadi saya sarankan untuk membaca kedua artikel itu untuk dasar reversing bytecode Python.

Artikel ini hanya ingin membahas trik untuk mempermudah revers engineering proteksi tertentu yang memakai marshal dan gagal didekompilasi. Lanjutkan membaca “Trik Reverse Engineering Kode Python”

Membedah e-KTP

Posting ini sekedar membahas tentang kartu tanda penduduk elektronik (e-KTP). Sampai saat ini saya belum pulang ke Indonesia untuk mengurus e-KTP karena KTP lama masih berlaku. Waktu orang tua saya datang ke sini tahun lalu saya sudah sempat ngoprek e-KTP mereka sedikit, dan sekarang selagi mereka berkunjung saya teruskan dan tuliskan hasil eksplorasi saya.

Sebagian isi tulisan ini didapat dari reverse engineering, dan sebagian lagi dari berbagai informasi yang tersebar di Internet. Ada juga bagian yang merupakan spekulasi saya dari informasi yang ada.

Security sebuah smart card

Sebuah smart card adalah sebuah komputer kecil, di dalamnya ada CPU, RAM, dan juga storage. Smart card diakses menggunakan reader, secara umum ada dua jenis: contact (menggunakan konektor fisik seperti SIM card) dan contactless (tanpa konektor fisik seperti kartu e-Money berbagai bank saat ini). Dari sisi programming keduanya sama saja. Kartu smart card yang baru umumnya juga sudah tahan (immune) terhadap side channel attack (DPA/SPA/FI dsb). Lanjutkan membaca “Membedah e-KTP”