Déploiement de Kippo SSH Honeypot sur Ubuntu Linux
Introduction
Avez-vous l’impression que quelqu’un tente d’accéder à votre serveur ? Pour le savoir, vous pouvez déployer un pot de miel dans votre système pour vous aider à atténuer votre paranoïa en confirmant ou en infirmant votre croyance initiale. À titre d’exemple, vous pouvez démarrer le honeypot SSH Kippo, qui vous permet de surveiller les tentatives de force brute, de collecter les exploits et les logiciels malveillants d’aujourd’hui. Kippo enregistre également automatiquement la session shell du pirate, que vous pouvez rejouer pour explorer diverses techniques de piratage et utiliser plus tard ces connaissances recueillies pour renforcer votre serveur de production. Une autre raison d’installer un honeypot est de détourner l’attention de votre serveur de production. Dans ce tutoriel, nous allons montrer comment déployer un honeypot SSH Kippo sur le serveur Ubuntu.
Conditions préalables
Kippo SSH honeypot est une application basée sur python. Par conséquent, nous devons d’abord installer les bibliothèques python :
sudo apt-get install python-twistedNormalement, vous exécuteriez votre service sshd à l’écoute sur le port par défaut 22. Il est logique d’utiliser ce port pour votre pot de miel SSH et, donc, si vous exécutez déjà le service SSH, nous devons remplacer le port par défaut par un autre numéro. Je suggérerais de ne pas utiliser le port alternatif 2222 car son utilisation est déjà généralement connue et cela pourrait saboter votre déguisement. Choisissons un numéro à 4 chiffres aléatoire comme 4632. Ouvrez votre fichier de configuration SSH /etc/ssh/sshd_config et modifiez la directive Port de :
Port 22À
Port 4632Une fois terminé, redémarrez votre sshd :
sudo service ssh restartVous pouvez confirmer que vous avez correctement changé le port à l’aide de la commande netstat :
netstat -ant | grep 4632
tcp 0 0 0.0.0.0:4632 0.0.0.0:* LISTENDe plus, Kippo a besoin d’exécuter un utilisateur non privilégié, c’est donc une bonne idée de créer un compte d’utilisateur distinct et d’exécuter Kippo sous ce compte. Créez un nouvel utilisateur kippo :
sudo adduser kippoInstallation
Kippo ne nécessite aucune installation fastidieuse. Tout ce qu’il faut faire est de télécharger une archive compressée et de l’extraire dans le répertoire de kippo. Tout d’abord, connectez-vous en tant que ou changez d’utilisateur en kippo, puis téléchargez le code source de Kippo :
kippo@ubuntu:~$ wget http://kippo.googlecode.com/files/kippo-0.5.tar.gzExtrayez-le avec :
kippo@ubuntu:~$ tar xzf kippo-0.5.tar.gz Cela créera un nouveau répertoire appelé kippo-0.5.
Configuration
Une fois que vous naviguez dans le répertoire de Kippo, vous verrez :
kippo@ubuntu:~/kippo-0.5$ ls
data dl doc fs.pickle honeyfs kippo kippo.cfg kippo.tac log start.sh txtcmds utilsLes répertoires et fichiers les plus notables ici sont :
- DL – Il s’agit d’un répertoire par défaut lorsque kippo stockera tous les logiciels malveillants et exploits téléchargés par le pirate à l’aide de la commande wget
- honeyfs – ce répertoire comprend quelques fichiers, qui seront présentés à l’attaquant
- kippo.cfg – Fichier de configuration de kippo
- log – répertoire par défaut pour consigner l’interaction des attaquants avec le shell
- start.sh – il s’agit d’un script shell pour démarrer kippo
- utils – contient divers utilitaires kippo dont le plus notable est playlog.py, qui vous permet de rejouer la session shell de l’attaquant
Kippo est préconfiguré avec le port 2222. Cela est principalement dû au fait que kippo doit fonctionner en tant qu’utilisateur non privilégié et que l’utilisateur non privilégié n’est pas en mesure d’ouvrir les ports inférieurs au numéro 1024. Pour résoudre ce problème, nous pouvons utiliser iptables avec les directives « PREROUTING » et « REDIRECT ». Ce n’est pas la meilleure solution car n’importe quel utilisateur peut ouvrir un port supérieur à 1024, créant ainsi une opportunité à exploiter.
Ouvrez le fichier de configuration de Kippo et remplacez le numéro de port par défaut par un nombre arbitraire comme 4633. Après cela, créez une redirection iptables du port 22 vers kippo sur le port 4633 :
sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 4633Configurations optionnelles
Système de fichiers
Ensuite, vous pouvez vouloir configurer le système de fichiers, qui sera présenté à l’attaquant une fois qu’il se sera connecté à notre pot de miel. Par défaut, Kippo est livré avec son propre système de fichiers, mais il date de 2009 et il ne semble plus plausible. Vous pouvez cloner votre propre système de fichiers sans révéler d’informations avec l’utilitaire utils/createfs.py de Kippo. Avec un privilège root, exécutez la commande linux suivante pour cloner votre système de fichiers :
cd /home/kippo/kippo-0.5/
utils/createfs.py > fs.pickle
Doing stuffNom du système d’exploitation
Kippo vous permet également de modifier le nom du système d’exploitation situé dans le fichier /etc/issue. Disons que nous utilisons Linux Mint 14 Julaya. Bien sûr, vous utiliserez quelque chose de réel et de plausible.
echo "Linux Mint 14 Julaya \n \l" > honeyfs/etc/issueFichier de mot de passe
Modifiez honeyfs/etc/passwd et rendez-le plus plausible et juteux.
Mots de passe root alternatifs
Kippo est livré avec un mot de passe préfiguré « 123456 ». Vous pouvez conserver ce paramètre et ajouter d’autres mots de passe tels que : pass, a , 123, password, root
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add pass
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add a
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add 123
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add password
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add rootMaintenant, l’attaquant pourra se connecter en tant que root avec l’un des mots de passe ci-dessus.
Création de nouvelles commandes
De plus, Kippo vous permet de configurer des commandes supplémentaires qui sont stockées dans le répertoire txtcmds/. Pour créer une nouvelle commande, par exemple df, nous redirigeons simplement la sortie de la vraie commande df vers txtcmds/bin/df :
df -h > txtcmds/bin/df
Ce qui précède est une simple commande de sortie de texte statique, mais elle occupera un attaquant pendant un certain temps.
Nom d’hôte
Modifiez le fichier de configuration kippo.cfg et changez votre nom d’hôte pour quelque chose de plus attrayant comme :
hostname = accounting
Démarrage du pot de miel Kippo SSH
Si vous avez suivi les instructions ci-dessus jusqu’à présent, vous devriez maintenant avoir configuré votre pot de miel SSH avec les paramètres suivants :
- Port d’écoute 4633
- iptables portforward de 22 à > 4633
- Nom d’hôte : Comptabilité
- plusieurs mots de passe root
- Clone honeyfs à jour de votre système existant
- Système d’exploitation : Linux Mint 14 Julaya
Commençons le pot de miel Kippo SSH maintenant.
pwd
/home/kippo/kippo-0.5
kippo@ubuntu:~/kippo-0.5$ ./start.sh
Starting kippo in background...Generating RSA keypair...
done.
kippo@ubuntu:~/kippo-0.5$ cat kippo.pid
2087D’après ce qui précède, vous pouvez voir que Kippo a démarré et qu’il a créé toutes les clés RSA nécessaires à la communication SSH. De plus, il a également créé un fichier appelé kippo.pid, qui contient un numéro PID de l’instance en cours d’exécution de Kippo, que vous pouvez utiliser pour résilier kippo avec la commande kill.
Test du déploiement de SSH Honeypot
Maintenant, nous devrions pouvoir nous connecter à notre nouveau serveur ssh alias ssh honeypot sur le port ssh par défaut 22 :
ssh root@server
The authenticity of host 'server (10.1.1.61)' can't be established.
RSA key fingerprint is 81:51:31:8c:21:2e:41:dc:e8:34:d7:94:47:35:8f:88.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server,10.1.1.61' (RSA) to the list of known hosts.
Password:
accounting:~#
accounting:~# cd /
accounting:/# ls
var sbin home srv usr
mnt selinux tmp vmlinuz initrd.img etc
root dev sys lost+found proc
boot opt run media lib64 bin
lib
accounting:/# cat /etc/issue
Linux Mint 14 Julaya \n \l
Cela vous semble familier ? Nous avons terminé
Caractéristiques supplémentaires
Kippo est livré avec plusieurs autres options et paramètres. L’une d’entre elles consiste à utiliser utils/playlog.py utilitaire pour rejouer les interactions du shell de l’attaquant stockées dans le répertoire log/tty/. De plus, Kippo permet de stocker des fichiers journaux dans la base de données MySQL. Consultez le fichier de configuration pour plus de paramètres.
Conclusion
Une chose, qui doit être mentionnée, est qu’il est conseillé de configurer le répertoire dl de Kipps sur un système de fichiers séparé. Ce répertoire contiendra tous les fichiers téléchargés par l’attaquant, vous ne voulez donc pas que vos applications se bloquent en raison d’un manque d’espace disque.
Kippo semble être une alternative agréable et facile à configurer aux environnements de pots de miel SSH. Kippo a plus de fonctionnalités à offrir que celles décrites dans ce guide. Veuillez lire kippo.cfg pour vous familiariser avec eux et ajuster les paramètres de Kippo en fonction de votre environnement.