Skip to content

Commit 63b5bb3

Browse files
committed
Land rapid7#9126, Add android advanced options
2 parents bbbe48e + 602335a commit 63b5bb3

File tree

6 files changed

+31
-4
lines changed

6 files changed

+31
-4
lines changed

Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ PATH
1717
metasploit-concern
1818
metasploit-credential
1919
metasploit-model
20-
metasploit-payloads (= 1.3.18)
20+
metasploit-payloads (= 1.3.19)
2121
metasploit_data_models
2222
metasploit_payloads-mettle (= 0.2.8)
2323
msgpack
@@ -178,7 +178,7 @@ GEM
178178
activemodel (~> 4.2.6)
179179
activesupport (~> 4.2.6)
180180
railties (~> 4.2.6)
181-
metasploit-payloads (1.3.18)
181+
metasploit-payloads (1.3.19)
182182
metasploit_data_models (2.0.15)
183183
activerecord (~> 4.2.6)
184184
activesupport (~> 4.2.6)

lib/msf/core/payload/android.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,12 @@ def generate_config(opts={})
5656
}
5757

5858
config = Rex::Payloads::Meterpreter::Config.new(config_opts).to_b
59-
config[0] = "\x01" if opts[:stageless]
59+
flags = 0
60+
flags |= 1 if opts[:stageless]
61+
flags |= 2 if ds['AndroidMeterpreterDebug']
62+
flags |= 4 if ds['AndroidWakelock']
63+
flags |= 8 if ds['AndroidHideAppIcon']
64+
config[0] = flags.chr
6065
config
6166
end
6267

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# -*- coding: binary -*-
2+
3+
require 'msf/core'
4+
5+
module Msf::Payload::Android::PayloadOptions
6+
7+
def initialize(info = {})
8+
super(info)
9+
register_advanced_options(
10+
[
11+
Msf::OptBool.new('AndroidMeterpreterDebug', [ false, "Run the payload in debug mode, with logging enabled" ]),
12+
Msf::OptBool.new('AndroidWakelock', [ false, "Acquire a wakelock before starting the payload" ]),
13+
Msf::OptBool.new('AndroidHideAppIcon', [ false, "Hide the application icon automatically after launch" ]),
14+
]
15+
)
16+
end
17+
18+
end

lib/msf/core/payload/android/reverse_http.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
require 'msf/core'
44
require 'msf/core/payload/transport_config'
5+
require 'msf/core/payload/android/payload_options'
56
require 'msf/core/payload/uuid/options'
67

78
module Msf
@@ -16,6 +17,7 @@ module Payload::Android::ReverseHttp
1617

1718
include Msf::Payload::TransportConfig
1819
include Msf::Payload::Android
20+
include Msf::Payload::Android::PayloadOptions
1921
include Msf::Payload::UUID::Options
2022

2123
#

lib/msf/core/payload/android/reverse_tcp.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
require 'msf/core'
44
require 'msf/core/payload/transport_config'
5+
require 'msf/core/payload/android/payload_options'
56

67
module Msf
78

@@ -15,6 +16,7 @@ module Payload::Android::ReverseTcp
1516

1617
include Msf::Payload::TransportConfig
1718
include Msf::Payload::Android
19+
include Msf::Payload::Android::PayloadOptions
1820

1921
#
2022
# Generate the transport-specific configuration

metasploit-framework.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Gem::Specification.new do |spec|
7070
# are needed when there's no database
7171
spec.add_runtime_dependency 'metasploit-model'
7272
# Needed for Meterpreter
73-
spec.add_runtime_dependency 'metasploit-payloads', '1.3.18'
73+
spec.add_runtime_dependency 'metasploit-payloads', '1.3.19'
7474
# Needed for the next-generation POSIX Meterpreter
7575
spec.add_runtime_dependency 'metasploit_payloads-mettle', '0.2.8'
7676
# Needed by msfgui and other rpc components

0 commit comments

Comments
 (0)