Enumerate AD Domain via NTLM Authentication

Add functionality to attempt an NTLM auth against common directories
to try to enumerate the AD domain. If a domain is found this will be
prepended to the authentication requests, otherwise it's business as
usual.
Minor fixes to syntax and error handling
Domain enumeration put in own function

The code to enumerate the AD domain is now in its own function

Additionally, a new advanced option has been added which controls
whether or not the domain enumeration will occur so that if it is
not wanted the user can disabled it. By default this is set to
enumerate the AD domain.

If AD_DOMAIN is already specified then this will be used and no
auto enumeration will occur.
Removed blanks at EOL

Fixed blanks at EOL per msftidy messages
Default to exe-small
Merge for retab
Retab changes for PR #2320
Merge for retab
Retab changes for PR #2273
Merge pull request #2 from tabassassin/retab/pr/2273

Retab/pr/2273
Merge pull request #9 from tabassassin/retab/pr/2320

Retab/pr/2320
dded Jenkins vulnerability scanner
Minor Changes

changed print calls to print_line
removed trailing \n's
used default timeout for send_request_cgi
Used default timeout

forgot an additional default timeout in my previous commit
add radware_appdirector_enum

This module scans for Radware AppDirector's web login portal, and performs login brute force to identify valid credentials.

- mstidy.tb & retab.rb run done
- stop_on_success is set to true. Important, otherwise the app starts dropping bf source.
- slowing down brute force speed seems to work though, but can take a long time if more creds to check &| more targets
- better to run bf with 2-3 creds against range, & then come back with more creds if needed
changed default options

Updated these default options to false:
      'DB_ALL_CREDS'    => false
      'BLANK_PASSWORDS' => false
Use Fivemat formatting for rspec

Makes the whole thing more pleasant to look at:

