0x3 Legitimate but Illegal

SpyGame

Reference:  Spy Games – Legitimate but Illegal

Semua trafik komunikasi data yang keluar dari organisasi adalah legitimate. Namun, bisa jadi tidak semuanya legal. Karena ada kemungkinan, dimanfaatkan Malicious Actor yang melakukan pencurian data dengan menggunakan trafik yang legitimate tersebut untuk menipu. Seperti dalam film Spy Games yang dibintangi oleh Robert Redford dan Brad Pitt. Dalam film itu, Brad Pitt berperan sebagai Tom Bishop, seorang “tenaga honorer” yang kerap kali membantu Nathan D. Muir (Robert Redford) dalam berbagai operasi intelijen CIA, dari Vietnam hingga Beirut.

Ketika itu Tom Bishop (Brad Pitt) hendak menolong kekasihnya yang ditangkap oleh People Liberation Army di penjara Su Chou, yang lokasinya tidak jauh dari Beijing. Ia masuk ke dalam penjara menggunakan ambulans, menyamar sebagai petugas kesehatan yang akan memberikan vaksinasi kepada para tawanan. Dengan menggunakan baju paramedis, ia menelusuri sel demi sel di penjara tersebut. Akhirnya, ia berhasil menemukan kekasihnya. Namun dalam proses pencarian tersebut, terjadi insiden kecil bahwa ada tawanan yang akan berteriak dan ingin memberitahukan. Tom “berdamai” dengan tawanan tersebut dengan memberikan sebuah “bubble gum” atau permen karet.

Untuk mengeluarkan dari penjara, ia meletakkan kekasihnya dibawah jenazah yang akan dibawa keluar dari penjara tersebut. Setelah aktivitas vaksinasi selesai dilakukan, Tom membawa kekasihnya dengan ambulans. Sebuah penyamaran yang baik dan rapi. Ketika dilakukan pemeriksaan terhadap ambulans yang akan keluar dari penjara, sesungguhnya ia nyaris berhasil.

Sayang ada seorang penjaga penjara yang melihat ada tawanan yang mengulum “Bubble Gum”. Ia curiga dan mengaitkan peristiwa tersebut dengan ambulans yang sedang dilakukan pemeriksaan. Akibatnya, ambulans ditahan. Dan penyamaran terbongkar. Tom dan kekasihnya ditangkap. Demikian sekedar ilustrasi tentang “Legitimate but ilegall”.

Hal serupa dengan yang dilakukan oleh Malicious Actor. Dengan menggunakan trojan horse, ia mencuri data dengan cara “menumpang” pada trafik data yang akan ke internet (outgoing traffic). Seringkali pengelola organisasi hanya curiga pada trafik dari luar yang akan masuk ke dalam jaringan internal (incoming traffic). Padahal bisa jadi ketika seorang karyawan sedang browsing internet misalnya, sesungguhnya sedang terjadi peristiwa pencurian data dari dalam organisasi ke luar tanpa ada yang menyadari.

Pada artikel terdahulu (0x2 The Enemy Within), sudah dibahas tentang trojan horse yang menggunakan konsep Reverse Shell. Pada artikel kali ini akan dibahas tentang cara trojan horse tersebut mengeluarkan  data dari organisasi dengan “menumpang” pada trafik komunikasi data yang dianggap legitimate. Yang tentunya patut diwaspadai oleh kita semua.

Konsep Script

Kita akan melakukan penambahan fungsi pada script di artikel terdahulu (0x2 The Enemy Within), baik di sisi Threat Actor yang berperan sebagai server maupun disisi victim (korban) yang berperan sebagai client.

Script pada Threat Actor (Server)

Tujuan dari penambahan fungsi pada script adalah agar script dapat mencuri file yang diinginkan. Untuk mencapai tujuan tersebut maka berikut ini adalah beberapa langkah yang ditempuh:

Langkah pertama, memberikan perintah untuk mengambil file yang diinginkan. Jika pada script sebelumnya hanya ada dua jenis perintah, yaitu perintah umum pada Shell MS Windows dan perintah untuk mengakhiri koneksi, yaitu “terminate”. Maka, saat ini kita menambahkan satu jenis perintah baru dengan format [steal]*[file yang akan diinginkan]. Kita melakukan modifikasi pada fungsi connectFromVictim(), yaitu pada block infinite loop While.

Langkah kedua, selanjutnya memerintahkan victim untuk mengirimkan file tersebut. Untuk itu kita akan membuat fungsi baru yaitu: stealFiles(). Fungsi ini akan mengirimkan perintah perintah [steal]*[file yang akan diinginkan]  pada victim. Hal ini dilakukan dengan menggunakan fungsi send() dati library socket.

