Skip to content

Commit edf4fca

Browse files
committed
chore: rubocop format fix
1 parent a27024e commit edf4fca

File tree

6 files changed

+391
-386
lines changed

6 files changed

+391
-386
lines changed
Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,42 @@
1-
module Msf
2-
module Payload::Linux::Aarch64::Prepends
3-
include Msf::Payload::Linux::Prepends
1+
#
2+
# Linux aarch64 prepends
3+
#
4+
module Msf::Payload::Linux::Aarch64::Prepends
5+
include Msf::Payload::Linux::Prepends
46

5-
def prepends_order
6-
%w[ PrependSetresuid PrependSetreuid PrependSetuid]
7-
end
7+
def prepends_order
8+
%w[PrependSetresuid PrependSetreuid PrependSetuid]
9+
end
810

9-
def appends_order
10-
%w[]
11-
end
11+
def appends_order
12+
%w[]
13+
end
1214

13-
def prepends_map
14-
{
15-
# 'PrependFork' => "",
15+
def prepends_map
16+
{
17+
# 'PrependFork' => "",
1618

17-
# setuid(0)
18-
'PrependSetuid' => "\xe0\x03\x1f\xaa" + # mov x0, xzr
19-
"\x48\x12\x80\xd2" + # mov x8, #0x92
20-
"\x01\x00\x00\xd4", # svc 0x0
19+
# setuid(0)
20+
'PrependSetuid' => "\xe0\x03\x1f\xaa" + # mov x0, xzr
21+
"\x48\x12\x80\xd2" + # mov x8, #0x92
22+
"\x01\x00\x00\xd4", # svc 0x0
2123

22-
# setreuid(0, 0)
23-
'PrependSetreuid' => "\xe0\x03\x1f\xaa" + # mov x0, xzr
24-
"\xe1\x03\x1f\xaa" + # mov x1, xzr
25-
"\x28\x12\x80\xd2" + # mov x8, #0x91
26-
"\x01\x00\x00\xd4", # svc 0x0
24+
# setreuid(0, 0)
25+
'PrependSetreuid' => "\xe0\x03\x1f\xaa" + # mov x0, xzr
26+
"\xe1\x03\x1f\xaa" + # mov x1, xzr
27+
"\x28\x12\x80\xd2" + # mov x8, #0x91
28+
"\x01\x00\x00\xd4", # svc 0x0
2729

28-
# setresuid(0, 0, 0)
29-
'PrependSetresuid' => "\xe0\x03\x1f\xaa" + # mov x0, xzr
30-
"\xe1\x03\x1f\xaa" + # mov x1, xzr
31-
"\xe2\x03\x1f\xaa" + # mov x2, xzr
32-
"\x68\x12\x80\xd2" + # mov x8, #0x93
33-
"\x01\x00\x00\xd4" # svc 0x0
34-
}
35-
end
30+
# setresuid(0, 0, 0)
31+
'PrependSetresuid' => "\xe0\x03\x1f\xaa" + # mov x0, xzr
32+
"\xe1\x03\x1f\xaa" + # mov x1, xzr
33+
"\xe2\x03\x1f\xaa" + # mov x2, xzr
34+
"\x68\x12\x80\xd2" + # mov x8, #0x93
35+
"\x01\x00\x00\xd4" # svc 0x0
36+
}
37+
end
3638

37-
def appends_map
38-
{}
39-
end
39+
def appends_map
40+
{}
4041
end
41-
end
42+
end
Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,37 @@
1-
module Msf
2-
module Payload::Linux::Armle::Prepends
3-
include Msf::Payload::Linux::Prepends
1+
#
2+
# Linux armle prepends
3+
#
4+
module Msf::Payload::Linux::Armle::Prepends
5+
include Msf::Payload::Linux::Prepends
46

5-
def prepends_order
6-
%w[PrependSetresuid PrependSetuid]
7-
end
7+
def prepends_order
8+
%w[PrependSetresuid PrependSetuid]
9+
end
810

9-
def appends_order
10-
%w[]
11-
end
11+
def appends_order
12+
%w[]
13+
end
1214

13-
def prepends_map
14-
{
15-
# 'PrependFork' => "",
15+
def prepends_map
16+
{
17+
# 'PrependFork' => "",
1618

17-
#
18-
# setuid(0)
19-
'PrependSetuid' => "\x00\x00\x20\xe0" + # eor r0, r0, r0 #
20-
"\x17\x70\xa0\xe3" + # mov r7, #23 #
21-
"\x00\x00\x00\xef", # svc #
19+
#
20+
# setuid(0)
21+
'PrependSetuid' => "\x00\x00\x20\xe0" + # eor r0, r0, r0 #
22+
"\x17\x70\xa0\xe3" + # mov r7, #23 #
23+
"\x00\x00\x00\xef", # svc #
2224

23-
# setresuid(0, 0, 0)
24-
'PrependSetresuid' => "\x00\x00\x20\xe0" + # eor r0, r0, r0 #
25-
"\x01\x10\x21\xe0" + # eor r1, r1, r1 #
26-
"\x02\x20\x22\xe0" + # eor r2, r2, r2 #
27-
"\xa4\x70\xa0\xe3" + # mov r7, #0xa4 #
28-
"\x00\x00\x00\xef" # svc #
29-
}
30-
end
25+
# setresuid(0, 0, 0)
26+
'PrependSetresuid' => "\x00\x00\x20\xe0" + # eor r0, r0, r0 #
27+
"\x01\x10\x21\xe0" + # eor r1, r1, r1 #
28+
"\x02\x20\x22\xe0" + # eor r2, r2, r2 #
29+
"\xa4\x70\xa0\xe3" + # mov r7, #0xa4 #
30+
"\x00\x00\x00\xef" # svc #
31+
}
32+
end
3133

32-
def appends_map
33-
{}
34-
end
34+
def appends_map
35+
{}
3536
end
36-
end
37+
end
Lines changed: 62 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,75 @@
1-
module Msf
2-
module Payload::Linux::Ppc::Prepends
3-
include Msf::Payload::Linux::Prepends
1+
#
2+
# Linux ppc prepends
3+
#
4+
module Msf::Payload::Linux::Ppc::Prepends
5+
include Msf::Payload::Linux::Prepends
46

5-
def prepends_order
6-
%w[PrependSetresuid PrependSetreuid PrependSetuid PrependSetresgid PrependSetregid PrependSetgid]
7-
end
7+
def prepends_order
8+
%w[PrependSetresuid PrependSetreuid PrependSetuid PrependSetresgid PrependSetregid PrependSetgid]
9+
end
10+
11+
def appends_order
12+
%w[AppendExit]
13+
end
814

9-
def appends_order
10-
%w[AppendExit]
11-
end
15+
def prepends_map
16+
{
17+
# 'PrependFork' => "",
1218

13-
def prepends_map
14-
{
15-
# 'PrependFork' => "",
19+
# setresuid(0, 0, 0)
20+
'PrependSetresuid' => "\x3b\xe0\x01\xff" + # li r31,511 #
21+
"\x7c\xa5\x2a\x78" + # xor r5,r5,r5 #
22+
"\x7c\x84\x22\x78" + # xor r4,r4,r4 #
23+
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
24+
"\x38\x1f\xfe\xa5" + # addi r0,r31,-347 #
25+
"\x44\xff\xff\x02", # sc #
1626

17-
# setresuid(0, 0, 0)
18-
'PrependSetresuid' => "\x3b\xe0\x01\xff" + # li r31,511 #
19-
"\x7c\xa5\x2a\x78" + # xor r5,r5,r5 #
20-
"\x7c\x84\x22\x78" + # xor r4,r4,r4 #
21-
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
22-
"\x38\x1f\xfe\xa5" + # addi r0,r31,-347 #
23-
"\x44\xff\xff\x02", # sc #
27+
# setreuid(0, 0)
28+
'PrependSetreuid' => "\x3b\xe0\x01\xff" + # li r31,511 #
29+
"\x7c\x84\x22\x78" + # xor r4,r4,r4 #
30+
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
31+
"\x38\x1f\xfe\x47" + # addi r0,r31,-441 #
32+
"\x44\xff\xff\x02", # sc #
2433

25-
# setreuid(0, 0)
26-
'PrependSetreuid' => "\x3b\xe0\x01\xff" + # li r31,511 #
27-
"\x7c\x84\x22\x78" + # xor r4,r4,r4 #
28-
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
29-
"\x38\x1f\xfe\x47" + # addi r0,r31,-441 #
30-
"\x44\xff\xff\x02", # sc #
34+
# setuid(0)
35+
'PrependSetuid' => "\x3b\xe0\x01\xff" + # li r31,511 #
36+
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
37+
"\x38\x1f\xfe\x18" + # addi r0,r31,-488 #
38+
"\x44\xff\xff\x02", # sc #
3139

32-
# setuid(0)
33-
'PrependSetuid' => "\x3b\xe0\x01\xff" + # li r31,511 #
34-
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
35-
"\x38\x1f\xfe\x18" + # addi r0,r31,-488 #
36-
"\x44\xff\xff\x02", # sc #
40+
# setresgid(0, 0, 0)
41+
'PrependSetresgid' => "\x3b\xe0\x01\xff" + # li r31,511 #
42+
"\x7c\xa5\x2a\x78" + # xor r5,r5,r5 #
43+
"\x7c\x84\x22\x78" + # xor r4,r4,r4 #
44+
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
45+
"\x38\x1f\xfe\xab" + # addi r0,r31,-341 #
46+
"\x44\xff\xff\x02", # sc #
3747

38-
# setresgid(0, 0, 0)
39-
'PrependSetresgid' => "\x3b\xe0\x01\xff" + # li r31,511 #
40-
"\x7c\xa5\x2a\x78" + # xor r5,r5,r5 #
41-
"\x7c\x84\x22\x78" + # xor r4,r4,r4 #
42-
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
43-
"\x38\x1f\xfe\xab" + # addi r0,r31,-341 #
44-
"\x44\xff\xff\x02", # sc #
48+
# setregid(0, 0)
49+
'PrependSetregid' => "\x3b\xe0\x01\xff" + # li r31,511 #
50+
"\x7c\x84\x22\x78" + # xor r4,r4,r4 #
51+
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
52+
"\x38\x1f\xfe\x48" + # addi r0,r31,-440 #
53+
"\x44\xff\xff\x02", # sc #
4554

46-
# setregid(0, 0)
47-
'PrependSetregid' => "\x3b\xe0\x01\xff" + # li r31,511 #
48-
"\x7c\x84\x22\x78" + # xor r4,r4,r4 #
49-
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
50-
"\x38\x1f\xfe\x48" + # addi r0,r31,-440 #
51-
"\x44\xff\xff\x02", # sc #
55+
# setgid(0)
56+
'PrependSetgid' => "\x3b\xe0\x01\xff" + # li r31,511 #
57+
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
58+
"\x38\x1f\xfe\x2f" + # addi r0,r31,-465 #
59+
"\x44\xff\xff\x02" # sc #
5260

53-
# setgid(0)
54-
'PrependSetgid' => "\x3b\xe0\x01\xff" + # li r31,511 #
55-
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
56-
"\x38\x1f\xfe\x2f" + # addi r0,r31,-465 #
57-
"\x44\xff\xff\x02" # sc #
58-
5961
# setreuid(0, 0) = break chroot
60-
# 'PrependChrootBreak' =>
61-
}
62-
end
62+
# 'PrependChrootBreak' =>
63+
}
64+
end
6365

64-
def appends_map
65-
{
66+
def appends_map
67+
{
6668
# exit(0)
67-
'AppendExit' => "\x3b\xe0\x01\xff" + # li r31,511 #
68-
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
69-
"\x38\x1f\xfe\x02" + # addi r0,r31,-510 #
70-
"\x44\xff\xff\x02" # sc #
71-
}
72-
end
69+
'AppendExit' => "\x3b\xe0\x01\xff" + # li r31,511 #
70+
"\x7c\x63\x1a\x78" + # xor r3,r3,r3 #
71+
"\x38\x1f\xfe\x02" + # addi r0,r31,-510 #
72+
"\x44\xff\xff\x02" # sc #
73+
}
7374
end
74-
end
75+
end
Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,45 @@
1+
#
2+
# Linux Preprends shared logic.
3+
#
4+
module Msf::Payload::Linux::Prepends
5+
def initialize(info)
6+
super(info)
7+
register_prepend_options
8+
end
19

