Installation de Kippo sous debian
Publié le 13-05-2016
Présentation
Kippo est un honeypot à interaction moyenne, son but est d’émuler un service SSH afin d’archiver les tentatives de brute force des attaquants, mais aussi les interactions qu’ils effectuent une fois connectés.
En effet, il est possible grâce à kippo de définir un mot de passe faible afin de laisser l’attaquant avoir un shell sur la machine. Cet environnement est bien sûr protégé, mais permet à notre système de journaliser les commandes qui ont été entrées ainsi que les fichiers téléchargés.
De plus lorsque l’attaquant pense quitter le shell SSH pour revenir sur son shell local, Kippo l’amène dans un deuxième environnement protégé afin de loguer les commandes qu’il aurait pu entrer sur sa machine pour déclencher l’attaque.
Installation
Installation des dépendances
Pour fonctionner Kippo a juste besoin de Python. Néanmoins pour une installation propre, nous allons installer ses dépendances dans un environnement virtuel avec l’aide de PIP et VirtualEnv. Enfin nous allons installer la librairie MySQL clients au cas où nous voudrions nous interfacer avec une base de données MySQL.
$ sudo apt-get install build-essential python-dev libmysqlclient-dev python-virtualenv python-pip
Il s’agit de la seule commande que l’on doit exécuter en root durant l’installation.
Créer l’environnement virtuel
Il est maintenant nécessaire de créer l’environnement virtuel python que nous appellerons “kippo”. Pour celà, il faut entrer la commande suivante:
$ virtualenv kippo_venv
Puis il faut l’activer afin d’entrer dans cet environnement:
$ source kippo_venv/bin/activate
Après cette commande le shell change afin de ressembler à celui-ci:
(kippo_venv)$
Installer les dépendances Python
Maintenant que l’environnement virtuel est fonctionnel, il est possible d’installer les dépendances python du projet:
(kippo_venv)$ pip install twisted==15 pyasn1 pycrypto
Installation de Kippo
Après avoir installé les dépendances de kippo, il suffit maintenant de le télécharger grâce à git :
(kippo_venv)$ git clone https://github.com/desaster/kippo.git
Configuration de Kippo
La configuration de kippo se situe dans kippo.cfg, Par défaut ce fichier n’existe pas, mais un template est fourni avec une configuration basique, il suffit donc simplement de la copier sous un autre nom:
(kippo_venv)$ cd kippo
(kippo_venv)$ cp kippo.cfg.dist kippo.cfg
Il est aussi possible de créer différents utilisateur dans le fichier data/userdb.txt.
Enfin, il est déconseillé de lancer kippo sur le port 22. En effet sous GNU/Linux tous les ports en dessous de 1024 sont des ports réservés nécessitant des droits privilégiés. Il est donc conseillé de laisser le port 2222 par défaut et d’effectuer du NAT afin de rediriger le port 22 vers le port 2222 de la machine. Si kippo est exécuté sous Windows, il est tout à fait possible de mettre le port 22 qui est habituellement libre.
Rediriger le port 22 vers le port 2222
La configuration du port forwarding se fait via une simple règle IPTables:
$ sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222
Utilisation
Kippo peut se lancer de deux manières, soit en arrière-plan, soit au premier plan.
Lancement de Kippo au premier plan
Tout d’abord, pour lancer kippo
(kippo)$ twistd -n -y kippo.tac
Lancement de Kippo au arrière-plan
Contrairement au lancement précédent, celui-ci ne nécessite pas que l’utilisateur soit connecté à l’environnement virtuel. Le script de lancement prend tout simplement le nom de l’environnement en argument:
$ ./start.sh kippo_venv
L’arrêt du logiciel se fera via l’exécution du script stop.sh
.