1. Livres et vidéos
  2. Hacking et Forensic - Développez vos propres outils en Python (2ième édition)

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

  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne
  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement
  • Version HTML
  • Accès illimité 24h/24, 7J/7

Présentation

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.

Les scripts de chaque chapitre sont en téléchargement sur le site www.editions-eni.fr.


Les chapitres du livre :
Avant-propos – Python : les fondamentaux – Le réseau – Réseau : la bibliothèque Scapy – Débogage sous Windows – Le fuzzing – Traitement d'images – Un peu plus sur le Web – Forensic – Bibliographie

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. Introduction
    • 2. Cryptographie et autres
      • 2.1 ROT13
      • 2.2 Base 64
      • 2.3 Hash
    • 3. Extraction des métadonnées dans les fichiers
      • 3.1 Métadonnées MP3
      • 3.2 Métadonnées des images
      • 3.3 Métadonnées PDF
      • 3.4 Métadonnées OLE2
      • 3.5 Cas concret
    • 4. Fichiers ZIP
      • 4.1 Lire dans un fichier ZIP
      • 4.2 Attaque brute force de mots de passe
    • 5. Lire dans un fichier OpenOffice ou Word
      • 5.1 Parcourir une arborescence
      • 5.2 Rechercher dans un document OpenOffice
      • 5.3 Rechercher dans un document Word
    • 6. E-mail
      • 6.1 Retrouver des e-mails dans des fichiers
      • 6.2 Rechercher dans la boîte mail
    • 7. Stéganographie
      • 7.1 Rechercher des informations dans une image
      • 7.2 Cacher un message dans une image
      • 7.3 Lecture du message
    • 8. Volatility
      • 8.1 Informations sur l'image
      • 8.2 Processus et DLL
      • 8.3 Capture de mots de passe hachés
      • 8.4 Exemple de programme
    • 9. Analyse des points d’accès sans fil dans la base de registre
    • 10. Retrouver les éléments supprimés (dans la corbeille)
    • 11. Mise en pratique
      • 11.1 Décryptage
      • 11.2 OCR
      • 11.3 ZIP
      • 11.4 Scapy et géolocalisation
    • Bibliographie
    • Index

Auteur

Franck EBELEn savoir plus

Enseignant à l'université de Valenciennes, commandant de gendarmerie réserviste et spécialiste de la lutte anticybercriminalité, Franck EBEL est expert en failles applicatives. Il a créé la licence professionnelle « ethical hacking » appelée CDAISI, la seule en France en sécurité dite offensive. Il est certifié CEH, OSCP et Wifu. Il forme les ntech de la gendarmerie de la région Nord-Pas de Calais et le CICERT de Côte d'Ivoire. Il est aussi Président de l'association ACISSI et organise chaque année les RSSIL et le challenge de hacking « Hacknowledge ». Il est aussi membre de l'AFPY, association francophone pour Python. Il donne des conférences en Europe et en Afrique sur Python, les logiciels libres et la sécurité informatique.

Caractéristiques

  • Niveau Confirmé à Expert
  • Nombre de pages 482 pages
  • Parution février 2016
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-7460-9971-5
    • EAN : 9782746099715
    • Ref. ENI : EP2HAFO
  • Niveau Expert
  • Parution février 2016
    • HTML
    • ISBN : 978-2-409-00071-3
    • EAN : 9782409000713
    • Ref. ENI : LNEP2HAFO

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (2,99 Mo)