Dunia keamanan siber terus berkembang, dan tak hanya terbatas pada perangkat lunak saja. Keamanan hardware atau perangkat keras juga menjadi frontier penting yang menarik untuk dieksplorasi. Bagi kamu yang penasaran ingin mendalami bidang ini, ada sebuah proyek open-source bernama PwnPad yang hadir sebagai PwnPad - Advanced Pentesting Tool platform pembelajaran. Proyek ini mengajak siapa pun, termasuk para pemula tanpa pengalaman sebelumnya, untuk terjun langsung ke dunia hardware hacking.
Apa Itu PwnPad? Gerbang ke Dunia Hardware Hacking
PwnPad diciptakan dengan misi utama untuk membuat pembelajaran hardware hacking menjadi semudah dan semurah mungkin. Kamu bisa merakit seluruh setup PwnPad dengan biaya di bawah $20. Untuk menyelesaikan semua tantangan yang ada, kamu hanya memerlukan peralatan dasar senilai sekitar $50. Ini menjadikan PwnPad sangat terjangkau bagi pelajar, hacker amatir, atau siapa pun yang ingin memulai tanpa harus mengeluarkan banyak uang.
Melalui pendekatan pembelajaran hands-on, PwnPad memandu kamu dari dasar-dasar seperti pembuatan PCB, penyolderan, ekstraksi firmware, hingga teknik eksploitasi yang lebih canggih. PwnPad berusaha menjembatani kesenjangan antara teori dan praktik, menawarkan jalur belajar yang terstruktur dan praktis ke dalam dunia sistem embedded dan keamanan hardware.
Pelajari Berbagai Teknik Serangan Hardware
Dengan PwnPad, kamu akan mendapatkan pengalaman praktis dalam berbagai topik kunci hardware hacking, meliputi:
- Protokol Komunikasi Serial: Mengenal dan mempraktikkan UART, SPI, dan I2C.
- Ekstraksi Firmware: Membuang dan menganalisis firmware melalui ISP (In-System Programming) dan dump EEPROM.
- Membangun Programmer ISP Sendiri: Merakit alatmu sendiri untuk berinteraksi dengan chip.
- Serangan Injeksi Cacat (Fault Injection): Melakukan voltage fault injections untuk memanipulasi perilaku perangkat.
- Serangan Saluran Samping Berbasis Waktu (Timing-based Side-channel Attacks): Mengungkap rahasia dengan menganalipasi variasi waktu eksekusi.
Salah satu fitur unik PwnPad adalah pemilih tantangan melalui jumper pins. Artinya, kamu tidak perlu melakukan reflash perangkat setiap kali ingin beralih ke tantangan baru. Cukup atur pin jumper sesuai instruksi, dan firmware yang sudah ter-flash akan memuat tantangan yang berbeda.
Struktur Proyek PwnPad
Proyek PwnPad terorganisir dengan rapi dalam beberapa folder, memudahkan pengguna untuk menavigasi dan memahami komponennya:
| Folder | Deskripsi |
|---|---|
firmware/ | Berisi firmware untuk setiap tantangan |
hardware/ | Berisi skematik, tata letak PCB, BOM, dan Model 3D |
challenges/ | Tujuan pembelajaran untuk setiap tantangan |
tools/ | Script untuk membangun dan melakukan flashing |
docs/ | Berbagai sumber daya tambahan |
modules | Gerber dan Skematik untuk modul tambahan |
Memulai Petualangan Hacking Anda
Untuk memulai, kamu bisa menemukan instruksi perakitan lengkap di dokumen docs/PwnPad_building_instruction.pdf. Jika kamu baru mengenal penyolderan atau hardware hacking, ada juga video tutorial di YouTube yang akan memandu proses perakitan PwnPad.
Berikut adalah daftar peralatan yang direkomendasikan untuk menyelesaikan tantangan-tantangan PwnPad:
- Multimeter
- Arduino UNO
- Logic Analyzer
- Jumper Wires
- Raspberry Pi Pico & MOSFET (khusus untuk tantangan voltage fault injection)
Setelah PwnPad kamu rakit dan di-flash, kamu bisa langsung bermain. Navigasi ke direktori challenges/ dan buka file objektif untuk tantangan gamified yang ingin kamu mainkan. Cukup konfigurasikan jumper seperti yang dijelaskan dalam instruksi tantangan, lalu tekan tombol RESET pada PwnPad-mu.
Sebagai contoh, untuk memainkan tantangan "Serial Snitch", buka challenges/Serial Snitch.md. Di sana kamu akan menemukan misi seperti mengidentifikasi pin UART, menentukan baud rate yang benar, dan mengakses antarmuka perintah perangkat. Pengaturan jumper untuk tantangan ini adalah:
1 --> 1
2 --> 0
3 --> 0
4 --> 0
5 --> 0
Kamu juga bisa melacak progres tantangan dan mengirimkan flag dengan menjalankan script berikut:
bashbash ./tools/webapp/start.sh
Kemudian, buka peramban web dan navigasikan ke http://127.0.0.1:12530. Di sana kamu bisa melihat progres dan mengirimkan flag yang berhasil kamu dapatkan.
Daftar Tantangan PwnPad
PwnPad menawarkan 15 tantangan yang beragam, dirancang untuk menguji dan mengembangkan pemahamanmu tentang hardware hacking. Perlu diingat, kecuali untuk "Code Heist" dan "Hard Leak", semua flag harus diambil melalui antarmuka serial (UART atau I2C).
| # | Nama Tantangan | Topik Utama | Deskripsi |
|---|---|---|---|
| 1 | Serial Snitch | #UART | Menyadap dan mendekode komunikasi UART. |
| 2 | Echo Chamber | #UART | Menyadap dan mendekode komunikasi UART, dengan keamanan melalui obscurity. |
| 3 | Bus Whisperer | #I2C | Memata-matai lalu lintas I2C untuk mengekstrak rahasia. |
| 4 | Invisible Wires | #I2C | Menyerang I2C saat perangkat slave tidak ada. |
| 5 | Code Heist | #SPI #ISP #Flash #UART | Membuang dan menganalisis firmware dari flash. |
| 6 | Hard Leak | #SPI #ISP #EEPROM | Mengekstrak data dari EEPROM internal. |
| 7 | Power Trip | #FaultInjection #UART | Menggunakan glitching untuk melewati dead code statements. |
| 8 | Glitch Storm | #FaultInjection #UART | Menggunakan glitching untuk melewati verifikasi kata sandi. |
| 9 | Clock Spy | #SideChannel #UART | Membocorkan rahasia menggunakan variasi waktu. |
| 10 | Tempo Leak | #SideChannel #UART | Membocorkan rahasia menggunakan variasi waktu dengan sentuhan berbeda. |
| 11 | Chaos Chain: Glitchgate | #FaultInjection #UART | Menggabungkan serangan UART dan glitch untuk membobol sistem. |
| 12 | Chaos Chain: Timebomb | #UART #SideChannel | Menggabungkan UART dan chain timing leaks untuk membobol sistem. |
| 13 | Pizza Order | #SPA #SideChannel | Menggunakan osiloskop dasar untuk mendapatkan kata sandi. |
| 14 | Ladybirds | #SWD #Reversing STM32 | Menggunakan debugger SWD dan menambal memori untuk mengakses safe. |
| 15 | Ladybird I Am Your Father | #JTAG #Reversing STM32 | Mengekstrak firmware menggunakan JTAG lalu menambal memori untuk mengakses safe. |
Berkontribusi dan Masa Depan PwnPad
PwnPad sangat terbuka terhadap kontribusi komunitas. Jika kamu ingin menambahkan tantangan hardware baru, ikuti panduan yang tersedia untuk menjaga konsistensi dan fungsionalitas. Kamu perlu membuat header file baru dan mendaftarkan fungsi tantanganmu pada switch statement di PwnPad.ino. Logika pemilihan tantangan menggunakan 5 pin jumper biner, dengan Pin 1 sebagai LSB dan Pin 5 sebagai MSB. Misalnya, biner 00011 (desimal 3) akan memilih Tantangan 3.
Tim di balik PwnPad juga telah menyusun roadmap untuk pengembangan ke depan, termasuk peningkatan perangkat lunak dan hardware. Rencananya, PwnPad akan memperkenalkan tantangan Simple Power Analysis (SPA) dan Differential Power Analysis (DPA). Di sisi hardware, mereka berencana menyederhanakan antarmuka Fault Injection dengan sakelar DIP dan mengembangkan modul add-on baru seperti Modul Penyimpanan Eksternal, Modul BLE (Bluetooth Low Energy), dan Modul RF (Radio Frekuensi) yang kompatibel dengan versi PwnPad yang ada.
Lisensi
Proyek PwnPad dilisensikan di bawah GNU General Public License v3.0. Proyek ini dibuat oleh Georgios Roumeliotis dari TwelveSec.
PwnPad adalah alat yang fantastis untuk siapa saja yang ingin serius belajar hardware hacking. Dengan biaya yang minim dan kurikulum yang komprehensif, ia menawarkan jalur yang jelas dari pemula hingga mahir dalam memahami dan menyerang sistem embedded.
Referensi
https://github.com/twelvesec/PwnPad
