Kippo SSH Honeypot Kurulumu, Saldırısı ve Honeypot Tespiti

Kippo SSH Honeypot Kurulumu, Saldırısı ve Honeypot Tespiti

Merhaba

Kippo, python dili ile geliştirilmiş bir SSH honeypot projesi. Kurumlar tarafından default SSH portu üzerinde çalıştırılan Kippo, sahte bir dosya sistemi sunarak saldırganların çalıştırdığı komutları log dosyasına yazmaktadır. Kippo projesine https://github.com/desaster/kippo adresin  ulaşılabilir. Kippo’nun kurulumu ile ilgili adımlar hızlıca aşağıdak anlatılmıştır.

Kurulum

# Gerekli paketlerin kurulumu
apt-get update
apt-get upgrade
apt-get install python-dev openssl python-openssl python-pyasn1 python-twisted unzip

# 22. tcp portuna Kippo servisini root olarak çalıştırmak sakıncalıdır.
apt-get install authbind
useradd -d /home/kippo -s /bin/bash -m kippo -g sudo
touch /etc/authbind/byport/22
chown kippo /etc/authbind/byport/22

# Kippo kurulumu
su kippo
wget https://github.com/desaster/kippo/archive/v0.9.zip
unzip -x v0.9.zip
cd kippo-0.9
mv kippo.cfg.dist kippo.cfg

# kippo.cfg dosyasında 2222 portunu 22 olarak değiştiriniz.
sed -i 's/2222/22/g' kippo.cfg

NOT: Kurulum adımları için https://github.com/desaster/kippo/wiki/Running-Kippo

Son olarak Kippo servisinin otomatik çalışması için start.sh dosyasında twistd ile başlayan komut yerine aşağıdaki komut yazılmalıdır.

authbind --deep twistd -y kippo.tac -l log/kippo.log --pidfile kippo.pid

Ve servis aşağıdaki iki komut ile çalıştırılır.

mkdir log
mkdir log/tty
./start.sh

Kippo SSH Servisine Brute Force Saldırısı

Kippo servisi kuruldu ve saldırganların gelmesi beklenmekte. Daha önce blog’umda yer verdiğim [Beleth] Multi-Threat Sözlük Saldırıları ile SSH Hacking Performansı aracı ile SSH servisine brute force saldırısı gerçekleştirilecektir.

beleth-kippo-brute-force

Brute force saldırısı başarıyla sonuçlandı ve şifre 123456 olarak belirlenmiş durumda. Hedef sisteme 123456 şifresi ile giriş yapıldığında ise honeypot log dosyası aşağıdaki gibi tutuluyor olacaktır.

root@pentest:~# ssh -l root 178.62.199.46
Password:
nas3:~# echo "HELLO WORLD"
HELLO WORLD
nas3:~#

Honeypot log dosyasinda çalıştırılan her komut tutulmaktadır.

2014-12-12 07:55:58-0500 [SSHChannel session (0) on SSHService ssh-connection on HoneyPotTransport,29,18.6.164.14] CMD: echo "HELLO WORLD"
2014-12-12 07:55:58-0500 [SSHChannel session (0) on SSHService ssh-connection on HoneyPotTransport,29,18.6.164.14] Command found: echo "HELLO WORLD"

Kippo SSH Honeypot’un Tespiti

Penatrasyon testi gerçekleştirilen kurumların dışa açık ipleri üzerinde çalışan SSH servisi tespit edildiğinde, ilk yapılan işlem SSH Brute force tekniğidir. Eğer testi blackbox olarak gerçekleştiriyorsanız, bu tür honeypot’lara dikkat etmek gerekir. Aksi takdirde passwordu 123456 olan SSH servisi tespit ettik diye rapora yazarak madara olunabilir. ( Bir pentest raporunda, 1-65535 arası tüm portlar açıktır! yazısı gördü bu gözler. Syncookie/proxy ‘den habersiz pentester.. )

Honeypot’ları tespit etmek kolay bir işlem değildir. Kippo gibi son derece popüler bir honeypot için, bu blog yazısının yazıldığı tarihte geliştirilmeye devam eden bir metasploit modülü bulunmakta. Bu modül yakın zaman içerisinde msf repolarına merge edilecektir.

msf > use auxiliary/scanner/ssh/detect_kippo 
msf auxiliary(detect_kippo) > show options 

Module options (auxiliary/scanner/ssh/detect_kippo):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS                    yes       The target address range or CIDR identifier
   RPORT    22               yes       The target port
   THREADS  1                yes       The number of concurrent threads

msf auxiliary(detect_kippo) > set RHOSTS 178.62.199.46
RHOSTS => 178.62.199.46
msf auxiliary(detect_kippo) > run

[*] 178.62.199.46 - Kippo honeypot detected!
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Görüldüğü üzere Kippo honeypot detected! uyarı verilmekte. Gerçek SSH servisi demo ortamında 2222 numaralı portta çalıştığı için birde gerçek SSH servisini test edelim.

msf auxiliary(detect_kippo) > set RPORT 2222
RPORT => 2222
msf auxiliary(detect_kippo) > run

[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed