
Honeypot SSH à interaction moyenne qui journalise les attaques par force brute et l'intégralité des interactions du shell de l'attaquant, avec des options de personnalisation pour réduire le fingerprinting.
Kippo est un honeypot SSH à interaction moyenne conçu pour journaliser les attaques par force brute et, surtout, l'intégralité de l'interaction shell effectuée par l'attaquant.
Page d'accueil d'origine : https://code.google.com/p/kippo/.
Ceci est un fork public personnel de Kippo, qui inclut des fonctionnalités supplémentaires ainsi que des modifications visant à réduire les chances d'identifier l'honeypot.
Ceci est basé sur « Kippo Honeypot v0.8 (svn r248 - 2014-05-19) ».
Testé sur 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'
Il est possible d'utiliser « iptables » et de rediriger le trafic vers le port TCP 2222 (port par défaut de Kippo) ou... d'utiliser « authbind » pour permettre à un utilisateur non privilégié (nobody) d'utiliser le port privilégié TCP 22 (port SSH par défaut).
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'
...N'oubliez pas de modifier au préalable le port SSH « réel » !.
sed -i 's/^Port .*/Port 222/' /etc/ssh/sshd_config
service ssh restart
Quelques suggestions sur la façon d'étendre la personnalisation, rendant l'instance unique (donc moins de chances de détection).
...
hostname = uniquehostname
...
Fichier : ./kippo.cfg
uniquehostname
Fichier : ./honeyfs/etc/hostname
...
127.0.0.1 uniquehostname
....
Fichier : ./honeyfs/etc/hosts
...
ssh_version_string = SSH-2.0-OpenSSH_6.0p1 Debian-4
...
Fichier : ./kippo.cfg
*************************************************************
* All connections are monitored and recorded. *
* Disconnect IMMEDIATELY if you are not an authorized user! *
*************************************************************
Fichier : ./honeyfs/etc/issue.net
Cela ajoutera « Password1 » à la liste des mots de passe acceptés.
Remarque : ajouter « * » acceptera n'importe quel mot de passe soumis.
cd /opt/kippo/ && python utils/passdb.py data/pass.db add Password1
La commande suivante générera un fichier « factice » dans /root/accounts.zip.enc (qui fait 7 Mo).
dd if=/dev/urandom of=honeyfs/root/accounts.zip.enc bs=1M count=7
Ce ne sont que quelques suggestions - n'hésitez pas à modifier l'honeypot comme bon vous semble !
Kippo est un « environnement simulé ». Les attaquants sont placés dans une « prison contrôlée », qui ne répondra qu'aux commandes/fichiers qui ont été prédéfinis (c'est-à-dire mis sur liste blanche). Par conséquent, cela peut le trahir, par exemple :
Kippo est loin d'être « parfait » et peut être facilement identifié par un attaquant expérimenté. Cependant, cela pourrait confondre ou même tromper un attaquant amateur en lui faisant croire qu'il est réel. Par conséquent, Kippo indiquera si quelqu'un se trouve là où il ne devrait pas être (c'est-à-dire un système d'alerte précoce) - et en plus, c'est amusant de regarder les replays ;).
N'utilisez pas ce logiciel si vous n'acceptez pas les risques. L'auteur ou les auteurs ne peuvent être tenus responsables de l'utilisation de ce programme, y compris de toute perte de données et/ou de tout dommage éventuel.
Ce code a été conçu et créé pour inviter des utilisateurs non autorisés dans le système et le réseau sur lesquels il est exécuté. Par conséquent, ils peuvent effectuer des actions malveillantes sur votre ou vos appareils.
Le code lui-même (par exemple la commande wget) peut être utilisé pour se connecter à des services qui peuvent ou non être exposés publiquement. Il existe également diverses vulnérabilités de type « DoS » en raison de l'absence de limitations lors de l'accès aux ressources. Le code lui-même n'a pas non plus fait l'objet d'un audit de sécurité.
Si vous comptez l'utiliser, il est fortement recommandé de l'exécuter sur une machine sécurisée, à jour et isolée, ne contenant aucune information sensible et séparée du reste du réseau (par exemple une zone DMZ).