Pages Menu
Categories Menu




Posted by on Feb 8, 2016 in Hacking, Networking | 0 comments

From SQL Injection to Shell

From SQL Injection to Shell

From SQL injection to Shell maksudnya adalah bagaimana cara kita untuk memanfaatkan celah sql injection di sebuah situs sampe kita bisa masuk ke shell dan bisa mendapatkan hak akses root pada sebuah server.. Biasanya attacker kalo sudah menemukan celah rasanya belum puas kalo belum bisa mendapat hak akses root.. (Namanya juga manusia) sehingga celah itu di kembangin terus sampe server victim ter-Owned 100% …

Pada postingan ini saya menggunakan file image yang saya download di situs pentesterlab.com, yang mana di file tersebut sudah ada beberapa celah yang bisa kita manfaatkan..
File image tersebut saya jalankan menggunakan aplikasi virtual machine Vmware, bisa juga menggunakan vbox, tergantung selera..

konfigurasi ip address :

Host (Attacker) 192.168.1.1
Guest Os (Victim) 192.168.1.2

 

 

Scan port menggunakan Nmap di pc Host untuk melihat port berapa saja yang open di server victim :

1
Bisa kita lihat di atas port yang open (terbuka) ada 2 :
1. 22 (port default ssh)
2. 80 (port default http)
Sekarang kita coba manfaatkan port 80 aja (service http), kita coba akses di komputer attacker..

2

Tidak lama untuk mencari celah di web ini,, saya menemukan celah SQL injection disini,

3

Kita coba eksploit..
Biar lebih mudah disini saya menggunakan Addons hackbar di browser mozilla..
HackBar adalah Addons mozilla yang fungsinya cukup banyak, Hackbar ini sebenarnya berfungsi untuk menguji sistem kita misalnya dari sql injection.. Atau XSS attack.. atau mengenkripsi password md5 ataupun SHA-1
Ok lanjut..

Sekarang kita mencoba mencari tahu jumlah tabel yang ada di database web, dengan perintah “order by”, Bagaimana kita agar mengetahui jumlah table di database yaitu dengan cara melihat awal terjadinya error

http://192.168.1.2/cat.php?id=1 order by 1– =>no error
http://192.168.1.2/cat.php?id=1 order by 2– =>no error
http://192.168.1.2/cat.php?id=1 order by 3– =>no error
http://192.168.1.2/cat.php?id=1 order by 4– =>no error
http://192.168.1.2/cat.php?id=1 order by 5– => error

4
Itu berarti jumlah tabel di dalam database ada 4..
Langkah selanjutnya yaitu mengetahui dimana angka-angka yang bisa di buat injection / tempat kita memasukkan perintah-perintah selanjutnya.

Cara untuk mengetahui angka-angka tersebut ialah dengan mengganti perintah “ order by “dengan “ union select “ disertai berapa jumlah kolom yang kita temukan tadi dan tanda – di depan angka..

Menjadi : http://192.168.1.2/cat.php?id=1 union select 1,2,3,4–

 

5

Ada 2 angka yg muncul, dan dua duanya adalah angka 2, itu berarti tempat kita memasukkan perintah injection di posisi angka 2..
Kita mulai..
Sekarang tahap selanjutnya ialah mengetahui versi database nya, Caranya ialah dengan memasukan perintah “ @@version “atau “ version() ” ketempat angka yang muncul tadi..

6

.

Di gambar muncul 5.1.63-0+squeeze1, itu berarti database web tersebut adalah versi 5, kita beruntung karena jika kita menemukan versi 4. maka kita akan kerepotan karena jenis perintah SQL nya berbeda yaitu dengan menebak 1 per 1 tabel yang ada di dalam database tersebut..
Sekarang kita melangkah ke tahap selanjutnya yaitu memunculkan nama-nama table yang ada di dalam web tersebut dengan mengganti perintah “ version() ” dengan “group_concat(table_name) ” dan menambahkan perintah “ from information_schema.tables where table_schema=database() ” sesudah angka terakhir , sebelum tanda —

