Mengamankan Jumping Symlink


Status
Not open for further replies.

Thehostingmurah

Poster 2.0
beberapa bulan lalu salah satu akun user kena hacked.
Ternyata jumping menggunakan symlink. anehnya php shell tidak terdeteksi otomatis oleh server.
setelah di cek ternyata ada beberapa file yang terinjeksi. setelah dihapus ternyata belum menyelesaikan masalah (masih bisa berjalan dengan baik).



database juga terinjeksi, setelah database diremove baru hilang. namun sebelum dihapus saya sudah download terlebih dahulu database tersebut. udah pusing cari cari namun tidak ketemu isi di database tersebut yang mengindikasikan ada syntax yang mencurigakan.

kira kira dibagian mana ya masih tersimpan?

kalo saya akses seperti image di atas, si hacker bisa masuk sebagai root (walau tidak full sepenuhnya, ada beberapa permisssion yang tdk bisa diubah), dan jika ingin menghapus folder2 tentu bisa karena permision bisa dirubah.
 
saya juga pernah kena symlink attack ini.
ini yang saya tau karena config file permissionnya 644..

emang rada sulit cek di database yang mana yang terinfeksi.. waktu itu saya restore semua DB untuk jaga2..

untuk cek apa masi ada symlink, bs pakai
find /home/*/public_html/ -type l -ls
 
heehe... iiya mas bro..

saya akhirnya test case.
Semua file saya bersihkan. akun di create ulang. namun database masih pake yang lama. ternyata bener, masih bisa berjalan dengan baik symlink nya..

artinya yang terinjec adalah databasenya. saya sampai pusing ubek2 line per line database nya,,, namun belum ketemu juga.
 
coba pake cagefs cloudlinux, atau pake nginx itu sudah ada antisipasi symlink, setidaknya bisa menimalisir. CMIIW
 
Tipe web nya apa? CMS kah? Ato html / php? Di enconding ato ga? Itu web berjalan menggunakan zend optimizer ato ga?

Ada beberapa web yang memang tidak bisa dirubah permission nya.
Cth: setting.php | admin.php | folder cache dan sebagainya. Nah pada file2 tersebut jika digeser permission nya maka bisa aja berkemungkinan web tidak bisa nyala / nampil.

Klo problem nya masih belum fix, bisikin aja no hp ts. Nanti kita coba diskusiin lebih lanjut :D
 
heehe... iiya mas bro..

saya akhirnya test case.
Semua file saya bersihkan. akun di create ulang. namun database masih pake yang lama. ternyata bener, masih bisa berjalan dengan baik symlink nya..

artinya yang terinjec adalah databasenya. saya sampai pusing ubek2 line per line database nya,,, namun belum ketemu juga.

yang saya tau ini injeksi di database juga.. tapi emang sulit carinya...
saya restore seluruh database dan ganti root passwd database...

mungkin ada yang berpengalaman dengan symlink bisa sharing2 juga..
 
Tipe web nya apa? CMS kah? Ato html / php? Di enconding ato ga? Itu web berjalan menggunakan zend optimizer ato ga?

Ada beberapa web yang memang tidak bisa dirubah permission nya.
Cth: setting.php | admin.php | folder cache dan sebagainya. Nah pada file2 tersebut jika digeser permission nya maka bisa aja berkemungkinan web tidak bisa nyala / nampil.

Klo problem nya masih belum fix, bisikin aja no hp ts. Nanti kita coba diskusiin lebih lanjut :D

disharing disini aja mas untuk caranya..
sekalian bisa jadi bahan pembelajaran dan juga rujukan untuk waktu kedepan..
 
coba symlink nya di disable dulu di disable_function :

symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd

note : symlink ini oleh hoster jarang disable


plus MYSQL ROOT nya passwordnya di pasang acak saja , generate , kemudian change, setelah itu masuk ssh :

/usr/local/cpanel/bin/updatephpmyadmin --force

biar ga lompat2 di phpmyadmin
 
disharing disini aja mas untuk caranya..
sekalian bisa jadi bahan pembelajaran dan juga rujukan untuk waktu kedepan..
Ikut mantau ... jangan pelit2 ma ilmu Tuan .... :)

Bukannya pelit atau ga ingin sharing ilmu, karna saya juga masih awam. Oleh karna itu saya perlu liat lebih lanjut seperti apa itu script nya, dan bersama" berupaya mengobati penyakit nya :) Sama hal nya dengan mengobati sql yang jalan nya kurang baik :D. Lagi pula saya kurang tau wujud rupa case web yang dialami TS, Symlink sendiri kan ada beberapa varian, untuk symlink yang udah diketahui secara umum namanya mungkin bisa dilakukan pembatasan namun tetep aja kan ada pengecualian nya.

Ada loh web yang permission file nya 666 jika diganti ke 644 maka yang terjadi adalah data yang di input dari panel admin tidak masuk sempurna artinya data tidak masuk namun respon sql error / pesan error juga tidak muncul. Nah baru di ketahui setelah melakukan login ulang ke admin area baru deh keliatan bahwa data yang di input tidak masuk.

Beberapa aplikasi yang bertugas mengatasi symlink berfungsi secara general aja, nah untuk symlink yang tertanam di tengah - tengah baris file penting gimana? seperti file setting.php | confiq.php | admin.php | atau mungkin didalam smarty

lukisan nya kira - kira gini
<?php
<ejaan script berisi codingan admin area..................
.............................................................
.............................................
...........................>
<potongan ejaan symlink / ejaan symlink>
<lanjut lagi ejaan script..........................................
..........................................................................
.........................................................................
.........................................................................
...........................>
<ejaan symlink lagi untuk user pembuat atau pemakai symlink>
<ejaan script lagi.........................................................>
<?php

Maaf jika tulisan saya ngambang ntah kemana :(
 
Status
Not open for further replies.
Back
Top