Memasang Kippo SSH Honeypot di Debian dan Ubuntu Server

Saturday, May 27, 2017

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.
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.

Artikel Terkait Debian ,Python ,Security ,Server ,Ubuntu

No comments:

Post a Comment