• Aucun résultat trouvé

Attaques permettant d’interroger des services réseau particuliers

Dans le document sécurité réseau (Page 69-73)

Certaines attaques visent à récolter des informations spécifiques au niveau des services, notamment les suivants.

11 0 Durée de vie écoulée Lorsqu’un routeur traitant un paquet est amené à mettre à jour le champ Durée de vie de l’en-tête IP et que ce champ est à 0, le paquet doit être détruit. Le routeur peut prévenir l’hôte source de cette destruction.

11 1 Temps limite de réassemblage du fragment dépassé

Si un hôte réassemblant un paquet ne peut terminer cette opération à cause de fragments manquants au bout de la temporisation de réassem-blage, il doit détruire le paquet en cours de traitement et avertir l’hôte source en émettant un message.

12 0 Erroné Ce message est envoyé lorsqu’un champ d’un en-tête est erroné. La

position de l’erreur est retournée.

13 0 Marqueur temporel Une machine demande à une autre son heure et sa date système (uni-verselle).

14 0 Réponse à un marqueur

tem-porel

La machine réceptrice donne son heure et sa date système afin que la machine émettrice puisse déterminer le temps de transfert des données.

15 0 Demande d’adresse réseau Ce message permet de demander le numéro de réseau sur lequel est situé un hôte.

16 0 Réponse d’adresse réseau Ce message répond au message précédent.

Tableau 2.2 Types et codes des messages ICMP (suite)

Attaque sur le service Telnet

Lorsqu’un client établit une connexion Telnet avec un serveur, le protocole commence par négocier des options d’affichage. Parmi ces options, on trouve la largeur des lignes, la taille des pages, l’interprétation du retour chariot, etc.

Le pirate peut donc obtenir la liste des options du serveur avec lequel il dialogue. Par exemple, les informations émises par défaut par un serveur Linux d’une version infé-rieure à 2.2.16 sont les suivantes :

Chaîne de caractères : ÿ^Xÿ ÿ#ÿ’

Soit en valeurs ordinales :255 253 24 255 253 32 255 253 35 255 253 39

Options telnet correspondantes : IAC DO TELOPT_TTYPE IAC DO TELOPT_LINEMODE IAC DO TELOPT_XDISPLOC IAC DO TELOPT_NEW_ENVIRON Notons que d’autres systèmes d’exploitation proposent exactement la même séquence d’options, ce qui rend leur discrimination plus difficile.

Attaque sur le service IPsec

La suite de sécurité IPsec a été définie au niveau 3 afin de renforcer la sécurité du proto-cole IP. Cette suite est principalement utilisée pour créer des réseaux privés virtuels au travers de tunnels authentifiés et chiffrés.

Bien que ces tunnels offrent un niveau de sécurité important, des outils permettent de récolter des informations précieuses sur leur état.

Par exemple, l’outil ike-scan permet de dialoguer avec un accès IPsec et de connaître les éléments négociés par l’accès par défaut, comme l’algorithme de chiffrement 3DES, une authentification fondée sur le protocole RSA, etc. :

$ ike-scan 10.16.2.2

Starting ike-scan 1.6 with 1 hosts (http://www.nta-monitor.com/ike-scan/) 10.16.2.2 Main Mode Handshake returned SA=(Enc=3DES Hash=SHA1

Auth=RSA_Sig Group=2:modp1024 LifeType=Seconds LifeDuration(4)=0x00007080) implementation guest: Firewall-1 NG AI R54

Dans le cas d’une authentification fondée sur les secrets partagés et en mode dit agressif, il est possible de récupérer un hash de la clé partagée dans les échanges de messages utilisés pour établir un tunnel IPsec.

Une fois le hash de la clé récupéré, il est possible de lancer une attaque par dictionnaire avec l’outil psk-crack, afin de tenter de casser la clé partagée, comme dans l’exemple suivant avec la clé partagée "margot" :

$ ike-scan --aggressive --id=denis --pskcrack=denis.psk 10.16.2.2

