• Stars
    star
    350
  • Rank 117,315 (Top 3 %)
  • Language
    PHP
  • License
    GNU General Publi...
  • Created almost 11 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

CrackStation.net's Lookup Table Implementation.

CrackStation.net's Lookup Tables

Introduction

There are three components to this system:

  1. The indexing PHP script (createidx.php), which takes a wordlist and builds a lookup table index for a hash function and the words in the list.

  2. The indexing sorter program (sortidx.c), which sorts an index created by the indexing script, so that the lookup script can use a binary search on the index to crack hashes.

  3. The lookup script (LookupTable.php), which uses the wordlist and index to crack hashes.

The system is split up like this because PHP provides easy access to many different types of hash functions, but is too slow to sort large indexes in a reasonable amount of time. We are planning to re-write components #1 and #3 in C or C++.

Building and Testing

The PHP scripts to not need to be built. To build the C programs, run make.

To run the tests, just run make test, and then clean up the files the tests created with make testclean.

Indexing a Dictionary

Suppose you have a password dictionary in the file words.txt and you would like to index it for MD5 and SHA1 cracking.

First, create the MD5 and SHA1 indexes:

$ php createidx.php md5 words.txt words-md5.idx
$ php createidx.php sha1 words.txt words-sha1.idx

Next, use the sortidx program to sort the indexes:

$ ./sortidx -r 256 words-md5.idx
$ ./sortidx -r 256 words-sha256.idx

The -r parameter is the maximum amount of memory sortidx is allowed to use in MiB. The more memory you let it use, the faster it will go. Give it as much as your system will allow.

You now have everything you need to crack MD5 and SHA1 hashes quickly.

Cracking Hashes

Once you have generated and sorted the index, you can use the LookupTable class to crack hashes. See test/test.php for an example of how to use it.

Adding Words

Once a wordlist has been indexed, you can not modify the wordlist file without breaking the indexes. Appending to the wordlist is safe in that it will not break the indexes, but the words you append won't be indexed, unless you re-generate the index. There is currently no way to add words to an index without re-generating the entire index.

More Repositories

1

php-encryption

Simple Encryption in PHP.
PHP
3,721
star
2

swatd

Run a script when one or more sensors fail.
C
860
star
3

password-hashing

Password hashing code.
PHP
857
star
4

sockstress

Sockstress (TCP DoS) implementation.
C
205
star
5

flush-reload-attacks

Ruby
177
star
6

crackstation

Source code for my crackstation.net website.
Hack
122
star
7

passgen

A password generator.
C++
77
star
8

defuse.ca

The source code to my defuse.ca website.
HTML
63
star
9

phpcount

A unique hit counter that respects users' privacy.
PHP
61
star
10

email-spoofing

Ruby script for spoofing SMTP emails.
Ruby
43
star
11

php-passgen

Generating passwords in PHP.
PHP
38
star
12

dnsfs

Host files with DNS
Ruby
32
star
13

gas-obfuscation

Extremely simple but inefficient x86-64 assembly obfuscation.
Ruby
32
star
14

yescrypt

Non-C Implementations of the yescrypt KDF.
C
28
star
15

helloworld-cms

A simple content display system in PHP.
PHP
27
star
16

airgap

Design for an economical and simple air-gapped system.
24
star
17

DAWr

The start of a library for building a DAW and/or sound experiments in Rust
Rust
24
star
18

pastebin

The defuse.ca pastebin.
PHP
23
star
19

WinPassGen

A Windows Password Generator.
C
23
star
20

phphashcrack

A PHP hash cracker.
PHP
22
star
21

encutil

Example of how to build a command-line file encryption utility with defuse/php-encryption.
PHP
20
star
22

synergy-crack

Synergy 1.4.12 cracking tool.
Ruby
17
star
23

cuda-md5

Old NVIDIA CUDA implementation of salted MD5 brute-force
C++
17
star
24

ictm

A user-first approach to threat modeling.
14
star
25

x86rc4

A tiny x86 implementation of RC4
Assembly
13
star
26

php-newsgroups

Newsgroup-style PHP forum.
PHP
12
star
27

elfplayer

Visualize an ELF's execution
JavaScript
11
star
28

backup-verify

Tool for verifying backups and comparing directories.
Ruby
9
star
29

passgenr

A library for generating cryptographically-secure passwords in Rust.
Rust
8
star
30

textractor

Extract strings from files to make wordlists.
C#
6
star
31

vim

My GVim Configuration
Vim Script
6
star
32

image-passwords

HTML5 Canvas: Generating keys from memorable image sequences.
JavaScript
5
star
33

canvas

Practice HTML5 Canvas.
JavaScript
5
star
34

gadgetrie

A simple gadget finder for Return Oriented Programming
C
5
star
35

truecrypt-archive

Archive of all TrueCrypt 7.1a files
Standard ML
4
star
36

defuse_failover

(Old) How I used to do implement failover for defuse.ca.
Shell
4
star
37

gnutls-psk

Example TLS PSK client/server.
C
4
star
38

js-encryption

SJCL (JavaScript) encryption example.
JavaScript
3
star
39

afl-demo

C
3
star
40

vst_plugin

Example VST2 plugin in Rust.
Rust
2
star
41

eotp

https://defuse.ca/eotp.htm
Java
2
star
42

nova-extractor

WIP implementation of the extractor in Nova's security proof
Rust
2
star
43

passwordtrainer

A script for memorizing/practicing passwords.
Ruby
2
star
44

php-login

A (half-finished) PHP login system.
PHP
2
star
45

stemviz

JavaScript
2
star
46

https-mockups

Negative feedback for insecure web connections.
2
star
47

sudoku-solver

A simple sudoku solver in Ruby
Ruby
2
star
48

pfs-experiments

Testing perfect forward secrecy in the short term.
Ruby
1
star
49

tix

A command-line ticket system in Ruby.
Ruby
1
star
50

bqp

Source code for my bqp.io website.
HTML
1
star
51

juggler-pow

A memory-but-not-time asymmetric proof-of-work function.
C
1
star
52

upload

File transfer upload script.
Shell
1
star
53

popularaccess

popularaccess.org
1
star
54

hypothetico-web

Hypothetico e-zine website
PHP
1
star
55

nsa-letter

A letter to Canadian MPs about the NSA
1
star
56

vimhl

Syntax highlighting in PHP with Vim.
PHP
1
star
57

wavetool

A tool for processing/analyzing Serum wavetables.
Rust
1
star
58

qcircuitgen

Easily draw quantum circuits for LaTeX's picture environment
Ruby
1
star
59

codefiles

A Ruby on Rails blog.
Ruby
1
star