Selasa, 19 April 2011

Rescuing a Broken Linux System

Kadangkala kita, secara sengaja ataupun tidak, kita melakukan sebuah kesalahan pada Linux System kita. Ntah kesengajaan atau tidak, atau mungkin ulah hacker yang sengaja merusak atau ingin mengakses file2 penting di system. Kesalahan yang ane maksud disini adalah, mengenai permission file system linux. Example

chmod 777 -R /*

Permission 777, berarti mengijinkan semua user untuk mengakses file tersebut. Tetapi, hal ini tidak berlaku untuk system. Disinilah salah satu kelebihan linux. System dengan permission 777 tidak akan bisa diakses dengan super user.

sebagai contoh gan, dibawah ada commant

array@system~$ su

pssword:

setgid: Operation not permitted

yah, ndk bisa login super user..

kenapa iya gan? gimana cara jalaninnya?:cd:

~$ ssh my.server.net 22

ssh_exchange_identification: Connection closed by remote host

UPS..... gak bisa konek ke ssh juga. Why?

perm 777 pada file berikut :

/bin/su
/usr/bin/sudo
/var/run/sshd/etc/ssh/ssh_host_*

How to resolve the problem? Format system and reinstall?

Tentunya ini tidak kita inginkan.

OK. Cukup sudah keringat dingin keluar (hal ini juga q alami saat mengalami hal ini). Waktunya berfikir tenang dan optimis.:bingung:

Jika sudah login (remote or local), beruntunglah nt. Kalau belum login, terpaksa harus datang ke kompi yang terletak di planet mars untuk membenahi masalah.

Berfikir tenang, pelan-pelan, dan..... ternyata dapat wangsit gan, harus dapat akses root agar bisa menyelamatkan system. Cari cara agar tetap bisa menjalankan root.

Sip.... gan bisa menjalankan command setingkat root. Tapi, hanya root pula yang bisa mengakses cron. Karena :

/etc/cron.d perm 755

root only can add the cron job

:batabig Tuhan masih berpihak kepada kita. Ingat, broken system karena semua file di /, di set perm ke 777. termasuk juga cron.d

/etc/cron.d perm 777

Ini dia !!!!

Waktunya senyum optimis.:beer: Dan silahkan teriak "Saya berhasil.................... brberapa menit lagi" ;:iloveindonesia

Bagaimana cron bisa membantu?

kita tidak akan bisa menjalankan su dan sudo.

yang perlu kita lakukan adalah, mengcopy /bin/sh dan membuatnya menjadi system root (sticky system: 4)

chmod hanya bisa dilakukan oleh su dan sudoers. disinilah cron berperan. cron bisa menjalankan command setingkat root. tentu bisa melakukan chmod.

seep, langsung buat cron job.

echo "*/1 * * * * root cp /bin/sh /tmp/sh && chmod 4755 /tmp/sh" > /etc/cron.d/php4


php4 <<< sesuaikan dengan versi php nya.

ok. tunggu beberapa menit. pura pura lah mengakses website yg di server itu gar cron php4 di jalankan.

seep.

waktunya get root

array@system:~$ ls -la /tmp

-rwsr-xr-x 1 root root 700492 2009-05-29 10:52 sh


horeeeeee.... perhatikan parameter "s" di perm /tmp/sh

array@system:~$ /tmp/sh

sh-3.2# id

uid=1013(array)gid=1015(array)euid=0(root)

Horeeeee....:iloveindonesia
Waktunya mengganti perm system

sh-3.2# chmod g-w /* -R

sh-3.2# chmod o-w /* -R

sh-3.2# chmod 4755 /bin/sh /bin/sudo

sh-3.2# chmod 600 /var/run/sshd

sh-3.2# chmod 600 /etc/ssh/ssh_host_*


Nice Gan…
:beer:

Waktunya di coba :

sh-3.2# exit

array@system:~$ sudo chmod test

sudo password: blablablabla

array@system:~$

array@system:~$ su

password: blablablabla

root@system:~# id

uid=0(root) gid=0(root) groups=0(root),1017(admins)

root@system:~# exit

array@system:~$ exit


from remote host via ssh

ssh my.server.net -p 22

array@server's password:

Linux my.server.net 2.6.26-1-686 #1 SMP Sat Jan 10 18:29:31 UTC 2009 i686

The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.

Last login: Fri May 29 10:27:48 2009 from d3.local

array@server:~$ login ok

copy /tmp/sh ke home dir, biar sewaktu2 di pakek udah siap.

cp /tmp/sh /home/array/.r00t

Jangan lupa untuk menghapus cron job yg membuat root akses agar tidak terus2an membuat file /tmp/sh. Dan jangan lupa pula hapus /tmp/sh.

Karena, kadangkala "intruder" mencari file di /tmp yg mungkin masih tersisa dari hasil rooting "intruder" yg datang sebelumnya yang mungkin belum di hapus. Hal ini untuk mendapatkan root pula tentunya.

root@system:~# rm -f /tmp/sh

root@system:~# rm -f /etc/cron.d/php4


Sepp gan udah beres semua
:beer::beer::beer:

Semoga berguna gan dan selalu cinta Indonesia :iloveindonesia

0 comments: