LINUXSEC

Memasang Kippo SSH Honeypot di Debian dan Ubuntu Server

Memasang Kippo SSH Honeypot di Debian dan Ubuntu Server - Beberapa hari yang lalu salahsatu server yang saya kelola mengalami percobaan bruteforce service SSH. Memang tidak sampai ada ratusan atau ribuan percobaan password yang masuk karena memang sudah saya buatkan rule fail2ban dimana salah memasukkan password sebanyak tiga kali akan dibanned dari server melalui rule iptables selama dua hari.

Fake SSH

Setidaknya hari itu ada lima ip yang “terciduk” oleh si fail2ban. Darisini tidak ada yang perlu dikhawatirkan sebenarnya namun entah kenapa saya malah penasaran seandainya mereka atau si hacker beneran bisa masuk ke server apa yang akan dia lakukan.

Disinilah saya mulai tertarik untuk mencoba honeypot ssh. Dan kippo sendiri menurut saya adalah yang terbaik karena fitur nya lengkap.

Oke penjelasan nya sambil jalan saja. Disini sambil saya jelaskan langkah langkah installasinya.

Pertama, pastikan kalian sudah mengubah port default SSH ke port lain.

Mengubah Port SSH pada Ubuntu dan Debian Server

Jangan lupa untuk meng-allow port baru nya di iptables.

Karena Kippo sendiri berbasis python, pertama kita install dulu library python yang dibutuhkan oleh kippo.

sudo apt-get install python-twisted

Selanjutnya kita buat user baru yang akan digunakan untuk menjalankan honeypot.

sudo adduser honeypot

Sekarang pindah ke user honeypot untuk instalasi Kippo.

su honeypot  
cd ~  
git clone https://github.com/desaster/kippo.git  
cd kippo

Oke sampai disini masih bisa mengikuti kan ?

Sekarang konfigurasi Kippo nya sendiri.

Kippo sendiri secara default listen ke port 2222. Hal tersebut dikarenakan pada dasarnya Kippo hanya bisa dijalankan oleh non-root user sementara non-root user sendiri tidak diijinkan membuka port dibawah 1024.

Pertama, kita edit edit dulu di bagian kippo.cfg .

cp kippo.cfg.dist kippo.cfg
nano kippo.cfg

ssh_port = 4672

hostname = debian-server

log_path = log

download_path = dl

download_limit_size = 1000000

Untuk konfigurasi lain silahkan dibaca baca sendiri keterangannya. Disini saya menggunakan port 4672 untuk ssh honeypot. Download path adalah lokasi dimana file yang didownload oleh attacker misalnya dengan wget akan disimpan. Sehingga saat hacker mengirim exploit atau malware tidak akan bisa dieksekusi. Download limit digunakan untuk membatasi besarnya download dalam ukuran bytes. Defaultnya tidak dibatasi dan menurut saya tidak baik juga karena bisa saja attacker mengirim file dalam jumlah besar yang menyebabkan server menjadi penuh. Hostname adalah nama komputer yang akan ditampilkan kepada attacker.

Selanjutnya adalah melakukan redirrect dari port 22 ke port 4672 dengan iptables.

sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 4672
sudo iptables -I INPUT 5 -p tcp --dport 4672 -j ACCEPT

Perintah pertama digunakan untuk meredirect port 22 ke 4672 sehingga saat attacker melakukan akses ke port default ssh tetap bisa tersambung. Sementara perintah kedua digunakan untuk mengijinkan koneksi di port 4672. -I INPUT 5 maksudnya adalah rule uptables tersebut akan diletakkan pada baris kelima. Hal ini saya lakukan untuk menghindari rule baru tersimpan di bawah rule DROP.

Sampai disini sebenarnya Kippo sudah siap dijalankan. Namun saya akan mengulas sedikit pengaturan tambahan di Kippo.

Filesystem

Filesystem bawaan yang ditampilkan oleh Kippo sendiri cukup usang karena masih tahun 2009. Hal ini tentu akan membuat hacker curiga jika melihat isi file system kita sudah usang semua. Disini kalian bisa membuat filesystem palsu yang diperbaharui. Bisa meniru filesystem yang sedang kita jalankan atau menggunakan server atau vps lain yang tidak terpakai. Saya lebih menyarankan menggunakan server lain karena jika kita menggunakan filesystem yang sedang dipakai, hacker akan mendapat beberapa informasi seperti versi asli kernel yang kita jalankan, list asli user dilihat dari direktori home, dll.

