Points clés
1. Le Hacking : Un Art de Résolution de Problèmes Non Conventionnelle
L'essence du hacking réside dans la découverte d'utilisations inattendues ou négligées des lois et propriétés d'une situation donnée, puis dans leur application de manière nouvelle et inventive pour résoudre un problème.
Au-delà des Limites Légales. Le hacking n'est pas intrinsèquement lié à la violation de la loi, mais plutôt à la résolution créative de problèmes en trouvant des usages novateurs pour des règles et propriétés existantes. Cela peut aller de l'optimisation de programmes informatiques à la réutilisation d'équipements téléphoniques anciens à de nouvelles fins. L'essentiel est de penser en dehors des méthodologies conventionnelles et de trouver des solutions uniques.
L'Éthique du Hacker. Les premiers hackers du MIT valorisaient le flux d'informations libre et l'apprentissage continu, transcendant les frontières conventionnelles telles que la discrimination. Ils appréciaient la logique comme une forme d'art et cherchaient à mieux comprendre le monde en contournant les restrictions. Cette éthique met l'accent sur la connaissance, l'innovation et le dépassement des limites, indépendamment de la légalité.
Hacker vs. Cracker. Bien que le terme "cracker" ait été utilisé pour distinguer les hackers malveillants des hackers éthiques, la frontière s'est estompée. Les lois modernes restreignant la cryptographie et la recherche peuvent faire apparaître même les hackers bien intentionnés comme enfreignant la loi. Le véritable esprit hacker transcende les lois gouvernementales et se concentre sur l'application des connaissances, qu'elle soit bonne ou mauvaise.
2. L'Élégance de la Programmation Réside dans des Solutions Ingénieuses et Contre-Intuitives
Le hacking est en réalité l'acte de trouver une solution ingénieuse et contre-intuitive à un problème.
Au-delà du Code Fonctionnel. La programmation ne consiste pas seulement à créer un code qui fonctionne ; il s'agit de trouver la manière la plus efficace et élégante d'accomplir une tâche. Cela implique d'utiliser les règles de l'ordinateur de manière nouvelle et inventive, aboutissant souvent à un code à la fois compact, efficace et soigné. Cette quête d'élégance est en soi une forme de hacking.
La Valeur des Hacks. Alors que le monde des affaires moderne privilégie souvent la rapidité et le coût au détriment de l'optimisation, la véritable appréciation de l'élégance de la programmation est laissée aux passionnés, aux rédacteurs d'exploits et à ceux qui recherchent la meilleure solution possible. Ces individus trouvent de la beauté dans un code élégant et de l'ingéniosité dans des hacks astucieux, repoussant les limites de ce qui est possible.
La Programmation comme Fondement. Comprendre la programmation est crucial tant pour écrire du code que pour l'exploiter. En comprenant comment les programmes sont écrits, les hackers peuvent mieux saisir comment trouver et exploiter des vulnérabilités. Cette connaissance est essentielle pour les deux côtés du spectre de la programmation.
3. L'Exploitation de Programmes Révèle des Usages Inattendus des Règles Informatiques
Exploiter un programme est simplement une manière astucieuse de faire faire à l'ordinateur ce que vous voulez qu'il fasse, même si le programme en cours d'exécution a été conçu pour empêcher cette action.
Exploitation des Failles. L'exploitation de programmes consiste à trouver des défauts ou des négligences dans la conception ou l'environnement d'un programme et à les utiliser pour amener l'ordinateur à faire quelque chose qu'il n'était pas censé faire. Cela implique souvent de contourner des mesures de sécurité et d'accéder de manière non autorisée. Les failles de sécurité sont en réalité des défauts ou des négligences dans la conception du programme ou dans l'environnement dans lequel le programme s'exécute.
Erreurs Off-by-One. Une erreur de programmation courante qui peut être exploitée est l'erreur off-by-one, où le programmeur compte mal d'une unité. Cela peut conduire à des vulnérabilités permettant aux attaquants d'obtenir des droits administratifs ou de contourner des restrictions de sécurité. Par exemple, une erreur off-by-one dans OpenSSH a permis à des utilisateurs normaux d'acquérir des droits administratifs complets.
La Lettre de la Loi. Les programmes suivent les instructions à la lettre, même si les résultats ne correspondent pas à ce que le programmeur avait prévu. Cela peut entraîner des résultats inattendus et catastrophiques, comme le montre le "LaMacchia Loophole", où un étudiant a exploité une faille légale pour faciliter le piratage de logiciels sans gain financier personnel.
4. Débordements de Tampons et Chaînes de Format : Techniques d'Exploitation Généralisées
Avec ces deux techniques, l'objectif ultime est de prendre le contrôle du flux d'exécution du programme cible pour le tromper en exécutant un morceau de code malveillant qui peut être introduit en mémoire de diverses manières.
Erreurs Courantes. Certaines erreurs de programmation courantes peuvent être exploitées de manière pas toujours évidente. Ces erreurs ont donné naissance à des techniques d'exploitation généralisées pouvant être utilisées dans diverses situations. Les deux types de techniques d'exploitation généralisées les plus courants sont les exploits de débordement de tampon et les exploits de chaînes de format.
Débordements de Tampons. Les débordements de tampons se produisent lorsqu'un programme essaie d'écrire plus de données dans un tampon qu'il ne peut en contenir, écrasant ainsi des emplacements mémoire adjacents. Cela peut être utilisé pour écraser des données critiques, telles que des adresses de retour, et prendre le contrôle du flux d'exécution du programme.
Exploits de Chaînes de Format. Les exploits de chaînes de format consistent à manipuler des chaînes de format dans des fonctions comme printf()
pour lire ou écrire des emplacements mémoire arbitraires. Cela peut être utilisé pour écraser des pointeurs de fonction ou d'autres données critiques et prendre le contrôle du flux d'exécution du programme.
5. Segmentation de la Mémoire : Comprendre le Flux d'Exécution des Programmes
La mémoire des programmes est divisée en cinq segments : texte, données, bss, tas et pile.
Organisation de la Mémoire. La mémoire des programmes est divisée en cinq segments : texte (code), données, bss, tas et pile. Chaque segment a un but spécifique, comme stocker des instructions de programme, des variables globales ou des données temporaires. Comprendre comment ces segments sont organisés est crucial pour exploiter des vulnérabilités.
La Pile. La pile est un espace temporaire utilisé pour stocker le contexte lors des appels de fonction. Elle contient des paramètres, des variables locales et des pointeurs nécessaires pour restaurer l'état du programme après l'exécution de la fonction. Les débordements basés sur la pile peuvent écraser des adresses de retour et modifier le flux d'exécution.
Le Tas. Le tas est utilisé pour l'allocation dynamique de mémoire, permettant aux programmes de réserver de la mémoire selon les besoins. Les débordements basés sur le tas peuvent écraser des variables importantes ou des pointeurs de fonction, entraînant des vulnérabilités de sécurité.
6. Permissions de Fichiers Multi-Utilisateurs : Obtenir des Privilèges Root
Si le flux d'un programme suid root peut être modifié pour exécuter un morceau de code arbitraire injecté, alors l'attaquant pourrait amener le programme à faire n'importe quoi en tant qu'utilisateur root.
Modèle de Sécurité Linux. Linux est un système d'exploitation multi-utilisateur avec tous les privilèges système investis dans l'utilisateur "root". Les permissions de fichiers sont basées sur les utilisateurs et les groupes, empêchant l'accès non autorisé aux fichiers.
Programmes SUID. Les programmes SUID (set user ID) permettent aux utilisateurs non privilégiés d'effectuer des fonctions système nécessitant des privilèges root. Lorsqu'un programme SUID est exécuté, l'identifiant utilisateur effectif (EUID) de l'utilisateur est changé pour celui du propriétaire du programme, généralement root.
Exploitation des Programmes SUID. Si le flux d'un programme SUID root peut être modifié pour exécuter du code injecté, un attaquant peut obtenir des privilèges root. Cela peut être réalisé par le biais de débordements de tampon ou d'exploits de chaînes de format, permettant à l'attaquant de contrôler le système en tant qu'utilisateur root.
7. Le Réseau S'appuie sur des Protocoles Standards pour la Communication
Le réseautage est avant tout une question de communication, et pour que deux parties ou plus puissent communiquer correctement, des normes et des protocoles sont nécessaires.
Le Modèle OSI. La communication réseau repose sur des protocoles standards définis par le modèle de référence Open Systems Interconnection (OSI). Ce modèle se compose de sept couches, chacune traitant d'un aspect différent de la communication, de la connexion physique à la couche application.
Couches Clés. La couche réseau (IP), la couche de transport (TCP/UDP) et la couche de liaison de données (Ethernet) sont particulièrement importantes pour comprendre les vulnérabilités réseau. Ces couches gèrent l'adressage, le routage, le transfert de données fiable et l'adressage matériel.
Paquets et Encapsulation. Les données sont communiquées par le biais de paquets, qui sont encapsulés avec des en-têtes de protocole à chaque couche. Comprendre comment ces en-têtes sont structurés et comment ils interagissent est crucial pour exploiter les vulnérabilités réseau.
8. L'Écoute Réseau Expose les Vulnérabilités dans la Transmission de Données
L'exploitation de programmes est un pilier du hacking.
Mode Promiscuous. L'écoute réseau consiste à capturer des paquets transmis sur un réseau. Dans un réseau non commuté, les appareils peuvent être configurés en mode promiscuous, leur permettant de capturer tous les paquets, quelle que soit l'adresse de destination.
Réseaux Commutés. Les réseaux commutés limitent le trafic à des ports spécifiques en fonction des adresses MAC, rendant l'écoute plus difficile. Cependant, des techniques comme la redirection ARP peuvent être utilisées pour contourner cette mesure de sécurité.
Redirection ARP. La redirection ARP consiste à usurper des réponses ARP pour empoisonner les caches ARP des machines cibles, redirigeant leur trafic à travers la machine de l'attaquant. Cela permet à l'attaquant d'écouter et potentiellement de modifier le trafic.
9. Cryptologie : Équilibrer Sécurité et Praticité
Il n'y a rien de bon ou de mauvais dans la connaissance elle-même ; la moralité réside dans l'application de cette connaissance.
Cryptographie et Cryptanalyse. La cryptologie englobe à la fois la cryptographie (l'art de la communication secrète) et la cryptanalyse (l'art de briser ces secrets). Une cryptographie solide est essentielle pour des transactions en ligne sécurisées et la protection des données sensibles.
Sécurité Inconditionnelle vs. Sécurité Computationnelle. La sécurité inconditionnelle, comme celle fournie par les pads à usage unique, est incassable même avec des ressources infinies. Cependant, elle est souvent impraticable. La sécurité computationnelle repose sur la difficulté de briser un chiffre dans un délai raisonnable, compte tenu de la technologie actuelle.
Chiffrement Symétrique vs. Asymétrique. Les chiffres symétriques utilisent la même clé pour le chiffrement et le déchiffrement, offrant rapidité mais posant des défis de distribution de clés. Les chiffres asymétriques utilisent des clés publiques et privées, simplifiant l'échange de clés mais sacrifiant la rapidité. Les chiffres hybrides combinent les deux approches pour une sécurité et une efficacité optimales.
10. Exploitation du Chiffrement Sans Fil 802.11b : Attaques WEP
Les sciences de la physique nucléaire et de la biochimie peuvent être utilisées pour tuer, mais elles nous offrent également des avancées scientifiques significatives et une médecine moderne.
But Initial de WEP. WEP (Wired Equivalent Privacy) a été conçu pour fournir une sécurité équivalente à celle d'un réseau câblé. Cependant, des faiblesses dans le protocole le rendent vulnérable à diverses attaques.
Processus de Chiffrement de WEP. WEP utilise le chiffre de flux RC4 avec un vecteur d'initialisation (IV) de 24 bits et une clé de 40 bits ou 104 bits. L'IV est préfixé à la clé pour initialiser l'algorithme RC4, générant un flux de clés qui est XORé avec le message en clair.
Vulnérabilités de WEP. WEP est vulnérable aux attaques par force brute hors ligne, à la réutilisation de flux de clés et aux attaques par dictionnaire de déchiffrement basées sur l'IV. Ces vulnérabilités peuvent être exploitées pour craquer les clés WEP et obtenir un accès non autorisé aux réseaux sans fil.
Dernière mise à jour:
Avis
Hacking : L'art de l'exploitation est largement salué pour ses explications techniques approfondies des techniques de hacking, abordant des sujets tels que les débordements de tampon, le réseautage et la cryptographie. Les lecteurs apprécient l'approche pratique grâce au LiveCD inclus, qui permet une expérimentation concrète. Bien que certains le trouvent difficile et potentiellement obsolète, beaucoup le considèrent comme une ressource essentielle pour comprendre les exploits de bas niveau et améliorer ses compétences en programmation. Ce livre est recommandé pour ceux qui s'intéressent à la cybersécurité, bien qu'il puisse être trop avancé pour les débutants et se concentre principalement sur la programmation en C et les systèmes Linux.
Similar Books









