The commit f2270de0 introduced this regression and reverting it fix the issue.
The description of the commit lacks a bit of context, but I guess the intent was that if we are using the same usernames for different attempts, then we could keep the same connection open and speed up things during the first timing probe.
Even if reverting this commits might cause a bit of performance drop, I think it's more important to have code that behave as it should.
The logic to get the credentials for the SSH module is wrong:
With pairwise:
As we can see, ncrack is using the wrong pairs of credentials: user[idx] with pass[idx+6].
With default option:
Ncrack is skipping the first 6 passwords for all the users except the first one.
Note that if we run the same command but with the mysql module, everything looks good: Example:
The commit f2270de0 introduced this regression and reverting it fix the issue. The description of the commit lacks a bit of context, but I guess the intent was that if we are using the same usernames for different attempts, then we could keep the same connection open and speed up things during the first timing probe. Even if reverting this commits might cause a bit of performance drop, I think it's more important to have code that behave as it should.
With this commit applied: