D-Link DIR-300B / DIR-600B / DIR-815 / DIR-645 HTTP Login Utility - Metasploit
This page contains detailed information about how to use the auxiliary/scanner/http/dlink_dir_session_cgi_http_login metasploit module. For list of all metasploit modules, visit the Metasploit Module Library.
Module Overview
Name: D-Link DIR-300B / DIR-600B / DIR-815 / DIR-645 HTTP Login Utility
Module: auxiliary/scanner/http/dlink_dir_session_cgi_http_login
Source code: modules/auxiliary/scanner/http/dlink_dir_session_cgi_http_login.rb
Disclosure date: -
Last modification time: 2017-08-26 21:01:10 +0000
Supported architecture(s): -
Supported platform(s): -
Target service / protocol: http, https
Target network port(s): 80, 443, 3000, 8000, 8008, 8080, 8443, 8880, 8888
List of CVEs: CVE-1999-0502
This module attempts to authenticate to different D-Link HTTP management services. It has been tested successfully on D-Link DIR-300 Hardware revision B, D-Link DIR-600 Hardware revision B, D-Link DIR-815 Hardware revision A and DIR-645 Hardware revision A devices. It is possible that this module also works with other models.
Module Ranking and Traits
Module Ranking:
- normal: The exploit is otherwise reliable, but depends on a specific version and can't (or doesn't) reliably autodetect. More information about ranking can be found here.
Basic Usage
This module is a scanner module, and is capable of testing against multiple hosts.
msf > use auxiliary/scanner/http/dlink_dir_session_cgi_http_login
msf auxiliary(dlink_dir_session_cgi_http_login) > show options
... show and set options ...
msf auxiliary(dlink_dir_session_cgi_http_login) > set RHOSTS ip-range
msf auxiliary(dlink_dir_session_cgi_http_login) > exploit
Other examples of setting the RHOSTS option:
Example 1:
msf auxiliary(dlink_dir_session_cgi_http_login) > set RHOSTS 192.168.1.3-192.168.1.200
Example 2:
msf auxiliary(dlink_dir_session_cgi_http_login) > set RHOSTS 192.168.1.1/24
Example 3:
msf auxiliary(dlink_dir_session_cgi_http_login) > set RHOSTS file:/tmp/ip_list.txt
Required Options
- RHOSTS: The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
Go back to menu.
Msfconsole Usage
Here is how the scanner/http/dlink_dir_session_cgi_http_login auxiliary module looks in the msfconsole:
msf6 > use auxiliary/scanner/http/dlink_dir_session_cgi_http_login
msf6 auxiliary(scanner/http/dlink_dir_session_cgi_http_login) > show info
Name: D-Link DIR-300B / DIR-600B / DIR-815 / DIR-645 HTTP Login Utility
Module: auxiliary/scanner/http/dlink_dir_session_cgi_http_login
License: Metasploit Framework License (BSD)
Rank: Normal
Provided by:
hdm <[email protected]>
Michael Messner <[email protected]>
Check supported:
No
Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
BLANK_PASSWORDS false no Try blank passwords for all users
BRUTEFORCE_SPEED 5 yes How fast to bruteforce, from 0 to 5
DB_ALL_CREDS false no Try each user/password couple stored in the current database
DB_ALL_PASS false no Add all passwords in the current database to the list
DB_ALL_USERS false no Add all users in the current database to the list
PASSWORD no A specific password to authenticate with
PASS_FILE /opt/metasploit-framework/embedded/framework/data/wordlists/http_default_pass.txt no File containing passwords, one per line
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 80 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
STOP_ON_SUCCESS false yes Stop guessing when a credential works for a host
THREADS 1 yes The number of concurrent threads (max one per host)
USERNAME admin no Username for authentication (default: admin)
USERPASS_FILE no File containing users and passwords separated by space, one pair per line
USER_AS_PASS false no Try the username as the password for all users
USER_FILE no File containing usernames, one per line
VERBOSE true yes Whether to print output for all attempts
VHOST no HTTP server virtual host
Description:
This module attempts to authenticate to different D-Link HTTP
management services. It has been tested successfully on D-Link
DIR-300 Hardware revision B, D-Link DIR-600 Hardware revision B,
D-Link DIR-815 Hardware revision A and DIR-645 Hardware revision A
devices. It is possible that this module also works with other
models.
References:
https://nvd.nist.gov/vuln/detail/CVE-1999-0502
Module Options
This is a complete list of options available in the scanner/http/dlink_dir_session_cgi_http_login auxiliary module:
msf6 auxiliary(scanner/http/dlink_dir_session_cgi_http_login) > show options
Module options (auxiliary/scanner/http/dlink_dir_session_cgi_http_login):
Name Current Setting Required Description
---- --------------- -------- -----------
BLANK_PASSWORDS false no Try blank passwords for all users
BRUTEFORCE_SPEED 5 yes How fast to bruteforce, from 0 to 5
DB_ALL_CREDS false no Try each user/password couple stored in the current database
DB_ALL_PASS false no Add all passwords in the current database to the list
DB_ALL_USERS false no Add all users in the current database to the list
PASSWORD no A specific password to authenticate with
PASS_FILE /opt/metasploit-framework/embedded/framework/data/wordlists/http_default_pass.txt no File containing passwords, one per line
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 80 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
STOP_ON_SUCCESS false yes Stop guessing when a credential works for a host
THREADS 1 yes The number of concurrent threads (max one per host)
USERNAME admin no Username for authentication (default: admin)
USERPASS_FILE no File containing users and passwords separated by space, one pair per line
USER_AS_PASS false no Try the username as the password for all users
USER_FILE no File containing usernames, one per line
VERBOSE true yes Whether to print output for all attempts
VHOST no HTTP server virtual host
Advanced Options
Here is a complete list of advanced options supported by the scanner/http/dlink_dir_session_cgi_http_login auxiliary module:
msf6 auxiliary(scanner/http/dlink_dir_session_cgi_http_login) > show advanced
Module advanced options (auxiliary/scanner/http/dlink_dir_session_cgi_http_login):
Name Current Setting Required Description
---- --------------- -------- -----------
DOMAIN WORKSTATION yes The domain to use for Windows authentication
DigestAuthIIS true no Conform to IIS, should work for most servers. Only set to false for non-IIS servers
FingerprintCheck true no Conduct a pre-exploit fingerprint verification
HttpClientTimeout no HTTP connection and receive timeout
HttpRawHeaders no Path to ERB-templatized raw headers to append to existing headers
HttpTrace false no Show the raw HTTP requests and responses
HttpTraceColors red/blu no HTTP request and response colors for HttpTrace (unset to disable)
HttpTraceHeadersOnly false no Show HTTP headers only in HttpTrace
MaxGuessesPerService 0 no Maximum number of credentials to try per service instance. If set to zero or a non-number, this option will not be used.
MaxGuessesPerUser 0 no Maximum guesses for a particular username for the service instance. Note that users are considered unique among different services, so a user at 10.1.1.1:22
is different from one at 10.2.2.2:22, and both will be tried up to the MaxGuessesPerUser limit. If set to zero or a non-number, this option will not be use
d.
MaxMinutesPerService 0 no Maximum time in minutes to bruteforce the service instance. If set to zero or a non-number, this option will not be used.
PASSWORD_SPRAY false yes Reverse the credential pairing order. For each password, attempt every possible user.
REMOVE_PASS_FILE false yes Automatically delete the PASS_FILE on module completion
REMOVE_USERPASS_FILE false yes Automatically delete the USERPASS_FILE on module completion
REMOVE_USER_FILE false yes Automatically delete the USER_FILE on module completion
SSLVersion Auto yes Specify the version of SSL/TLS to be used (Auto, TLS and SSL23 are auto-negotiate) (Accepted: Auto, TLS, SSL23, SSL3, TLS1, TLS1.1, TLS1.2)
ShowProgress true yes Display progress messages during a scan
ShowProgressPercent 10 yes The interval in percent that progress should be shown
TRANSITION_DELAY 0 no Amount of time (in minutes) to delay before transitioning to the next user in the array (or password when PASSWORD_SPRAY=true)
UserAgent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) no The User-Agent header to use for all requests
WORKSPACE no Specify the workspace for this module
Auxiliary Actions
This is a list of all auxiliary actions that the scanner/http/dlink_dir_session_cgi_http_login module can do:
msf6 auxiliary(scanner/http/dlink_dir_session_cgi_http_login) > show actions
Auxiliary actions:
Name Description
---- -----------
Evasion Options
Here is the full list of possible evasion options supported by the scanner/http/dlink_dir_session_cgi_http_login auxiliary module in order to evade defenses (e.g. Antivirus, EDR, Firewall, NIDS etc.):
msf6 auxiliary(scanner/http/dlink_dir_session_cgi_http_login) > show evasion
Module evasion options:
Name Current Setting Required Description
---- --------------- -------- -----------
HTTP::header_folding false no Enable folding of HTTP headers
HTTP::method_random_case false no Use random casing for the HTTP method
HTTP::method_random_invalid false no Use a random invalid, HTTP method for request
HTTP::method_random_valid false no Use a random, but valid, HTTP method for request
HTTP::pad_fake_headers false no Insert random, fake headers into the HTTP request
HTTP::pad_fake_headers_count 0 no How many fake headers to insert into the HTTP request
HTTP::pad_get_params false no Insert random, fake query string variables into the request
HTTP::pad_get_params_count 16 no How many fake query string variables to insert into the request
HTTP::pad_method_uri_count 1 no How many whitespace characters to use between the method and uri
HTTP::pad_method_uri_type space no What type of whitespace to use between the method and uri (Accepted: space, tab, apache)
HTTP::pad_post_params false no Insert random, fake post variables into the request
HTTP::pad_post_params_count 16 no How many fake post variables to insert into the request
HTTP::pad_uri_version_count 1 no How many whitespace characters to use between the uri and version
HTTP::pad_uri_version_type space no What type of whitespace to use between the uri and version (Accepted: space, tab, apache)
HTTP::uri_dir_fake_relative false no Insert fake relative directories into the uri
HTTP::uri_dir_self_reference false no Insert self-referential directories into the uri
HTTP::uri_encode_mode hex-normal no Enable URI encoding (Accepted: none, hex-normal, hex-noslashes, hex-random, hex-all, u-normal, u-all, u-random)
HTTP::uri_fake_end false no Add a fake end of URI (eg: /%20HTTP/1.0/../../)
HTTP::uri_fake_params_start false no Add a fake start of params to the URI (eg: /%3fa=b/../)
HTTP::uri_full_url false no Use the full URL for all HTTP requests
HTTP::uri_use_backslashes false no Use back slashes instead of forward slashes in the uri
HTTP::version_random_invalid false no Use a random invalid, HTTP version for request
HTTP::version_random_valid false no Use a random, but valid, HTTP version for request
Go back to menu.
Error Messages
This module may fail with the following error messages:
Check for the possible causes from the code snippets below found in the module source code. This can often times help in identifying the root cause of the problem.
<TARGET_URL> - D-Link device doesn't detected
Here is a relevant code snippet related to the "<TARGET_URL> - D-Link device doesn't detected" error message:
68: @uri = "/session.cgi"
69:
70: if is_dlink?
71: vprint_good("#{target_url} - D-Link device detected")
72: else
73: vprint_error("#{target_url} - D-Link device doesn't detected")
74: return
75: end
76:
77: print_status("#{target_url} - Attempting to login")
78:
<TARGET_URL> - Failed to login as '<USER>'
Here is a relevant code snippet related to the "<TARGET_URL> - Failed to login as '<USER>'" error message:
120:
121: report_cred(ip: rhost, port: rport, user: user, password: pass, proof: response.inspect)
122:
123: return :next_user
124: else
125: vprint_error("#{target_url} - Failed to login as '#{user}'")
126: return
127: end
128: end
129:
130: def do_http_login(user,pass)
<TARGET_URL> - Failed to connect to the web server
Here is a relevant code snippet related to the "<TARGET_URL> - Failed to connect to the web server" error message:
143: return if response.nil?
144: return if (response.code == 404)
145:
146: return response
147: rescue ::Rex::ConnectionError
148: vprint_error("#{target_url} - Failed to connect to the web server")
149: return nil
150: end
151: end
152:
153: def determine_result(response)
Go back to menu.
Related Pull Requests
- #8888 Merged Pull Request: spelling/grammar fixes part 1
- #8716 Merged Pull Request: Print_Status -> Print_Good (And OCD bits 'n bobs)
- #8338 Merged Pull Request: Fix msf/core and self.class msftidy warnings
- #6921 Merged Pull Request: Fix #4885, Support basic and form auth at the same time
- #6655 Merged Pull Request: use MetasploitModule as a class name
- #6648 Merged Pull Request: Change metasploit class names
- #5768 Merged Pull Request: Update modules to use metasploit-credential instead of report_auth_info
- #5540 Merged Pull Request: Using the new cred API for multiple auxiliary modules
- #5059 Merged Pull Request: Yard doc corrections
- #2525 Merged Pull Request: Change module boilerplate
- #2426 Merged Pull Request: Find and replace Msf::Config.install_root, "data"
- #2253 Merged Pull Request: Fix email format
- #2149 Merged Pull Request: Spell DLink as D-Link every time
- #1706 Merged Pull Request: Remove gemcache
References
See Also
Check also the following modules related to this module:
- auxiliary/scanner/telnet/brocade_enable_login
- auxiliary/scanner/db2/db2_auth
- auxiliary/scanner/http/dell_idrac
- auxiliary/scanner/http/dlink_dir_300_615_http_login
- auxiliary/scanner/http/dlink_dir_615h_http_login
- auxiliary/scanner/ftp/ftp_login
- auxiliary/scanner/http/http_login
- auxiliary/scanner/http/joomla_bruteforce_login
- auxiliary/scanner/mysql/mysql_login
- auxiliary/scanner/nntp/nntp_login
- auxiliary/scanner/oracle/oracle_login
- auxiliary/scanner/pcanywhere/pcanywhere_login
- auxiliary/scanner/postgres/postgres_login
- auxiliary/scanner/rservices/rexec_login
- auxiliary/scanner/rservices/rlogin_login
- auxiliary/scanner/rservices/rsh_login
- exploit/multi/ssh/sshexec
- auxiliary/scanner/ssh/ssh_login
- auxiliary/scanner/telnet/telnet_login
- auxiliary/scanner/http/tomcat_mgr_login
- auxiliary/scanner/vmware/vmauthd_login
- auxiliary/scanner/vmware/vmware_http_login
- auxiliary/scanner/winrm/winrm_login
- auxiliary/scanner/http/wordpress_xmlrpc_login
- auxiliary/scanner/http/dlink_user_agent_backdoor
- auxiliary/admin/http/dlink_dir_300_600_exec_noauth
- auxiliary/admin/http/dlink_dir_645_password_extractor
- auxiliary/admin/http/dlink_dsl320b_password_extractor
- auxiliary/admin/vxworks/dlink_i2eye_autoanswer
- auxiliary/sqli/dlink/dlink_central_wifimanager_sqli
- exploit/dialup/multi/login/manyargs
Related Nessus plugins:
- MPEi/X Default FTP Accounts
- Netscape Enterprise Default Administrative Password
- Unpassworded 'guest' Account
- Unpassworded 'EZsetup' Account
- Unpassworded 'demos' Account
- Unpassworded '4Dgifts' Account
- Unpassworded 'OutOfBox' Account
- Unpassworded 'root' Account
- Unpassworded 'lp' Account
- Unpassworded 'sync' Account
Authors
- hdm
- Michael Messner <devnull[at]s3cur1ty.de>
Version
This page has been produced using Metasploit Framework version 6.1.29-dev. For more modules, visit the Metasploit Module Library.
Go back to menu.