the fault in our shells : sebuah tinjauan menjalankan cowrie

Penulis menjalankan cowrie (ssh honeypot) pada sebuah VPS berlokasi di Singapura selama 7 hari. Pengiriman log, analisis dan visualisasi dilakukan dengan menggunakan ELK stack  dan Tableau Visualiser. Selain itu, Penulis juga melakukan analisis atas auth.log milik VPS dimaksud.

Serangan pertama atas honeypot yang dijalankan penulis terjadi hanya dalam 5 menit sejak service cowrie aktif. Secara total terdapat 22.250 kali percobaan login selama 7 hari atau hampir 2 kali percobaan login tiap detik. Selain itu terdapat 510.659 perintah yang dieksekusi oleh penyerang yang telah berhasil login selama 7 hari, atau lebih dari 50 perintah per menit.

Gambar di atas memperlihatkan top 10 ip address, username, dan password yang digunakan oleh penyerang.

Percobaan login terbanyak berasal dari IP address 198.98.62.xxx, sedangkan percobaan login kedua terbanyak berasal dari IP address 194.36.173.xxx. Menariknya, percobaan login dari kedua IP address tersebut melingkupi hampir 50% dari seluruh total percobaan login (47,33%). Berdasarkan payload yang terdapat (dan diunduh) di C2 server masing-masing IP address, diperoleh informasi bahwa IP address pertama merupakan botnet Mirai sedangkan IP address kedua merupakan botnet Bushido.

Top 10 Username memiliki beberapa username yang sama dan digunakan oleh beberapa penyerang. Username yang lazim ditemukan dalam dictionary/wordlist, seperti “root”, “admin”, “guest”, menempati posisi-posisi awal. Selain itu terlihat beberapa username yang khusus menyasar consumer IoT devices seperti “vstarcam2015” yang merupakan username default IP camera Vstarcam dan “ubnt” yang merupakan username default network device milik vendor Ubiquiti.

Selain username yang lazim digunakan dan username yang khusus menyasar default login device/IoT tertentu, muncul pula username yang cukup berbeda dari dua jenis username tersebut. Username tersebut antara lain “enable”, “shell”.

Top 10 Password memiliki hasil yang lebih merata dibandingkan dengan Top 10 username. Serupa dengan Top 10 username, password yang seringkali menjadi password default dan sudah umum di berbagai dictionary/wordlist, muncul di urutan yang cukup tinggi, antara lain password  seperti “12345”, “123456”, “1111”, “password”. Selain itu terdapat juga beberapa password yang menyasar device tertentu seperti xc3511 (menyasar H.264 Chinese DVR).

Serupa dengan username, terdapat beberapa password yang tidak umum digunakan dalam wordlist brute force namun kerap kali muncul dengan urutan cukup tinggi sebagai password yang digunakan. Password ini antara lain “system”, “sh”.

Session dan command

Sebuah session adalah sebuah perintah login yang berhasil, dimana penyerang kemudian dapat memasukkan perintah. Terdapat 20.576 percobaan login yang berhasil, dari total 22.250 kali percobaan login. Setelah mendapatkan session, terdapat beberapa perintah yang dijalankan berbagai malware, yang secara umum dapat digambarkan sebagai berikut.

Fingerprinting dan persiapan

Terdapat beberapa perintah-perintah yang bertujuan untuk melakukan fingerprinting dan persiapan, antara lain:

  1. enable/system/shell/sh : seperti dibahas sebelumnya, perintah ini bertujuan mengaktifkan shell dan masuk ke dalam shell, apabila diperlukan.
  2. /bin/busybox [TOKEN][1] : Perintah ini menggunakan busybox untuk menjalankan [TOKEN]. [TOKEN] sendiri adalah kumpulan karakter (bersifat random maupun tidak). Terdapat beberapa jenis [TOKEN] yang berbeda-beda, beberapa yang umum ditemui adalah ECCHI, BUSHIDO, FAGT, iDdosYou, MIRAI, MIORI, YAGI, OWARI, IHCCE dan beberapa yang random mengingat jenisnya sangat beragam. Token ini memiliki dua fungsi, mengetahui bahwa sebuah perintah selesai dijalankan, ketika terminal menjawab dengan [TOKEN]: applet not found. Sehingga perintah dengan token ini biasanya diletakan di bagian akhir perintah. Selain itu perintah dengan token ini juga dapat digunakan untuk fingerprinting operating system yang berjalan dengan melihat error yang dikembalikan OS.
  3. echo: Terdapat beberapa jenis perintah yang berbeda-beda dengan tujuan serupa, yaitu mengecek di folder mana yang bisa ditulis (writable). Perintah echo di dahului dengan mengecek mounted folder dan mengecek apakah mounted folder tadi writable dilakukan dengan Token dengan random value (“DT86VkNA”) juga muncul disini, dengan tujuan mengecek apakah perintah mengecek mounted folder yang dijalankan telah selesai.
  4. Pengecekan environment: berbagai perintah mengecek environment dimana malware tersebut dijalankan. Perintah-perintah tersebut cukup umum, antara lain “free”, “uname”, “ifconfig”, “ping”, dan lainnya. Keberadaan aplikasi transfer file juga di-cek, antara lain dengan menjalankan “wget” dan “tftp”.

Contacting C2 server / downloading payload

Setelah perintah fingerprinting dan persiapan lainnya, malware yang ditemui penulis, selama periode 7 hari, berusaha melakukan kontak ke Command and Control server (C2 server), atau melakukan download payload. Perintah ini biasanya didahului dengan mengecek apakah terdapat aplikasi transfer file, dan kemudian melakukan pengunduhan payload.

Perintah lain

Beberapa malware menjalankan perintah untuk mengecek process yang berjalan, mencari proses tertentu (dalam hal ini miner), serta terdapat juga malware yang berusaha membersihkan jejak dengan mematikan pencatatan history.

Downloaded files

Dari sebanyak 10.874 download request (menggunakan wget, ftpget, tftp) terdapat 43 jenis payload yang unik. Terdiri dari 5 buah script bash, 1 buah script perl dan sisanya merupakan linux executables.

Post ini merupakan summary dari tulisan penulis di e-magazine cyber defense community indonesia (cdef) 4th edition yang bisa di-unduh dari playstore/website cdef.

link playstore: https://play.google.com/store/books/details?id=ond7DwAAQBAJ

link pdf: https://s.id/cdefbulletin04

[1] Serupa dengan mirai, beberapa token seperti ECCHI, YAGI, OWARI tampaknya berasal dari serial Anime. Selain itu ditemukan token-token unik lainnya seperti “IDdosYou”, “daddyl33t”, “mioribitches” dan lain-lain, walaupun sebagian besar token terlihat adalah random.

Leave a Reply

Your email address will not be published. Required fields are marked *