Hacking et Forensic Développez vos propres outils en Python (2ième édition)

42075 CFA

Ce livre s’adresse à toute personne désirant apprendre le Python pour le Hacking et le Forensic et se former à la conception d’outils en Python, ainsi qu’aux professionnels de la sécurité informatique et du Forensic. Il a pour objectif de conduire le lecteur à une bonne compréhension de bibliothèques spécifiques Python pour qu’il puisse ensuite concevoir ses outils personnalisés, adaptés à des situations particulières en Hacking et Forensic. Pour en tirer le meilleur profit possible, il est nécessaire d’avoir des notions de sécurité informatique.

Le livre est décomposé en 8 chapitres, chacun est illustré par de nombreux exemples avec, en fin de chapitre, des exercices avec correction afin de donner au lecteur le moyen de s’auto-évaluer.

Le chapitre 1 va permettre d’apprendre les concepts du langage Python, les bases du langage. Le chapitre 2 est consacré à la programmation réseau. L’auteur détaille la programmation de sockets puis les différents services tels que HTTP, FTP, POP, SSL par exemple, ainsi que les expressions régulières, l’accès aux bases de données. Le chapitre 3 est consacré à la bibliothèque scapy très utile en hacking et Forensic ; l’auteur détaille la manipulation de trames, le tunneling, les différents types de scan réseau et aborde également IPv6. Dans le chapitre 4, des connaissances de bases sur les notions d’architecture PC et d’assembleur, sur l’utilisation de debugger, sont indispensables pour la compréhension de la bibliothèque PyDbg qui est utilisée. Le chapitre 5 est dédié au Fuzzing; dans une première partie l’auteur utilise des bibliothèques déjà vues dans les chapitres précédents puis, dans une deuxième partie, il étudie une bibliothèque particulière, Sulley, spécialisée dans le fuzzing. Le chapitre 6 passe en revue la bibliothèque PIL qui va permettre de gérer les images, de les modifier, de capturer des images de webcam pour en extraire des données, l’auteur étudiera un élément particulier de la sécurité web, les capchat. Le chapitre 7 développe les notions du chapitre 2 afin de construire en Python les outils de tests en sécurité des sites web. Enfin, le dernier chapitre est entièrement consacré au Forensic ; l’auteur fera une revue, non exhaustive, des différentes techniques, et parcourra la stéganographie, la cryptographie, les traques de mails.

L’auteur a voulu faire de ce livre un regroupement non exhaustif des bibliothèques utiles, expliquées et illustrées par des exemples concrets afin que le lecteur puisse s’en approprier le fonctionnement.

