more control over single mode: need options to disable word extraction, to disable pairs and/or to feed exact candidates
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 13.6k
- Forks
- 2.6k
- PR merge metrics
- No merged PRs in 30d
Description
CMIYC 2019 created interest to feed candidates into single mode with high precision because the hashes are very slow (real world example: Ashley Madison leak). E.g. it may be desirable to use only specified candidates without any additional candidates.
I'll mix several problems, because probable goal may be reached not fixing all of them.
- I did not find any option to disable word extraction fully.
- I did not find way to disable generation of pairs, because SingleWordsPairMax is raised automatically to cover some KPC (I am not sure which one).
- Also final number of pairs may exceed max. key per crypt twice or more (#4110).
Example, current state:
$ printf '.include <john.conf>\n[Local:Options]\nSingleSkipLogin = Y\nPristineGecos = Y\n' > t.conf
$ cat t.conf
.include <john.conf>
[Local:Options]
SingleSkipLogin = Y
PristineGecos = Y
$ echo 'abc,123:$0$h:::qwe,567' > plaintext.pw
$ ./JohnTheRipper/run/john plaintext.pw --verbosity=6 --single=None --config=t.conf
[...]
set_key(qwe, 0)
set_key(qwe567, 1)
set_key(q567, 2)
set_key(qweqwe,567, 3)
set_key(qqwe,567, 4)
set_key(567, 5)
set_key(qwe,567, 6)
set_key(qwe,567qwe, 7)
Almost done: Processing the remaining buffered candidate passwords, if any.
set_key(qqwe, 0)
set_key(qwe,567567, 1)
[...]
I would like to be able to try only qwe,567.
Optionally, with 'SingleSkipLogin = N', it may be useful to be able to try only abc,123 and qwe,567 candidates (but not pairs with them).
john is quite fresh:
$ ./JohnTheRipper/run/john --list=build-info
Version: 1.9.0-jumbo-1+bleeding-ea33667eb 2019-09-23 12:43:34 +0200
Build: linux-gnu 64-bit x86_64 AVX2 AC OMP
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Begin at the single-mode implementation and its Local:Options parsing, reproducing the supplied --single=None configuration and verbose set_key output. Done means options can independently suppress word extraction, suppress pairs, or restrict candidates to the supplied exact values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- cli, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100