Langkah ketiga, dan akhirnya menerimanya dengan baik tanpa dicurigai oleh Victim. File yang akan diterima oleh Threat Actor tidak sekaligus, namun dikirim secara bertahap setiap 1kB atau 1024 bits. Untuk itu, akan dibuat file penerima yang bersifat sementara. Apabila script menerima isyarat “DONE” dari Victim maka artinya file yang diinginkan sudah diterima dengan langkap.

Berikut ini adalah gambar script pada Threat Actor yang berperan sebagai Server dengan penambahan beberapa fungsionalitas tersebut:

Screen Shot 2016-03-29 at 9.36.14 PM

Gambar: Script pada Threat Actor yang berperan sebagai Server (C&C Server)

Script pada Victim (Client)

Pada script di sisi Victim, juga dilakukan beberapa fungsionalitas yaitu:

Langkah pertama, menerima perintah untuk mencuri file yang diinginkan oleh Threat Actor.

Langkah kedua, melakukan pencarian file. Apabila file yang dicari tersedia, maka script segera mengirimkan file secara bertahap sebesar 1 kB atau 1024 bits agar tidak mencurigakan. Apabila file sudah selesai dikirm, maka script mengirimkan pesan “DONE”

Langkah ketiga, memberitahukan ke Threat Actor apabila file yang diinginkan tidak tersedia.

Berikut ini adalah gambar script pada Victim yang berperan sebagai Client (Trojan Horse) dengan penambahan beberapa fungsionalitas tersebut:

Screen Shot 2016-03-29 at 9.44.44 PM

Screen Shot 2016-03-29 at 9.45.29 PM

Gambar: Script pada Victim yang berperan sebagai Client (Trojan Horse)

Hasil Eksekusi Script

Kedua script tersebut akan dieksekusi pada dua mesin yaitu, script untuk Threat Actor akan dieksekusi pada mesin dengan sistem operasi Kali Linux dan script pada Victim akan dieksekusi pada mesin dengan sistem operasi MS Windows SP1. Berikut ini adalah hasil eksekusinya.

Langkah Pertama, Threat Actor menjalankan script menunggu adanya koneksi dari victim. Setelah menerima koneksi dari victim, maka Threat Actor melakukan browsing direktory dengan memberikan instruksi perintah “dir” pada victim sebagaimana gambar berikut ini.

Screen Shot 2016-03-29 at 9.59.55 PM

Gambar: Threat Actor mencari file yang diinginkan dengan perintah “dir” pada victim

Screen Shot 2016-03-29 at 10.10.37 PM

Gambar: Victim menjalan perintah “dir” dari Threat Actor dan mengirimkan hasilnya

 

Langkah Kedua, berdasarkan hasil pencariannya Threat Actor tertarik dengan program “putty.exe”. Maka ia memberikan perintah untuk mengambil file tersebut pada Victim. Setelah menerima perintah dari Threat Actor, maka victim melakukan pencarian dan menemukan file tersebut. Selanjutnya mengirimkan file “putty.exe” pada Threat Actor.

Screen Shot 2016-03-29 at 10.12.20 PM

Gambar: Threat Actor memerintahkan victim untuk mengirimkan file yang diinginkan dan menerimanya dengan baik.

Screen Shot 2016-03-29 at 10.13.23 PM

Gambar: Victim megirimkan file yang diinginkan Threat Actor tanpa terdeteksi oleh anti virus “AVAST”

 

Langkah Ketiga, setelah file yang diinginkan diterima maka Threat Actor mengubah nama file sementara menjadi “putty.exe” dan menjalankan file tersebut untuk memastikan bahwa file bekerja dengan baik, sebagaimana gambar berikut ini.

Screen Shot 2016-03-29 at 10.15.41 PM

Gambar: Threat Actor berhasil menerima file yang diinginkan dari Victim dan menjalankan file tersebut (putty.exe) dengan mengubah namanya terlabih dulu dari temporaryPlace.jpg

 

Berikut ini adalah script yang telah kita buat dan jalankan:

<01> Script pada Threat Actor yang berperan sebagai server (C&C Server)

<02> Script pada Victim yang berperan sebagai client (Trojan Horse)

Adapun artikel-artikel terdahulu yang terkait dengan pembahasan pada artikel ini adalah sebagai berikut:

<01> 0x0 Data Exfiltration

<02> 0x1 It’s Trojan Horse

<03> 0x2 The Enemy Within