Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request - create base word list & de-1337 #40

Closed
Lexus89 opened this issue Sep 19, 2017 · 9 comments
Closed

Feature request - create base word list & de-1337 #40

Lexus89 opened this issue Sep 19, 2017 · 9 comments

Comments

@Lexus89
Copy link

Lexus89 commented Sep 19, 2017

It would be nice to have a feature for creating wordlists based on the base words. A 'de-1337'-function could help creating these wordlists. The password '1945un1c0rn01' could result in the base word 'unicorn' by stripping the begin/end non-alpha's and replacing the inner 1 and 0 with the alpha character (i/o).

@digininja
Copy link
Owner

digininja commented Sep 19, 2017 via email

@Lexus89
Copy link
Author

Lexus89 commented Sep 19, 2017

I pretty much only encounter the substitution 'i' with 1 than 'l' so based on that just keeping one word seems to be enough (using only the most common substitution). However if there are more examples like that with multiple letters and/or you experienced the 'l' being used a lot as well, it might be a good thing to keep it configurable maybe..? Can't think of a good solution for that now though :(

@digininja
Copy link
Owner

digininja commented Sep 19, 2017 via email

@digininja
Copy link
Owner

How about this?

https://github.com/digininja/deleet/tree/master

@Lexus89
Copy link
Author

Lexus89 commented Sep 20, 2017

This looks good, thnx!

Going to be so handy for creating word lists with base words. Tried on some passwords and noticed a couple of possible improvements (brain dump):

  • When having a strange character in the wordlist it shows the following error and quits. Can prevent this ofcourse by cleaning up the list in advance but just want to let you know
./deleet.rb:112:in `match': invalid byte sequence in UTF-8 (ArgumentError)
	from ./deleet.rb:112:in `block in <main>'
	from ./deleet.rb:110:in `each'
	from ./deleet.rb:110:in `<main>'
  • Convert string to lowercase, rules will handle uppercasing the first character etc.
  • Additional substitutions: (@ > a, ! > i, ! > l)
  • Perhaps an option to only output unique base words so you dont have to sort -u after
  • Was thinking about possible language-based tweaks, for example if a word contains the string '1oord', the '1' is most likely an 'L" instead of a 'i' because of the double 'o'-vowels.

@digininja
Copy link
Owner

digininja commented Sep 20, 2017 via email

@Lexus89
Copy link
Author

Lexus89 commented Sep 20, 2017

Yes it is indeed tricky, perhaps something like this:

!WiFi@irb4s3Rul3Z! <- Now no baseword printed by deleet

  1. First strip off non-alpha chars from left to right (until first alpha char): WiFi@irb4s3Rul3Z!
  2. Strip off non-alpha chars from right to left (until first alpha char): WiFi@irb4s3Rul3Z
  3. Substitute chars: WiFiairbaseRuleZ
  4. Convert to lowercase: wifiairbaserulez

For a password like @irb4se! this will ofcourse still result in 'irbase' but a rule placing all special chars in front of base word fixes this issue.

@digininja
Copy link
Owner

digininja commented Sep 20, 2017 via email

@digininja
Copy link
Owner

Moving this discussion over to the deleet project, I'm going to do some updates and will comment over here digininja/deleet#1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants