metasploit_payloads-mettle 0.0.8 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +5 -1
- data/build/aarch64-linux-musl/bin/mettle +0 -0
- data/build/aarch64-linux-musl/bin/mettle.bin +0 -0
- data/build/armv5b-linux-musleabi/bin/mettle +0 -0
- data/build/armv5b-linux-musleabi/bin/mettle.bin +0 -0
- data/build/armv5l-linux-musleabi/bin/mettle +0 -0
- data/build/armv5l-linux-musleabi/bin/mettle.bin +0 -0
- data/build/i486-linux-musl/bin/mettle +0 -0
- data/build/i486-linux-musl/bin/mettle.bin +0 -0
- data/build/mips-linux-muslsf/bin/mettle +0 -0
- data/build/mips-linux-muslsf/bin/mettle.bin +0 -0
- data/build/mips64-linux-muslsf/bin/mettle +0 -0
- data/build/mips64-linux-muslsf/bin/mettle.bin +0 -0
- data/build/mipsel-linux-muslsf/bin/mettle +0 -0
- data/build/mipsel-linux-muslsf/bin/mettle.bin +0 -0
- data/build/powerpc-linux-muslsf/bin/mettle +0 -0
- data/build/powerpc-linux-muslsf/bin/mettle.bin +0 -0
- data/build/powerpc64le-linux-musl/bin/mettle +0 -0
- data/build/powerpc64le-linux-musl/bin/mettle.bin +0 -0
- data/build/s390x-linux-musl/bin/mettle +0 -0
- data/build/s390x-linux-musl/bin/mettle.bin +0 -0
- data/build/x86_64-linux-musl/bin/mettle +0 -0
- data/build/x86_64-linux-musl/bin/mettle.bin +0 -0
- data/lib/metasploit_payloads/mettle.rb +73 -5
- data/lib/metasploit_payloads/mettle/version.rb +2 -2
- metadata +4 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7240c2fbb8b9d8e8d42c969a00efef4799cc3425
|
4
|
+
data.tar.gz: 811684a8e1ac33fc58d2ab57af48262b68303454
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d159039daba3c937ad1cfa266dc7d3c112a6243e9f56aeb797678e0df01e2d22bdeab6353d761e0adbdf860ed6363b07ee2d3da7c7ce9c026137d5c008cab747
|
7
|
+
data.tar.gz: 4e8684def051ab79000f5c675c38f717e7205cd44ced3dfd08b1c3f37562cfc5626bb786388859a2739d04e4ea902cc779ec3ab1778680d8b96da3000d8401af
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
@@ -1 +1,5 @@
|
|
1
|
-
|
1
|
+
y�탉���!Zj�ǤUi$���6J�c&��
|
2
|
+
�9�L[U���p���;ojp��j���D��
|
3
|
+
7~���C��3����G�I�H�3�7������~Gw���xwB��ߑ�$�̕ xC��T���/�I�����lަ>_k-����̦,��Ops�1�$y����P��
|
4
|
+
����{*��FD0��K�
|
5
|
+
~y��6B�(ێ?�ډ�I��6������ߏ;�y�����+����%Zz�~�:��
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -8,7 +8,68 @@ end
|
|
8
8
|
# This module dispenses Mettle payload binary files
|
9
9
|
#
|
10
10
|
module MetasploitPayloads
|
11
|
-
|
11
|
+
class Mettle
|
12
|
+
|
13
|
+
#
|
14
|
+
# Config is a hash. Valid keys are:
|
15
|
+
# :uri to connect to
|
16
|
+
# :uuid of the payload
|
17
|
+
# :debug to enable
|
18
|
+
# :log_file to log to places other than stderr
|
19
|
+
#
|
20
|
+
attr_accessor :config
|
21
|
+
|
22
|
+
def initialize(triple, config={})
|
23
|
+
@platform = triple.clone
|
24
|
+
@config = config.clone
|
25
|
+
end
|
26
|
+
|
27
|
+
#
|
28
|
+
# Available formats are :process_image and :exec
|
29
|
+
#
|
30
|
+
def to_binary(format=:process_image)
|
31
|
+
bin = self.class.read(@platform, format)
|
32
|
+
params = generate_argv
|
33
|
+
add_args(bin, params)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def generate_argv
|
39
|
+
cmd_line = 'mettle '
|
40
|
+
@config.each do |opt, val|
|
41
|
+
cmd_line << "-#{short_opt(opt)} \"#{val}\" "
|
42
|
+
end
|
43
|
+
if cmd_line.length > 264
|
44
|
+
fail RuntimeError, 'mettle argument list too big', caller
|
45
|
+
end
|
46
|
+
|
47
|
+
cmd_line + "\x00" * (264 - cmd_line.length)
|
48
|
+
end
|
49
|
+
|
50
|
+
def short_opt(opt)
|
51
|
+
case opt
|
52
|
+
when :uri
|
53
|
+
'u'
|
54
|
+
when :uuid
|
55
|
+
'U'
|
56
|
+
when :debug
|
57
|
+
'd'
|
58
|
+
when :log_file
|
59
|
+
'o'
|
60
|
+
else
|
61
|
+
fail RuntimeError, "unknown mettle option #{opt}", caller
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def add_args(bin, params)
|
66
|
+
if params[8] != "\x00"
|
67
|
+
bin.sub('DEFAULT_OPTS' + ' ' * 252, params)
|
68
|
+
else
|
69
|
+
bin
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
12
73
|
def self.readable_path(gem_path, msf_path)
|
13
74
|
# Try the MSF path first to see if the file exists, allowing the MSF data
|
14
75
|
# folder to override what is in the gem. This is very helpful for
|
@@ -25,7 +86,16 @@ module MetasploitPayloads
|
|
25
86
|
#
|
26
87
|
# Get the contents of any file packaged in this gem by local path and name.
|
27
88
|
#
|
28
|
-
def self.read(triple,
|
89
|
+
def self.read(triple, format)
|
90
|
+
file =
|
91
|
+
case format
|
92
|
+
when :process_image
|
93
|
+
'mettle.bin'
|
94
|
+
when :exec
|
95
|
+
'mettle'
|
96
|
+
else
|
97
|
+
fail RuntimeError, "unknown mettle format #{format}", caller
|
98
|
+
end
|
29
99
|
file_path = path("#{triple}", 'bin', file)
|
30
100
|
if file_path.nil?
|
31
101
|
full_path = ::File.join([triple, file])
|
@@ -35,14 +105,12 @@ module MetasploitPayloads
|
|
35
105
|
::File.binread(file_path)
|
36
106
|
end
|
37
107
|
|
38
|
-
private
|
39
|
-
|
40
108
|
#
|
41
109
|
# Get the full path to any file packaged in this gem by local path and name.
|
42
110
|
#
|
43
111
|
def self.path(*path_parts)
|
44
112
|
gem_path = expand(data_directory, ::File.join(path_parts))
|
45
|
-
|
113
|
+
msf_path = 'thisisnotthefileyouarelookingfor'
|
46
114
|
if metasploit_installed?
|
47
115
|
msf_path = expand(Msf::Config.data_directory, ::File.join('mettle', path_parts))
|
48
116
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metasploit_payloads-mettle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Cammack
|
@@ -89,7 +89,7 @@ cert_chain:
|
|
89
89
|
G+Hmcg1v810agasPdoydE0RTVZgEOOMoQ07qu7JFXVWZ9ZQpHT7qJATWL/b2csFG
|
90
90
|
8mVuTXnyJOKRJA==
|
91
91
|
-----END CERTIFICATE-----
|
92
|
-
date: 2016-
|
92
|
+
date: 2016-11-16 00:00:00.000000000 Z
|
93
93
|
dependencies:
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
95
|
name: bundler
|
@@ -159,6 +159,8 @@ files:
|
|
159
159
|
- build/powerpc-linux-muslsf/bin/mettle.bin
|
160
160
|
- build/powerpc64le-linux-musl/bin/mettle
|
161
161
|
- build/powerpc64le-linux-musl/bin/mettle.bin
|
162
|
+
- build/s390x-linux-musl/bin/mettle
|
163
|
+
- build/s390x-linux-musl/bin/mettle.bin
|
162
164
|
- build/x86_64-linux-musl/bin/mettle
|
163
165
|
- build/x86_64-linux-musl/bin/mettle.bin
|
164
166
|
- lib/metasploit_payloads/mettle.rb
|
metadata.gz.sig
CHANGED
Binary file
|