Distributed Password Cracking with BOINC and Hashcat

Total Page:16

File Type:pdf, Size:1020Kb

Distributed Password Cracking with BOINC and Hashcat Distributed password cracking with BOINC and hashcat Radek Hranicky´a,∗, Luka´sˇ Zobala, Ondrejˇ Rysavˇ y´b, Dusanˇ Kola´rˇb aBrno University of Technology, Faculty of Information Technology, Department of Information Systems, Brno, Czech Republic bBrno University of Technology, Faculty of Information Technology, Department of Information Systems, IT4Innovations Centre of Excellence, Brno, Czech Republic Abstract Considering today’s challenges in digital forensics, for password cracking, distributed computing is a necessity. If we limit the selection of password-cracking tools strictly to open-source software, hashcat tool unambiguously wins in speed, repertory of supported hash formats, updates, and community support. Though hashcat itself is by design a single-machine solution, its interface makes it possible to use the tool as a base construction block of a larger distributed system. Creating a “distributed hashcat” which supports the maximum of hashcat’s original features requires a smart controller that employs different distribution strategies in different cases. In the paper, we show how to use BOINC framework to control a network of hashcat-equipped nodes and provide a working solution for performing different cracking attacks. We also provide experimental results of multiple cracking tasks to demonstrate the applicability of our approach. Last but not least, we compare our solution to an existing hashcat-based distributed tool - Hashtopolis. Keywords: hashcat, BOINC, cracking, distributed computing, GPGPU 1. Introduction b) the range of supported formats, c) supported attack modes, and d) portability to different platforms. From existing open- With the escalating use of computers and mobile devices, source software, we chose hashcat2, a self-proclaimed “World’s forensic investigators frequently face encrypted data which fastest password cracker” which is distributed under MIT li- could hide substantial evidence. Though General-purpose cense. Considering speed, team hashcat won 5 of 7 years of computing on graphics processing units (GPGPU) introduced Crack me if you can (CMIYC3) contest. Assessing features, a massive speedup to password cracking, the developers of hashcat supports over 200 different hash formats, and several software supporting data encryption tend to improve the pass- different attack modes: brute-force attack (also reffered to as word verification procedures, making the protection harder to mask attack), dictionary attack, combinator attack and hybrid be cracked [6]. For example, using hashcat and exhaustive attacks; moreover, it supports the use of password-mangling search (brute-force) with a single NVIDIA GTX 1080 Ti GPU, 4 1 rules including the ones used by popular John the Ripper tool. cracking MS Office 2013 documents is 37840x harder than Another reason for choosing hashcat was its support for dif- ≤ cracking older MS Office 2003 using SHA1 + RC4 algo- ferent operating systems, and hardware platforms. Hashcat de- rithms. Using 8 alphanumeric characters, one can create a to- velopers provide both sources, and pre-compiled binaries for ∗ 14 tal of 2:18 10 different passwords. Using a GPU denoted 32-bit, and 64-bit Windows, and Linux. Cracking with hash- above, a MS Office 2003 document can be cracked within 5 cat can be performed on various OpenCL-compatible CPUs, days, while cracking MS Office 2013 document may take up to GPUs, and even FPGAs, DSPs, and co-processors. 559 years. With the limited number of GPUs in a computer, As a framework for distributed computing, we used Berkeley cracking today’s password protection in a meaningful time may Open Infrastructure for Network Computing (BOINC5) which require employing a massive network of multi-GPU nodes. was initially designed [1] as a public-resource computing so- Our research aims at finding an open-source software solu- lution. However, in our previous research, we have shown its tion for fast and efficient distributed password cracking, which applicability in password cracking even in private networks [5]. could be easily deployed to any TCP/IP-based computer net- In our use-case, BOINC handles the authentication of comput- work made of commodity hardware. At first, we searched for an ing nodes, provides the distribution and automatic updates of application which could serve as a “cracking engine” of com- executable binaries, OpenCL kernels, and the input/output data putational nodes in a network. The key critieria were: a) speed, of each cracking task. ∗I am corresponding author Email addresses: [email protected] (Radek Hranicky),´ [email protected] (Luka´sˇ Zobal), [email protected] (Ondrejˇ 2https://hashcat.net/ Rysavˇ y),´ [email protected] (Dusanˇ Kola´r)ˇ 3https://contest.korelogic.com/ 1https://gist.github.com/epixoip/ 4http://www.openwall.com/john/ 973da7352f4cc005746c627527e4d073 5https://boinc.berkeley.edu/ Preprint submitted to Digital Investigation October 8, 2019 1.1. Contribution the hash only once, and compare the result with all the hashes By redesigning Fitcrack6 system [5], we created a solution we are trying to crack. for high-efficiency GPGPU password cracking using hashcat Bengtsson showed the practical use of MPI-based brute-force tool as a client-side computing engine. The offered solution em- and dictionary attack using Beowulf high-performance comput- ploys the BOINC framework to handle host management, net- ing (HPC) cluster for cracking MD5-based Unix shadow files work communication, and work assignment. For each hashcat’s and DES-based passwd files [3]. Both attacks were based on attack mode, we propose a convenient strategy for task distri- simple password-by-password keyspace division. bution to utilize the maximum of hardware resources. We show Apostal et al. brought another enhancement to HPC-based how dictionary segmentation, fine-grained adaptive scheduling, password cracking. The divided dictionary algorithm evenly and batch assignment of workunits help to reduce the overhead divided the dictionary words between MPI node equipped with of the entire cracking process. We experimentally proved that GPUs. Using CUDA, GPUs on each MPI node locally calcu- the new solution is capable of performing distributed attacks in lated the hashes and compared them with the ones which should a reliable and efficient way. Moreover, we compared our soft- be cracked [2]. ware with the Hashtopolis tool, underlying pros, and cons of Marks et al. designed a hybrid CPU/GPU cluster formed each solution. by devices from different vendors (Intel, AMD, NVIDIA) [12]. The design includes both hardware, and software solution. The 1.2. Structure of the paper distributed network consisted of Management/storage nodes which control the calculation and handle user inputs, and Com- Section 2 introduces the reader to the current findings in dis- putation nodes responsible for the work itself. For intercon- tributed password cracking. Section 3 describes the architecture nection, three different lines were used: 10 Gb/s Ethernet for of the proposed distributed cracking system. In section 4 we de- data transfer, 1 Gb/s Ethernet and Infiband for controlling the scribe how to use a distributed environment to perform the same computation process. Marks proposed a software framework attacks hashcat supports on a single machine. Section 5 shows called Hybrid GPU/CPU Cluster (HGPC) utilizing a master- experimental results supplemented by the comparison with our slave communication model using an XML-based protocol over previous solution, and Hashtopolis tool. Our research is con- TCP/IP network. A proof-of-concept implementation was able cluded by section 6 which brings together obtained experience to crack MD5, SHA-1, and four versions of SHA-2 hashes. and denotes possible future work. Experimental results of cracking on up to 24 nodes showed great power, and scalability. We, however, suppose that us- 2. Related work ing a time-proven tool of computation nodes would increase the performance even more. While cracking MD5 hashes on Much of related work is based on the popular John the Rip- NVIDIA Tesla M2050, Marks achieved the speed around 800 8 per (JtR) tool. Up to this day, the John’s wiki7 enlists 15 differ- Mh/s, while hashcat users report cracking over 1200 Mh/s us- ent approaches on parallel and distributed processing with the ing the same GPU. tool, some of them were later abandoned. The first published Previous solutions work well for a “classic HPC” system us- academic work on the case was performed by Lim who modi- ing a homogenous cluster with a static set of nodes which is, fied the sources by adding MPI support for incremental (brute- however, not our use-case. Using a simple text-based proto- force) cracking mode [11]. The solution used a master proces- col, loosely modeled on HTTP, Zonenberg created a distributed sor and a fixed number of slave processors. The master pro- solution for cracking MD5 hashes using a brute-force attack cessor divided the keyspace (a set of all password candidates) [19]. The architecture consisted of a master server and a set to a pre-defined number of chunks, while each slave processor of compute nodes, which were either CPU-based, or used GPU received an equal chunk to solve. The principle of keyspace acceleration based on CUDA. division was adopted in many subsequent solutions, however, Crumpacker came with the idea of using BOINC [1] to dis- with various alterations since Lim’s original technique is only tribute work, and implemented a proof-of-concept tool for dis- feasible for use in a stable, homogenous environment. tributed cracking with JtR [4]. Similarly as in our previous Pippin et al. then proposed the parallel dictionary attack for prototype [5], he decided to standardize the size of the worku- cracking multiple hashes [16]. Instead of dividing keyspace, nit (chunk in terms of BOINC) by counting out the number they assigned different hashes to each node while all nodes used of passwords that one computer could check in a reasonable the same password dictionary. We consider the approach to be amount of time. Crumpacker, however, reports he was unable efficient for large hashlists and simple hash algorithms only.
Recommended publications
  • Truecrack Bruteforcing Per Volumi Truecrypt
    Luca Vaccaro http://code.google.com/p/truecrack/ [email protected] User development guide. TrueCrypt © . software application used for on-the-fly encryption (OTFE). TrueCrack . bruteforce password cracker for TrueCrypt © (Copyrigth) volume files, optimazed with Nvidia Cuda technology. This software is Based on TrueCrypt, freely available athttp://www.truecrypt.org/ Master key . Crypt the volume of data. Generated one time in the volume creation phase from random value. Write inside the header section of the volume file. Header key . Crypt the header section of the volume file. Generated from a user password and a random salt (64 bytes). The salt is write in plain text in the first 64 bytes of volume file. Hard disk encryption: . Standard block cipher: XTS . Hash availables: AES, Serpent, Twofish . Default: AES Key derivation function: . Standard algorithm: PBKDF2 . Hash availables: RIPEMD160, SHA-512, Whirpool . Default: RIPEMD160 Master Header Key Key Plain Cipher Volume data data + file header Opening a TrueCrypt volume means to retrieve the Master Key from the Header section In the Header there are some fields (true, crc32) for checking the success of the decipher operation . If the password is right or wrong Header key User password salt Volume Master file key CUDA or Compute Unified Device Architecture is a parallel computing architecture developed by Nvidia. CUDA gives developers access to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs. Each GPU is a collection of multicores. Each core can run mmore cuda «block», and each block can run a numbers of parallel «thread» 1. Level of parallilism : block 2.
    [Show full text]
  • Analysis of Password Cracking Methods & Applications
    The University of Akron IdeaExchange@UAkron The Dr. Gary B. and Pamela S. Williams Honors Honors Research Projects College Spring 2015 Analysis of Password Cracking Methods & Applications John A. Chester The University Of Akron, [email protected] Please take a moment to share how this work helps you through this survey. Your feedback will be important as we plan further development of our repository. Follow this and additional works at: http://ideaexchange.uakron.edu/honors_research_projects Part of the Information Security Commons Recommended Citation Chester, John A., "Analysis of Password Cracking Methods & Applications" (2015). Honors Research Projects. 7. http://ideaexchange.uakron.edu/honors_research_projects/7 This Honors Research Project is brought to you for free and open access by The Dr. Gary B. and Pamela S. Williams Honors College at IdeaExchange@UAkron, the institutional repository of The nivU ersity of Akron in Akron, Ohio, USA. It has been accepted for inclusion in Honors Research Projects by an authorized administrator of IdeaExchange@UAkron. For more information, please contact [email protected], [email protected]. Analysis of Password Cracking Methods & Applications John A. Chester The University of Akron Abstract -- This project examines the nature of password cracking and modern applications. Several applications for different platforms are studied. Different methods of cracking are explained, including dictionary attack, brute force, and rainbow tables. Password cracking across different mediums is examined. Hashing and how it affects password cracking is discussed. An implementation of two hash-based password cracking algorithms is developed, along with experimental results of their efficiency. I. Introduction Password cracking is the process of either guessing or recovering a password from stored locations or from a data transmission system [1].
    [Show full text]
  • Password Cracking Using Cain & Abel
    Password Cracking Using Cain & Abel Learning Objectives: This exercise demonstrates how password could be cracked through ​ various methods, specifically regarding MD5 encrypted passwords. Summary: You will use Cain & Abel for this exercise. ​ Deliverables: Submit a lab report by answering the review questions. In some review ​ questions, you may provide screen captures. Dictionary attack Dictionary attack uses a predetermined list of words from a dictionary to generate possible passwords that may match the MD5 encrypted password. This is one of the easiest and quickest way to obtain any given password. 1. Start Cain & Abel via the Desktop Shortcut ‘Cain’ or Start menu. ​ ​ ​ ​ ​ ​ a. (Start > Programs > Cain > Cain). 2. Choose ‘Yes’ to proceed when a ‘User Account Control’ notification pops up regarding ​ ​ software authorization. 3. Once on, select the ‘Cracker’ tab with the key symbol, then click on MD5 Hashes. The ​ ​ ​ result should look like the image below. 1 Collaborative Virtual Computer Lab (CVCLAB) Penn State Berks 4. As you might have noticed we don’t have any passwords to crack, thus for the next few steps we will create our own MD5 encrypted passwords. First, locate the Hash Calculator among a row of icons near the top. Open it. 5. Next, type into ‘Text to Hash’ the word password. It will generate a list of hashes ​ ​ ​ pertaining to different types of hash algorithms. We will be focusing on MD5 hash so ​ copy it. Then exit calculator by clicking ‘Cancel’ (Fun Fact: Hashes are case sensitive so ​ any slight changes to the text will change the hashes generated, try changing a letter or two and you will see.
    [Show full text]
  • User Authentication and Cryptographic Primitives
    User Authentication and Cryptographic Primitives Brad Karp UCL Computer Science CS GZ03 / M030 16th November 2016 Outline • Authenticating users – Local users: hashed passwords – Remote users: s/key – Unexpected covert channel: the Tenex password- guessing attack • Symmetric-key-cryptography • Public-key cryptography usage model • RSA algorithm for public-key cryptography – Number theory background – Algorithm definition 2 Dictionary Attack on Hashed Password Databases • Suppose hacker obtains copy of password file (until recently, world-readable on UNIX) • Compute H(x) for 50K common words • String compare resulting hashed words against passwords in file • Learn all users’ passwords that are common English words after only 50K computations of H(x)! • Same hashed dictionary works on all password files in world! 3 Salted Password Hashes • Generate a random string of bytes, r • For user password x, store [H(r,x), r] in password file • Result: same password produces different result on every machine – So must see password file before can hash dictionary – …and single hashed dictionary won’t work for multiple hosts • Modern UNIX: password hashes salted; hashed password database readable only by root 4 Salted Password Hashes • Generate a random string of bytes, r Dictionary• For user password attack still x, store possible [H(r,x after), r] in attacker seespassword password file file! Users• Result: should same pick password passwords produces that different aren’t result close to ondictionary every machine words. – So must see password file
    [Show full text]
  • Hash Crack: Password Cracking Manual
    Hash Crack. Copyright © 2017 Netmux LLC All rights reserved. Without limiting the rights under the copyright reserved above, no part of this publication may be reproduced, stored in, or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise) without prior written permission. ISBN-10: 1975924584 ISBN-13: 978-1975924584 Netmux and the Netmux logo are registered trademarks of Netmux, LLC. Other product and company names mentioned herein may be the trademarks of their respective owners. Rather than use a trademark symbol with every occurrence of a trademarked name, we are using the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The information in this book is distributed on an “As Is” basis, without warranty. While every precaution has been taken in the preparation of this work, neither the author nor Netmux LLC, shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in it. While every effort has been made to ensure the accuracy and legitimacy of the references, referrals, and links (collectively “Links”) presented in this book/ebook, Netmux is not responsible or liable for broken Links or missing or fallacious information at the Links. Any Links in this book to a specific product, process, website, or service do not constitute or imply an endorsement by Netmux of same, or its producer or provider. The views and opinions contained at any Links do not necessarily express or reflect those of Netmux.
    [Show full text]
  • Password Security - When Passwords Are There for the World to See
    Password Security - When Passwords are there for the World to see Eleanore Young Marc Ruef (Editor) Offense Department, scip AG Research Department, scip AG [email protected] [email protected] https://www.scip.ch https://www.scip.ch Keywords: Bitcoin, Exchange, GitHub, Hashcat, Leak, OWASP, Password, Policy, Rapid, Storage 1. Preface password from a hash without having to attempt a reversal of the hashing algorithm. This paper was written in 2017 as part of a research project at scip AG, Switzerland. It was initially published online at Furthermore, if passwords are fed through hashing https://www.scip.ch/en/?labs.20170112 and is available in algorithms as is, two persons who happen to use the same English and German. Providing our clients with innovative password, will also have the same hash value. As a research for the information technology of the future is an countermeasure, developers have started adding random essential part of our company culture. user-specific values (the salt) to the password before calculating the hash. The salt will then be stored alongside 2. Introduction the password hash in the user account database. As such, even if two persons use the same password, their resulting The year 2016 has seen many reveals of successful attacks hash value will be different due to the added salt. on user account databases; the most notable cases being the attacks on Yahoo [1] and Dropbox [2]. Thanks to recent Modern GPU architectures are designed for large scale advances not only in graphics processing hardware (GPUs), parallelism. Currently, a decent consumer-grade graphics but also in password cracking software, it has become card is capable of performing on the order of 1000 dangerously cheap to determine the actual passwords from calculations simultaneously.
    [Show full text]
  • Passwords CS 166: Information Security Authentication: Passwords
    Passwords CS 166: Information Security Authentication: Passwords Prof. Tom Austin San José State University Access Control • Authentication: Are you who you say you are? – Determine whether access is allowed – human to machine, or machine to machine • Authorization: Are you allowed to do that? – Once you have access, what can you do? – Enforces limits on actions Chapter 7: Authentication Guard: Halt! Who goes there? Arthur: It is I, Arthur, son of Uther Pendragon, from the castle of Camelot. King of the Britons, defeater of the Saxons, sovereign of all England! ¾ Monty Python and the Holy Grail Then said they unto him, Say now Shibboleth: and he said Sibboleth: for he could not frame to pronounce it right. Then they took him, and slew him at the passages of Jordan: and there fell at that time of the Ephraimites forty and two thousand. ¾ Judges 12:6 Authentication: Are You Who You Say You Are? • How to authenticate human a machine? • Can be based on… –Something you know • e.g. password –Something you have • e.g. smartcard –Something you are • e.g. fingerprint Something You Know • Passwords • Lots of things act as passwords! –PIN –Social security number –Mother’s maiden name –Date of birth –Name of your pet, etc. Why Passwords? • Why is “something you know” more popular than “something you have” and “something you are”? • Cost: passwords are free • Convenience: easier for admin to reset pwd than to issue a new thumb Authenticating with Passwords I am Thor Prove it My password is Mjölnir Authenticating with Passwords I am Thor Prove it My
    [Show full text]
  • UGRD 2015 Spring Bugg Chris.Pdf (464.4Kb)
    We could consider using the Mighty Cracker Logo located in the Network Folder MIGHTY CRACKER Chris Bugg Chris Hamm Jon Wright Nick Baum Password Security • Password security is important. • Users • Weak and/or reused passwords • Developers and Admins • Choose insecure storage algorithms. • Mighty Cracker • Show real world impact of poor password security. OVERVIEW • We made a hash cracker. • Passwords are stored as hashes to protect them from intruders. • Our program uses several methods to ‘crack’ those hashes. • Networking • Spread work to multiple machines. • Cross Platform OTHER HASH CRACKING PRODUCTS • Hashcat • Cain and Abel • John the Ripper • THC-Hydra • Ophcrack • Network support is rare. WHAT IS HASHING • A way to encode a password to help protect it. • A mathematical one-way function. • MD5 hash • cf4ff726403b8a992fd43e09dd7b5717 • SHA-256 hash • 951e689364c979cc3aa17e6b0022ce6e4d0e3200d1c22dd68492c172241e0623 SUPPORTED HASHING ALGORITHMS • Current Algorithms • MD5 • SHA-1 • SHA-224 • SHA-256 • SHA-384 • SHA-512 WAYS TO CRACK • Cracking Modes • Single User • Network Mode • Methods of Cracking: • Brute Force • Dictionary • Rainbow Table • GUI or Console BRUTE FORCE • Systematically checking all possible keys until the correct one is found. • Worst case this would transverse the entire search space. • Slowest but will always find the solution if given enough time. DICTIONARY ATTACK • List of common passwords from leaks/hacks. • Many people choose common passwords • Written works of Shakespeare ~66,000 words • Oxford English Dictionary ~290,000 words • Small dictionary = 900,000 words • Medium dictionary = 14 million words • Large dictionary = 1.2 billion words RAINBOW TABLE • Can’t store all possible hash/key combinations. • 16 character key = 10^40th combinations • 10^50th atoms on earth • Rainbow tables • Reduced storage.
    [Show full text]
  • Hao Xu; Title: Improving Rainbow Table Cracking Accuracy; Mentor(S): Xianping Wang, CITG
    Student(s): Hao Xu; Title: Improving Rainbow Table Cracking Accuracy; Mentor(s): Xianping Wang, CITG. Abstract: Password cracking is the process of recovering plaintext passwords from data that has been stored in or transmitted by computing systems in cryptanalysis, computer security and digital forensics. There are many situations that require password cracking: helping users recover forgotten passwords, gaining unauthorized access to systems, checking password strength, etc. The most popular and applicable password cracking method is brute-force attack with various improvements such as dictionary attack, rainbow table attack. Usually they are accelerated with GPU, FPGA and ASIC. As passwords are usually stored in their hash codes instead of plaintext. to accelerate the password cracking process, caching the output of cryptographic hash codes of passwords, named as rainbow table, are used widely today. However, rainbow tables are usually created from exhaustive password dictionaries, in which many unusual combinations of letters, symbols and digits are contained, which decreased cracking efficiency and accuracy The efficiency and accuracy of rainbow table cracking can be improved from many aspects such as password patterns, computing engines, etc. In this research, we will employ many openly available leaked passwords, to find their distribution by maximum likelihood estimation, design a password generator based on the found distribution, generate rainbow tables on the passwords generated by the designed password generator. The accuracy of our rainbow table cracker will be compared with several popular password crackers --- John the Ripper password cracker, Cain and Abel, Hashcat , and Ophcrack " .
    [Show full text]
  • A Survey of Password Attacks and Safe Hashing Algorithms
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 04 Issue: 12 | Dec-2017 www.irjet.net p-ISSN: 2395-0072 A Survey of Password Attacks and Safe Hashing Algorithms Tejaswini Bhorkar Student, Dept. of Computer Science and Engineering, RGCER, Nagpur, Maharashtra, India ---------------------------------------------------------------------***--------------------------------------------------------------------- Abstract - To authenticate users, most web services use pair of message that would generate the same hash as that of the username and password. When a user wish to login to a web first message. Thus, the hash function should be resistant to application of the service, he/she sends their user name and second-pre-image. password to the web server, which checks if the given username already exist in the database and that the password is identical to 1.2 Hashing Algorithms the password set by that user. This last step of verifying the password of the user can be performed in different ways. The user Different hash algorithms are used in order to generate hash password may be directly stored in the database or the hash value values. Some commonly used hash functions include the of the password may be stored. This survey will include the study following: of password hashing. It will also include the need of password hashing, algorithms used for password hashing along with the attacks possible on the same. • MD5 • SHA-1 Key Words: Password, Hashing, Algorithms, bcrypt, scrypt, • SHA-2 attacks, SHA-1 • SHA-3 1.INTRODUCTION MD5: Web servers store the username and password of its users to authenticate its users. If the web servers store the passwords of This algorithm takes data of arbitrary length and produces its users directly in the database, then in such case, password message digest of 128 bits (i.e.
    [Show full text]
  • Password Cracker Tutorial
    Password cracker tutorial In cryptanalysis and computer security, password cracking is the process of recovering passwords[1] from data that has been stored in or transmitted by a computer system. A common approach (brute-force attack) is to repeatedly try guesses for the password and to check them against an available cryptographic hash of the password.[2] The purpose of password cracking might be to help a user recover a forgotten password (installing an entirely new password is less of a security risk, but it involves System Administration privileges), to gain unauthorized access to a system, or to act as a preventive measure whereby system administrators check for easily crackable passwords. On a file-by-file basis, password cracking is utilized to gain access to digital evidence to which a judge has allowed access, when a particular file's permissions are restricted. Time needed for password searches The time to crack a password is related to bit strength (see password strength), which is a measure of the password's entropy, and the details of how the password is stored. Most methods of password cracking require the computer to produce many candidate passwords, each of which is checked. One example is brute-force cracking, in which a computer tries every possible key or password until it succeeds. With multiple processors, this time can be optimized through searching from the last possible group of symbols and the beginning at the same time, with other processors being placed to search through a designated selection of possible passwords.[3] More common methods of password cracking, such as dictionary attacks, pattern checking, word list substitution, etc.
    [Show full text]
  • Lab 3: MD5 and Rainbow Tables
    Lab 3: MD5 and Rainbow Tables 50.020 Security Hand-out: February 9 Hand-in: February 16, 9pm 1 Objective • Hash password using MD5 • Crack MD5 hashes using brute-force and rainbow tables • Strengthen MD5 hash using salt and crack again the salted hashes • Compete in the hash breaking competition 2 Hashing password using MD5 • To warm up, compute a couple of MD5 hashes of strings of your choice – Observe the length of the output, and whether it depends on length of input • To generate the MD5 hash using the shell, try echo -n "foobar" | md5sum to compute hash of foobar • To generate the MD5 hash using python, use import hashlib module and its hexdigest() function. 3 Brute-Force and dictionary attack • For this exercise, use the fifteen hash values from the hash5.txt • Create a md5fun.py Python 3 script to find the corresponding input to create the challenge hash values • You need only to consider passwords with 5 lowercase and or numeric characters. Compute the hash values for each possible combination. To help reduce the search space we provide a dictionary with newline separated common words in words5.txt. Notice a resulting hash may be generated by a permutation of any word in the list, e.g. hello -> lhelo • Both hash5.txt and words5.txt elements are newline separated • Take note of the computation time of your algorithm to reverse all fifteen hashes. Consider the timeit python module: https://docs.python.org/3.6/library/timeit.html 1 4 Creating Rainbow Tables • Install the program rainbrowcrack-1.6.1-linux64.zip (http://project-rainbowcrack.com/rainbowcrack-1.6.1-linux64.zip).
    [Show full text]