Honeyd, pot de miel à Hackers

Présentation

Afin de lutter efficacement contre les attaques des méchants pirates, il est nécessaire de comprendre la façon dont ils opèrent. Pour cela, nous pouvons utiliser des honeypots ou pots de miel en français. Comme son nom l’indique, l’utilisation d’un programme de ce type permet de laisser intentionnellement des vulnérabilités sur un système afin d’attirer ou analyser la manière dont les hackers pénètrent sur un système. Je vais donc vous parler du programme Honeyd, un honeypot Open Source.

Honeyd a été créé et développé par Niels Provos et sert à construire des systèmes à faible interaction du plus simple au plus complexe. Son avantage principal réside dans la possibilité d’émuler un réseau informatique entier, composé de différents systèmes d’exploitation virtuels qui sont capables de fournir des services fictifs.

Une utilisation correcte d’un honeypot repose essentiellement sur trois problématiques :

  • La surveillance;
  • La collecte d’information;
  • L’analyse d’information.

Le principe du programme Honeyd est simple : lorsqu’un intrus essaie de se connecter sur l’adresse IP du système émulé, Honeyd se fait passer pour ce système et commence la communication avec l’ordinateur de l’intrus. Evidemment, l’environnement réseau sur lequel il est utilisé doit être configuré de façon à ce que les paquets IP ayant les adresses cibles déterminées parviennent au système piège. Nous pouvons le faire en configurant les chemins de Spoofing permettant de falsifier les réponses aux requêtes ARP et de se faire passer pour un autre ordinateur, même inexistant.
Une autre caractéristique très importante du programme Honeyd est la possibilité de profiler les ordinateurs virtuels conformément à la base de signatures du programme Nmap et configurer les services émulés de façon très souple. Honeyd, une fois que la connexion entre l’ordinateur de l’intrus et la machine virtuelle est établie, peut transmettre la communication à un programme quelconque ou un script extérieur qui, à partir de ce  moment, recevra et enverra les données au système de l’intrus. De plus, la connexion peut être transmise à un serveur réel fournissant un service déterminé, et même à l’ordinateur de l’attaquant (à partir de l’adresse source chargée des paquets IP provenant de ce dernier).

Téléchargement et Installation

apt-get install honeyd

Cela va permettre d’installer également les dépendances suivantes : rrdtool, libdumbnetl, farpd, honeyd-common, libpcap.

Configuration

Dans un premier temps, il faut savoir que l’utilisateur nobody du groupe nogroup est le propriétaire du service honeyd (et non l’utilisateur honeyd…) sur une distribution Debian. Cela  engendre quelques incohérences de droits sur les répertoires de ce service. Pour remédier à cela, changeons le propriétaire de certains dossiers  :

# chown -R nobody:nogroup /etc/honeyd
# mkdir /var/log/honeyd
# chown -R
nobody:nogroup /var/log/honeyd

Mise en place du piège

Contenu du fichier honeyd.conf :

create linux
set linux personality “Linux Kernel 2.4.0 – 2.5.20”
set linux default tcp action reset
set linux default udp
add linux tcp port 25 open
set linux uid 65534 gid 65534

create freebsd
set feebsd personality “FreeBSD 2.2.1-STABLE”
add freebsd tcp port 80 “sh /usr/local/share/honeyd/scripts/apache-web.sh”
add freebsd tcp port 22 “sh /usr/local/share/honeyd/scripts/test.sh $ipsrc $dport”
set freebsd uid 65534 gid 65534

create windows
set windows personality “Microsoft Windows NT 4.0 Server SP5-SP6”
set windows default icmp action block
add windows tcp port 80 “perl /usr/local/share/honeyd/scripts/iis/main.pl”
add windows tcp port 25 block
set windows uptime 1638112
set windows  uid 65534 gid 65534 #nécessaire sous debian

bind 192.168.1.250 linux
bind 192.168.1.251 freebsd
bind 192.168.1.252 windows

Explication :

  • Création de 3 templates : Linux, freebsd et Windows.
  • Créations de 3 postes virtuels : 192.168.1.250 (linux), 192.168.1.251 (freebsd) et 192.168.1.252 (windows).
  • Ouvertures de certains ports/services : ssh, apache etc.

Dans les lignes 21, 22 et 23, les profils sont associés respectivement aux adresses 192.168.1.250, 192.168.1.251 et 192.168.1.252.
En résultat, quand Honeyd reçoit un paquet dirigé à l’une de ces adresses, il utilisera le profil associé et répondra conformément à sa configuration.
Chaque profil possède les paramètres de configuration permettant de déterminer comment le système se comportera. Sur le listing ci-dessus, vous pouvez observer que les lignes 2, 9 et 14 déterminent le type de système d’exploitation des ordinateurs virtuels par la définition du comportement de leur pile TCP/IP (conformément à la base de caractéristiques du programme Nmap).
En effet, si l’intrus scanne le réseau 192.168.1.0 à l’aide de ce programme, il trouvera en plus des machines du réseau, 4 autres machines : le système honeypot, Linux 2.4-2.5, FreeBSD version 2.2.1 et Windows NT 4.0.

On va maintenant placer  les droits adéquates sur les scripts d’émulations de services :

# chmod 755 /usr/share/honeyd/scripts/apache-web.sh
# chmod 755 /usr/share/honeyd/scripts/test.sh
# chmod 755 /usr/local/share/honeyd/scripts/iis/main.pl

Démarrage

Afin de faire en sorte que notre honeypot réponde par son adresse matérielle aux requêtes ARP adressées aux ordinateurs portant les IPs 192.168.1.250, 192.168.1.251 et 192.168.1.252, nous pouvons nous servir du programme farpd. Dans notre exemple, nous lançons cet utilitaire avec les paramètres suivants :

# farpd 192.168.1.250-192.168.1.252

Puis nous lançons Honeyd :

# honeyd –p /etc/honeypot/nmap.prints  -l /var/log/honeyd/honeynico.log –f /etc/honeypot/honeyd.conf 192.168.1.250-192.168.1.252 –d

-p : fichier contenant les empreintes des OS.
-l : permet de préciser le fichier de log.
-f : permet de préciser le fichier de configuration.
-d : lance en mode interactif.

Voici le schéma de l’implémentation finale des machines fictives :


Vous pouvez tester vos services sur les 3 machines créées en effectuant par exemple un scan nmap ou en vous connectant par exemple sur le site Web derrière l’adresse IP 192.168.1.251 (freebsd).

Il existe de nombreux scripts situés à  l’endroit suivant : /usr/local/share/honeyd/scripts/ permettant d’émuler de faux serveurs FTP, SSH et autres. Je trouve cependant qu’ils ne sont pas géniaux, du fait de leurs faibles interactions. Également, les services émulés sont un peu vieillot. Je souhaite donc créer d’ici peu, quelques nouveaux scripts tels un faux Windows 2008 R2, serveur FTP Filezilla, avec une interaction assez poussée. Si certains sont motivés pour participer au projet, n’hésitez pas à me le faire savoir 😉

11 Responses to "Honeyd, pot de miel à Hackers"

  • thedi says:
  • Nicolas says:
  • B3NZ06 says:
  • Nicolas says:
  • PamPamDo says:
  • Nicolas says:
  • Eljoundi says:
  • Nicolas says:
  • LukhanCypher says:
  • Nicolas says:
  • LukhanCypher says:
Laissez un commentaire