````
$ FIVEMAT_PROFILE=1 rake spec
Connecting to database specified by
/home/todb/git/rapid7/metasploit-framework/config/database.yml
NOTICE:  CREATE TABLE will create implicit sequence "api_keys_id_seq"
for serial column "api_keys.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"api_keys_pkey" for table "api_keys"
NOTICE:  CREATE TABLE will create implicit sequence "clients_id_seq" for
serial column "clients.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"clients_pkey" for table "clients"
NOTICE:  CREATE TABLE will create implicit sequence "creds_id_seq" for
serial column "creds.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"creds_pkey" for table "creds"
NOTICE:  CREATE TABLE will create implicit sequence "events_id_seq" for
serial column "events.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"events_pkey" for table "events"
NOTICE:  CREATE TABLE will create implicit sequence
"exploit_attempts_id_seq" for serial column "exploit_attempts.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"exploit_attempts_pkey" for table "exploit_attempts"
NOTICE:  CREATE TABLE will create implicit sequence
"exploited_hosts_id_seq" for serial column "exploited_hosts.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"exploited_hosts_pkey" for table "exploited_hosts"
NOTICE:  CREATE TABLE will create implicit sequence
"host_details_id_seq" for serial column "host_details.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"host_details_pkey" for table "host_details"
NOTICE:  CREATE TABLE will create implicit sequence "hosts_id_seq" for
serial column "hosts.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"hosts_pkey" for table "hosts"
NOTICE:  CREATE TABLE will create implicit sequence "hosts_tags_id_seq"
for serial column "hosts_tags.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"hosts_tags_pkey" for table "hosts_tags"
NOTICE:  CREATE TABLE will create implicit sequence "listeners_id_seq"
for serial column "listeners.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"listeners_pkey" for table "listeners"
NOTICE:  CREATE TABLE will create implicit sequence "loots_id_seq" for
serial column "loots.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"loots_pkey" for table "loots"
NOTICE:  CREATE TABLE will create implicit sequence "macros_id_seq" for
serial column "macros.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"macros_pkey" for table "macros"
NOTICE:  CREATE TABLE will create implicit sequence "mod_refs_id_seq"
for serial column "mod_refs.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"mod_refs_pkey" for table "mod_refs"
NOTICE:  CREATE TABLE will create implicit sequence
"module_actions_id_seq" for serial column "module_actions.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"module_actions_pkey" for table "module_actions"
NOTICE:  CREATE TABLE will create implicit sequence
"module_archs_id_seq" for serial column "module_archs.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"module_archs_pkey" for table "module_archs"
NOTICE:  CREATE TABLE will create implicit sequence
"module_authors_id_seq" for serial column "module_authors.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"module_authors_pkey" for table "module_authors"
NOTICE:  CREATE TABLE will create implicit sequence
"module_details_id_seq" for serial column "module_details.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"module_details_pkey" for table "module_details"
NOTICE:  CREATE TABLE will create implicit sequence
"module_mixins_id_seq" for serial column "module_mixins.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"module_mixins_pkey" for table "module_mixins"
NOTICE:  CREATE TABLE will create implicit sequence
"module_platforms_id_seq" for serial column "module_platforms.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"module_platforms_pkey" for table "module_platforms"
NOTICE:  CREATE TABLE will create implicit sequence "module_refs_id_seq"
for serial column "module_refs.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"module_refs_pkey" for table "module_refs"
NOTICE:  CREATE TABLE will create implicit sequence
"module_targets_id_seq" for serial column "module_targets.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"module_targets_pkey" for table "module_targets"
NOTICE:  CREATE TABLE will create implicit sequence
"nexpose_consoles_id_seq" for serial column "nexpose_consoles.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"nexpose_consoles_pkey" for table "nexpose_consoles"
NOTICE:  CREATE TABLE will create implicit sequence "notes_id_seq" for
serial column "notes.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"notes_pkey" for table "notes"
NOTICE:  CREATE TABLE will create implicit sequence "profiles_id_seq"
for serial column "profiles.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"profiles_pkey" for table "profiles"
NOTICE:  CREATE TABLE will create implicit sequence "refs_id_seq" for
serial column "refs.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"refs_pkey" for table "refs"
NOTICE:  CREATE TABLE will create implicit sequence
"report_templates_id_seq" for serial column "report_templates.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"report_templates_pkey" for table "report_templates"
NOTICE:  CREATE TABLE will create implicit sequence "reports_id_seq" for
serial column "reports.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"reports_pkey" for table "reports"
NOTICE:  CREATE TABLE will create implicit sequence "routes_id_seq" for
serial column "routes.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"routes_pkey" for table "routes"
NOTICE:  CREATE TABLE will create implicit sequence "services_id_seq"
for serial column "services.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"services_pkey" for table "services"
NOTICE:  CREATE TABLE will create implicit sequence
"session_events_id_seq" for serial column "session_events.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"session_events_pkey" for table "session_events"
NOTICE:  CREATE TABLE will create implicit sequence "sessions_id_seq"
for serial column "sessions.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"sessions_pkey" for table "sessions"
NOTICE:  CREATE TABLE will create implicit sequence "tags_id_seq" for
serial column "tags.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"tags_pkey" for table "tags"
NOTICE:  CREATE TABLE will create implicit sequence "task_creds_id_seq"
for serial column "task_creds.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"task_creds_pkey" for table "task_creds"
NOTICE:  CREATE TABLE will create implicit sequence "task_hosts_id_seq"
for serial column "task_hosts.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"task_hosts_pkey" for table "task_hosts"
NOTICE:  CREATE TABLE will create implicit sequence
"task_services_id_seq" for serial column "task_services.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"task_services_pkey" for table "task_services"
NOTICE:  CREATE TABLE will create implicit sequence
"task_sessions_id_seq" for serial column "task_sessions.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"task_sessions_pkey" for table "task_sessions"
NOTICE:  CREATE TABLE will create implicit sequence "tasks_id_seq" for
serial column "tasks.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"tasks_pkey" for table "tasks"
NOTICE:  CREATE TABLE will create implicit sequence "users_id_seq" for
serial column "users.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"users_pkey" for table "users"
NOTICE:  CREATE TABLE will create implicit sequence
"vuln_attempts_id_seq" for serial column "vuln_attempts.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"vuln_attempts_pkey" for table "vuln_attempts"
NOTICE:  CREATE TABLE will create implicit sequence
"vuln_details_id_seq" for serial column "vuln_details.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"vuln_details_pkey" for table "vuln_details"
NOTICE:  CREATE TABLE will create implicit sequence "vulns_id_seq" for
serial column "vulns.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"vulns_pkey" for table "vulns"
NOTICE:  CREATE TABLE will create implicit sequence "vulns_refs_id_seq"
for serial column "vulns_refs.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"vulns_refs_pkey" for table "vulns_refs"
NOTICE:  CREATE TABLE will create implicit sequence "web_forms_id_seq"
for serial column "web_forms.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"web_forms_pkey" for table "web_forms"
NOTICE:  CREATE TABLE will create implicit sequence "web_pages_id_seq"
for serial column "web_pages.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"web_pages_pkey" for table "web_pages"
NOTICE:  CREATE TABLE will create implicit sequence "web_sites_id_seq"
for serial column "web_sites.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"web_sites_pkey" for table "web_sites"
NOTICE:  CREATE TABLE will create implicit sequence "web_vulns_id_seq"
for serial column "web_vulns.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"web_vulns_pkey" for table "web_vulns"
NOTICE:  CREATE TABLE will create implicit sequence
"wmap_requests_id_seq" for serial column "wmap_requests.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"wmap_requests_pkey" for table "wmap_requests"
NOTICE:  CREATE TABLE will create implicit sequence
"wmap_targets_id_seq" for serial column "wmap_targets.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"wmap_targets_pkey" for table "wmap_targets"
NOTICE:  CREATE TABLE will create implicit sequence "workspaces_id_seq"
for serial column "workspaces.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"workspaces_pkey" for table "workspaces"
/home/todb/.rvm/rubies/ruby-1.9.3-p448/bin/ruby -S rspec
./spec/lib/active_record/connection_adapters/abstract_adapter/connection_pool_spec.rb
./spec/lib/fastlib_spec.rb ./spec/lib/msf/base/simple/framework_spec.rb
./spec/lib/msf/core/data_store_spec.rb
./spec/lib/msf/core/exe/segment_injector_spec.rb
./spec/lib/msf/core/exploit/capture_spec.rb
./spec/lib/msf/core/exploit/http/client_spec.rb
./spec/lib/msf/core/exploit/http/server_spec.rb
./spec/lib/msf/core/module_manager_spec.rb
./spec/lib/msf/core/module_spec.rb
./spec/lib/msf/core/modules/error_spec.rb
./spec/lib/msf/core/modules/loader/archive_spec.rb
./spec/lib/msf/core/modules/loader/base_spec.rb
./spec/lib/msf/core/modules/loader/directory_spec.rb
./spec/lib/msf/core/modules/metasploit_class_compatibility_error_spec.rb
./spec/lib/msf/core/modules/namespace_spec.rb
./spec/lib/msf/core/modules/version_compatibility_error_spec.rb
./spec/lib/msf/core/option_container_spec.rb
./spec/lib/msf/core/options/opt_address_range_spec.rb
./spec/lib/msf/core/options/opt_address_spec.rb
./spec/lib/msf/core/options/opt_bool_spec.rb
./spec/lib/msf/core/options/opt_enum_spec.rb
./spec/lib/msf/core/options/opt_int_spec.rb
./spec/lib/msf/core/options/opt_path_spec.rb
./spec/lib/msf/core/options/opt_port_spec.rb
./spec/lib/msf/core/options/opt_raw_spec.rb
./spec/lib/msf/core/options/opt_regexp_spec.rb
./spec/lib/msf/core/task_manager_spec.rb
./spec/lib/msf/db_manager/export_spec.rb
./spec/lib/msf/db_manager_spec.rb
./spec/lib/msf/ui/command_dispatcher/auxiliary_spec.rb
./spec/lib/msf/ui/command_dispatcher/core_spec.rb
./spec/lib/msf/ui/command_dispatcher/db_spec.rb
./spec/lib/msf/ui/command_dispatcher/exploit_spec.rb
./spec/lib/msf/util/exe_spec.rb ./spec/lib/rex/encoding/xor/byte_spec.rb
./spec/lib/rex/encoding/xor/dword_spec.rb
./spec/lib/rex/encoding/xor/qword_spec.rb
./spec/lib/rex/encoding/xor/word_spec.rb
./spec/lib/rex/exploitation/ropdb_spec.rb
./spec/lib/rex/file_utils_spec.rb ./spec/lib/rex/parser/nmap_xml_spec.rb
./spec/lib/rex/parser/unattend_spec.rb
./spec/lib/rex/post/meterpreter/packet_parser_spec.rb
./spec/lib/rex/post/meterpreter/packet_spec.rb
./spec/lib/rex/proto/http/client_request_spec.rb
./spec/lib/rex/proto/http/client_spec.rb
./spec/lib/rex/proto/http/response_spec.rb
./spec/lib/rex/random_identifier_generator_spec.rb
./spec/lib/rex/socket/range_walker_spec.rb
./spec/lib/rex/sslscan/result_spec.rb
./spec/lib/rex/sslscan/scanner_spec.rb ./spec/lib/rex/text_spec.rb
./spec/msfcli_spec.rb ./spec/msfvenom_spec.rb
ActiveRecord::ConnectionAdapters::ConnectionPool ............ (0.38s)
FastLib .....*.....**.. (0.07s)
Msf::Simple::Framework ..... (0.14s)
Msf::DataStore ............ (0.0s)
Msf::Exe::SegmentInjector ................. (1.75s)
Msf::Exploit::Capture ..****... (0.0s)
Msf::Exploit::Remote::HttpClient ........................ (0.0s)
Msf::Exploit::Remote::HttpServer ...... (0.01s)
Msf::ModuleManager .....................................................
(4.39s)
Msf::Module
.............................................................................................................................................................................................................................................
(0.19s)
Msf::Modules::Error ......... (0.0s)
Msf::Modules::Loader::Archive ............... (0.07s)
Msf::Modules::Loader::Base
..................................................................................................../home/todb/git/rapid7/metasploit-framework/lib/msf/core/modules/loader/base.rb:599:
warning: already initialized constant Mod0
........ (0.15s)
Msf::Modules::Loader::Directory ......... (0.02s)
Msf::Modules::MetasploitClassCompatibilityError ... (0.0s)
Msf::Modules::Namespace ........................................ (0.01s)
Msf::Modules::VersionCompatibilityError ......... (0.0s)
Msf::OptionContainer . (0.0s)
Msf::OptAddressRange ............................ (0.01s)
Msf::OptAddress .............. (0.09s)
Msf::OptBool ............ (0.0s)
Msf::OptEnum ..... (0.0s)
Msf::OptInt ............... (0.0s)
Msf::OptPath ......... (0.0s)
Msf::OptPort .......... (0.0s)
Msf::OptRaw ..... (0.0s)
Msf::OptRegexp ...... (0.0s)
Msf::TaskManager ....... (1.17s)
Msf::DBManager::Export ........................ (9.84s)
Msf::DBManager
.....................................................................................................................................................................................................................................................
(92.63s)
Msf::Ui::Console::CommandDispatcher::Core ...... (4.19s)
Msf::Ui::Console::CommandDispatcher::Db ....*......** (3.76s)
Msf::Util::EXE
...........................................................................................................
(10.14s)
Rex::Encoding::Xor::Byte .. (0.06s)
Rex::Encoding::Xor::Dword ... (0.01s)
Rex::Encoding::Xor::Qword ... (0.02s)
Rex::Encoding::Xor::Word ... (0.0s)
Rex::Exploitation::RopDb .............. (0.11s)
Rex::FileUtils .......... (0.0s)
Rex::Parser::NmapXMLStreamParser .... (0.0s)
Rex::Parser::Unattend .... (0.03s)
Rex::Post::Meterpreter::PacketParser .. (0.0s)
Rex::Post::Meterpreter::Tlv ..................... (0.0s)
Rex::Post::Meterpreter::GroupTlv
....................***................... (0.0s)
Rex::Post::Meterpreter::Packet .................... (0.0s)
Rex::Proto::Http::ClientRequest ............................ (0.01s)
Rex::Proto::Http::Client ......*****.***......... (0.0s)
Rex::Proto::Http::Response ..... (0.0s)
Rex::RandomIdentifierGenerator .................. (0.14s)
Rex::Socket::RangeWalker ............. (0.23s)
Rex::SSLScan::Result
.....................................................................................
(0.44s)
Rex::SSLScan::Scanner .................... (26.91s)
Rex::Text ........ (0.01s)
Msfcli ...................................... (57.47s)
MsfVenom
..............................................................................................
(26.44s)