7

Degan cara mengganti perintah “ table_name ” yang ada berada dalam perintah “
group_concat(table_name) ” dengan perintah “ column_name ” menjadi “
group_concat(column_name) ” dan mengganti perintah “ .tables ” yang berada di perintah “information_schema.tables “ dengan perintah “ .columns ” menjadi “
information_schema.columns ” juga mengganti perintah “ table_schema=database() ” dengan perintah “ table_name=
Dan diikuti hasil convert nama tabel (tabel users) ke MySQL Char() , ini salah satu keuntungan kita menggunakan addon hackbar,
Klik SQL -> MySQL-> MySQL Char()

8

menjadi :

18
Upss.. Muncul kolom id,login dan password,.. Sekarang tinggal kita lihat data di kolom ini,

Caranya ialah mengganti perintah “ column_name “ yang berada di perintah
group_concat(column_name)” dengan nama-nama kolom yang kita temukan tadi yaitu id, login, dan password sehingga menjadi
group_concat(id,0x3a,login,0x3a,password) ” dan mengganti perintah “ from
information_schema.columns where table_name=CHAR(117, 115, 101, 114, 115) —“ dengan
perintah “from users —“ perintah users ini saya dapat dari nama table yang kita temukan tadi,
Nb : 0x3a adalah kode hexa dari “ : “ fungsinya sebagai pemisah biar kita gak keliru

9

Sekarang kita telah mendapat user dan password untuk login, tapi disini passwordnya terenkripsi md5, kita harus mendekripnya terlebih dahulu,..
Setelah di decript passwordnya adalah : P4ssw0rd

Sekarang kita coba login ke halaman admin..

10

setelah login :

11

Setalah di lihat lihat.. Di halaman admin ada fasilitas upload gambar, ini bisa di manfaatkan untuk kita mengupload backdoor kita, tujuannya agar kita bisa mengeksploitasi server lebih dalam lagi.. Ok kita coba upload file backdoor kita..
Saya membuat backdoor menggunakan tools weevely,, karena menurut saya lebih simple dan cukup powerfull..

12

Alamat upload http://vulnerable/admin/new.php

13

Langsung saja kita upload..
Whatt…. Ternyata pas kita upload file backdoornya,, muncul peringatan..
Peringatan tersebut muncul karena sistem menolak file yang berekstensi .PHP , saya tes dengan ekstensi lain selain .php ternyata bisa, tujuan di filter seperti ini adalah menyulitkan para attacker untuk memasang backdoor, tapi yaaa… Namanya attacker tidak pernah kehabisan cara untuk bisa masuk ke sistem.. Untuk membypass filter tersebut kita bisa rumah ekstensi file backdoor kita dengan .php3,.. Sekarang kita coba..

14

Upss… File berhasil di upload,, sekarang tinggal kita panggil backdoor yang udah kita pasang tadi menggunakan tools weevely,,
Ehh.. Lupa.. Sebelumnya kita harus tau dulu link dari file backdoor yang udah kita upload tapi..
Caranya dengan melihat sourcecode dari halaman yang seharusnya menampilkan gambar yang di upload..

15

Alamat http://vulnerable/admin/uploads/back_con.php3
Sekarang kita mulai eksekusi di weevely..

16

File /etc/passwd juga bisa kita tampilkan.. Tapi sudah di shadow, file /etc/shadow hanya bisa di read oleh user root..

17

Bagaimana cara untuk menjadi user root supaya server ter-Owned 100% , ??
Caranya dengan root local eksploit, next artikel guys.. Postingan udah kepanjangan :p

File image didownload di :
https://pentesterlab.com/

johan Wahyudi on Facebook
johan Wahyudi
Linux and Network Security Enthusiast

Post a Reply

Your email address will not be published. Required fields are marked *