SRS Day Advanced Fingerprinting Michaël BETTAN Gaël SECHAUD bettan.michael@gmail.com gael.sechaud@gmail.com
Introduction au fingerprinting Le contexte
Qu est ce que le fingerpriting? Identification d un système 3 classes principales: Le fingerprinting actif Le fingerprinting passif Le fingerprinting semi-passif
Pourquoi utiliser le fingerprinting? Collecte d informations Identification des systèmes Cartographie réseau
Présentation Comment effectuer un fingerprinting? Méthodes non automatiques Prise d empreinte de la pile TCP/IP Méthodes automatiques Comment se protéger du fingerprinting? Méthodes pour les systèmes Linux Méthodes pour les systèmes BSD
Comment effectuer un fingerprinting?
Méthodes non automatiques Récupération directe des headers de services Méthode très basique Ne nécessite aucun outil spécifique Connexion à un service par telnet root@debian# telnet mail.nuxclass.com 143 Trying 193.170.124.96... Connected to postman.nuxclass.com Escape character is '^]'. * OK Microsoft Exchange Server 2003 IMAP4rev1 server version 6.5.7226.0 (postman.nuxclass.com) ready.
Méthodes non automatiques Récupération indirecte des headers de services Méthode simple Donne des informations utiles 1 ère image de la famille du système employé Exemples Binaires stockés sur le serveur distant En-tête des emails Commande SYST dans le protocole FTP
Prise d empreinte de la pile TCP/IP TCP/IP Stack Fingerprinting Analyse de l adresse MAC Permet d obtenir le constructeur du matériel Permet d obtenir le type de matériel
Prise d empreinte de la pile TCP/IP Le protocole TCP Permet de déduire le système d exploitation Permet de déduire la version du système
Prise d empreinte de la pile TCP/IP Le protocole ICMP
Méthodes automatiques Nmap (Network Mapper) Fingerprinting actif Outil d exploration du réseau et un scanner de sécurité. $ nmap -ss -O 192.168.1.0/24 Interesting ports on 192.168.1.2: Not shown: 1705 closed ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 25/tcp open smtp 3000/tcp open ppp 3128/tcp open squid-http Device type: general purpose Running: Linux 2.6.X OS details: Linux 2.6.17-2.6.20 Uptime: 60.812 days (since Thu Feb 28 15:14:58 2008) Network Distance: 0 hops.
Comment fonctionne nmap? Processus à 3 étapes: Méthodes automatiques 1. Chercher des ports ouverts 2. Envoyer des paquets TCP et UDP afin d'établir une empreinte du système. 3. Procéder à l'analyse de résultats grâce à sa base de données d'empreintes. Test Paquet Etat du port Flags activés T1 TCP TCP ouvert SYN, ECN-Echo T2 TCP TCP ouvert aucun flag T3 TCP TCP ouvert URG, PSH, SYN, FIN T4 TCP TCP ouvert ACK T5 TCP TCP fermé SYN T6 TCP TCP fermé ACK T7 TCP TCP fermé URG, PSH, FIN PU UDP UDP fermé TSeq TCP * 6 TCP ouvert SYN
Xprobe2 Méthodes automatiques Fingerprinting actif Basé sur le protocole ICMP Intègre plusieurs techniques et pondère leurs résultats. p0f Fingerprinting passif Simple d utilisation Base de connaissance importante
Comment se protéger?
Méthodes pour les systèmes Linux IP Personality Permet de changer le comportement de la pile TCP/IP Stealth Patch Rejette certains types de paquets Fingerprint Fucker Permet de changer le comportement du système d exploitation
Blackhole Méthodes pour les systèmes BSD Transforme le système en Trou noir Fingerprint Fucker Permet de changer le comportement de l OS OpenBSD Packet Filter (pf) FreeBSD TCP_DROP_SYNFIN Fingerprint scrubber Permet de restreindre la capacité à déterminer l OS sur le réseau
Prise d empreinte Conclusion Facile grâce à de nombreux outils Relativement fiable Donne de nombreuses et précieuses informations 1 ère étape d un attaquant Domaine mature Falsifier une empreinte Domaine en développement Peu utilisé Permet seulement de retarder un attaquant
Questions? L ensemble de nos publications sont disponibles sur : www.mbettan.com/publications/fingerprint/ Michaël BETTAN bettan.michael@gmail.com Gaël SECHAUD gael.sechaud@gmail.com