From cc39bcb1940d0f36a6d0d9d86877da5cae2c5c32 Mon Sep 17 00:00:00 2001 From: AAVision <75311052+AAVision@users.noreply.github.com> Date: Fri, 7 Jul 2023 18:13:08 +0300 Subject: [PATCH] first commit --- .gitignore | 1 + README.md | 29 +++++++ favicon.ico | Bin 0 -> 137479 bytes favicon.png | Bin 0 -> 16385 bytes go.mod | 17 +++++ go.sum | 36 +++++++++ main.go | 22 ++++++ munge.go | 205 ++++++++++++++++++++++++++++++++++++++++++++++++++ passwords.txt | 90 ++++++++++++++++++++++ 9 files changed, 400 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 favicon.ico create mode 100644 favicon.png create mode 100644 go.mod create mode 100644 go.sum create mode 100644 main.go create mode 100644 munge.go create mode 100644 passwords.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..adb36c8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.exe \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..1e0c4dc --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ + +![Munge passwords by aavision](https://github.com/aavision/munge-passwords/blob/main/favicon.png?raw=true) + + +# munge-passwords + +A little mapped Go script to munge dictionary words into possible passwords. + +## Usage + +```bash +Usage: munge-passwords.exe --length LENGTH [--wordlist WORDLIST] --output OUTPUT [--r] [--input INPUT] + +Options: + --level LENGTH, -l LENGTH + --wordlist WORDLIST + --output OUTPUT, -o OUTPUT + --d, -d + --input INPUT, -i INPUT + --help, -h display this help and exit +``` + +- `--level [1,9]` or `-l` : is the level of munge for the input or the word-list! +- `--wordlist` or `-w` : The path of the wordlist. +- `--output` or `-o` : Output file name example `munge-passwords.txt` +- `--d` : Remove the duplicated record before munge from the provided list! +- `-i` or `--input` : To enter string! + +## License diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..51e1acd36c43c8ce255fe87653b07f86c95057bf GIT binary patch literal 137479 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 bxLkb5#ibP|I5ok#=;`AB@n`t6^7sA^qn@eb literal 0 HcmV?d00001 diff --git a/favicon.png b/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..506b72bef4ef9a6d592bbf256d57dfd3d08cf39e GIT binary patch literal 16385 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 literal 0 HcmV?d00001 diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..74f4548 --- /dev/null +++ b/go.mod @@ -0,0 +1,17 @@ +module github.com/AAVISION/munge-passwords + +go 1.17 + +require ( + github.com/akavel/rsrc v0.10.2 // indirect + github.com/alexflint/go-arg v1.4.3 // indirect + github.com/alexflint/go-scalar v1.1.0 // indirect + github.com/fatih/color v1.7.0 // indirect + github.com/gookit/color v1.5.3 // indirect + github.com/josephspurrier/goversioninfo v1.4.0 // indirect + github.com/mattn/go-colorable v0.1.2 // indirect + github.com/mattn/go-isatty v0.0.8 // indirect + github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect + golang.org/x/sys v0.6.0 // indirect + golang.org/x/term v0.1.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..9466a65 --- /dev/null +++ b/go.sum @@ -0,0 +1,36 @@ +github.com/akavel/rsrc v0.10.2 h1:Zxm8V5eI1hW4gGaYsJQUhxpjkENuG91ki8B4zCrvEsw= +github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= +github.com/alexflint/go-arg v1.4.3 h1:9rwwEBpMXfKQKceuZfYcwuc/7YY7tWJbFsgG5cAU/uo= +github.com/alexflint/go-arg v1.4.3/go.mod h1:3PZ/wp/8HuqRZMUUgu7I+e1qcpUbvmS258mRXkFH4IA= +github.com/alexflint/go-scalar v1.1.0 h1:aaAouLLzI9TChcPXotr6gUhq+Scr8rl0P9P4PnltbhM= +github.com/alexflint/go-scalar v1.1.0/go.mod h1:LoFvNMqS1CPrMVltza4LvnGKhaSpc3oyLEBUZVhhS2o= +github.com/briandowns/spinner v1.23.0 h1:alDF2guRWqa/FOZZYWjlMIx2L6H0wyewPxo/CH4Pt2A= +github.com/briandowns/spinner v1.23.0/go.mod h1:rPG4gmXeN3wQV/TsAY4w8lPdIM6RX3yqeBQJSrbXjuE= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/gookit/color v1.5.3 h1:twfIhZs4QLCtimkP7MOxlF3A0U/5cDPseRT9M/+2SCE= +github.com/gookit/color v1.5.3/go.mod h1:NUzwzeehUfl7GIb36pqId+UGmRfQcU/WiiyTTeNjHtE= +github.com/josephspurrier/goversioninfo v1.4.0 h1:Puhl12NSHUSALHSuzYwPYQkqa2E1+7SrtAPJorKK0C8= +github.com/josephspurrier/goversioninfo v1.4.0/go.mod h1:JWzv5rKQr+MmW+LvM412ToT/IkYDZjaclF2pKDss8IY= +github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8= +github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.1.0 h1:g6Z6vPFA9dYBAF7DWcH6sCcOntplXsDKcliusYijMlw= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/main.go b/main.go new file mode 100644 index 0000000..cc44d39 --- /dev/null +++ b/main.go @@ -0,0 +1,22 @@ +//go:generate goversioninfo -icon=favicon.ico -manifest=goversioninfo.exe.manifest + +package main + +import ( + "github.com/alexflint/go-arg" + "github.com/gookit/color" +) + +var args struct { + Level int `arg:"-l,required"` + Word string `arg:"--wordlist,-w"` + Output string `arg:"-o,required"` + D bool `arg:"-d"` + Input string `arg:"-i"` +} + +func main() { + arg.MustParse(&args) + color.Yellowln("Processing...") + mungeInit(args.Level, args.Word, args.Output, args.D, args.Input) +} diff --git a/munge.go b/munge.go new file mode 100644 index 0000000..44f9989 --- /dev/null +++ b/munge.go @@ -0,0 +1,205 @@ +package main + +import ( + "bufio" + "os" + "strings" + + "github.com/gookit/color" +) + +var tmpWordList []string +var inputFileLines []string + +func mungeInit(level int, wordlistPath string, fileName string, removeDuplicate bool, input string) { + + if level < 0 { + level = 0 + } + + if level > 9 { + level = 9 + } + + if wordlistPath != "" && input == "" { + + readWordList(wordlistPath) + + if removeDuplicate { + inputFileLines = removeDuplication(inputFileLines) + } + + for _, line := range inputFileLines { + mungeword(line, level) + } + + } else if wordlistPath == "" && input != "" { + mungeword(input, level) + } else { + color.Error.Println("Input or wordlist required!") + } + + writeMunge(fileName) + +} + +func readWordList(path string) { + readFile, err := os.Open(path) + + if err != nil { + color.Error.Println("Error reading the file!") + } + + fileScanner := bufio.NewScanner(readFile) + fileScanner.Split(bufio.ScanLines) + + for fileScanner.Scan() { + inputFileLines = append(inputFileLines, fileScanner.Text()) + } + + readFile.Close() +} + +func writeMunge(fileName string) { + + if fileName == "" { + fileName = "munge-passwords.txt" + } + + file, err := os.OpenFile(fileName, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + + if err != nil { + color.Error.Println("Failed creating file!") + } + + datawriter := bufio.NewWriter(file) + + for _, data := range tmpWordList { + _, _ = datawriter.WriteString(data + "\n") + } + + color.Greenp("Saved to ", args.Output) + datawriter.Flush() + file.Close() +} + +func removeDuplication(arr []string) []string { + map_var := map[string]bool{} + result := []string{} + for e := range arr { + if map_var[arr[e]] != true { + map_var[arr[e]] = true + result = append(result, arr[e]) + } + } + return result +} + +func munge(wrd string, level int) { + if level > 0 { + tmpWordList = append(tmpWordList, wrd) + tmpWordList = append(tmpWordList, strings.ToUpper(wrd)) + tmpWordList = append(tmpWordList, strings.Title(wrd)) + } + if level > 2 { + temp := strings.Title(wrd) + tmpWordList = append(tmpWordList, strings.ToLower(temp)) + } + if level > 4 { + tmpWordList = append(tmpWordList, strings.ReplaceAll(wrd, "e", "3")) + tmpWordList = append(tmpWordList, strings.ReplaceAll(wrd, "a", "4")) + tmpWordList = append(tmpWordList, strings.ReplaceAll(wrd, "o", "0")) + tmpWordList = append(tmpWordList, strings.ReplaceAll(wrd, "i", "!")) + tmpWordList = append(tmpWordList, strings.ReplaceAll(wrd, "i", "1")) + tmpWordList = append(tmpWordList, strings.ReplaceAll(wrd, "l", "1")) + tmpWordList = append(tmpWordList, strings.ReplaceAll(wrd, "a", "@")) + tmpWordList = append(tmpWordList, strings.ReplaceAll(wrd, "s", "$")) + } + if level > 4 { + temp := wrd + temp = strings.ReplaceAll(temp, "e", "3") + temp = strings.ReplaceAll(temp, "a", "4") + temp = strings.ReplaceAll(temp, "o", "0") + temp = strings.ReplaceAll(temp, "i", "1") + temp = strings.ReplaceAll(temp, "s", "$") + tmpWordList = append(tmpWordList, temp) + } + if level > 4 { + temp := wrd + temp = strings.ReplaceAll(temp, "e", "3") + temp = strings.ReplaceAll(temp, "a", "@") + temp = strings.ReplaceAll(temp, "o", "0") + temp = strings.ReplaceAll(temp, "i", "1") + temp = strings.ReplaceAll(temp, "s", "$") + tmpWordList = append(tmpWordList, temp) + } + if level > 4 { + temp := wrd + temp = strings.ReplaceAll(temp, "e", "3") + temp = strings.ReplaceAll(temp, "a", "4") + temp = strings.ReplaceAll(temp, "o", "0") + temp = strings.ReplaceAll(temp, "i", "!") + temp = strings.ReplaceAll(temp, "s", "$") + tmpWordList = append(tmpWordList, temp) + } + if level > 4 { + temp := wrd + temp = strings.ReplaceAll(temp, "e", "3") + temp = strings.ReplaceAll(temp, "a", "4") + temp = strings.ReplaceAll(temp, "o", "0") + temp = strings.ReplaceAll(temp, "l", "1") + temp = strings.ReplaceAll(temp, "s", "$") + tmpWordList = append(tmpWordList, temp) + } +} + +func mungeword(wrd string, level int) { + munge(wrd, level) + if level > 4 { + munge(wrd+"1", level) + munge(wrd+"123456", level) + munge(wrd+"12", level) + munge(wrd+"2", level) + munge(wrd+"123", level) + munge(wrd+"!", level) + munge(wrd+".", level) + } + if level > 6 { + munge(wrd+"?", level) + munge(wrd+"_", level) + munge(wrd+"0", level) + munge(wrd+"01", level) + munge(wrd+"69", level) + munge(wrd+"21", level) + munge(wrd+"22", level) + munge(wrd+"23", level) + munge(wrd+"1234", level) + munge(wrd+"8", level) + munge(wrd+"9", level) + munge(wrd+"10", level) + munge(wrd+"11", level) + munge(wrd+"13", level) + munge(wrd+"3", level) + munge(wrd+"4", level) + munge(wrd+"5", level) + munge(wrd+"6", level) + munge(wrd+"7", level) + } + if level > 7 { + munge(wrd+"07", level) + munge(wrd+"08", level) + munge(wrd+"09", level) + munge(wrd+"14", level) + munge(wrd+"15", level) + munge(wrd+"16", level) + munge(wrd+"17", level) + munge(wrd+"18", level) + munge(wrd+"19", level) + munge(wrd+"24", level) + munge(wrd+"77", level) + munge(wrd+"88", level) + munge(wrd+"99", level) + munge(wrd+"12345", level) + munge(wrd+"123456789", level) + } +} diff --git a/passwords.txt b/passwords.txt new file mode 100644 index 0000000..8836b51 --- /dev/null +++ b/passwords.txt @@ -0,0 +1,90 @@ +aaa +aaa +aaa +stephanie1 +fender +ruslan +matthew +loveme +chelsea +pokemon +3rJs1la7qE +12344321 +summer +purple +buster +29rsavoy +tigger +asshole1 +xbox360 +12341234 +chocolate +myspace +superman1 +babygirl +freedom +golfer +q1w2e3r4t5y6 +charlie1 +qweasdzxc +12345q +abc +trustno1 +asdf1234 +q1w2e3 +lovely +apple +number1 +passw0rd +basketball +parola +qwerty12 +hunter +money1 +010203 +andrea +anthony1 +welcome +joshua +696969 +hello +baseball1 +00000000 +111222 +1 +anthony +147258 +marina +fuckyou2 +naruto +soccer1 +jennifer +bitch1 +andrew +jessica1 +102030 +1111111111 +0987654321 +justin +qweqwe +nicole +1111 +thomas +angel1 +101010 +liverpool +iloveyou2 +qazwsxedc +michelle +123456q +159357 +jordan +k.: +147258369 +hello1 +0123456789 +987654 +qwert +0 +babygirl1 +zxcvbn \ No newline at end of file