Skip to content

Easy to use package for bruteforce attacks, with support for ECMAScript and CJS

License

Notifications You must be signed in to change notification settings

lea0o0oo/ez-bruteforcer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ez-bruteforcer

Easy to use package for bruteforce attacks, with support for ECMAScript and CJS
MIT License

Table of contents

Import

Import with CommonJS...

const bruteforce = require("ez-bruteforcer");

...or with ECMAScript!

import bruteforce from "ez-bruteforcer";

API Reference

getDispositionsNumber()

Calculate all the dispositions

Will calculate all the avaiable dispositions without finding them

bruteforce.getDispositionsNumber("oh!sle", 6, 1);
Parameter Type Description
array array || string Required. The array where you want to calculate the dispositions
maxLength number Required. The maxium length of the password
minLength number Optional. The minium length of the password, if null will default to 1

runSync()

Find all dispositions

Will start the bruteforce attack

bruteforce.runSync({
    data: [],
    step: (value) => return false,
    finish: () => { console.log('finished') },  // Optional
    maxLength: 2,
    minLength: 1 // Optional
})

This function only takes one options argument

  • data [ARRAY / STRING] (required) - The characters list to perform the attack, you can use an array or a string.
  • step [FUNCTION] (required) - This function will be called every time a new iteration is found, and it will pass as argument the current iteration value. It acts as a "validator" and must always return true or false.
    If it returns true it will stop searching, if instead returns false it will continue to iterate.
  • finish [FUNCTION] (optional) - This function will be called when all the iteration will be done. NOTE: It will only be executed when the script finishes the iteration, this means that if a function in the step key will return true before it finishes everything this function will not be triggered.
  • maxLength [NUMBER] (required) - The maxium length of the password.
  • minLength [NUMBER] (optional) - The minium length of the password, if not specified, will be defaulted to 1

Usage/Examples

import bruteforce from "ez-bruteforcer";

const charactersList = "oh!sle";
const secretPassword = "hello!";
bruteforce.runSync({
  data: charactersList,
  step: (attempt) => {
    console.log(`Trying password: ${attempt}`);
    if (attempt == secretPassword) {
      console.log(`> Found password: ${attempt}`);
      return true;
    } else return false;
  },
  finish: () => {
    console.log("> Nothing has been found:(");
  },
  maxLength: 6,
  minLength: 1,
});
console.log(
  "> Total possible combinations: " +
    bruteforce.getDispositionsNumber(charactersList, 6, 1)
);

/*
...
Trying password: lsllo!
Trying password: esllo!
Trying password: olllo!
Trying password: hlllo!
Trying password: !lllo!
Trying password: slllo!
Trying password: llllo!
Trying password: elllo!
Trying password: oello!
Trying password: hello!
> Found password: hello!
> Total possible combinations: 55986
*/

Credits

  • I "stole" the code to find the dispositions from the class "BaseN" in the package js-combinatorics to then modify it to make it work for a bruteforce attack

Authors

About

Easy to use package for bruteforce attacks, with support for ECMAScript and CJS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published