Membuat Rubber Ducky dengan Arduino (Attiny85 Digispark)


Oke, Gua gatau gimana bikin kalimat pembuka, yaudahlah kalimat pembukanya ngasal aja yah... Jadi pas gua ada praktikum instrumen kendali dimana mata kuliah ini mempelajari tentang arduino, gua jadi keinget exploit dimana seseorang dapat membuat payload dengan menggunakan usb rubber ducky. Kebetulan gua pernah baca baca juga cara bikin USB Rubber Ducky ini pakek Attiny85 Digispark. Gua juga udah beli Attiny ini sekitar 7 atau 8 bulan yang lalu tapi blom pernah gua pakek (kalo ga salah harganya 38rb). Bentukannya kek gini bang (itu yang besi dua itu ga kepake).

Bentar Gua Kasih penjelasan Apa itu Rubber Ducky ama Attiny dulu biar keindex google

"USB Rubber Ducky adalah keystroke injection attack tool. yang berarti device yang berbentuk seperti USB Drive / Flashdisk, namun berfungsi layaknya keyboard. Pada penggunaannya attacker biasa memasukkan payload yang akan mengeksekusi perintah baik dari command prompt maupun terminal"

"Attiny85 adalah mikrokontroler 8-bit keluaran Atmel dengan frekuensi maksimum 20MHz. ATtiny85 hanya memiliki total 8 kaki pin terdiri dari VCC, GND, Reset dan 5 pin I/O. Dengan ukurannya yang kecil, harganya yang murah dan mudah didapatkan, ATtiny85 selalu menjadi pilihan tepat untuk membuat proyek kecil dan sederhana. Dengan hadirnya Digispark, kini kita dapat memprogram ATtiny85 lebih mudah lagi karena Digispark dapat diprogram menggunakan Arduino langsung. Selain itu Digispark selalu saya anjurkan untuk digunakan oleh teman-teman yang baru belajar Arduino karena harganya lebih murah dibanding board lain (seperti Arduino UNO) dan masih bisa mengcover keperluan belajar Arduino dasar."
-Copas dari codepolitan-


Exploitasi
Disini saya membuat keystroke injection basic dulu untuk percobaan.. Kenapa ga langsung reverse shell bang? Pada dasarnya langkah langkah pembuatan payload sama, hanya source codenya saja yang berbeda. Setelah kalian berhasil melakukan basic keystroke injection kalian hanya perlu merubah source code menjadi payload reverse shell


Oke, Vidio diatas adalah sedikit gambaran cara kerja rubber ducky. Untuk pembuatannnya baca baik baik

1.Install Arduino IDE (Karna gua pakek linux)

sudo apt-get update && sudo apt-get install arduino arduino-core

2.Buka arduino di menu kalian atau bisa ketik arduino di terminal



3.Klik Menu Files > Preferences dan ikuti settingan dibawah
Jangan lupa tambahkan “http://digistump.com/package_digistump_index.json” pada Manager URLs dan klik ok

4.Sekarang kita install lib punya attiny digispark (karna kita make ini) dengan cara klik menu Tools > Board: “Arduino/Genuino Uno” > Boards Manager

Sorry gambarnya ke crop, Untuk pilihan board manager ada di paling atas

5.Ubah Type yang semula All ke Contributed dan kamu bakal nemuin Digistump AVR Boards dimana Digispark terinclude pada package ini. Terus klik 2 kali dan install

6.Sekarang kita setting board yang kita pakek dengan klik menu Tools > Board: “Arduino/Genuino Uno” >  “Digispark (Default – 16.5 mhz)” (Btw yang digambar itu salah, harusnya yang 2 dibawahnya)


7.Setelah itu kita setting programmer modenya dengan cara klik Tools > Programmer > USBtinyISP

8.Kemudian setting ke mode pemrograman DigisparkKeyboard dengan cara klik Files > Examples > DigisparkKeyboard > Keyboard
9.Masukkan Source Code Seperti pada gambar, gausah takut salah
Kemudian debug source code dengan klik tanda centang pada pojok kiri atas

10.Souce Code Hasil debug keluar, ini adalah source code yang benar bawaan digispark (untuk beberapa kasus debug justru merusak payload/source code)

11. Tinggal upload dengan ctrl+U atau klik icon disebelah icon Debug. Kalo pas upload ada tulisan plug in device now padahal attinynya udah nancep kalian bisa copot dan pasang itu device

Tapi whoops...Kok gagal bang :( aborted

micronucleus: library/micronucleus_lib.c:66: micronucleus_connect: Assertion `res >= 4' failed.

12. Kita Troubleshooting Dulu, Buka terminal linux kalian dan jalankan command

sudo nano /etc/udev/rules.d/49-micronucleus.rules

Kita isi pada terminal script dibawah ini



Kemudian kita jalankan command
udevadm control --reload-rules

13. Upload lagi source code tadi. Done...
Ketika attiny dicolokkan ke port usb, maka payload akan tereksekusi dengan sendirinya seperti pada vidio awal.


Untuk mengganti dengan payload reverse shell atau yang lainnya. Kalian hanya perlu mengganti payload diatas dengan payload payload yang bisa kalian temukan di github.

Basic Source Code Reverse Shell Rubber Ducky Linux Target

Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.