Table des matières

  • Python : les fondamentaux
    • 1. Introduction
    • 2. Historique
    • 3. Caractéristiques du langage
    • 4. Types de données
      • 4.1 Les nombres
      • 4.2 Les opérations arithmétiques
      • 4.3 Les chaînes de caractères
      • 4.4 Les tuples
      • 4.5 Les listes
      • 4.6 Les dictionnaires
      • 4.7 Supplément aux types de données
    • 5. Structures conditionnelles et répétitives
      • 5.1 Test if … elif … else
      • 5.2 Boucle while
      • 5.3 Boucle for
      • 5.4 Les listes en intention (comprehension list)
    • 6. Fonctions, modules et paquets
      • 6.1 Définition et appel de fonction
      • 6.2 Espaces de noms
      • 6.3 Fonctions particulières
      • 6.4 Modules
      • 6.5 Paquets
      • 6.6 Instruction yield
    • 7. Les classes
      • 7.1 Déclaration d’une classe
      • 7.2 Surcharge des opérateurs
      • 7.3 Propriétés, accesseurs et mutateurs
      • 7.4 Héritage
      • 7.5 Polymorphisme
    • 8. Manipulation de fichiers
    • 9. Les exceptions
    • 10. Modules utiles pour la suite du livre
      • 10.1 Module sys
      • 10.2 Module os
      • 10.3 Module re
      • 10.4 Modules pickle et shelve
      • 10.5 Modules bases de données
        • 10.5.1 MySQLdb
        • 10.5.2 PostgreSQL
      • 10.6 Module thread
        • 10.6.1 Principe du module
        • 10.6.2 Threading
        • 10.6.3 Classe Lock()
    • 11. Conclusion
  • Le réseau
    • 1. Introduction
    • 2. Les sockets
      • 2.1 Création d’un socket
      • 2.2 Échange de données
      • 2.3 Socket en UDP
      • 2.4 Les erreurs
      • 2.5 Socket et FTP
    • 3. Création d’un serveur
      • 3.1 Introduction
      • 3.2 Connexion cliente
      • 3.3 Discussion avec le client
      • 3.4 Création d’un trojan basique
      • 3.5 Création d’un trojan plus complexe
    • 4. DNS : Domain Name Server
      • 4.1 Introduction
        • 4.1.1 Que signifie DNS ?
        • 4.1.2 Principaux enregistrements DNS
      • 4.2 nslookup basique
      • 4.3 Reverse lookup
      • 4.4 La librairie DNS
      • 4.5 Demande à partir d’un serveur spécifié
      • 4.6 Mise en forme des résultats obtenus
    • 5. FTP : File Transfer Protocol
      • 5.1 Introduction
      • 5.2 FTP anonyme
      • 5.3 Téléchargement de fichiers ASCII
      • 5.4 Téléchargement de fichiers binaires
      • 5.5 Téléchargement avancé de fichiers binaires
      • 5.6 Envoi de données
      • 5.7 Les erreurs FTP
      • 5.8 Lister le contenu des répertoires
      • 5.9 Les autres commandes utiles
      • 5.10 Télécharger récursivement des données
    • 6. Les expressions régulières
      • 6.1 Introduction
      • 6.2 Le module re
      • 6.3 Les méthodes utiles
        • 6.3.1 Méthode search()
        • 6.3.2 Méthode match()
        • 6.3.3 Méthode sub()
        • 6.3.4 Aller plus loin avec les groupes
      • 6.4 Comment construire son pattern ou expression
    • 7. Le Web
      • 7.1 Introduction
      • 7.2 Récupération d’une page source
      • 7.3 Méthodes GET et POST
        • 7.3.1 Méthode GET
        • 7.3.2 Méthode POST
      • 7.4 Gestion des erreurs
        • 7.4.1 Erreurs de connexion : urllib2.URLError
        • 7.4.2 Erreur 404
      • 7.5 Authentification
    • 8. Analyser les pages HTML et XHTML
      • 8.1 Introduction
      • 8.2 Première approche
      • 8.3 Travail sur des pages « réelles »
        • 8.3.1 Ampersand
        • 8.3.2 Caractères spéciaux
      • 8.4 BeautifulSoup
        • 8.4.1 Introduction
        • 8.4.2 Récupérer les liens
    • 9. Le XML
      • 9.1 Introduction
      • 9.2 Représentation du fichier XML
      • 9.3 Python et XML
      • 9.4 Lire un flux RSS
    • 10. Les e-mails
      • 10.1 Introduction
      • 10.2 La bibliothèque smtplib
        • 10.2.1 Le corps du texte
        • 10.2.2 Mail avec pièce jointe
      • 10.3 Analyser des e-mails
      • 10.4 Analyser les dates
      • 10.5 Erreurs et débogage
      • 10.6 Mail et POP
    • 11. Le SSL en Python
      • 11.1 Introduction
      • 11.2 Utilisation d’OpenSSL
      • 11.3 Vérifier les certificats
    • 12. Utilisation de bases de données
      • 12.1 Introduction
      • 12.2 MySQLdb
        • 12.2.1 Rappel
        • 12.2.2 Utilisation
      • 12.3 PostgreSQL
        • 12.3.1 Introduction et première connexion
        • 12.3.2 Exécuter des commandes
        • 12.3.3 Cacher les changements
        • 12.3.4 Répéter des commandes
        • 12.3.5 Récupérer des données
    • 13. Conclusion
    • 14. Mise en pratique
      • 14.1 Cas 1 : Scan de ports
      • 14.2 Cas 2 : Envoi de mails
      • 14.3 Cas 3 : Fuzzing de FTP
      • 14.4 Cas 4 : Parsing de page web
      • 14.5 Cas 5 : Brute force MySQL
  • Réseau : la bibliothèque Scapy
    • 1. Introduction
    • 2. Programmation réseau avec Scapy
      • 2.1 Liste des protocoles supportés
      • 2.2 Quelques notions sur les réseaux
        • 2.2.1 Topologie des réseaux
        • 2.2.2 Les différents types de réseaux
        • 2.2.3 Qu’est-ce qu’un protocole ?
        • 2.2.4 Adresse IP
        • 2.2.5 Les classes d’adresses
        • 2.2.6 Le masque de sous-réseau
        • 2.2.7 Le modèle OSI
      • 2.3 Manipulations basiques
        • 2.3.1 Commandes de base
        • 2.3.2 Fabrication de paquets
        • 2.3.3 Les entrées-sorties
        • 2.3.4 Entrons dans le détail
      • 2.4 Utilisation avancée : sécurité réseau
        • 2.4.1 traceroute
        • 2.4.2 Sniffing
        • 2.4.3 Scan TCP
        • 2.4.4 Tunneling
      • 2.5 Quelques exemples simples en « one-liner »
        • 2.5.1 Scan ACK
        • 2.5.2 Scan Xmas
        • 2.5.3 Scan IP
        • 2.5.4 Les différents ping
        • 2.5.5 Les attaques classiques
    • 3. Scapy et IPv6
      • 3.1 Notion d’IPv6
        • 3.1.1 Généralités
        • 3.1.2 IPv6 : RFC 2373
      • 3.2 Application
        • 3.2.1 Requête ICMP IPv6
        • 3.2.2 Routage de paquets IPv6
        • 3.2.3 Exemple de routage de header
        • 3.2.4 traceroute
        • 3.2.5 IPv6 NA
        • 3.2.6 Avertissement de daemon tués
        • 3.2.7 Exemple
    • 4. Quelques autres exemples
    • 5. Conclusion
    • 6. Mise en pratique
      • 6.1 Canal caché IP
      • 6.2 Détection de Rogue AP
      • 6.3 IP Spoofing
      • 6.4 Spoofing IPv6 des voisins
  • Débogage sous Windows
    • 1. Introduction
    • 2. Le module ctypes de Python
    • 3. Première approche
    • 4. État des registres
      • 4.1 Énumération des threads
      • 4.2 Récupération des valeurs des registres
    • 5. Les événements du debugger
    • 6. Les points d’arrêt (breakpoints)
      • 6.1 Points d’arrêt logiciel
      • 6.2 Points d’arrêt matériel
      • 6.3 Point d’arrêt mémoire
    • 7. La bibliothèque PyDbg
      • 7.1 Violation d’accès des en-têtes (handlers)
      • 7.2 Process snapshot
    • 8. Mise en pratique : Hooking
  • Le fuzzing
    • 1. Introduction
    • 2. Fuzzing FTP
    • 3. Fuzzing avec Scapy
    • 4. Fuzzing avec PyDbg : format string
      • 4.1 Introduction
      • 4.2 Fuzzer de fichiers
    • 5. Sulley
      • 5.1 Introduction
      • 5.2 Installation
        • 5.2.1 Installation normale
        • 5.2.2 Installation non standard
      • 5.3 Utilisation
        • 5.3.1 Structure du répertoire de Sulley
        • 5.3.2 Représentation de données
        • 5.3.3 Primitives statiques et aléatoires
        • 5.3.4 Les entiers
        • 5.3.5 Chaînes de caractères et délimiteurs
        • 5.3.6 Les extensions Fuzz Library
        • 5.3.7 Blocks
        • 5.3.8 Groupes
        • 5.3.9 Encodeur
        • 5.3.10 Dépendances
        • 5.3.11 Block helpers
        • 5.3.12 Legos
    • 6. Mise en pratique
      • 6.1 Fuzzing 1 : HTTP
      • 6.2 Fuzzing 2 : FTP
  • Traitement d’images
    • 1. Introduction
    • 2. Utilisation
      • 2.1 La classe Image
      • 2.2 Lire et écrire
      • 2.3 Couper, coller et fusionner
      • 2.4 Transformations géométriques
      • 2.5 Transformation des couleurs
      • 2.6 Amélioration d’images
        • 2.6.1 Filtres
        • 2.6.2 Opérations sur les points
        • 2.6.3 Améliorations
    • 3. Exemples d’utilisation
      • 3.1 Création d’un captcha
      • 3.2 Capture d’image et transformation
      • 3.3 Lecture de captcha
  • Un peu plus sur le Web
    • 1. Introduction
    • 2. Reprenons les basiques
    • 3. Mapping de site web
    • 4. Brute force de répertoires ou d’emplacement de fichiers
    • 5. Brute force authentification HTML
    • 6. Selenium
      • 6.1 Introduction
      • 6.2 Installation
      • 6.3 Premier test
      • 6.4 Copie d’écran avec Selenium
    • 7. Connexion sur un site web et navigation
    • 8. Conclusion
  • Forensic
    • 1. Intro
Catégorie

Avis des clients

Il n'y a pas encore d'avis.

Soyez le premier à donner votre avis sur “Hacking et Forensic Développez vos propres outils en Python (2ième édition)”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Plus d'offres pour ce produit!

Questions et demandes générales

Il n'y a pas encore de demandes de renseignements.