Pending:
  FastLib class methods dump without compression and without encryption
cache Fix https://www.pivotaltracker.com/story/show/38730815
    # No reason given
    # ./spec/lib/fastlib_spec.rb:94
  FastLib class methods list with cached dump should have dump cached
    # Fix https://www.pivotaltracker.com/story/show/38730815
    # ./spec/lib/fastlib_spec.rb:202
  FastLib class methods list with cached dump should list archived paths
    # Fix https://www.pivotaltracker.com/story/show/38730815
    # ./spec/lib/fastlib_spec.rb:206
  Msf::Exploit::Capture should confirm that pcaprub is available
    # Need to test this without stubbing check_pcaprub_loaded
    # ./spec/lib/msf/core/exploit/capture_spec.rb:40
  Msf::Exploit::Capture should open a pcap file
    # Provde a sample pcap file to read
    # ./spec/lib/msf/core/exploit/capture_spec.rb:43
  Msf::Exploit::Capture should capture from an iface
    # Mock this? Tends to need root
    # ./spec/lib/msf/core/exploit/capture_spec.rb:46
  Msf::Exploit::Capture should inject packets to an ifrace
    # Mock this? Tends to need root
    # ./spec/lib/msf/core/exploit/capture_spec.rb:49
  Msf::Ui::Console::CommandDispatcher::Db#cmd_services -np should list
