Giter Site home page Giter Site logo

maskcat's Introduction

Maskcat is a multi-tool for working with text streams for password cracking.

Maskcat (cat mask) focuses on the usage of masks to extract and transform text and features several functions:

  • Making hashcat masks from stdin
  • Matching words from stdin to masks
  • Substituting tokens into stdin using masks
  • Mutating stdin with masks for new candidates
  • Generating tokens from stdin by extracting input
  • Creating partial masks from stdin by selecting character sets
  • Removing characters from stdin by selecting character sets
  • Creating retain masks from stdin by selecting tokens to retain
  • Mutating stdin with retain masks for new candidates that retain tokens
  • Filtering stdin for masks that are below an entropy threshold

Maskcat also supports several options to assist in being a flexible and powerful tool:

  • Multibyte text support
  • Auto-dehexing text support
  • Configurable number of replacements
  • Additional fuzz configuration for replacements to create unique output

Maskcat fits into a small tool ecosystem for password cracking and is designed for lightweight and easy usage with its companion tools:

Getting Started

Usage information and other documentation can be found below:

Install from Go

go install github.com/jakewnuk/maskcat@latest
go install github.com/jakewnuk/[email protected]

Install from Source

git clone https://github.com/JakeWnuk/maskcat && cd maskcat && go build ./main.go && mv ./main ~/go/bin/maskcat

Current Version 1.2.0:

Options for maskcat (version 1.2.0):

  -d    Process $HEX[...] text (warning: slows processes)
        Example: maskcat [MODE] -d
  -f int
        Adds extra fuzz to the replacement functions
        Example: maskcat [MODE] -f 1
  -m    Process multibyte text (warning: slows processes)
        Example: maskcat [MODE] -m
  -n int
        Max number of replacements to make per item (default: 1)
        Example: maskcat [MODE] -n 1 (default 1)
  -v    Show verbose information about masks
        Example: maskcat [MODE] -v

Modes for maskcat (version 1.2.0):

  mask          Creates masks from text
                Example: stdin | maskcat mask [OPTIONS]

  match         Matches text to masks
                Example: stdin | maskcat match [MASK-FILE] [OPTIONS]

  sub           Replaces text with text from a file with masks
                Example: stdin | maskcat sub [TOKENS-FILE] [OPTIONS]

  mutate        Mutates text by using chunking and token swapping
                Example: stdin | maskcat mutate [MIN-TOKEN-SIZE] [OPTIONS]

  tokens        Splits text into tokens and only print certain lengths (values over 99 allow all)
                Example: stdin | maskcat tokens [TOKEN-LEN] [OPTIONS]

  partial       Partially replaces characters with mask characters
                Example: stdin | maskcat partial [MASK-CHARS] [OPTIONS]

  remove        Removes characters that match given mask characters
                Example: stdin | maskcat remove [MASK-CHARS] [OPTIONS]

  retain        Creates retain masks by keeping text from a file
                Example: stdin | maskcat retain [TOKENS-FILE] [OPTIONS]

  splice        Mutates text by using retain masks and token swapping
                Example: stdin | maskcat splice [TOKENS-FILE] [OPTIONS]

  filter        Only prints masks below a maximum entropy threshold
                Example: stdin | maskcat filter [ENTROPY-MAX] [OPTIONS]

maskcat's People

Contributors

jakewnuk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

maskcat's Issues

The latest commit in 2.0.0 is causing "fatal error: concurrent map iteration and map write"

fatal error: concurrent map iteration and map write

goroutine 70 [running]:
runtime.dopanic__m
        ../../../src/libgo/go/runtime/panic.go:1204
runtime.fatalthrow
        ../../../src/libgo/go/runtime/panic.go:1073
runtime.throw
        ../../../src/libgo/go/runtime/panic.go:1044
runtime.mapiternext
        ../../../src/libgo/go/runtime/map.go:929
github.com/jakewnuk/maskcat/internal/cli.MutateMasks..func1
        /home/kali/maskcat/internal/cli/cli.go:196
runtime.kickoff
        ../../../src/libgo/go/runtime/proc.go:1316
created by github_0com_1jakewnuk_1maskcat_1internal_1cli.MutateMasks
        /home/kali/maskcat/internal/cli/cli.go:193 +0x40a

Question on maskcat mutate

Hello.
I am mastering your tools. Very useful tools!
I found a strange (possibly incorrect) work when using "maskcat mutate".

Even when executing your example:
$ cat test.txt
this
is a
Test!
love
Testing
Work$

$ cat test.txt | shuf | maskcat mutate 4
Work$
Test$
Work!
Test!
Tthisng
Working
Testing
Tloveng

In your example, the end result of executing "maskcat mutate 4" contains 8 lines.
I had to execute "maskcat mutate 4" several times to get this result.
Very often the result contains only 5, 6 or 7 lines out of 8 possible lines.

The same problem is observed when I used my own dataset as well.
I could not find any regularity as to why this happens.

Perhaps there are some nuances when running this command?

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.