Mise en place d’un Honeypot SSH à domicile (kippo)

L’Honeypot SSH qui a été mis en place est Kippo.

Pourquoi choisir kippo ?

  • écrit en python
  • moyenne interaction avec l’attaquant.
  • possibilité d’ajouter des fonctions pour encore plus d’interaction !
  • une petite communauté derrière assez sympa !

Le Système hôte est mon serveur personnel; celui-ci est basé sur OpenBSD. Pour mes épreuves de BTS, j’avais déjà mis en place un Honeypot. Celui-ci avait tourné plus de 2mois. Après une nouvelle configuration sur mon serveur, je n’avais pas remis en place l’Honeypot. Cependant, je gardais les IP bannis soit 1379 en 10 mois, pour un serveur personnel n’hébergeant rien de particulier je trouve ça assez conséquent.

Installation des dépendances :

pkg_add -i subversion apr-util cyrus-sasl py-twisted-core py-twisted-conch py-asn1 py-twisted-web py-mysql

Une fois les dépendances installées, on récupère Kippo.

svn checkout http://kippo.googlecode.com/svn/trunk/ honeypots/

Kippo n’étant pas configuré au départ, il faut renommer son fichier de configuration :

mv kippo.cfg.dist kippo.cfg

Pour l’instant, dans ce fichier nous changeons le nom de la machine visible par l’attaquant. (hostname = simple)

De plus, on peut changer le port de l’honeypot, par défaut, port 2222.

Si on désire mettre le port 22, qui est le port SSH par défaut, il faut exécuter kippo en root… ou simplement rediriger le port 22 vers le port 2222 avec packet-filter. C’est cette option que nous allons adopter pour son élégance.

Éditons le fichier de configuration packet-filter :

pass in quick on $ext proto tcp from any to ($ext) port 22 rdr-to ($ext) port 2222

$ext correspond a mon interface réseau.

Après cette étape, si on désire on peut déja rendre disponible Kippo :

start.sh

Cependant, nous allons mettre en place une base de données MySQL afin de réaliser des statistiques sur les différentes attaques.

create database kippo;

use kippo;

source honeypot/doc/sql/mysql.sql

Créer l’utilisateur avec le minimum de droit (SELECT, INSERT, UPDATE) :

GRANT SELECT, INSERT, UPDATE ON kippo.* TO ‘kippo’@’localhost’ IDENTIFIED BY ‘mot de passe’;

La base de données étant configurée, modifier les lignes dans le fichier de configuration de Kippo afin que celui-ci utilise la base MySQL.

 [database_mysql]

host = IP Du Serveur MySQL

database = kippo

username = kippo

password = mot de passe

De plus, on peut modifier le fichier de configuration :

sensor_name=serveurMaison

Afin que dans la base de données, on puisse apercevoir le nom de l’honeypot utilisé. Cela peut être utile, si un jour on décide d’ajouter un autre kippo sur un autre serveur SSH. Il faudra juste configurer la base de données !

Démarrons Kippo est attendons les attaques !

$ tail -f log/kippo.log
2012-05-05 17:54:11+0200 [-] Log opened.
2012-05-05 17:54:11+0200 [-] twistd 11.0.0 (/usr/local/bin/python2.7 2.7.1) starting up.
2012-05-05 17:54:11+0200 [-] reactor class: twisted.internet.selectreactor.SelectReactor.
2012-05-05 17:54:11+0200 [-] kippo.core.honeypot.HoneyPotSSHFactory starting on 2222
2012-05-05 17:54:11+0200 [-] Starting factory <kippo.core.honeypot.HoneyPotSSHFactory instance at 0x84e3e46c>

En attendant voici un aperçu des différents répertoires de kippo :

  • dl : Fichiers téléchargés par les attaquants (wget).
  • log/kippo.log : Permet de debugger en cas de problème ou de voir en direct les attaques.
  • log/tty : Répertoire contenant les différentes sessions des attaquants. Possible de le visionner avec : utils/playlog.py
  • honeyfs : Contient les différents fichiers pour le fakesystem !

 

It’s over simple, isn’t it?

Hacking the NFC credit cards

