Vous êtes sur la page 1sur 13

Les cours de Zi Hackademy : Newbie cours 1, by Clad

Plan du cours Newbie 1 :


. Notions rseaux . communications client/serveur . protocole IP/TCP & UDP avec format des adresses IP et faons de communiquer (TWHC & communications simples) . shma d'un rseau (ZiHack) . sniffing (notions) . notions de services et de ports

. Un peu de pratique . ping (dtaill) . tracert . netstat

. Hack . scan ports . dtermination des services ( port list & connections ) . rvlation d'informations: Bannires, SNMP, SMTP (vrfy & expn )... . distinction exploit/faille . exemples: SNMP (string = public) & SMTP (vrfy & expn) & FTP (anonymous et fichiers. accessibles style: etc/ passwd autres fichiers cf afleurdelle.com) &

1 - Notions rseaux. Nous ne pouvons nous permettre de vous expliquer point par point comment fonctionne un rseau. De mme qu'au niveau de nos explications il parait impossible de tout passer en revue. Nous ne pouvons que vous fournir des notions, notions essentielles a la comprhension du fonctionnement des communications entre systmes informatiques. A - Client/Serveur. Dans toute communication rseau, il y a un client et un serveur. Le client est le systme qui va demander tablir une connection, le serveur le systme qui va, non pas uniquement rpondre cette demande, mais accepter une connection. Etre client est simple, tre serveur implique donc d'accepter et de traiter une demande de connection. Un systme peut refuser une demande de connection, il n'est pas forcment en tat de serveur. Pour grer les demandes de connections on a dvelopp des applications logicielles dlivrant un service. Ces applications logicielles, acceptent et traitent les demandes de connection. Ces applications logicielles s'appellent des "applications serveurs" et dlivrent des "services". Pour simplifier on parle de machines faisant tourner ces applications logicielles comme de "serveurs", car leur unique rle est d'accepter des connections et non pas d'en mettre les demandes. Une machine peut trs bien faire tourner des applications serveurs et tre cliente dans une connection prcise.

Note: la notion de "service" doit-tre claire. Une application serveur dlivre un service. Par exemple une application serveur dlivre un service HTTP. Une connection ne s'tablit jamais en sens unique, toujours double-sens. Pour que des machines A et B puisse communiquer A est connecte B, et B A. Un envoie de donnes double-sens s'effectue entre les deux machines.

B - Communications rseaux: paquets, protocoles et notions de ports. 1 - Paquets de donnes. Tout comme lorsque vous entrentenez une correspondance avec quelqu'un par la voie postale, les donnes s'changent sur les rseaux dans des paquets de donnes. Ces paquets sont appels "packets" en anglais, ou aussi des "trames", en franais. Les paquets contiennent les donnes transmettre mais aussi des informations essentielles, notamment sur l'adresse de l'expditeur, l'adresse de la cible, le type de paquet, etc... bref un paquet de donnes contient bien plus que des donnes courantes. Sur un rseau, il n'y a que des paquets de donnes qui transitent. L'interception de certains de ces paquets peut avoir des consquences dramatiques sur la scurit d'un systme. Nous verrons plus en dtails pourquoi, dans la suite des notions expliques. Note: La taille d'un paquet de donnes se mesure en octets.

2 - Protocoles. Si les paquets de donnes taient transmis de faon anarchique, sans aucune rgles concernant leurs constructions et leurs transmissions, les systmes ne pourraient se comprendre de faon globale. Un systme d'une entreprise A comprendraient les donnes des systmes d'une autre entreprise A, mais pas ceux de l'entreprise Q. Pour que les systmes puissent comprendre les donnes qu'ils s'inter-envoient il faut standardiser la faon dont ces donnes sont construites et la faon dont elles sont envoyes. Cette standardisation s'effectue grce la mise en place des "protocoles". Chaque paquet va tre constitu par des enttes spcifiques un protocole. Sur Internet le protocole le plus courant est TCP (Transmission Control Protocol). Lorsque vous allez