services that are not on a given port
    # refs redmine ticket #4821
    # ./spec/lib/msf/ui/command_dispatcher/db_spec.rb:100
  Msf::Ui::Console::CommandDispatcher::Db#db_nmap should have some specs
describing its output
    # Not yet implemented
    # ./spec/lib/msf/ui/command_dispatcher/db_spec.rb:261
  Msf::Ui::Console::CommandDispatcher::Db#db_rebuild_cache should have
some specs describing its output
    # Not yet implemented
    # ./spec/lib/msf/ui/command_dispatcher/db_spec.rb:265
  Rex::Post::Meterpreter::GroupTlv#add_tlvs should raise an error when
given something other than nil or an array
    # RM #7598
    # ./spec/lib/rex/post/meterpreter/packet_spec.rb:232
  Rex::Post::Meterpreter::GroupTlv#add_tlvs should raise an error when
given an array of objects other than hashes
    # RM #7598
    # ./spec/lib/rex/post/meterpreter/packet_spec.rb:237
  Rex::Post::Meterpreter::GroupTlv#add_tlvs should raise an error when
any of the hashes are missing a key
    # RM #7598
    # ./spec/lib/rex/post/meterpreter/packet_spec.rb:242
  Rex::Proto::Http::Client should send a request and receive a response
    # need to actually set up an HTTP server to test
    # ./spec/lib/rex/proto/http/client_spec.rb:149
  Rex::Proto::Http::Client should send a request and receive a response
