Voici la sortie: Sortie Hydra Comme vous pouvez le voir, il a reçu le mot de pa

Voici la sortie: Sortie Hydra Comme vous pouvez le voir, il a reçu le mot de passe «toor». Essayons un autre outil appelé «medusa» contre un serveur SSH: Commande Medusa - u ( utilisateur pour tenter) - P ( liste de mots de passe que j'utilise, rockyou.txt à nouveau) - h ( hôte que vous ciblez) - M ( service que vous essayez de rompre) Voici la sortie: Sortie Medusa Nous avons déchiffré le mot de passe «123456» Conclusion: Nous pouvons voir que Kali est livré avec plusieurs outils pour attaquer les mots de passe, à la fois ceux qui sont stockés ou les mots de passe en ligne. Kali a plusieurs autres outils qui remplissent les mêmes fonctions que ceux que j'ai démontrés. En fonction de vos besoins, vous pouvez utiliser différents outils pour attaquer les mots de passe. 201 Attaquer les mots de passe avec Kali Linux Liens web: https://tools.kali.org/password-attacks/cewl https://tools.kali.org/password-attacks/crunch https://hashcat.net/wiki/doku.php?id=hashcat Liens web: ●https://tools.kali.org/password-attacks/cewl ●https://tools.kali.org/password-attacks/crunch ●https://hashcat.net/wiki/doku.php?id=hashcat 202 Attaquer les mots de passe avec Kali Linux ng Jan Kopia A PROPOS DE L'AUTEUR Jan est un spécialiste indépendant de la sécurité informatique avec 20 ans d'expérience. Au cours des dernières années, il s'est concentré sur la gestion de projets de sécurité de l'information (par exemple, la mise en œuvre de la norme ISO 27001, les certifications de critères communs, la conception de systèmes sécurisés) d'une part et les tâches liées à la sécurité informatique (tests de sécurité et de pénétration, enquêtes sur les incidents de sécurité, criminalistique numérique ) de l'autre. Il travaille également comme auteur dans le domaine de la gestion et des technologies de l'information. introduction Software programs are developed based on source code that is written in human readable programming languages. Many different programming languages are used today to create programs, such as mobile apps, desktop applications, web applications, operating systems, firmware, etc. The usual process that follows on the human creation of the code is that it is compiled (either in advance or during runtime) into a language that can be understood by a machine. Compiled code usually is a binary file which contains all necessary code for the computer to understand the instructions of the original source code. Si un programme doit faire l'objet d'une ingénierie inverse, il doit être renvoyé sous une forme qui soit à nouveau compréhensible par les humains. Si un programme peut être inversé de cette façon, des parties du code source original peuvent être reconstruites et les fonctions peuvent être modifiées. Cela permet non seulement de modifier le code du programme et, par conséquent, le comportement du programme, mais également de casser des mécanismes de sécurité tels qu'une protection par mot de passe. Cet article donne une introduction de base à l'ingénierie inverse et montrera comment contourner une protection par mot de passe à l'aide d'outils courants et généralement disponibles gratuitement. À la fin, le lecteur comprendra l'ensemble du processus de rétro-ingénierie en inspectant statiquement un fichier PE et en l'analysant dynamiquement à l'aide d'outils tels que IDA Pro et Ollydbg. Exemple de programme et processus de rétro-ingénierie L'exemple de programme utilisé dans cet article calcule la valeur factorielle d'un nombre donné. Ce numéro doit être entré dans la console. Le programme demande alors un mot de passe avant qu'un résultat ne soit affiché. Si le mot de passe est correct, la factorielle est calculée. Sans ce mot de passe, le programme se termine (voir figure 1). Figure 1: Le programme d'exemple avec la fonction de mot de passe L'objectif du processus de rétro-ingénierie dans cet article est de: • Comprendre l'environnement et le déroulement du programme • Se faire une idée des classes, fonctions et variables utilisées 205 Ingénierie inverse et rupture de mot de passe • Contournement de la protection par mot de passe • Régénérer au mieux le code source Inverser un fichier binaire - Étape 1 - Informations sur le fichier Un fichier binaire est créé pendant le processus de compilation. Cela dépend de la machine, de sorte qu'un fichier binaire ne s'exécute que sur un système pour lequel il a été compilé. Par exemple, il n'est pas possible d'exécuter un programme Unix sous Windows sans émuler un environnement Unix et vice versa car les logiciels accèdent à différentes bibliothèques du système pour lequel ils ont été développés. Ils accèdent également aux fonctions communes via les bibliothèques, ce qui peut également inclure l'accès aux fonctions du noyau qui dépendent encore plus de la plate-forme. Un programme dépend donc fortement de l'espace utilisateur et de l'espace noyau - l'environnement de la plate-forme. Afin de définir de telles dépendances, la plupart des programmes incluent plusieurs informations dans leurs fichiers exécutables. La compréhension de ces informations est la première étape du processus de rétro-ingénierie. Un fichier binaire contient des informations utiles dans sa structure. La plupart des fichiers sont emballés sous la forme d'un format de package standardisé qui peut être lu par des logiciels tels que PEiD, PE Explorer, CFF explorer, etc. Un exemple peut être vu dans la figure 2. Le programme de démonstration qui doit être compris à travers une ingénierie inverse process is called Project1.exe. The file extension .exe implies that it is a Windows or DOS application. Using PEiD, more details are visible. It is a Win32 console application; more precisely, a Portable Executable 32-bit application. PE files have a standardized form. There are different sections that have a predefined virtual size and virtual address (see figure 3). If the program is executed this data is copied into the memory of the PC. Each section is supposed to hold and present (read and write) a certain kind of data. One section is called the .text or . code-section where the actual program code is stored (the one which mainly is reverse engineered). The .data-section contains data that needs to be initialized during runtime (it is either readable and writable or only readable – .rdata). The uninitialized data section is called .bss. i.data are imported data (usually functions), which is necessary for the file to be available. 206 Figure 2: The demonstration program opened in PEiD Reverse Engineering And Password Breaking Figure 3: Sections of a PE file in CFF Explorer Very important for reverse engineering also is the entry point. If the file is executed and copied into the PC’s (virtual) memory, the entry point of the program is usually not within the first bits of the code of the memory (called the “image”) of the program. In addition, there are packers that prevent the ability to see any important details of that file. These packers usually compressed the file using formats such as UPX. In this case, it will be necessary to use plugins that are able to uncompress these formats (e.g. PE Explorer). Some plugins are able to uncompress scrambled UPX files as a protection mechanism. The problem with packers is that the “Import Address Table” and the “Original Entry Point” (OEP) are destroyed, which prevents the reverse engineering process. The only way to solve that problem is to dynamically analyze the program to identify the OEP, e.g. using a section hop. In the above presented example program, the entry point is not hidden and already identified. Reversing a binary file – step 2 – understanding assembly code If the type of the executable is known (operating system, bits, etc.), it is possible to dive deeper into the application’s code. Two approaches are possible and are mostly mixed with each other. First, it is possible to use any compatible disassembler to statically create assembly code from the binary format. With assembly code, it is much easier to read what the program is doing. Second, there is debugging that allows the user to access debugging information and, most importantly, to alter the state of the programwhile running – one possible way of a dynamic analysis. Both approaches need some understanding of assembly language. Assembly is a low-level programming language with a very basic structure. Each statement has one line following this format: Mnemonic operands (and optional comments). // Mnemonic is an instruction followed by one, two, or more operands. 207 Reverse Engineering And Password Breaking Besides some differences between the syntaxes and the calling convention of assembly code depending on the processor manufacturer and the compiler (Intel or AT&T) the structure of the statements are easily readable, e.g: mov edx,len –moves the value of variable len into the edx register. Registers and flags are important parts of the functionality of a processor. Since assembly is very close to the hardware, the registers of a CPU can be accessed directly. This makes it easy to optimize programs regarding speed and memory usage. On the other side, writing assembly for generic purposes and different processors and computers is impossible because processor types are different from each other (e.g. ARM CPUs, Intel CPUs, 32-bit architecture, 64-bit-architecture, etc.). The process of an assembly program is similar to a high-level programming language except that the developer has to deal with shifting content of specific memory locations uploads/S4/ best-20-hacking-tutorials-1-1-200-234.pdf

  • 30
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mar 23, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 2.1417MB