## # This module requires Metasploit: https://metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ## class MetasploitModule < Msf::Post include Msf::Post::Hardware::RFTransceiver::RFTransceiver def initialize(info = {}) super( update_info( info, 'Name' => 'RF Transceiver Transmitter', 'Description' => %q{ This module powers an HWBridge-connected radio transceiver, effectively transmitting on the frequency set by the FREQ option. NOTE: Users of this module should be aware of their local laws, regulations, and licensing requirements for transmitting on any given radio frequency. }, 'References' => [ ['URL', 'https://github.com/AndrewMohawk/RfCatHelpers'] ], 'License' => MSF_LICENSE, 'Author' => ['Craig Smith'], 'Platform' => ['hardware'], 'SessionTypes' => ['hwbridge'] ) ) register_options([ OptInt.new('FREQ', [true, 'Frequency to transmit on']), OptInt.new('SECONDS', [false, 'Seconds to transmit', 4]), OptInt.new('BAUD', [false, 'Baud rate to use', 4800]), OptInt.new('POWER', [false, 'Power level', 100]), OptInt.new('INDEX', [false, 'USB Index to use', 0]) ]) end def run unless is_rf? print_error('Not an RF Transceiver') return end unless set_index(datastore['INDEX']) print_error("Couldn't set usb index to #{datastore['INDEX']}") return end set_modulation('ASK/OOK') set_freq(datastore['FREQ']) set_sync_mode(0) set_baud(datastore['BAUD']) set_channel_spc(24000) set_mode('idle') set_power(datastore['POWER']) print_status("Transmitting on #{datastore['FREQ']} for #{datastore['SECONDS']} seconds...") set_mode('tx') sleep(datastore['SECONDS']) print_status('Finished transmitting') set_mode('idle') end end