without auth handling
    # need to actually set up an HTTP server to test
    # ./spec/lib/rex/proto/http/client_spec.rb:153
  Rex::Proto::Http::Client should send a request
    # need to actually set up an HTTP server to test
    # ./spec/lib/rex/proto/http/client_spec.rb:157
  Rex::Proto::Http::Client should test for credentials
    # Should actually respond to :has_creds
    # ./spec/lib/rex/proto/http/client_spec.rb:161
  Rex::Proto::Http::Client should send authentication
    # Not yet implemented
    # ./spec/lib/rex/proto/http/client_spec.rb:169
  Rex::Proto::Http::Client should perform digest authentication
    # need to set up an HTTP authentication challenger
    # ./spec/lib/rex/proto/http/client_spec.rb:178
  Rex::Proto::Http::Client should perform negotiate authentication
    # need to set up an HTTP authentication challenger
    # ./spec/lib/rex/proto/http/client_spec.rb:182
  Rex::Proto::Http::Client should get a response
    # need to actually set up an HTTP server to test
    # ./spec/lib/rex/proto/http/client_spec.rb:186
````
msfconsole 'edit' command

Useful for quick editing a module during development / bug fixing. I
don't really see a security issue with running a command defined in the
user's VISUAL or EDITOR environment variables;  if the user can run
msfconsole to begin with, there are better ways to get into trouble.
Use Rex::Compat.getenv instead

Also, this would deprecate out the editor plugin.
Remove the editor plugin.

Sorry, @jcran, didn't see that this was available. Turns out, this
feature is almost identical to the editor plugin, so this effectively
promotes 'edit' to a first class command.