Starting ike-scan 1.7 with 1 hosts (http://www.nta-monitor.com/ike-scan/) 10.16.2.2 Aggressive Mode Handshake returned

SA=(Enc=3DES Hash=SHA1 Auth=PSK Group=2:modp1024 LifeType=Seconds LifeDuration(4)=0x00007080)

KeyExchange(128 bytes) Nonce(20 bytes)

ID(Type=ID_IPV4_ADDR, Value=10.16.2.2) Hash(20 bytes)

$ psk-crack denis.psk

Starting psk-crack in dictionary cracking mode

key "margot" matches SHA1 hash 1f074be2ce5hjhj8aea49a4f4fb7752f9fe33670 Ending psk-crack: 10615 iterations in 0.053 seconds

Attaque sur les bannières

La plupart des services réseau fonctionnent avec le protocole TCP. À ce titre, ils sont accessibles via une simple commande Telnet, et des informations peuvent être récupérées pour identifier le système.

Le protocole SMTP (Simple Mail Transfer Protocol), qui écoute généralement sur le port 25/TCP, offre une bannière à quiconque se présente sur ce port. En voici un exemple typique :

220 machine.domaine ESMTP Solaris 8 Sendmail 8.13.1/8.13.1; Sat, 27 Aug 2005 10:17:03 +0200 (CEST)

Nous constatons que la bannière indique non seulement le système d’exploitation, mais également le numéro de version du programme gestionnaire du protocole SMTP (Send-mail) et de son fichier de configuration.

De la même manière que SMTP, les serveurs Web se montrent d’une extrême complai-sance en révélant de précieuses informations, comme dans l’exemple suivant :

$ telnet www.xxx.yyy 80 Trying ...

Connected to www.xxx.yyy.

Escape character is ‘^]’.

HEAD / HTTP/1.0 HTTP/1.1 200 OK

Server: Sun Java System Web Server 6.1 Date: Sat, 27 Aug 2005 08:29:27 GMT

P3p: policyref="http://www.xxx.yyy/p3p/P3P_Policy.xml", CP="CAO DSP COR CUR ADMa DEVa TAIa PSAa PSDa CONi TELi OUR SAMi PUBi IND PHY ONL PUR COM NAV INT DEM CNT STA POL PRE GOV"

Set-Cookie: SUN_ID=82.224.1.141:230061125131367; EXPIRES=Wednesday, 31-Dec-2025 23:59:59 GMT; DOMAIN=.sun.com; PATH=/

Content-Type: text/html;charset=ISO-8859-1 Content-Length: 8259

Set-Cookie: JSESSIONID=B1E78786CF60F947E9D9B0058A6F456C.tomcat5;Path=/

ETag: "8259-1121204800000"

Last-Modified: Tue, 12 Jul 2005 21:46:40 GMT Connection: close

Connection closed by foreign host.

Nous constatons que le type et la version du serveur sont indiqués, mais également qu’il s’appuie sur un module Tomcat (Java pour serveur HTTP). Bien d’autres informations sont fournies telles que cookies, etc.

Outils d’extraction d’informations

Quand le serveur réseau n’est pas interrogeable par le biais d’une connexion TCP, certains outils permettent d’obtenir des renseignements. Nous ne parlons pas ici des outils d’analyse des vulnérabilités, mais simplement d’outils capables de communiquer avec le serveur réseau selon un protocole particulier.

À titre d’exemple, SNMP (Simple Network Management Protocol) est une véritable mine d’informations sur les systèmes de fichiers, les processus en cours ou les détails matériels du serveur (mémoire, processeur, etc.).

Voici un extrait d’une réponse SNMP à une requête d’extraction utilisant la communauté public comme authentifiant d’accès :

$ snmpwalk -v 1 -c public -m ALL machine.domaine

SNMPv2-MIB::sysDescr.0 = STRING: FreeBSD machine.domaine 4.11-RELEASE FreeBSD 4.11-RELEASE #0: Tue Fe i386

[snip]

HOST-RESOURCES-MIB::hrSWRunParameters.81192 = STRING: "-c rrdtool-buildgraph >

/dev/null"

Dans le même esprit, la commande dig permet, comme ci-dessous, d’interroger un service DNS (Domain Name Service) afin d’obtenir des informations sur la version du serveur :

# dig @ns.serveur.domaine version.bind chaos txt

; <<>> DiG 8.3 <<>> @ ns.serveur.domaine version.bind chaos txt

; (1 server found) [snip]

;; ANSWER SECTION:

VERSION.BIND. 0S CHAOS TXT "8.3.7-REL"

;; Total query time: 84 msec

;; FROM: client.serveur.domaine to SERVER: ns.serveur.domaine

;; WHEN: Sat Sep 17 09:30:57 2005

;; MSG SIZE sent: 30 rcvd: 64

Dans le document sécurité réseau (Page 69-73)