sur un site Web, par exemple http://www.dmpfrance.com, les protocoles IP (Internet Protocol), TCP et HTTP (HyperText Transfer Protocol) seront utiliss pour envoyer et construire les paquets de donnes. . IP va servir dfinir tout ce qui concerne l'adressage des donnes; . TCP va dfinir le type de paquet envoy; . HTTP va envoyer les donnes qui lui sont spcifiques, soit les pages Web. IP va tre utilis dans l'adressage des paquets, permettant ainsi aux machines relais mettrices et rceptrices d'tablir un chemin correct de transmission de donnes. TCP va dfinir le type de paquet, savoir un paquet servant tablir la connection, la fermer, etc... Ce sont rellement ces deux protocoles qui sont les plus importants sur Internet un niveau global. Un paquet est form par les en-ttes de plusieurs protocoles. Chaque en-tte va dfinir des choses bien prcises en divisant les informations qu'elle contient. IP: Au niveau de l'en-tte IP il n'est ncessaire de ne retenir que certaines fonctions essentielles. * Dure de vie: la dure de vie s'exprime en TTl. Nous verrons plus en dtails de quoi retourne le TTl la suite de ce chapitre. * Adresse source: l'adresse source est l'adresse IP de la personne qui met le paquet. * Adresse destination: l'adresse de destination est l'adresse IP de la personne qui doit recevoir le paquet, c'est l'adresse IP du destinataire. TCP: Au niveau de l'en-tte TCP il n'est ncessaire de ne retenir aussi que quelques fonctions essentielles: . Port Source: dtermine le port utilise pour une communication prcise par l'metteur du paquet. . Port Destination: dtermine le port utilise par la machine rceptrice du paquet dans le cas d'une communi cation prcise. . U - A - P - R - 5 - F: ces zones sont ce qu'on appelle des "flags". Cesont des bits de donnes, en position "1" si le flag est actif (on), et en position "0" si le flag est dsamorc (off). - URG : dfinit le paquet comme tant urgent. - ACK : sert rpondre l'affirmative un paquet de type SYN, et aux transferts de donnes. - PSH : sert forcer la transmission des donnes latentes dans une communication. - RST : sert rpondre la ngative un paquet de type SYN. - SYN : sert demander si il est possible d'ouvrir une communication avec une machine distante, qui est un serveur. - FIN: sert mettre fin une connection. TCP sert couramment aussi la transmission des donnes. L'tablissement d'une connection TCP se fait sur un "Three Way Handshake Connection". Prenons par exemple une machine A et une machine B. La machine A est cliente, la machine B est serveur.

1. A --- SYN ---> B; La machine cliente envoye un paquet TCP au serveur avec le flag SYN activ, ce qui veut dire: "puis-je tablir une connection? (SYN)". 2. A <--- SYN/ACK --- B ; La machine serveur rpond par un paquet TCP avec les flags SYN et ACK activs ce qui veut dire: "Oui, tu peux tablir la connection (ACK), et moi? Puis-je tablir la connection ? Il est ncessaire d'envoyer un paquet avec le flag SYN, mme en rponse, car une connection s'tablit toujours double-sens. 3. A --- ACK ---> B ; La machine cliente rpond par un paquet TCP avec le flag ACK activ ce qui veut dire "Oui, tu peux tablir la connection (ACK)". Si une machine refuse une connection elle va rpondre par un RST au SYN envoy par le client.

Un autre protocole de transfert de donnes est beaucoup utilis, il s'appelle UDP (User Datagram Protocoll) UDP: Contrairement TCP, UDP est beaucoup plus lger, que ce soit au niveau de la structure de l'en-tte qu'au niveau de la faon dont sont transmisent les donnes. UDP est un protocole qui n'exige pas forcment de dialogue entre le client et le serveur. Il minimise donc le trafic engendr sur le rseau. De plus, il est lger, la taille des paquets et la vitesse de leur traitement est ainsi rduite. Il est par exemple utilis dans les jeux rseaux, ou par des logiciels de dialogue, comme Ica. 3 - Notions de ports. Une machine pour communiquer a besoin "d'ouvrir des ports". Un port est une sorte d'ouverture logicielle. Il y a en tout 65535 ports, mais ils ne sont jamais tous ouverts. C'est par ces ports que vont s'tablir les communications. Par exemple un serveur HTTP va avoir, par dfaut, le port 80 d'ouvert. Une communication implique qu'un port soit ouvert sur la machine cliente et qu'un autre port soit ouvert sur la machine serveur. Il ne s'agit pas forcment des mmes ports. 1. Une application serveur ouvre un port en permanence pour permettre l'attente de demandes de connection. 2. Une application cliente ouvre des ports au besoin. Elle n'attend pas de demande de connection, elle ne joue pas le rle d'une application serveur et ne prsente donc pas un point d'entre sur un systme. 3. Il existe 65535 ports, ni plus ni moins. La plupart d'entre eux sont rservs par des services prcis (FTP : 21, telnet : 23, SMTP : 25, etc.) 4. Un port ferm est comme un mur en bton arm. Rien n'y rentre, rien n'en sort. Exemples: 1. lorsque A envoye B un paquet TCP avec le flag SYN activ, et que le port vis est ferm, la machine B renvoye un paquet TCP avec le flag RST activ. Certains firewalls ne renvoient pas de paquet TCP avec le flag RST actif (comme ZoneAlarm). 2. lorsque A va vouloir se connecter sur le serveur HTTP de B, son application cliente (Internet Explorer) va ouvrir un port 11106, par exemple). L'application cliente va envoyer un paquet compos des en-ttes IP, Tcp, HTTP vers le port 80 de la machine B.

Utilisation de Netstat Il est possible d'afficher les connections actives d'un systme, grce l'outil "Netstat". 1. Ouvrez les commandes MS-DOS (Dmarrer, Executer, et tapez "command"). 2. Tapez "netstat". 3. La premire colonne indique le protocole utilis lors de la communication. 4. La deuxime colonne indique l'adresse de votre machine, ou son nom. Aprs les deux points se situent le numro de votre port utilis dans la communication. 5. La troisime colonne indique l'adresse de la machine distante. Aprs les deux points se situent le numro du port utilis dans lacommunication. 6. La dernire colonne indique l'tat de la connection, savoir si elle est tablie, en train de s'tablir, en train de se terminer, etc... Note: Netstat n'affiche que les communcations actives. En aucun cas vous ne pouvez aH;cher l'ensemble des ports ouverts par votre machine, si par exemple une application serveur comme un trojan en monopolise un. En revanche s; un intrus est connect au trojan, vous le verrez. C - Notions de "relai". Sur Internet les donnes que vous transmettez ne le sont jamais dans des connections directes. Il

