Class: Rex::Post::Meterpreter::Ui::Console::CommandDispatcher::Espia
- Inherits:
-
Object
- Object
- Rex::Post::Meterpreter::Ui::Console::CommandDispatcher::Espia
- Defined in:
- lib/rex/post/meterpreter/ui/console/command_dispatcher/espia.rb
Overview
Espia - Capture audio, video, screenshots from the remote system
Constant Summary collapse
- Klass =
Console::CommandDispatcher::Espia
Instance Attribute Summary
Attributes included from Ui::Text::DispatcherShell::CommandDispatcher
Instance Method Summary collapse
- #cmd_dev_audio(*args) ⇒ Object
- #cmd_dev_image ⇒ Object
-
#cmd_screengrab(*args) ⇒ Object
Grab a screenshot of the current interactive desktop.
-
#commands ⇒ Object
List of supported commands.
-
#initialize(shell) ⇒ Espia
constructor
Initializes an instance of the espia command interaction.
-
#name ⇒ Object
Name for this dispatcher.
Methods included from Rex::Post::Meterpreter::Ui::Console::CommandDispatcher
check_hash, #client, #log_error, #msf_loaded?, set_hash
Methods included from Ui::Text::DispatcherShell::CommandDispatcher
#cmd_help, #cmd_help_help, #cmd_help_tabs, #deprecated_cmd, #deprecated_commands, #deprecated_help, #help_to_s, #print, #print_error, #print_good, #print_line, #print_status, #print_warning, #tab_complete_filenames, #update_prompt
Constructor Details
#initialize(shell) ⇒ Espia
Initializes an instance of the espia command interaction.
23 24 25 |
# File 'lib/rex/post/meterpreter/ui/console/command_dispatcher/espia.rb', line 23 def initialize(shell) super end |
Instance Method Details
#cmd_dev_audio(*args) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/rex/post/meterpreter/ui/console/command_dispatcher/espia.rb', line 45 def cmd_dev_audio(*args) maxrec = 60 if (args.length < 1) print_line("Usage: dev_audio <rec_secs>\n") print_line("Record mic audio\n") return true end secs = args[0].to_i if secs > 0 and secs <= maxrec milsecs = secs*1000 print_line("[*] Recording #{milsecs} miliseconds.\n") client.espia.espia_audio_get_dev_audio(milsecs) print_line("[*] Done.") else print_line("[-] Error: Recording time 0 to 60 secs \n") end return true end |
#cmd_dev_image ⇒ Object
38 39 40 41 42 43 |
# File 'lib/rex/post/meterpreter/ui/console/command_dispatcher/espia.rb', line 38 def cmd_dev_image() client.espia.espia_video_get_dev_image() print_line("[*] Done.") return true end |
#cmd_screengrab(*args) ⇒ Object
Grab a screenshot of the current interactive desktop.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/rex/post/meterpreter/ui/console/command_dispatcher/espia.rb', line 70 def cmd_screengrab( *args ) if( args[0] and args[0] == "-h" ) print_line("Usage: screengrab <path.jpeg> [view in browser: true|false]\n") print_line("Grab a screenshot of the current interactive desktop.\n") return true end show = true show = false if (args[1] and args[1] =~ /^(f|n|0)/i) path = args[0] || Rex::Text.rand_text_alpha(8) + ".jpeg" data = client.espia.espia_image_get_dev_screen if( data ) ::File.open( path, 'wb' ) do |fd| fd.write( data ) end path = ::File.( path ) print_line( "Screenshot saved to: #{path}" ) Rex::Compat.open_file( path ) if show end return true end |
#commands ⇒ Object
List of supported commands.
30 31 32 33 34 35 36 |
# File 'lib/rex/post/meterpreter/ui/console/command_dispatcher/espia.rb', line 30 def commands { # "dev_image" => "Attempt to grab a frame from webcam", # "dev_audio" => "Attempt to record microphone audio", "screengrab" => "Attempt to grab screen shot from process's active desktop" } end |
#name ⇒ Object
Name for this dispatcher
99 100 101 |
# File 'lib/rex/post/meterpreter/ui/console/command_dispatcher/espia.rb', line 99 def name "Espia" end |