Giter VIP home page Giter VIP logo

zombie's Introduction

Zombie

This is a collection of tools to explore security on Blockchains. We focus specifically on cryptography, notably random number generation, private key, wallet cracking, brainwallet etc.

Disclaimer

Just because you can steal someone else money does not mean you should do it.

Inspiration(great and funny talk at Defcon): https://github.com/ryancdotorg/brainflayer

Installation

You need to have a working go(lang) environment in version >=1.9 and clone this repository. I can provide executable if there are requests.

You first need to get the dependency:

$ go get github.com/btcsuite/btcutil/base58

Now you can go in the exec folder and build the executable:

$ cd exec/
$ go build -zombie.go
$ ./zombie

Usage

$ ./zombie -h
Usage of ./zombie:
  -f string
    	format file (default "guesses")
  -print
    	Print the generated canditates to standard output
  -wif
    	WIF cracker. Generate valid wif from the format or wordlist file

Wordlist generation

Goal

The goal is to generate password/keys when you know part of the target. This is not suitable if you have a high number of candidates for some parts. Hopefully next versions will support candidates from file generated with the tools like crunch or john the ripper.

Format

First you need to fill the format file(see exec/format_example for an example):

// read the format line and put it in an array of candidates
// one time symbol between parts candidates
// first symbol is a delimiter follow by a part
// repeat the delimiter before each part
// ex: aEa3  	=> [E 3]
// ex: !g!d!e!p => [g d e p]
// ex: %OUI%NON%YES%NO => [OUI NON YES NO]

A useful feature that is missing is being able to set all the characters of the alphabet you are consider, using ?. The alphabets considered for addition are base58 and BIP39 wordlists mainly, and maybe hexadecimal/binary in case we want to play directly on bytes/bits level.

Usage

The philosophy of this function is to use it with the cracking functions available (not much for now) or to print the resulting candidates, with the option -print.

Example: Monero Wallet Cracker

Let us assume you forgot exactly your Monero wallet password but you know the parts in it. You can use zombie to generate the password candidates and then pipe it to the wallet. I made a Bash script to use where your wallet and the Monero cli are located:

./monero_cracker.sh format_file brute_forcing_a_monero_wallet

Wif Cracker: guess a private keys

This function is useful to take on contest like this one: img It will generate the candidates from the format, check if they are valid wif and print the valid wif. You need to then derive them and see if they hit your target. Unfortunately, we did not get the 1/2 BTC :-( because we had a wrong assumption and did not consider the case color.

Remember:You need to have partial knowledge of the key, somehow, and hope that you can bruteforce the remaining space.

The solution to the contest: 5JKPapJwgyEij3sxYRAEnixyiFgxqkVhgZXv9bWWknBexegx6tM You can test it with the provided guesses file.

Next features

  • Number of candidates generated and size
  • Accept data generated from crunch/John
  • Add Public key derivation for BTC, ETH, ...
  • Brainwallet cracker
  • Mnemonic phrases support(BIP39,...)
  • Try very crappy random number generator: date, hour, low/high Hamming weight (00..00, 11..11)
  • Advance ECC Discrete logarithm attacks

zombie's People

Contributors

cryptohazard avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.