hackernew-110624131202-phpapp02

39
Faculté des sciences et techniques de SETTAT Master Système et Réseau 2009 / 2010 Présentés par: OTMANI SI MOHAMED

Transcript of hackernew-110624131202-phpapp02

  • Facult des sciences et techniques de SETTATMaster Systme et Rseau 2009 / 2010Prsents par:OTMANI SI MOHAMED

  • Introduction aux attaques

    Tout ordinateur connect un rseau informatique est potentiellement vulnrable une attaque. Une attaque est l'exploitation d'une faille d'un systme informatique (systme d'exploitation, logiciel ou bien mme de l'utilisateur).Sur Internet des attaques ont lieu en permanence, raison de plusieurs attaques par minute sur chaque machine connecte. Ces attaques sont pour la plupart lances automatiquement partir de machines infectes (par des virus, chevaux de Troie, vers, Les motivations des attaques peuvent tre de diffrentes sortes:

    obtenir un accs au systme; voler des informations, tels que des secrets industriels ou des proprits intellectuelles; rcuprer des informations personnelles sur un utilisateur; rcuprer des donnes bancaires; s'informer sur l'organisation (entreprise de l'utilisateur, etc.); troubler le bon fonctionnement d'un service; utiliser le systme de l'utilisateur comme rebond pour une attaque;

  • Les types dattaquesLes hackers utilisent plusieurs techniques dattaques. ces attaques peuvent tre regroupes en trois familles diffrentes

    Les attaques directes.

    Les attaques indirectes par reband.

    Les attaques indirectes par rponses

  • Les attaques directes C'est la plus simple des attaques. Le hacker attaque directement sa victime partir de son ordinateur. La plupart des "script kiddies" utilisent cette technique. En effet, les programmes de hack qu'ils utilisent ne sont que faiblement paramtrable, et un grand nombre de ces logiciels envoient directement les paquets la victime. Si vous vous faites attaqus de la sorte, il y a de grandes chances pour que vous puissiez remonter l'origine de l'attaque,

  • Les attaques indirectes par rebond Cette attaque est trs prise des hackers. En effet, le rebond a deux avantages :

    Masquer l'identit (l'adresse IP) du hacker. ventuellement, utiliser les ressources de l'ordinateur intermdiaire car il est plus puissant (CPU, bande passante...) pour attaquer. Le principe en lui mme, est simple : Les paquets d'attaque sont envoys l'ordinateur intermdiaire, qui rpercute l'attaque vers la victime. D'o le terme de rebond.

  • Les attaques indirectes par rponse Cette attaque est un driv de l'attaque par rebond. Elle offre les mme avantages, du point de vue du hacker. Mais au lieu d'envoyer une attaque l'ordinateur intermdiaire pour qu'il la rpercute, l'attaquant va lui envoyer une requte. Et c'est cette rponse la requte qui va tre envoye l'ordinateur victime L aussi, il n'est pas ais de remonter la source... Lorsque vous faites attaquer, cela peut se faire en direct ou via un ou plusieurs ordinateurs intermdiaires. Le fait de comprendre l'attaque va vous permettre de savoir comment remonter au hacker.

  • Qu'est-ce que c'est ? L'attaque Snork vise les systmes WinNT. Elle consite envoyer une trame UDP provenant du port 7 (Echo), 19 (Chargen) ou 135, et ayant pour destination le port 135 (Microsoft Location Service). Si les services sont lancs, cela a pour consquence d'tablir une communication de dure infinie, et gnre des trames non ncessaires. Cela rduit considrablement la bande passante et la puissance CPU. Consquences : Ralentissement systme Perte de bande passante

    Comment s'en protger ? Configurer les routeurs et firewalls pour bloquer les packets UDP ayant une destination de port 135 et ayant un port source de 7,19 ou 135 et qui proviennent de l'extrieur de votre rseau. Microsoft a fourni un patch.

  • Qu'est-ce que le spoofing IP ?

    Comme l'indique le schma ci-dessus, la technique du spoofing (difficile mettre en oeuvre) peut permettre un pirate de faire passer des paquets sur un rseau sans que ceux-ci ne soient intercepts par le systme de filtrage de paquets (firewall).. Ainsi, un paquet spoof avec l'adresse IP d'une machine interne semblera provenir du rseau interne et sera transmis la machine cible, tandis qu'un paquet contenant une adresse IP externe sera automatiquement rejet par le firewall.

  • Modification de l'en-tte TCP Sur internet, les informations circulent grce au protocole IP, qui assure l'encapsulation des donnes dans des structures appeles paquets (ou plus exactement datagramme IP). Voici la structure d'un datagramme :

  • Masquer son adresse IP avec la technique du spoofing revient modifier le champ source afin de simuler un datagramme provenant d'une autre adresse IP (donc d'une autre machine). Toutefois, sur internet, les paquets sont gnralement transports par le protocole TCP, qui assure une transmission dite fiable. Ainsi, avant d'accepter un paquet, une machine doit auparavant accuser rception de celui-ci auprs de la machine mettrice, et attendre que cette dernire confirme la bonne rception de l'accus. Dans le cadre d'une attaque par spoofing, l'attaquant n'a aucune information car les rponses de la machine cible vont vers une autre machine du rseau (on parle alors d'attaque l'aveugle, en anglais blind attack).

  • le travail du hacker consiste alors invalider la machine spoofe en la rendant injoignable pendant toute la dure de l'attaque. Lorsque la machine spoofe est invalide, la machine cible attend un paquet contenant l'accus de rception et le bon numro de squence. Tout le travail du pirate consiste alors "deviner" le numro de squence renvoyer au serveur afin que la relation de confiance soit tablie. Pour cela, les pirates utilisent gnralement le source routing, c'est--dire qu'ils utilisent le champ option de l'en-tte IP afin d'indiquer une route de retour spcifique pour le paquet. Ainsi, grce au sniffing, le pirate sera mme de lire le contenu des trames de retour ...

  • Ainsi, en connaissant le dernier numro de squence mis, le pirate tablit des statistiques concernant son incrmentation et envoie des accuss de rception jusqu' obtenir le bon numro de squence. Qu'est-ce que c'est ? L'objectif de cette attaque est de rdiriger, leur insu, des Internautes vers des sites pirates. Pour la mener bien, le pirate utilise des faiblesses du protocole DNS (Domain Name System) et/ou de son implmentation au travers des serveurs de nom de domaine. A titre de rappel, le protocole DNS met en oeuvre les mcanismes permettant de faire la correspondance entre une adresse IP et un nom de machine (ex.: www.truc.com). Il existe deux principales attaques de type DNS Spoofing : le DNS ID Spoofing et le DNS Cache Poisoning. Concrtement, le but du pirate est de faire correspondre l'adresse IP d'une machine qu'il contrle un nom rel et valide d'une machine publique.

  • DNS ID Spoofing Si une machine A veut communiquer avec une machine B, la machine A a obligatoirement besoin de l'adresse IP de la machine B. Cependant, il se peut que A possde uniquement le nom de B. Dans ce cas, A va utiliser le protocole DNS pour obtenir l'adresse IP de B partir de son nom. Une requte DNS est alors envoye un serveur DNS, dclar au niveau de A, demandant la rsolution du nom de B en son adresse IP. Pour identifier cette requte une numro d'identification (en fait un champs de l'en-tte du protocole DNS) lui est assign. Ainsi, le serveur DNS enverra la rponse cette requte avec le mme numro d'identification. L'attaque va donc consister rcuprer ce numro d'identification (en sniffant, quand l'attaque est effectue sur le mme rseau physique, ou en utilisant une faille des systmes d'exploitation ou des serveurs DNS) pour pouvoir envoyer une rponse falsifie avant le serveur DNS. Ainsi, la machine A utilisera, sans le savoir, l'adresse IP du pirate et non celle de la machine B initialement destinatrice. Le schma ci-dessous illustre simplement le principe du DNS ID Spoofing.

  • DNS Cache Poisoning Les serveurs DNS possdent un cache permettant de garder pendant un certain temps la correspondance entre un nom de machine et son adresse IP. En effet, un serveur DNS n'a les correspondances que pour les machines du domaine sur lequel il a autorit. Pour les autres machines, il contacte le serveur DNS ayant autorit sur le domaine auquel appartiennent ces machines. Ces rponses, pour viter de sans cesse les redemander aux diffrents serveurs DNS, seront gardes dans ce cache. Le DNS Cache Poisoning consiste corrompre ce cache avec de fausses informations. Pour cela le pirate doit avoir sous son contrle un nom de domaine (par exemple fourbe.com) et le serveur DNS ayant autorit sur celui-ci ns.fourbe.com. L'attaque se droule en plusieurs tapes : Le pirate envoie une requte vers le serveur DNS cible demandant la rsolution du nom d'une machine du domaine fourbe.com (ex.: www.fourbe.com) Le serveur DNS cible relaie cette requte ns.fourbe.com (puisque c'est lui qui a autorit sur le domaine fourbe.com)

  • Le serveur DNS du pirate (modifi pour l'occasion) enverra alors, en plus de la rponse, des enregistrements additionnels (dans lesquels se trouvent les informations falsifies savoir un nom de machine publique associ une adresse IP du pirate)

    Les enregistrements additionnels sont alors mis dans le cache du serveur DNS cible Une machine faisant une requte sur le serveur DNS cible demandant la rsolution d'un des noms corrompus aura pour rponse une adresse IP autre que l'adresse IP relle associe cette machine. Comment s'en protger ? Mettre jour les serveurs DNS (pour viter la prdictibilit des numros d'identification et les failles permettant de prendre le contrle du serveur)

    Configurer le serveur DNS pour qu'il ne rsolve directement que les noms des machines du domaine sur lequel il a autorit Limiter le cache et vrifier qu'il ne garde pas les enregistrements additionnels.

  • Les backdoors

    Les backdoors sont des accs cachs sur un systme ou sur une application. Le principe d'une backdoors est similaire celui du cheval de Troie. L'objectif est de modifier ou d'utiliser un programme pour accder discrtement un ordinateur distant, modifier le comportement d'un programme, devenir administrateur. Les backdoors prsentes dans les logiciels.

    Parfois, certains logiciels (messagerie, utilitaires systmes) peuvent contenir des backdoors, c'est--dire que, pour certaines commandes suivies d'arguments particuliers ou avec un mot de passe bien dfini, le logiciel peut avoir un comportement diffrent (permettre l'utilisateur de devenir root, renvoyer un shell systme l'utilisateur, etc.).Ces "trappes" sont inclues directement dans le code du logiciel. Certains dveloppeurs sont soucieux de possder un accs sur tous les systmes utilisant leurs logiciels. Par exemple, Ken Thompson, l'un des pres d'UNIX, avoue avoir modifi l'application /bin/login en permettant l'accs direct au systme par la saisie d'un mot de passe prcompil en dur. Thompson pouvait ainsi visiter tous les systmes utilisant son application modifie

  • Cette attaque, appele aussi ARP Redirect, redirige le trafic rseau dune ou plusieurs machine vers la machine du pirate. Cest une technique de spoofing efficace bien que dtectable dans les logs dadministration; elle consiste sattribuer ladresse IP de la machine cible, cest--dire faire correspondre son adresse IP ladresse MAC de la machine pirate dans les tables ARP des machines du rseau. Pour cela il suffit en fait denvoyer rgulirement des paquets ARP_reply en broadcast, contenant ladresse IP cible et la fausse adresse MAC. Cela a pour effet de modifier les tables dynamiques de toutes les machines du rseau. Celles-ci enverront donc leur trames ethernet la machine pirate tout en croyant communiquer avec la cible, et ce de faon transparente pour les switches. De son ct, la machine pirate stocke le traffic et le renvoie la vraie machine en forgeant des trames ethernet comportant la vraie adresse MAC (indpendament de ladresse IP). Cette technique est trs puissante puisquelle opre au niveau ethernet, permettant ainsi de spoofer le traffic IP et mme TCP (cela dpend entre autres des dlais engendrs par la machine pirate). Dautre part, elle permet de contourner les barrires que constituent habituellement les switches (partitionnement de rseaux). ARP-Poisoning

  • a solution la plus immdiate consiste saisir manuellement sur chaque poste la table de toutes les adresses physiques prsentes sur le rseau local. Si elle est immdiate, cette solution est quasiment inapplicable compte tenu du nombre d'htes connects au rseau local.

    Une solution correcte consiste mettre en place un serveur DHCP avec une liste ferme de correspondance entre adresses physiques (MAC) et IP. Relativement la solution prcdente, la liste exhaustive des adresses physiques est centralise sur le serveur DHCP. On peut ensuite configurer la journalisation du service pour que toute requte DHCP relative une adresse MAC inconnue gnre un courrier vers l'administrateur systme.

    Enfin, On peut utiliser sous UNIX, un logiciel spcialis: arpwatch qui permet de surveiller tout le trafic ARP.Les NIDS peuvent aussi dtecter ce type d'attaques (notamment Prelude-IDS).solution

  • Man In the Middle-MITM

    Les attaques de type Man-In-the-Middle sont trs faciles comprendre.

    Man-in-the-Middle signifie l'homme du milieu. Cette attaque fait intervenir trois protagonistes: le client, le serveur et l'attaquant.

    Le but de l'attaquant est de se faire passer pour le client auprs du serveur et se faire passer pour le serveur auprs du client. Il devient ainsi l'homme du milieu. Cela permet de surveiller tout le trafic rseau entre le client et le serveur, et de le modifier sa guise pour l'obtention d'informations (mots de passe, accs systme, etc.).

  • Les techniques de scan

    C'est trs simple: lorsqu'un serveur offre un service particulier (Web, messagerie, mail), il excute un programme assurant ce service. Ce programme est en attente de connexions. Les clients devant accder ce service doivent connatre l'adresse IP du serveur et le numro de port associ au service. Ce numro de port a t attribu suivant le document standard RFC1010 au programme excutant ce service. Sur les systmes Linux et *BSD la liste de ces numros est disponible dans le fichier /etc/services. La plupart des services ont un numro de port bien dfini. Par exemple, un serveur de messagerie utilise le port 25, un serveur Web le port 80... Lorsqu'un service est en coute sur un port, on dit que le numro de port associ ce service est ouvert. L'intrt du scanner est trs simple: il permet de trouver dans un dlai trs court, tous les ports ouverts sur une machine distante. Il existe diffrents types de scanner, certains se contentent juste de donner: la liste des ports ouverts, le type et la version de l'OS tournant sur le serveur Exemple avec Nmap

  • Pour connatre les ports ouverts sur une machine, Nmap procde l'envoi de paquets sur tous les ports de cette machine et analyse les rponses. Bien sr, il y a diffrents types de scans, donc diffrents types d'envois et donc, diffrents types de rponses.Nous nous intresserons aux scans utilisant le protocole TCP

  • Le scan vanilla TCP connect

    Nmap procde l'appel de la fonction connect() sur tous les ports de la machine. Ce type de scan est facilement reprable.Le scan en vanilla TCP connect est le scan par dfaut avec Nmap, la commande est:Les scans furtifs

    Le scan en connexion demi-ouverte ou "Syn-scan" Nmap envoie sur chaque port un paquet TCP avec le flag SYN arm ; si un port est ouvert, il renverra un paquet avec les flags SYN et ACK arms. Illustration:

  • La commande se fait par l'appel de nmap avec l'option -sS:

  • Les scans Xmas, FIN et NULL Le scan FIN consiste en l'envoi de paquets TCP avec seulement le flag FIN arm. La commande se fait par l'appel de nmap avec l'option -sF: Le scan NULL consiste en l'envoi de paquets TCP avec seulement le flag NULL arm. La commande se fait par l'appel de nmap avec l'option -sN: Le Xmas scan (traduisez le scan de Nol) consiste en l'envoi de paquets TCP avec les flags FIN/URG/PUSH arms. La commande se fait par l'appel de nmap avec l'option -sX:

  • Pour ces trois types de scans, les systmes rpondent avec un paquet RST si le port est ferm et ne rpondent pas si le port est ouvert. : La dtermination du systme d'exploitation avec Nmap

  • Comment s'en protger ?

    Configurer votre pare-feu pour empcher les scans: [root@nowhere /root]# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT Nmap parvient dterminer le systme d'exploitation tournant sur la machine cible. La machine cible utilise un noyau Linux 2.4.21-grsec. Nmap ne s'est pas tromp.Il faut savoir que chaque systme d'exploitation construit ses paquets d'une manire bien particulire. Certains champs au niveau de la couche IP ou TCP sont propres chaque systme d'exploitation. Nmap contient une base de donnes d'un grand nombre de systmes. Nmap envoie donc des paquets tests la machine cible et compare les paquets reus en rponse ceux de sa base de donnes et en dduit le type de systme.Cette base de donnes est mise jour en fonction des diffrentes version de Nmap.

  • Dnis de serviceLe "Denial-of-service" ou dni de service est une attaque trs volue visant rendre muette une machine en la submergeant de traffic inutile. Il peut y avoir plusieurs machines l'origine de cette attaque (c'est alors une attaque distribue, voir fiche DDoS) qui vise anantir des serveurs, des sous rseaux, etc. D'autre part, elle reste trs difficile contrer ou viter. Types d'attaques Parmi les attaques propres crer un dni de service, nous pouvons rappeler entre autres :les buffers overflows (mails, ping of Death...) l'attaque SYN l'attaque Teardrop l'attaque SMURF les virus

  • Le SYN flood

    Cette technique consiste saturer un serveur en envoyant une multitude de paquets TCP avec le flag SYN arm, cela aura pour but de crer une multitude de connexions demandant un grand nombre de ressources systme.La plupart des attaques par SYN-flood sont bien dtectes par diffrents firewalls.Comment s'en protger ?

    Exemple avec iptables limitant les demandes d'tablissement de connexion TCP acceptes une par seconde: [root@nowhere /root]# iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT

  • Attaque par rflexion: Smurfing

    Cette attaque est base sur le protocole ICMP. Lorsqu'on envoie un ping un rseau en broadcast (par exemple 255.255.255.0), le paquet est envoy chacune des machines du rseau.

    Un pirate envoie un ping en broadcast sur un rseau (A) avec une adresse IP source correspondant celle de la machine cible (B). Le flux entre le port ping de la cible (B) et du rseau (A) sera multipli par le nombre de machines sur le rseau (A).

    Cela conduit une saturation de la bande passante du rseau (A) et du systme de traitement de paquets de (B).Comment s'en protger ?Configurez votre firewall pour limiter le traffic ICMP. Exemple avec iptables: # iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT

  • Qu'est-ce que le phishing ?

    Le phishing est un type de falsification qui a pour but de voler votre identit. Ainsi, une personne malveillante tente d'obtenir des informations, telles que vos numros de carte de crdit, vos mots de passe, vos numros de compte ou autres informations confidentielles sous de faux prtextes. Ce type d'attaque se produit gnralement par l'intermdiaire de messages lectroniquesQuel est le principe du phishing ?

    Un utilisateur malveillant envoie des millions de messages falsifis qui semblent provenir de sites Web connus ou de sites de confiance, tels que ceux de votre banque ou de votre gestionnaire de carte de crdit. Ces messages, et les sites Web auxquels ils renvoient, sont souvent si proches de l'original que de nombreuses personnes s'y trompent et communiquent leurs numros de carte de crdit, leurs mots de passe, leurs numros de compte et autres informations personnelles.

  • Les scripts et applets dans le HTMLMalheureusement, d'autres moyens existent, typiquement venus de l'Internet, dans les pages HTML. En effet, pour rendre les pages HTML plus vivantes, il devient possible d'y insrer des composantsactifs. Parmi ceux-ci nous trouvons:

    Les scripts (javascript, vbscript).

    Ce ne sont pas les plus dangereux parce que les langages de scripts offrent rarement des fonctions pouvant tre utilises des fins vraiment destructrices. Ils disposent cependant de la possibilit de lancer des excutables locaux, c'est en cela qu'ils peuvent devenir dangereux.Les applets Java ou les composants ActiveX.

    Plus puissants, ils sont introduits dans les pages HTML sous la forme de composants compils (ou pr compils). Leur contenu n'est pas visible et les outils qui permettent de les construire (Java ou Visual Basic) offrent des fonctions permettant de raliser des oprations extrmement dangereuses.

  • Encapsulation d'IP dans d'autres protocoles.

    Certains logiciels permettent d'encapsuler le protocole IP dans d'autres protocoles comme SSH, HTTP, etc.. Ce type d'encapsulation peut tre la base de nombreuses attaques rseaux.Par exemple, imaginons cette situation: un pirate veut se connecter sur le port FTP (21) d'une machine A d'un rseau protg par un firewall B. B n'autorise et n'assure que le trafic HTTP. Si le pirate veut se connecter sur A, il encapsule les paquets destination de A dans des requtes HTTP destines B. B accepte ces paquets car ils reposent sur le protocole HTTP. Si B est mal configur, il enverra A les paquets lui tant destins.

  • tude de cas

  • Downgrade attack SSH:

    Une attaque particulirement sournoise appele "downgrade attack" ou attaque par abaissement de version peut tre utilise une fois dans la position de l'homme du milieu ("man in the middle"). Le principe est d'abaisser la version d'un protocole en changeant des donnes l'intrieur de paquets, pour une autre version connue pour tre vulnrable.

    --------------- Principe ----------------

    SSH est le plus fameux exemple d'une attaque par abaissement de version o l'attaquant force le client et le serveur utiliser le protocole vulnrable SSH1. Le client envoie une requte pour tablir un lien SSH vers le serveur et lui demande quelle version il supporte. Les possibilits de rponse du serveur dont les suivantes: - ssh-2.xx Le serveur supporte seulement SSH2 - ssh-1.99 LE serveur supporte SSH1 et SSH2 - ssh-1.51 Le serveur supporte seulement SSH1

  • Dans notre exemple, le serveur est configur pour supporter la fois SSH1 et SSH2 et le client est configur galement pour utiliser SSH1 et SSH2 mais SSH2 de manire prfre. Supposons que le serveur est configur pour SSH1 et SSH2, le hacker va modifier la rponse en changeant le champ "1.99" en "1.51" pour indiquer au client que le serveur ne supporte que SSH1 et ainsi forcer le client ouvrir un lien SSH1.

    Le client qui pense utiliser le protocole scuris SSH2, va se conncter avec SSH1 et le mot de passe sera immdiatement captur par le hacker en raison du faible mcanisme d'authentification SSH1.