Kita bisa mendownload Kippo dari github di server lain dengan menjalankan perintah berikut :

git clone https://github.com/desaster/kippo.git  
cd kippo  
utils/createfs.py > fs.pickle

Nah file fs.pickle inilah yang akan kita copy dan diletakkan di server yang akan dipasang honeypot. Nantinya “peta” direktori honeypotnya akan menggunakan informasi dari server kedua yang kita clone.

Password

Default password Kippo adalah 123456. Kita bisa menambahkan beberapa password root baru yangmana jika attacker menggunakan salahsatu password tersebut akan dibawa ke bash shell honeypot.

utils/passdb.py data/pass.db add linuxsec  
utils/passdb.py data/pass.db add linuxsecurity  
utils/passdb.py data/pass.db add password123  
utils/passdb.py data/pass.db add passwordsimple

Oke sekarang kita coba honeypot yang baru saja kita konfigurasi.

honeypot@linuxsec:~/kippo$ ./start.sh  
twistd (the Twisted daemon) 13.2.0  
Copyright (c) 2001-2013 Twisted Matrix Laboratories.  
See LICENSE for details.  
Starting kippo in the background...

Sekarang kita coba login ke server yang kita pasang honeypot dari port 22 dan password 123456.

root@google-instance:~# ssh root@dev.linuxsec.org -p 22  
The authenticity of host 'dev.linuxsec.org (104.196.212.230)' can't be established.  
RSA key fingerprint is 1b:3a:2e:e7:2e:a9:b7:d0:8e:cd:19:de:a7:2d:16:5c.  
Are you sure you want to continue connecting (yes/no)? yes  
Warning: Permanently added 'dev.linuxsec.org,104.196.212.230' (RSA) to the list of known hosts.  
Password:  
root@debian-server:~# id; ls -l /  
uid=0(root) gid=0(root) groups=0(root)  
drwxr-xr-x 1 root root  4096 2017-05-26 16:43 .  
drwxr-xr-x 1 root root  4096 2017-05-26 16:43 ..  
drwxr-xr-x 1 root root  4096 2017-05-04 17:16 sbin  
drwxr-xr-x 1 root root  4096 2017-05-04 17:03 usr  
drwxr-xr-x 1 root root  4096 2017-05-04 17:03 mnt

Yup, mereka masuk ke honeypot yang kita buat.

Untuk log nya bisa kalian lihat di direktori kippo/log

Contoh log :

2017-05-26 16:42:45+0000 [SSHService ssh-userauth on HoneyPotTransport,3,104.196.212.230] root trying auth none  
2017-05-26 16:42:46+0000 [SSHService ssh-userauth on HoneyPotTransport,3,104.196.212.230] root trying auth keyboard-interactive  
2017-05-26 16:42:51+0000 [SSHService ssh-userauth on HoneyPotTransport,3,104.196.212.230] login attempt [root/123456] succeeded  
2017-05-26 16:42:51+0000 [SSHService ssh-userauth on HoneyPotTransport,3,104.196.212.230] root authenticated with keyboard-interactive  
2017-05-26 16:42:51+0000 [SSHService ssh-userauth on HoneyPotTransport,3,104.196.212.230] starting service ssh-connection  
2017-05-26 16:42:51+0000 [SSHService ssh-connection on HoneyPotTransport,3,104.196.212.230] got channel session request

Kesimpulan

Kippo bukanlah alat yang digunakan untuk mencegah peretasan di server. Tools ini digunakan untuk mengetahui apa yang akan dilakukan hacker jika berhasil masuk ke server kita. Dengan mempelajari log yang ada, kita diharapkan siap jika serangan yang sesungguhnya benar benar terjadi. Dan jika si attacker mengupload sebuat malware atau localroot ke server, kita bisa mempelajari bagaimana cara kerja malware tersebut sehingga kita bisa melakukan pencegahan.

Sekian tutorial kali ini, semoga bermanfaat, jika ada yang ingin ditanyakan silahkan komentar.

Komentar

    Tinggalkan Komentar

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