2-
module Msf
3-
module Payload::Linux::Prepends
4-
5-
def initialize(info)
6-
super(info)
7-
register_prepend_options
10+
def register_prepend_options
11+
all_options = {
12+
'PrependFork' => [false, 'Prepend a stub that starts the payload in its own process via fork', 'false'],
13+
'PrependSetresuid' => [false, 'Prepend a stub that executes the setresuid(0, 0, 0) system call', 'false'],
14+
'PrependSetreuid' => [false, 'Prepend a stub that executes the setreuid(0, 0) system call', 'false'],
15+
'PrependSetuid' => [false, 'Prepend a stub that executes the setuid(0) system call', 'false'],
16+
'PrependSetresgid' => [false, 'Prepend a stub that executes the setresgid(0, 0, 0) system call', 'false'],
17+
'PrependSetregid' => [false, 'Prepend a stub that executes the setregid(0, 0) system call', 'false'],
18+
'PrependSetgid' => [false, 'Prepend a stub that executes the setgid(0) system call', 'false'],
19+
'PrependChrootBreak' => [false, 'Prepend a stub that will break out of a chroot (includes setreuid to root)', 'false'],
20+
'AppendExit' => [false, 'Prepend a stub that will break out of a chroot (includes setreuid to root)', 'false']
21+
}
22+
avaiable_options = []
23+
for prepend in prepends_order
24+
avaiable_options.append(Msf::OptBool.new(prepend, all_options.fetch(prepend)))
825
end
9-
10-
def register_prepend_options
11-
all_options = {
12-
'PrependFork' => [false, 'Prepend a stub that starts the payload in its own process via fork', 'false'],
13-
'PrependSetresuid' => [false, 'Prepend a stub that executes the setresuid(0, 0, 0) system call', 'false'],
14-
'PrependSetreuid' => [false, 'Prepend a stub that executes the setreuid(0, 0) system call', 'false'],
15-
'PrependSetuid' => [false, 'Prepend a stub that executes the setuid(0) system call', 'false'],
16-
'PrependSetresgid' => [false, 'Prepend a stub that executes the setresgid(0, 0, 0) system call', 'false'],
17-
'PrependSetregid' => [false, 'Prepend a stub that executes the setregid(0, 0) system call', 'false'],
18-
'PrependSetgid' => [false, 'Prepend a stub that executes the setgid(0) system call', 'false'],
19-
'PrependChrootBreak' => [false, 'Prepend a stub that will break out of a chroot (includes setreuid to root)', 'false'],
20-
'AppendExit' => [false, 'Prepend a stub that will break out of a chroot (includes setreuid to root)', 'false']
21-
}
22-
avaiable_options = []
23-
for prepend in prepends_order
24-
avaiable_options.append(Msf::OptBool.new(prepend, all_options.fetch(prepend)))
25-
end
26-
for append in appends_order
27-
avaiable_options.append(Msf::OptBool.new(append, all_options.fetch(append)))
28-
end
29-
register_advanced_options(avaiable_options, Msf::Payload::Linux)
26+
for append in appends_order
27+
avaiable_options.append(Msf::OptBool.new(append, all_options.fetch(append)))
3028
end
29+
register_advanced_options(avaiable_options, Msf::Payload::Linux)
30+
end
3131

32-
def apply_prepends(buf)
33-
pre = ''
34-
app = ''
35-
for name in prepends_order.each
36-
pre << prepends_map.fetch(name) if datastore[name]
37-
end
38-
for name in appends_order.each
39-
app << appends_map.fetch(name) if datastore[name]
40-
end
41-
pre.force_encoding('ASCII-8BIT') +
42-
buf.force_encoding('ASCII-8BIT') +
43-
app.force_encoding('ASCII-8BIT')
32+
def apply_prepends(buf)
33+
pre = ''
34+
app = ''
35+
for name in prepends_order.each
36+
pre << prepends_map.fetch(name) if datastore[name]
37+
end
38+
for name in appends_order.each
39+
app << appends_map.fetch(name) if datastore[name]
4440
end
41+
pre.force_encoding('ASCII-8BIT') +
42+
buf.force_encoding('ASCII-8BIT') +
43+
app.force_encoding('ASCII-8BIT')
4544
end
4645
end

0 commit comments

Comments
 (0)