rapid7/metasploit-framework — pull request #3313 by nstarke (2014-04-28 21:54:58+00:00)
Title: Large pass_file hangs login modules

SeeRM #8704

When running a *_login module that contains a large PASS_FILE
the module appears to hang while it is creating the combinations over
such a large dataset. The solution proposed in the Redmine task
requested that the user be alerted with some sort of progress feedback
if the process takes an excessive amount of time.

I have added a message that logs to the console that contains the
number of pairs left to be constructed before the module will continue.
The verbiage is fairly arbitrary and should probably be updated to
something that might be more descriptive. Likewise, the sleep
interval may need to be adjusted.

For the interval length, I began with 5 minutes (300 seconds) because that is what the Redmine issue suggested. When testing with 300 seconds, I noticed that the status update was being logged to console about every eight minutes in my local development environment. Further research revealed that the ruby sleep function's timing can vary based on CPU type, architecture, etc. Odds are that the interval value will need to be adjusted to suit the communities needs.