On a pas mal entendu parler du soit disant fail de la technologie utilisée par les cartes sans contact.

Tout d’abord, revenons sur l’article publié par Korben. Quel ne fut pas notre étonnement de voir sur ce site, que nous suivons régulièrement (et passionnément), cet article. Entrons dans les détails d’une transaction, afin de comprendre pourquoi, il est impossible de dupliquer une carte bancaire aujourd’hui.

Les clés utilisées pour les transactions bancaires verrouillées avec des clés de chiffrement privé qui ne sont possédées que par la banque et la carte. Ces clés sont inaccessibles (à part pour la carte et la banque bien sur).

La question se pose quand à la possibilité d’obtenir des informations non confidentiels mais nuisibles à la vie privée des utilisateurs. Les informations disponibles ne sont rien d’autre que celles présentes en clair sur la carte. Donc plutôt que de pouvoir récupérer ces informations via un système complexe d’antenne NFC, pourquoi ne pas tout simplement se munir de bons yeux et lire par dessus l’épaule des utilisateurs. (Ou encore de bonnes oreilles et d’écouter le boulanger dire bonjour monsieur Dupont).

L’article de Renaud

Comme le souligne judicieusement les slides de la présentation, le protocole contactless est calqué tant au niveau protocolaire que du point de vue de l’application sur les principes « contact ». En fait, pour aller plus loin la spécification applicative qui décrit le processus de la transaction bancaire est totalement indépendant du protocole de communication utilisée. La norme ISO 7816 citée dans les slides est bien une référence, mais pour le protocole de communication contact. Pour la partie contact, inutile de chercher des informations dans cette norme, allez plutôt voir l’ISO 14443.

Après seulement 3 slides, je commence déjà à douter du sérieux et des connaissances de ce Renaud.

Un soucis sur les protocoles

Sans entrer dans les détails, l’attaque porte sur la possibilité de dupliquer les données publiques de la carte. Les plus malins d’entre vous aurons remarqué qu’il s’agit des données publiques. En gros, celles qui ne permettent pas de réaliser de fausse cartes. Les clés cryptographiques sont quant à elles bien gardées au chaud. De plus, ceci n’est vrai que si la personne ne possède pas plusieurs cartes de ce type. En effet, si plusieurs cartes sans contact sont présentes, il y a une collision et le lecteur est incapable d’identifier quels octets proviennent de quelles cartes. Pour faire de la lecture en masse dans une foule, çela pose déjà un assez gros problème.

Ensuite, les données présentes sur la piste magnétique sont aussi présentes dans l’application sans contact. Cette affirmation erronée vient d’une mauvaise compréhension des spécifications d’implémentations. En effet, les cartes sans contact proposent une version de paiement utilisant un mécanisme très similaire à celui des bandes magnétiques pour les petits paiements. Le mécanisme utilisé les CVC Track 2 et 3 qui sont des données équivalentes aux données que l’on trouve sur une piste magnétique. Cependant les données présentes dans la carte à puces ne sont pas les mêmes que sur la piste magnétique et ne sont pas valides pour des paiements par piste magnétique.

Source : Hacking the NFC credit cards for fun and debit 😉
Source : EMV Book 2 – Security and Key Management
Source : EMV Book 3 – Application Specification
Source : Korben

It’s over simple, isn’t it?

Bonjour tout le monde

Bonjour ,

Bienvenue sur ce blog que nous vous ouvrons avec grand plaisir. Partis d’une idée simple: parler de tout et de rien mais surtout de geekeries. Nous nous lançons donc dans cette aventure.

Nous sommes actuellement deux étudiants à l’Ecole Nationale Supérieure d’Ingénieurs de Caen. De plus, nous avons choisi d’être proches des réalités du terrain en prenant la voie d’une formation professionelle.

Ce blog apporte un esprit critique ouvert et accessible à tous que vous soyez technophiles experts ou novices. Nos domaines de compétences privilégiés se cadrent autour de la monétique et de la sécurité informatique. Vous y trouverez, nous le souhaitons, des articles retraçant l’évolution de nos projets qui sont aussi variés et divers que possible.

Bonne visite.