Ce TP est réalisé entièrement sous Netkit dans le lab fourni sur la page Celene du cours pour le TP attaque : labexploit.tar.gz
.
L'ensemble des manipulations est à réaliser à l'intérieur du lab comme suit :
alice
, la gentille victime, va déployer snort
pour détecter les tentatives d'intrusion ;
oscar
, l'utilisateur malveillant, générera de telles attaques.
Avant de lancer le lab, augmenter la mémoire d'alice en ajoutant à lab.conf
la ligne suivante :
alice[mem]=512
Un détecteur d'intrusion réseau (NIDS) écoute et analyse le trafic réseau en temps-réel, émet des alertes et journalise les paquets suspects détectés. Les systèmes de protection contre l'intrusion (IPS) permettent en outre de réagir aux attaques en allant jusqu'à interrompre le trafic. Nous allons utiliser Snort, un IDS qui fonctionne à partir d'une base de signatures (appelées règles) qui décrivent des conditions de déclenchement (un peu comme pour un pare-feu). Pour être efficace, un tel système doit être alimenté par une base de signatures d'attaques qui soit à jour et bien dimensionnée. Nous nous concentrons ici sur le principe de fonctionnement de l'outil et l'écriture de règles, en utilisant Snort en mode alerte.
Netkit déploie la version 2.7.0 de snort
(la version actuelle est 2.9.6). La documentation est située dans le répertoire /usr/share/doc/snort-doc/
. Récupérer le manuel snort_manual.pdf
et la FAQ faq.pdf
.
Lancer snort
à l'aide de la commande suivante :
alice# snort -c /etc/snort/snort.conf -A console
Une fois le message --== Initialization Complete ==--
affiché, snort
est actif, journalise dans /var/log/snort
et affiche un résumé des alertes sur la console.
Depuis oscar
effectuer un scan des ports d'alice
à l'aide de nmap
:
oscar# nmap alice
Qu'observe-t-on chez alice
?
Depuis oscar
reproduire l'attaque contre le service telnetd
:
oscar# ./paf 10.0.0.1 23 3
Qu'observe-t-on chez alice
?
Parcourir le manuel de Snort
, lire en particulier le début de la section 1 Snort Overview et de la section 3 Writing Snort Rules (en français on pourra lire L'écriture des règles Snort mais attention c'est incomplet et partiellement obsolète) puis retrouver dans /etc/snort/gen-msg.map
et /etc/snort/rules/
les messages générés ci-dessous et éventuellement les règles associées.
À l'aide de la commande telnet
, en se connectant comme guest
sur alice
, générer un faux-positif : une alerte de snort
qui n'a pas lieu d'être.
Parcourir le manuel de snort
(man snort
) et observer le résultat de snort --help
.
À l'aide de scapy
et du TP précédent, écrire et tester des règles snort
pour chacun des scénarios suivants. On écrira les règles dans un fichiers tpsecu.rules
et on lancera snort
avec la commande :
alice# snort -c tpsecu.rules -A console
ping
avec un TTL de 255 ;
telnet
en tant que root
sur une machine du réseau local ;
telnet
en tant que root
sur une machine du réseau local après une tentative de connexion ssh
;
accounts.google.com
;
telnetd
;
Une fois terminé, envoyer le contenu du fichier de règles par mail à Nicolas.Ollinger@univ-orleans.fr
avec comme sujet [secu] snort
et en écrivant les règles directement dans le corps du message, sans autre texte.
Ces TPs ont été l'occasion de découvrir différentes middleboxes qui ont leur place dans un réseau d'entreprise moderne : switch gérant les VLANs, pare-feux, VPNs, IDS. Il est temps de mettre en œuvre l'ensemble de ces composants au sein d'un même réseau. Voici un scénario qu'il s'agit de déployer à l'aide de Netkit.
Déployer un réseau d'entreprise constitué d'un routeur rt
à deux pattes relié d'une part à un switch vde
côté entreprise et à un réseau extérieur. Sur le switch interne sont connectés alice
un poste du parc utilisateur et www
un serveur web à mettre en DMZ. Sur le réseau extérieur sont connectés oscar
qui servira d'utilisateur malveillant et bob
un utilisateur itinérant de l'entreprise avec un accès VPN de type roadwarrior. Sur rt
est déployé un pare-feu, un serveur VPN et un système de détection d'intrusion.
Il vous reste un peu de temps ? Vous voulez en savoir davantage sur les vulnérabilités des applications web ?
badstore
à l'aide d'outils comme nikto.