Webinaire Cohésion | Le pouvoir du mentorat au travail : pour qui, pourquoi, ...
Hackernew
1. Faculté des sciences et techniques de SETTAT Master Système et Réseau 2009 / 2010 Exploit && les attaques réseaux Présentés par: OTMANI SI MOHAMED
2.
3.
4. 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 paramétrable, et un grand nombre de ces logiciels envoient directement les paquets à la victime. Si vous vous faites attaqués de la sorte, il y a de grandes chances pour que vous puissiez remonter à l'origine de l'attaque,
5.
6. Les attaques indirectes par réponse Cette attaque est un dérivé de l'attaque par rebond. Elle offre les même avantages, du point de vue du hacker. Mais au lieu d'envoyer une attaque à l'ordinateur intermédiaire pour qu'il la répercute, l'attaquant va lui envoyer une requête. Et c'est cette réponse à la requête qui va être envoyée à 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 intermédiaires. Le fait de comprendre l'attaque va vous permettre de savoir comment remonter au hacker.
7. Qu'est-ce que c'est ? L'attaque Snork vise les systèmes 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 lancés, cela a pour conséquence d'établir une communication de durée infinie, et génère des trames non nécessaires. Cela réduit considérablement la bande passante et la puissance CPU. Conséquences : Ralentissement système Perte de bande passante Comment s'en protéger ? 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'extérieur de votre réseau. Microsoft a fourni un patch. L'attaque Snork
8. Qu'est-ce que le spoofing IP ? Comme l'indique le schéma ci-dessus, la technique du spoofing ( difficile à mettre en oeuvre ) peut permettre à un pirate de faire passer des paquets sur un réseau sans que ceux-ci ne soient interceptés par le système de filtrage de paquets (firewall).. Ainsi, un paquet spoofé avec l'adresse IP d'une machine interne semblera provenir du réseau interne et sera transmis à la machine cible, tandis qu'un paquet contenant une adresse IP externe sera automatiquement rejeté par le firewall.
9. Modification de l'en-tête TCP Sur internet, les informations circulent grâce au protocole IP, qui assure l'encapsulation des données dans des structures appelées paquets (ou plus exactement datagramme IP ). Voici la structure d'un datagramme :
10. 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 généralement transportés par le protocole TCP, qui assure une transmission dite fiable. Ainsi, avant d'accepter un paquet, une machine doit auparavant accuser réception de celui-ci auprès de la machine émettrice, et attendre que cette dernière confirme la bonne réception de l'accusé. Dans le cadre d'une attaque par spoofing, l'attaquant n'a aucune information car les réponses de la machine cible vont vers une autre machine du réseau (on parle alors d' attaque à l'aveugle , en anglais blind attack ).
11. le travail du hacker consiste alors à invalider la machine spoofée en la rendant injoignable pendant toute la durée de l'attaque. Lorsque la machine spoofée est invalidée, la machine cible attend un paquet contenant l'accusé de réception et le bon numéro de séquence. Tout le travail du pirate consiste alors à "deviner" le numéro de séquence à renvoyer au serveur afin que la relation de confiance soit établie. Pour cela, les pirates utilisent généralement le source routing , c'est-à-dire qu'ils utilisent le champ option de l'en-tête IP afin d'indiquer une route de retour spécifique pour le paquet. Ainsi, grâce au sniffing, le pirate sera à même de lire le contenu des trames de retour ...
12. Ainsi, en connaissant le dernier numéro de séquence émis, le pirate établit des statistiques concernant son incrémentation et envoie des accusés de réception jusqu'à obtenir le bon numéro de séquence. Qu'est-ce que c'est ? L'objectif de cette attaque est de rédiriger, à 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 implémentation au travers des serveurs de nom de domaine. A titre de rappel, le protocole DNS met en oeuvre les mécanismes 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 . Concrètement, le but du pirate est de faire correspondre l'adresse IP d'une machine qu'il contrôle à un nom réel et valide d'une machine publique. Le DNS Spoofing
13. 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 possède 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 requête DNS est alors envoyée à un serveur DNS, déclaré au niveau de A, demandant la résolution du nom de B en son adresse IP. Pour identifier cette requête une numéro d'identification (en fait un champs de l'en-tête du protocole DNS) lui est assigné. Ainsi, le serveur DNS enverra la réponse à cette requête avec le même numéro d'identification. L'attaque va donc consister à récupérer ce numéro d'identification (en sniffant, quand l'attaque est effectuée sur le même réseau physique, ou en utilisant une faille des systèmes d'exploitation ou des serveurs DNS) pour pouvoir envoyer une réponse falsifiée 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 schéma ci-dessous illustre simplement le principe du DNS ID Spoofing.
14. DNS Cache Poisoning Les serveurs DNS possèdent 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 réponses, pour éviter de sans cesse les redemander aux différents serveurs DNS, seront gardées dans ce cache. Le DNS Cache Poisoning consiste à corrompre ce cache avec de fausses informations. Pour cela le pirate doit avoir sous son contrôle un nom de domaine (par exemple fourbe.com) et le serveur DNS ayant autorité sur celui-ci ns.fourbe.com. L'attaque se déroule en plusieurs étapes : Le pirate envoie une requête vers le serveur DNS cible demandant la résolution du nom d'une machine du domaine fourbe.com (ex.: www.fourbe.com) Le serveur DNS cible relaie cette requête à ns.fourbe.com (puisque c'est lui qui a autorité sur le domaine fourbe.com)
15. Le serveur DNS du pirate (modifié pour l'occasion) enverra alors, en plus de la réponse, des enregistrements additionnels (dans lesquels se trouvent les informations falsifiées à 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 requête sur le serveur DNS cible demandant la résolution d'un des noms corrompus aura pour réponse une adresse IP autre que l'adresse IP réelle associée à cette machine. Comment s'en protéger ? Mettre à jour les serveurs DNS (pour éviter la prédictibilité des numéros d'identification et les failles permettant de prendre le contrôle du serveur) Configurer le serveur DNS pour qu'il ne résolve directement que les noms des machines du domaine sur lequel il a autorité Limiter le cache et vérifier qu'il ne garde pas les enregistrements additionnels.
16. Les backdoors Les backdoors sont des accès cachés sur un système 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 accèder discrètement à un ordinateur distant, modifier le comportement d'un programme, devenir administrateur. Les backdoors présentes dans les logiciels. Parfois, certains logiciels (messagerie, utilitaires systèmes) peuvent contenir des backdoors, c'est-à-dire que, pour certaines commandes suivies d'arguments particuliers ou avec un mot de passe bien défini, le logiciel peut avoir un comportement différent (permettre à l'utilisateur de devenir root, renvoyer un shell système à l'utilisateur, etc.). Ces "trappes" sont inclues directement dans le code du logiciel. Certains développeurs sont soucieux de posséder un accès sur tous les systèmes utilisant leurs logiciels. Par exemple, Ken Thompson, l'un des pères d'UNIX, avoue avoir modifié l'application /bin/login en permettant l'accès direct au système par la saisie d'un mot de passe précompilé en dur. Thompson pouvait ainsi visiter tous les systèmes utilisant son application modifiée
17. Cette attaque, appelée aussi ARP Redirect, redirige le trafic réseau d’une ou plusieurs machine vers la machine du pirate. C’est une technique de spoofing efficace bien que détectable dans les logs d’administration; elle consiste à s’attribuer l’adresse IP de la machine cible, c’est-à-dire à faire correspondre son adresse IP à l’adresse MAC de la machine pirate dans les tables ARP des machines du réseau. Pour cela il suffit en fait d’envoyer régulièrement des paquets ARP_reply en broadcast, contenant l’adresse IP cible et la fausse adresse MAC. Cela a pour effet de modifier les tables dynamiques de toutes les machines du réseau. Celles-ci enverront donc leur trames ethernet à la machine pirate tout en croyant communiquer avec la cible, et ce de façon transparente pour les switches. De son côté, la machine pirate stocke le traffic et le renvoie à la vraie machine en forgeant des trames ethernet comportant la vraie adresse MAC (indépendament de l’adresse IP). Cette technique est très puissante puisqu’elle opère au niveau ethernet, permettant ainsi de spoofer le traffic IP et même TCP (cela dépend entre autres des délais engendrés par la machine pirate). D’autre part, elle permet de contourner les barrières que constituent habituellement les switches (partitionnement de réseaux). ARP-Poisoning
18. a solution la plus immédiate consiste à saisir manuellement sur chaque poste la table de toutes les adresses physiques présentes sur le réseau local. Si elle est immédiate, cette solution est quasiment inapplicable compte tenu du nombre d'hôtes connectés au réseau local. Une solution correcte consiste à mettre en place un serveur DHCP avec une liste «fermée» de correspondance entre adresses physiques (MAC) et IP. Relativement à la solution précédente, la liste exhaustive des adresses physiques est centralisée sur le serveur DHCP. On peut ensuite configurer la journalisation du service pour que toute requête DHCP relative à une adresse MAC inconnue génère un courrier vers l'administrateur système. Enfin, On peut utiliser sous UNIX, un logiciel spécialisé : arpwatch qui permet de surveiller tout le trafic ARP. Les NIDS peuvent aussi détecter ce type d'attaques (notamment Prelude-IDS). solution
19.
20. Man In the Middle - MITM Les attaques de type Man-In-the-Middle sont très 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 auprès du serveur et se faire passer pour le serveur auprès du client. Il devient ainsi l'homme du milieu. Cela permet de surveiller tout le trafic réseau entre le client et le serveur, et de le modifier à sa guise pour l'obtention d'informations (mots de passe, accès système, etc.).
21. Les techniques de scan C'est très simple : lorsqu'un serveur offre un service particulier (Web, messagerie, mail), il exécute un programme assurant ce service. Ce programme est en attente de connexions. Les clients devant accéder à ce service doivent connaître l'adresse IP du serveur et le numéro de port associé au service. Ce numéro de port a été attribué suivant le document standard RFC1010 au programme exécutant ce service. Sur les systèmes Linux et *BSD la liste de ces numéros est disponible dans le fichier /etc/services . La plupart des services ont un numéro de port bien défini. 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 numéro de port associé à ce service est ouvert. L'intérêt du scanner est très simple : il permet de trouver dans un délai très court, tous les ports ouverts sur une machine distante. Il existe différents 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
22. Pour connaître les ports ouverts sur une machine, Nmap procède à l'envoi de paquets sur tous les ports de cette machine et analyse les réponses. Bien sûr, il y a différents types de scans, donc différents types d'envois et donc, différents types de réponses. Nous nous intéresserons aux scans utilisant le protocole TCP
23.
24. La commande se fait par l'appel de nmap avec l'option -sS :
25. 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 Noël) consiste en l'envoi de paquets TCP avec les flags FIN/URG/PUSH armés. La commande se fait par l'appel de nmap avec l'option -sX :
26. Pour ces trois types de scans, les systèmes répondent avec un paquet RST si le port est fermé et ne répondent pas si le port est ouvert. : La détermination du système d'exploitation avec Nmap
27.
28. Comment s'en protéger ? Configurer votre pare-feu pour empêcher 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 à déterminer le système 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 système d'exploitation construit ses paquets d'une manière bien particulière. Certains champs au niveau de la couche IP ou TCP sont propres à chaque système d'exploitation. Nmap contient une base de données d'un grand nombre de systèmes. Nmap envoie donc des paquets tests à la machine cible et compare les paquets reçus en réponse à ceux de sa base de données et en déduit le type de système. Cette base de données est mise à jour en fonction des différentes version de Nmap.
29.
30. 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 créer une multitude de connexions demandant un grand nombre de ressources système. La plupart des attaques par SYN-flood sont bien détectées par différents firewalls. Comment s'en protéger ? Exemple avec iptables limitant les demandes d'établissement de connexion TCP acceptées à une par seconde: [root@nowhere /root]# iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
31. Attaque par réflexion : Smurfing Cette attaque est basée sur le protocole ICMP. Lorsqu'on envoie un ping à un réseau en broadcast (par exemple 255.255.255.0), le paquet est envoyé à chacune des machines du réseau. Un pirate envoie un ping en broadcast sur un réseau (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 réseau (A) sera multiplié par le nombre de machines sur le réseau (A). Cela conduit à une saturation de la bande passante du réseau (A) et du système de traitement de paquets de (B). Comment s'en protéger ? 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
32. 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 numéros de carte de crédit, vos mots de passe, vos numéros de compte ou autres informations confidentielles sous de faux prétextes. Ce type d'attaque se produit généralement par l'intermédiaire de messages électroniques Quel est le principe du phishing ? Un utilisateur malveillant envoie des millions de messages falsifiés 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 crédit. 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 numéros de carte de crédit, leurs mots de passe, leurs numéros de compte et autres informations personnelles.
33.
34.
35. 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 réseaux. Par exemple, imaginons cette situation : un pirate veut se connecter sur le port FTP (21) d'une machine A d'un réseau protégé 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 requêtes HTTP destinées à B. B accepte ces paquets car ils reposent sur le protocole HTTP. Si B est mal configuré, il enverra à A les paquets lui étant destinés.
37. Downgrade attack SSH: Une attaque particulièrement sournoise appelée " downgrade attack " ou attaque par abaissement de version peut être utilisée 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 données à l'intérieur de paquets, pour une autre version connue pour être vulnérable. --------------- 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 vulnérable SSH1. Le client envoie une requête pour établir un lien SSH vers le serveur et lui demande quelle version il supporte. Les possibilités de réponse 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
38. 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 manière préférée. Supposons que le serveur est configuré pour SSH1 et SSH2, le hacker va modifier la réponse 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 sécurisé SSH2, va se connécter avec SSH1 et le mot de passe sera immédiatement capturé par le hacker en raison du faible mécanisme d'authentification SSH1.