n'y a pas des millions de cbles qui vous relient aux millions d'ordinateurs en ligne sur Internet! Pour palier ce problme, un transit des paquets par l'intermdiaire de machines-relais est ncessaire. Ces machines sont trs souvent des routeurs, des passerelles, etc... Elles vont se charger d'acheminer les paquets de donnes leur destinataire et ceci en prenant toujours compte de deux facteurs: l'adresse IP du destinataire, et le TIL 1. L'adresse IP du destinataire va servir l'acheminement du paquet. 2. Le TIL, bas 255 par dfaut sur un paquet de donne au niveau de l'en-tte IP, dcrot chaque fois qu'il est relay par une machine. Cel permet d'viter que des machines ne s'envoient un paquet en boucle, ou encore qu'un paquet rsiduel ne circule incessament sur le rseau. II - Attaque sur un systme: tapes pralables. Une attaque l'aveugle sur un systme est, 99% du temps, inefficace. Il est absolument ncessaire d'entamer une collecte d'informations sur le systme vis, dans le but d'largir ses possibilits d'attaques et de s'offrir ainsi plus de flexibilit sur le choix des mthodes d'attaques. La stratgie est aussi importante que la manuvre elle-mme. Manuvrer sans but prcis est une perte de temps. Dans les explications qui vont suivre nous verrons quels sont les diffrents moyens de se renseigner sur sa cible, et comment agir en consquence des informations collectes, en dtaillant les diffrents procds d'attaques traditionnelles que vous serez mme de reproduire en toute simplicit. A - Renseignements sur le systme cible. 1 - Localiser gographiquement le systme cible. La localisation gographique d'un systme donn est assez utile, mais pas essentiel. Cela va permettre de dfinir ds le dpart quelles peuvent tre certaines techniques mme d'tre utilises lors de l'attaque du systme, o mme de complter la base d'informations tablir. Afin d'obtenir le nom d'hte d'un systme, si vous n'en avez que l'adresse IP par exemple, utilisez la fonction Ping de votre systme, grce l'outil adquat sous DOS: 1. Allez sous MS-DOS (Dmarrer; Executer, et tapez "command"). 2. Tapez la commande ping. 3. Sur votre cran dfilent les diffrentes options de paramtrage de l'outil Ping. 4. Tapez ping -a [adresse IP] afin de rsoudre le nom d'hte d'une adresse IP. 5. Le nom d'hte, peut rvler de prcieuses informations. Par exemple la grande ville la plus proche, et son fournisseur d'accs Utilisation de Ping: Ping est un outil de statistiques fonctionnant sous MS-DOS, dont l'intrt premier est de vrifier l'existence ou non d'un systme sur le rseau. Il fonctionne par l'envoi de paquets ICMP _echo_request, auxquels les systmes concerns rpondent par des paquets ICMP _echo_reply. C'est--dire que le systme metteur va faire un envoi d'un paquet dans le but que la machine cible lui rponde. Ping intgre diverses fonctionnalits. Afin de toutes les visualiser tapez ping sous DOS. Parmi les diffrentes fonctions de ping, on retiendra: 1. l'option "-t", qui envoye des paquets ICMP _echo_request en boucle, jusqu' interruption de la part de l'utilisateur par un "break" ICTRL+C) Exemple: ping -t [Adresse IP] 2. L'option "-a", qui sert transposer une adresse IP en un nom d'hte. Exemple: ping -0 [Adresse IP] 3. L'option "-n", qui sert envoyer un nombre de paquetslCMP _echo_request prcis. Exemple: ping -n 8 [Adresse IP] 4. L'option "-I", qui permet de spcifier la taille de la requte envoyer. Exemple: ping -1 64 [Adresse IP] 5. L'option "-i", qui permet d'imposer une dure de vie (TILl de base, entre 1 et 255. Exemple: p;ng -; 145 [Adresse IP] 6. Et ventuellement l'option "-W" qui permet de spcifier un dlai d'attente pour les trames echo_reply ("timeout"). Exemple: p;ng -w 999 [Adresse IP]

Savoir lire un compte-rendu de l'outil ping est trs simple. Dans le champ rponse vous sont indiqus: . en octets la taille du paquet que vous avez envoy; . en millisecondes le temps de rponse du systme cibl; . et la valeur du TTL lorsque le paquet est arriv destination. Quatres requtes ICMP _echo_request sont envoyes lors d'une utilisation courante de ring, afin de bien s'assurer des rsultats. S'orienter par un traage de la route d'acheminement des donnes : Tracer la route qu'emprunte un paquet de donne pour aller d'un point A un point B peut-tre utile afin de dtermine par Ie, les diffrentes zones gographiques qu11 traverse, ou encore le dernier routeur emprunt pour l'acheminement des donnes. Pour effectuer ce processus, utilisez l'outil Tracert de votre systme. 1. Allez sous MS-DOS. 2. Tapez tracert. 3. S'affichent alors les options de paramtrage, tout comme pour ring. 4. On ne les utilisera pas dans l'absolu, donc tapez simplement trocert [Adresse IP] 5. Ici la dtermination de l'itinraire s'est termine sans problmes, et l'on sait maintenant par quelles machines sont achemins nos paquets. Utilisation de Tracert : Tracert est l'abbrviation de "Trace Route". L'objectif du logiciel est la mise en lumire du chemin emprunt par un paquet de donnes pour atteindre un point prcis d'un rseau. Il peut tre utilis pour l'valuation des performances d'un rseau, pour valuer quel niveau peuvent se situer des points de congestion ou localiser des problmes d'infrastrucutres. Tracert intgre diverses fonctionnalits. Afin de toutes les visualiser tapez tracert sous DOS. Il y en a certes, pas beaucoup, mais trois d'entre elles peuvent s'avrer essentielles. 1. L'option "-d" empche la conversion des adresses IP des machines qui effectuent le relai en noms d'htes. Exemple: trocert -d [Adresse IP] 2. L'option "-h" permet de spcifier un nombre de "sauts" maximum, c'est--dire le nombre maximum de points de relais rsolu. Par dfaut ce nombre est 30 ("avec un maximum de 30 sauts"). Exemple: trocert -h 45 [Adresse IP] 3. L'option "-w" qui permet de spcifier un timeout, un temps d'attente aprs quoi le processus est avort, prcis pour la rsolution de chaQue hte. Exemple: trocert -w 999 [Adresse IP] Savoir lire un compte-rendu de l'outil tracert est trs simple. Dans le tableau des rsultats vous avez un classement des systmes relais de donnes. Les dlais en millisecondes indiquent des rsultats sur le temps qu'il a fallu pour contacter chaque systme de relai, sachant que cette tentative se fait par trois fois. Dans la dernire colonne se trouvent les noms d'htes des systmes de relais, avec leurs translations en adresses IP. Entrainez-vous reprer les informations que contiennent les noms d'htes, et celles que fournissent un traceroute.

2 - Whois : un moyen d'obtention d'informations sur le propritaire d'un nom de domaine. Lorsqu'un nom de domaine, "caramail.com", par exemple, est enregistr sur Internet, des informations comme l'identit du "registrant", c'est--dire celui qui enregistre le nom de domaine, ou encore l'identit du responsable technique, sont stockes dans les bases de donnes de

prestataires de services appropris. Les bases de ces prestataires (ARIN, Internic, NetworksSolutions, Gandi, RIPE...) sont consultables gratuitement par l'intermdiaire de requtes appeles "whois" (comprendre "Who is ?"). De nombreux prestataires de ce service sont en ligne sur Internet, mais leur fiabilit fouiller les bases de donnes peut varier. Ainsi il n'est pas impossible d'avoir mener des requtes "whois" en passant par plusieurs prestataires. Parmi ceux qui peuplent l'internet on en retiendra au moins trois: . http://www.allwhois.com : ce site permet de lancer des requtes Whois sur les noms de domaines de tout les pays du monde ! . http://www.whois.net . http://www.betterwhois.com Utilisation assiste d'un service Whois : la premire tape consiste trouver un prestataire du service Whois. Utilisez n'importe quel moteur de recherche en entrant pour mot-clef "whois". Trs vite les rsultats vont tomber. Faites des recherches sur l'ensemble du rseau Internet et pas seulement pour des prestataires de votre pays. L'utilisation du prestataire est ensuite trs simple. Couramment le nom de domaine rechercher sera taper dans une fentre de saisie de texte. Sur le mme principe que les moteurs de recherche, le prestataire en question se chargera ensuite de mener les recherches au sein des bases de donnes auxquels il a accs. Sur la page principale de AllWhois, entrez dans le module de recherche le domaine sur lequel vous portez vos recherches (l'adresse usuelle abolie de son 'www'). lancez la recherche en cliquant sur "Search" et les rsultats s'afficheront dans le cadre situ en bas de page.

3 - Recherche d'informations sur la personne ou la socit. a - Une personne. Afin de rechercher des Informations sur une personne, sachez pistez ses traces sur Internet. Consultez NewsGroups, forums, pages web pouvant vous donner toute information susceptibles de vous renseigner. 1. Sur les NewsGroups, utilisez des moteurs de recherche spcifiques aux news, comme http://groups.google.com Sur les pages et les forums, pas d'autre solution, l encore, que de recourir aux moteurs de recherche. L'utilisation d'un prestataire comme Google (http://www.google.com), semble toute dsigne. 3. Glanez aussi des informations autour de ses proches, en essayant de vous immiscer dans sa vie prive ou dans ses contacts rguliers. Certes, ce n'est pas trs sympathique d'imaginer ce genre de scnarios, surtout pour la victime potentielle, mais le fait est qu'avec de la patience et du temps, le fruit de vos efforts peut s'avrer juteux. 4. Une mthode, simple, mais mal vue du monde des pirates reste le "Social Engineering". C'est btement une technique qui consiste se faire passer pour qui l'on est pas afin d'obtenir des informations. Que ce soit par tlphone, par courrier, ou mme par des rencontres relles, le but du Social Engineer est de gratter chez sa victime, prise de confiance, des informations confidentielles, personnelles... b - Une socit. Essayez d'obtenir, tout comme pour une personne, des informations au sein de la socit. Les informations que vous pourrez rcolter sur une socit ne vous serront pas forcment prcieuses, quoi que... 1. Sachant qu'une socit a tendance a mener des campagnes publicitaires, et un affichage parfois obligatoire sur Internet, runir un grand nombre d'informations comme sur le statut juridique d'une socit, en allant du ct de chez http://www.societe.com par exemple, reste simple.

2.Les informations les plus intressantes que vous puissiez avoir concernent les employs au sein mme de l'entreprise: noms, prnoms, rles au sein de l'entreprise, numros de ligne directe... Il n'est pas difficile d'avoir ces informations, et elles peuvent s'avrer juteuses. En effet, il s'est dj vu des cas o le nom et prnom de l'administrateur du rseau correspondaient aux logins et mots de pass des accs aux routeurs - le nom et le prnom ayant t obtenus par un Whois sur le site de l'entreprise concerne, au niveau des indications sur l'identit du responsable technique. Aprs avoir rcupr un certain nombre de renseignements sur le systme cible, il est temps de passer des oprations plus techniques, qui doivent tre effectues sur le systme, afin de pouvoir procder par la suite l'laboration d'une stratgie d'attaque. B - Evaluation des caractristiques du systme. Il faut avant tout prciser ce qu'on entend par "systme". Au niveau de ce cours ne seront expliqus que les procds ncessaires la ralisation d'attaques sur un systme, et un seul. C'est dire que l'on va voir quelles stratgies et mthodes adoptent les pirates lorsqu'ils souhaitent s'attaquer un systme prcis, et non pas l'ensemble d'un rseau (comme le rseau Internet d'une entreprise), soit une pluralit de systmes: les stratgies et procds ne sont pas les mmes, et ce n'est pas la direction que doit prendre le cours. Pass ce petit claircissement, abordons le premier et plus essentiel processus: le "scan de ports". 1 - "Scan de ports" ou "la recherche d'applications serveurs actives" Rappelez-vous le dbut de ce cours. Une application serveur, c'est une application dlivrant un service prcis sur la requte d'un client, dans le cadre d'une configuration adapte. Donc un serveur est constamment en attente de connections, et pour ce faire il monopolise un port prcis, entre l et 65535, qui lui ouvre un canal de communication. C'est un peu schmatique par rapport aux complexes donnes techniques qui rgissent le processus, mais l'essentiel est l. Scanner les ports va donc permettre un pirate de reprer les applications serveurs actives. Chaque port ouvert peut ainsi tre considr comme un point d'entre au systme, une ventuelle source de vulnrabilits.

Note: Scanner les ports c'est simplement envoyer, grce un logiciel, des paquets Tep avec le flag SYN activ, aux ports du systme distant. Effectuer un scan de ports est trs simple. Moults logiciels, tous lgaux, hantent l'internet cet effet. Dans nos pratiques nous utiliserons Nautilus NetRanger, qui est trs efficace et trs rapide. Vous le trouverez sur http://www.download.com, ou encore sur le site des dveloppeurs ( http://www.nautidigital.com). 1. Ouvrez le logiciel. 2. Cliquez sur l'onglet PortScanner. 3. Dans la zone "Hostname/Address" indiquez une adresse IP ou un nom d'hte. 4. Dans la zone "Port range" indiquez une plage de port ou un port spcifique vrifier. Une plage de ports c'est un ensemble de ports compris dans une intervalle. Dans le cas de Nautilus, spcifier une intervalle de port de type [3000; 6000] se fait selon la syntaxe suivante: "3000-6000". Vous pouvez aussi n'indiquer qu'un seul numro, cel reviendrait ne vrifier qu'un seul port. Notez toutefois quelques petites choses. Un bon scan se fait sur une intervalle de l 65535, c'est--dire sur l'intgralit des ports. En effet, il se peut que des applications serveurs se terrent dans des ports loigns. C'est aussi pourquoi nous vous dconseillons l'utilisation de l'option "Port list", qui ne permet de vrifier que certains ports spcifiques. 5. L'option Threads dfinit le nombre de requtes de scons de ports envoyer en mme temps. Au lieu de scanner les ports un par un, vous pouvez multiplier ainsi votre activit par plus de 30 fois! Indiquez une valeur de 30 60 dans "Threads", qui est fonction de votre vitesse de connection. Evitez de mettre une valeur trop grande, cel risquerait de faire bugguer l'application. De mme, n'ouvrez pas deux fois Nautilus NetRanger, utilisez une, et une seule, session d'application. Sinon, l aussi, le logiciel risquerait de patauger. 6. Lancez le scan, en cliquant sur "Go". 7. Au niveau des rsultats ne vous proccupez pas de la couleur des pastilles. Seul les ports indiqus comme

actifs ("ACTIVE") nous intressent. La liste des ports indiqus comme actifs rvle gnralement la prsence d'applications serveurs actives dlivrant des services bien spcifiques. Afin de rsoudre l'identit de ces serveurs, et des services qu'ils dlivrent, les pirates peuvent mettre ds hypothses, mais se doivent dans la mesure du possible, de confirmer ou d'infirmer. Il va donc tre ncessaire de supposer quoi correspond un port ouvert. Pour cel, l'utilisation de fiches textuelles, comme une liste de ports, peut-tre trs utile. Ce genre de liste se trouve partout sur Internet (recherchez "Ports numbers" sur http://www.google.com, par exemple).

Aprs avoir valu par quel service est, probablement, monopolis un port, le pirate doit parvenir la certitude qu'il se trouve bien en face de ce qu'il suppose tre. 2 - Evaluer les applications serveurs actives et partir la recherche d'informations sur le systme d'exploitation. La chose la plus simple et la plus directe qu'un pirate puisse faire pour obtenir des informations sur un systme c'est de s'y connecter. Pour tablir une connection avec un systme distant, on utilise couramment un client comme telnet.exe. Utilisation de telnet : Il y a deux faons d'utiliser correctement Telnet : . En utilisant l'interface graphique . En indiquant des options au programme au moment de le lancer Pour la premire solution ouvrez telnet : 1. Cliquez sur "Dmarrer", 2. puis sur "Executer". 3. Tapez "telnet" et validez. 4. Cliquez sur "Connexion", puis sur "Systme distant". 5. Dans la fentre indiquez un nom d'hte ou une adresse IP pour permettre la connection au systme distant. Entrez ensuite un numro de port. Attention! Pour les services les plus courants (SMTP, FTP, HTTP, etc.) vous pouvez entrer comme indication non pas le numro de port mais le service qu'il dsigne. Par exemple au lieu d'indiquer "80" vous pouvez indiquer "HTTP". Cette pratique vous est dconseille pour au moins les motifs qui suivent: - Cela ne marche pas pour tous les services; - Vous pourrez tre amen travailler sur un autre systme o cettefonctionnalit ne sera pas prsente; 0 Implicitement vous n'apprendrez pas la dsignation numrique des diffrents ports. Pour accder plus rapidement des connections distantes, prfrez la deuxime solution : 1. Cliquez sur Dmarrer, 2. puis cliquez sur Executer. 3. Tapez "telnet [IP] [PORT]", ce qui donne pour le site dmpfrance.com, par exemple, "telnet dmpfrance.com 80", ce qui vous connectera sur le service HTTP du site dmpfrance.com. En vous connectant sur les diffrentes applications serveurs qu'excute un systme vous pouvez tre mme de gratter bon nombre d'informations sur le systme. L'annexe suivante dcrit succintement par quel biais vous pouvez rcuprer des informations sur les services sus-nomms: . FTP . Telnet . SMTP .HTTP . SNMP Reprer des informations sur un systme est une tche trs facile, les systmes ayant une grande facilit s'auto-prsenter, travers ce qu'on appelle des "bannires". L'immense majorit des systmes ne disposent pas d'une configuration adquate. Mais, malgr les diffrentes tentatives (dsespres ?) que peuvent mettre les administrateurs systmes concernant leurs configurations, certaines informations ne manqueront pas d'alerter le pirate averti. Aprs un peu de pratique il s'avrera que ce processus de rcupration d'informations sera de plus en plus simple. Aprs un rapide coup d'oeil sur le type et la version du serveur HTTP, par exemple, vous serez mme de

dterminer sous quel systme d'exploitation tourne une machine-serveur (Windows NT 4, 2000, Unix...). Une petite note au sujet de ce chapitre et des informations obtenues par rapport aux scans de ports. La mise en lumire de l'activit de certains ports peut vous rvler des informations sur le systme distant comme les ports 135 140 (service NetBIOS de Windows), 111 (SunRPC sur des stations SUN)... Pour identifier le service qui tourne derrire un port, rferrez vous votre liste de ports, puis connectez-vous et enfin recherchez des informations sur le service concern via Internet. Il se peut tout fait que certains systmes fassent tourner des applications serveurs dveloppes uniquement sous Windows ou sous Unix. Le fait de connaitre le systme d'exploitation d'une machine distante vous permet d'apprhender la faon dont vous pouvez l'approcher, ainsi que ses ractions. Rcupration d'informations sur des services donns: Nous traiterons de la rcupration d'informations sur des services courants, soit ceux que vous serez les plus mme de rencontrer. FTP : Connectez-vous au service HP vis, via le port 21 couramment. Regardez dj quelles informations vous dlivre la bannire, si il y a. Recherchez ventuellement des informations sur le serveur mentionn. Puis tentez de vous connecter en anonyme. Prfrez votre navigateur pour cette tche. Internet Explorer vous permet de vous connecter directement un service FTP, par dfaut en Anonyme. Note: Une session "Anonyme" est une session gre par l'administrateur qui permet n'importe qui de profiter du service FTP du serveur (pour le tlchargement de fichiers sur le serveur, par exemple). Mais la configuratIon de certains services FTP,qui laissent la possibilIt d'accs des sessions anonymes, est parfois dsastreuse au point que certains sites laissent trainer l'accs au fichier "passwd", sous un systme linux, ou encore l'arborescence complte du site, voire mme des rpertoires avec des accs criture (o tout le monde peut envoyer des fichiers gnralement). Depuis Internet Explorer le "browsing" (un affichage) des rpertoires rvle des rpertoires typiques de systmes de type UNIX. Il s'agit de vrifier si c'est vritablement le cas. Ouvrez une session FTP via telnet et connectez vous en Anonyme. Note: N'hsitez pas consulter les diffrents rpertoires accessibles afin de vous faire une ide sur le systme.

Gnralement sous FTP les commandes ne varient pas selon les serveurs ainsi pour vous connecter il vous faudra utiliser la syntaxe suivante: 1. USER Anonymous [pour rentrer en Anonyme] 2. PASS machin@chose.com [gnralement vous aurez indiquer votre adresse e-mail comme mot de passe] Ensuite, vous vous retrouverez l'aveugle, surtout si vous ne connaissez pas le systme. les commandes qu'il vous est possible d'enregistrer sont gnralement listables par la commande "help" ou "?". Sur l'exemple cidessous, les commandes du service FTP ont t utilises (sur un autre systme) pour mettre en lumire le type de systme d'exploitation utilis Dans la plupart des cas les informations dlivres sont d'une importance mineure. Ceci dit certains systmes vont jusqu' rvler la version du systme d'exploitation, ce qui est manifestement plus grave. Telnet : Pas de miracle pour Telnet. Ce service est gnralement restreint par une identification obligatoire par login et mot de passe. la bannire qu'affiche le systme peut en revanche tre utile. Utilisez telnet pour vous connecter. Par dfaut vous vous connectez sur le port 23, donc il n'est pas ncessaire de spcifier de port.

Dans notre exemple la version complte du systme d'exploitation est dvoile. Mais, et c'est tout aussi grave, la version du noyau (Kernel 2.2.17) l'est aussi. Avec de telles informations, ce type de systme risque de ne pas tenir deux secondes face un pirate de niveau moyen. SMTP : Comme pour tous les autres services, un service SMTP peut rvler, par sa bannire, des informations. Le port courant d'un service SMTP est le port 25. Mais le plus intressant c'est l'intgration, non ncessaire, de deux commandes spcifiques au service SMTP. Ces deux commandes sont "vrfy" et "expn". Pour vrifier si elles sont accessibles tapez "help". . Vrfy: Cette commande a pour but de vrifier si une adresse e-mail existe l'adresse du serveur questionn. ce qui veut dire que si vous vous connectez un systme d'adresse "betetruc.com", que vous tapez "vrfy admin", et que le systme vous rpond la positive, c'est que il existe une adresse "admin@betetruc.com", et donc certainement un compte de login "admin" sur le systme. Il est donc possible de rcuprer des logins sur le systme concern. . Expn: cette commande permet de vrifier l'existence d'alias au sein d'un systme pour un compte donn. Un alias permet une personne physique d'avoir plusieurs adresses e-mails. Cela peut-tre une bonne source d'informations. Dans notre exemple le pirate a russi avoir des informations sur l'identit d'une personne, et sur les alias tournant pour "root" (certainement des adresses correspondant d'autres administrateurs systmes) Http: Pour vous connectez un systme via HTTP utilisez le port 80. Aprs quoi il vous est possible d'envoyer diffrentes commandes au systme, celles-ci pouvant avoir des consquences diffrentes. Le procd consiste envoyez d'abord une commande valide, puis rappuyer sur ENTER afin de renvoyer une validation. Prenons un exemple concret: 1. Connectez vous sur www.microsoft.com (telnet www.microsoft.com 80) 2. Entrez comme commande: OPTIONS/HTTP/1.0 3. Validez en appuyant sur ENTER, et revalidez nouveau. 4. Les informations contenues dans P3P ("Platform for Privacy Preferences") dsignent les informations collectessur les utilisateurs. Autrement le serveur rvle sa version ainsi que les commandes autorises. Il est aussi possible d'utiliser la commande GET et OPTIONS sur un mme serveur, ceci permettant de rvler un certain nombre d'informations intressantes de faon complmentaire. Mis part la version du serveur et les modules qui tournent dessus, les informations rcoltes ne sont pas toutes cruciales mais peuvent vous amener mieux situer la configuration du systme cible. Notez que vous serez normalement dconnect du systme, il s'agit de lire les informations sans quitterla session tel net (sans confirmer la dconnectionl. Par ailleurs il se peut tout fait qu'un service HTTP ne dlivre qu'un nombre minimal d'informations, et ceci en raison de la configuration adapte du serveur. Un travail sur les services alentours peut alors s'avrer ncessaire. Note concernant HTTP : autant un serveur HTTP tel que IIS est soumis ci de nombreuses failles, autant sur Apache le nombre de failles est quasi-inexistant. Apache est une application serveur pour diHrents systmes d'exploitations, y compris Windows. Il est entierement gratuit et a forte tendance conccurencer le serveur IIS en raison de sa qualit et de sa fiabilit. Il s'octroye d'ailleurs une plus l'rande part de march que ce dernier. Mais ne vous fiez pas ce modle de scurite : des erreurs de configuration inhrentes la distraction de l'administrateur peuvent avoir de lourdes consquences. Apache.org en a fait les frais en 99 SNMP : SNMP (Simple Network Management Protocoll est un protocole de gestion d'quipement rseau, qui

permet un administrateur rseau d'interroger ses quipements afin d'en avoir les informations. En clair, l'administrateur peut obtenir des informations distance sur les machines qui ont install un "Agent SNMP", cet agent envoyant les informations qui de droit. Immdiatement le problme se soulve de lui-mme. Un pirate peutil interroger certaines machines, pour en obtenir des informations, dans le but de compromettre la scurit du rseau, ae l'entreprise ou de la machine concerne? Oui, et voici comment faire: 1. Tlchargez un logiciel mme d'envoyer des requtes SNMP. 2. Allez sur http://www.solarwinds.net et tlchargez une version d'valuation du logiciel SolarWinds. 3. Ouvrez l'outil SNMPSweep, grce la boite outils affecte par le logiciel. 4. Indiquez au logiciel la plage d'adresses IP que vous dsirez scanner. 5. le logiciel va scanner le rseau, en commenant par l'adresse indique dans "Starting IP Address" et en finissant par l'adresse indique dans "Ending IP Address". 6. Au niveau des rsultats, certaines machines apparaissent comme ayant un "Community String: public". Ce qui veut dire que n'importe qui peut accder aux informations que peut renvoyer la machine. Note: le community string "public" est, gnralement, la valeur par dfaut attribue une machine faisant tourner un agent SNMP. C'est l'administrateur d'en modifier la configuration. Le contraire d'un string public est le string "private", qui, lui, n'autorise ne dlivrer aucune information au grand public. 7. Faites un clic droit sur la machine dont le string est dit "public", et cliquez sur "Browse ...". 8. SolarWinds va ouvrir IP Network Browser, permettant l'affichage des informations du systme, informations renvoyes grce SNMP. 9. l'ensemble des informations est visualisable de faon graphique, ce qui est trs pratique. 10. les informations les plus intressantes sont: - "System MIB", rvlant les caractristiques techniques essentielles sur la machine; - "Services", rvlant les services que dlivre la machine; - "Accounts", option affichable uniquement envers les machines Windows NT, qui rvle les noms des comptes (logins) des utilisateurs de la machine; - "Shares", pour l'affichage des rpertoires partags, ... Il existe beaucoup d'autres services qui peuvent vous dlivrer des informations, mais les traiter tous ferait office d'une encyclopdie. En faisant succintement le tour de ces quelques services vous devriez tre mmes d'tablir d'autres stratgies de rcuprations d'informations adaptes au systme distant. III - Attaque du systme cible. Aprs avoir dtermin comment fonctionnait un systme distant, et en avoir rcupr de nombreuses informations, le pirate va passer l'attaque du systme. A - La configuration du systme. Si un systme s'avre mal configur, le pirate peut tenter d'exploiter des erreurs de configuration, compromettant la scurit du systme. Ces erreurs de configuration ncessitent de bien connaitre le fonctionnement du systme cibl car le principe de leur exploitation n'est pas le mme que pour les failles. Elles sont variables, spcifiques certains environnements, ce qui rend la facilit de leur exploitation, ainsi que les processus qui permettent de les exploiter, quasi-alatoires. Configuration par dfaut: la faiblesse premire d'un systme. En guise d'exemple de problme de configuration, on pourrait parler des systmes dont la configuration d'origine n'a pas t retouche. les routeurs sont potentiellement les premires victimes de ces problmes. 1. le pirate va s'attaquer un systme spcifique; 2. Il va regarder de quel type de systme il s'agit (rvlation d'informations par SNMP ou par les

bannires); 3. I1 va rechercher des documents relatifs la configuration d'origine du systme (comme des listes contenant les mots de passes par dfaut pour l'accs l'administration du systme); 4. I1 va tester ces logins et/ou mots de passes. B - Failles Iogicielles et exploits. Au niveau des serveurs, les failles logicielles recherches se portent, quasiment tout le temps, sur les applications serveurs. Trouver des failles n'est pas une chose facile, et il n'est pas rare que les pirates, mme les plus expriments, exploitent des failles dja connues et publiques. Cette exploitation de failles se fait couramment par ce qu'on appelle des "exploits". Un exploit est le processus (un logiciel, une suite de manipulations, etc.) qui permet d'utiliser une faille pour porter atteinte au systme cible. Failles et exploits sont recenss sur des sites spcialiss comme SecurityFocus ( http://www.securityfocus.com), Securiteam (http://www.securiteam.com)... Il devient donc facile de tester d'ventuelles vulnrabilits sur un systme l'aide des informations que diffusent ces sites. Certains logiciels permettent de reprer et d'exploiter une faille sans qu'aucune comptence technique ne soit requise. Les utilisateurs de ce type de logiciels sont aussi connus sous le nom de "Script Kiddies" ou "Lamers".

C - Le "bruteforce". Le BruteForce est une technique qui consiste tester, pour un nom d'utilisateur donn, des sries de mots de passes. Cette technique est efficace sur les systmes ne mettant pas de limite aux nombres d'essais de saisies de mots de passes. Rferrez vous HackerZ Voice n 6 pour en savoir plus sur les mthodes et processus d'identification. Comme il est possible de le constater, l'attaque est ce qu'il y a de plus court faire, car c'est ou blanc, ou noir. L'attaque marche ou elle ne marche pas. Certes certaines attaques peuvent-tre longues, d'autres trs brves, d'autres compliques... Des faiblesses peuvent apparaitre lors de la recherche d'informations sur le systme, permettant de raliser une attaque sur l'instant.