Description
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
- 4.1 Introduction
- 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
- 3.1 Notion d’IPv6
- 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
Reviews
There are no reviews yet.