
Honeypot SSH a interazione media che registra attacchi brute force e interazioni complete con la shell dell'attaccante, con opzioni di personalizzazione per ridurre il fingerprinting.
Kippo è un honeypot SSH a interazione media progettato per registrare attacchi di brute force e, cosa più importante, l'intera interazione della shell eseguita dall'attaccante.
Homepage originale: https://code.google.com/p/kippo/.
Questo è un fork pubblico personale di Kippo, che include funzionalità aggiuntive nonché modifiche per ridurre le probabilità di fingerprinting dell'honeypot.
Questo è basato su "Kippo Honeypot v0.8 (svn r248 - 2014-05-19)".
Testato su Debian 7 stable.
apt-get update
apt-get -y install openssl python python-dev python-openssl python-pyasn1 python-twisted git
git clone git://github.com/g0tmi1k/kippo.git /opt/kippo/
cp -n /opt/kippo/kippo.cfg{.dist,}
chown -R nobody\:nogroup /opt/kippo/
su nobody -c '/bin/bash /opt/kippo/start.sh'
È possibile utilizzare "iptables" e reindirizzare il traffico alla porta TCP 2222 (porta predefinita di Kippo) oppure... utilizzare "authbind" per consentire all'utente non privilegiato (nobody) di usare la porta privilegiata TCP 22 (porta SSH predefinita).
apt-get -y install authbind
touch /etc/authbind/byport/22
chown nobody\:nogroup /etc/authbind/byport/22
chmod 0777 /etc/authbind/byport/22
sed -i 's/^twistd /authbind --deep twistd /' /opt/kippo/start.sh
sed -i 's/^ssh_port = .*/ssh_port = 22/' /opt/kippo/kippo.cfg
[ -e /opt/kippo/kippo.pid ] && kill $(cat /opt/kippo/kippo.pid) && sleep 2
su nobody -c '/bin/bash /opt/kippo/start.sh'
...Non dimenticare di modificare prima la porta ssh "reale"!.
sed -i 's/^Port .*/Port 222/' /etc/ssh/sshd_config
service ssh restart
Alcuni suggerimenti su come estendere la personalizzazione, rendendo l'istanza unica (quindi con meno probabilità di rilevamento).
...
hostname = uniquehostname
...
File: ./kippo.cfg
uniquehostname
File: ./honeyfs/etc/hostname
...
127.0.0.1 uniquehostname
....
File: ./honeyfs/etc/hosts
...
ssh_version_string = SSH-2.0-OpenSSH_6.0p1 Debian-4
...
File: ./kippo.cfg
*************************************************************
* All connections are monitored and recorded. *
* Disconnect IMMEDIATELY if you are not an authorized user! *
*************************************************************
File: ./honeyfs/etc/issue.net
Questo aggiungerà "Password1" alla lista delle password accettate.
Nota: Aggiungere "*" accetterà qualsiasi password inviata.
cd /opt/kippo/ && python utils/passdb.py data/pass.db add Password1
Il seguente comando genererà un file "falso" in /root/accounts.zip.enc (che è di 7mb).
dd if=/dev/urandom of=honeyfs/root/accounts.zip.enc bs=1M count=7
Questi sono solo alcuni suggerimenti - sentiti libero di modificare l'honeypot come preferisci!
Kippo è un "ambiente simulato". Gli attaccanti vengono inseriti in una "gabbia controllata", che risponderà solo a comandi/file predefiniti (ovvero in whitelist). Di conseguenza, questo può tradirlo, ad esempio:
Kippo è tutt'altro che "perfetto" e può essere facilmente identificato da un attaccante esperto. Tuttavia, potrebbe confondere o persino ingannare un attaccante amatoriale facendogli credere che sia reale. Di conseguenza Kippo indicherà se qualcuno si trova dove non dovrebbe essere (ovvero un sistema di allerta precoce) - inoltre è divertente guardare le repliche ;).
Non utilizzare se non si accettano i rischi. L'autore/gli autori non possono essere ritenuti responsabili per l'uso di questo programma, inclusa qualsiasi possibile perdita di dati e/o danno.
Questo codice è stato progettato e creato per invitare utenti non autorizzati nel sistema e nella rete in cui viene eseguito. Di conseguenza, potrebbero eseguire azioni dannose sui tuoi dispositivi.
Il codice stesso (ad esempio il comando wget) può essere utilizzato per connettersi a servizi che possono o meno essere esposti pubblicamente. Inoltre ci sono varie vulnerabilità "DoS" dovute all'assenza di limitazioni nell'accesso alle risorse. Il codice stesso inoltre non è stato sottoposto a un audit di sicurezza.
Se hai intenzione di usarlo, è altamente consigliato eseguirlo su una macchina sicura, aggiornata e isolata che non contenga informazioni sensibili, oltre che separata dal resto della rete (ad esempio una zona DMZ).