Skip to content

Commit aced5bb

Browse files
committed
Merge remote-tracking branch 'wvu-r7/fix-msfpayload-1944' into csharp_payload
2 parents e880201 + 2fbc79d commit aced5bb

File tree

2 files changed

+49
-49
lines changed

2 files changed

+49
-49
lines changed

msfpayload

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -119,18 +119,18 @@ end
119119

120120
payload.datastore.merge! options
121121

122-
if (cmd =~ /^(p|y|r|d|c|h|j|x|b|v|w|n)/)
123-
fmt = 'perl' if (cmd =~ /^p/)
124-
fmt = 'ruby' if (cmd =~ /^y/)
125-
fmt = 'raw' if (cmd =~ /^(r|x|d)/)
126-
fmt = 'raw' if (cmd =~ /^v/)
127-
fmt = 'c' if (cmd == 'c')
128-
fmt = 'csharp' if (cmd == 'h')
129-
fmt = 'js_be' if (cmd =~ /^j/ and Rex::Arch.endian(payload.arch) == ENDIAN_BIG)
130-
fmt = 'js_le' if (cmd =~ /^j/ and ! fmt)
131-
fmt = 'java' if (cmd =~ /^b/)
132-
fmt = 'raw' if (cmd =~ /^w/)
133-
fmt = 'python' if (cmd =~ /^n/)
122+
if (cmd =~ /^(p|y|r|d|c|h|j|x|b|v|w|n)$/)
123+
fmt = 'perl' if (cmd =~ /^p$/)
124+
fmt = 'ruby' if (cmd =~ /^y$/)
125+
fmt = 'raw' if (cmd =~ /^(r|x|d)$/)
126+
fmt = 'raw' if (cmd =~ /^v$/)
127+
fmt = 'c' if (cmd =~ /^c$/)
128+
fmt = 'csharp' if (cmd =~ /^h$/)
129+
fmt = 'js_be' if (cmd =~ /^j$/ and Rex::Arch.endian(payload.arch) == ENDIAN_BIG)
130+
fmt = 'js_le' if (cmd =~ /^j$/ and ! fmt)
131+
fmt = 'java' if (cmd =~ /^b$/)
132+
fmt = 'raw' if (cmd =~ /^w$/)
133+
fmt = 'python' if (cmd =~ /^n$/)
134134
enc = options['ENCODER']
135135

136136
begin
@@ -145,7 +145,7 @@ if (cmd =~ /^(p|y|r|d|c|h|j|x|b|v|w|n)/)
145145

146146
$stdout.binmode
147147

148-
if (cmd =~ /^x/)
148+
if (cmd =~ /^x$/)
149149
note =
150150
"Created by msfpayload (http://www.metasploit.com).\n" +
151151
"Payload: " + payload.refname + "\n" +
@@ -171,7 +171,7 @@ if (cmd =~ /^(p|y|r|d|c|h|j|x|b|v|w|n)/)
171171
exit(-1)
172172
end
173173

174-
if(cmd =~ /^v/)
174+
if(cmd =~ /^v$/)
175175
exe = Msf::Util::EXE.to_win32pe($framework, buf)
176176
note =
177177
"'Created by msfpayload (http://www.metasploit.com).\r\n" +
@@ -184,7 +184,7 @@ if (cmd =~ /^(p|y|r|d|c|h|j|x|b|v|w|n)/)
184184
exit(0)
185185
end
186186

187-
if(cmd =~ /^d/)
187+
if(cmd =~ /^d$/)
188188
dll = Msf::Util::EXE.to_win32pe_dll($framework, buf)
189189
note =
190190
"Created by msfpayload (http://www.metasploit.com).\r\n" +
@@ -202,7 +202,7 @@ if (cmd =~ /^(p|y|r|d|c|h|j|x|b|v|w|n)/)
202202
exit(-1)
203203
end
204204

205-
if(cmd =~ /^w/)
205+
if(cmd =~ /^w$/)
206206
note =
207207
"Created by msfpayload (http://www.metasploit.com).\n" +
208208
"Payload: " + payload.refname + "\n" +
@@ -232,7 +232,7 @@ if (cmd =~ /^(p|y|r|d|c|h|j|x|b|v|w|n)/)
232232

233233
$stdout.write(buf)
234234

235-
elsif (cmd =~ /^(s|o)/)
235+
elsif (cmd =~ /^(s|o)$/)
236236
payload.datastore.import_options_from_s(rest.join('_|_'), '_|_')
237237
puts Msf::Serializer::ReadableText.dump_module(payload)
238238

msfvenom

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -265,13 +265,13 @@ $framework ||= Msf::Simple::Framework.create(
265265
if opts[:list]
266266
opts[:list].each do |mod|
267267
case mod
268-
when /payloads/i
268+
when /^payloads$/i
269269
$stderr.puts dump_payloads
270-
when /encoders/i
270+
when /^encoders$/i
271271
$stderr.puts dump_encoders(opts[:arch])
272-
when /nops/i
272+
when /^nops$/i
273273
$stderr.puts dump_nops
274-
when /all/i
274+
when /^all$/i
275275
$stderr.puts dump_payloads
276276
$stderr.puts dump_encoders
277277
$stderr.puts dump_nops
@@ -422,26 +422,26 @@ end
422422

423423
$stdout.binmode
424424

425-
if opts[:format] !~/ruby|rb|perl|pl|bash|sh|c|csharp|js|dll|elf/i
425+
if opts[:format] !~/^(ruby|rb|perl|pl|bash|sh|c|csharp|js|dll|elf)$/i
426426
exe = Msf::Util::EXE.to_executable_fmt($framework, opts[:arch], opts[:platform], payload_raw, opts[:format], exeopts)
427427
end
428428

429429
case opts[:format]
430-
when /ruby|rb|perl|pl|bash|^sh$|^c$|^csharp$|js_le|raw|^py/i
430+
when /^(ruby|rb|perl|pl|bash|sh|c|csharp|js_le|raw|py)$/i
431431
$stdout.write Msf::Simple::Buffer.transform(payload_raw, opts[:format])
432-
when /asp$/
432+
when /^asp$/
433433
asp = Msf::Util::EXE.to_win32pe_asp($framework, payload_raw, exeopts)
434434
$stdout.puts asp
435-
when /aspx/
435+
when /^aspx$/
436436
aspx = Msf::Util::EXE.to_win32pe_aspx($framework, payload_raw, exeopts)
437437
$stdout.puts aspx
438-
when /js_be/i
438+
when /^js_be$/i
439439
if Rex::Arch.endian(payload.arch) != ENDIAN_BIG
440440
print_error("Big endian format selected for a non big endian payload")
441441
exit
442442
end
443443
$stdout.puts Msf::Simple::Buffer.transform(payload_raw, opts[:format])
444-
when /java/i
444+
when /^java$/i
445445
if(!exe and payload.platform.platforms.index(Msf::Module::Platform::Java))
446446
exe = payload.generate_jar.pack
447447
end
@@ -451,75 +451,75 @@ when /java/i
451451
else
452452
print_error("Could not generate payload format")
453453
end
454-
when /elf/i
454+
when /^elf$/i
455455
if (opts[:platform].index(Msf::Module::Platform::Linux))
456456
elf = case opts[:arch]
457-
when /x64/; Msf::Util::EXE.to_linux_x64_elf($framework, payload_raw, exeopts)
458-
when /x86/; Msf::Util::EXE.to_linux_x86_elf($framework, payload_raw, exeopts)
459-
when /arm/; Msf::Util::EXE.to_linux_armle_elf($framework, payload_raw, exeopts)
457+
when /^x64$/; Msf::Util::EXE.to_linux_x64_elf($framework, payload_raw, exeopts)
458+
when /^x86$/; Msf::Util::EXE.to_linux_x86_elf($framework, payload_raw, exeopts)
459+
when /^arm$/; Msf::Util::EXE.to_linux_armle_elf($framework, payload_raw, exeopts)
460460
end
461461
elsif(opts[:platform].index(Msf::Module::Platform::BSD))
462462
elf = case opts[:arch]
463-
when /x86/; Msf::Util::EXE.to_bsd_x86_elf($framework, payload_raw, exeopts)
463+
when /^x86$/; Msf::Util::EXE.to_bsd_x86_elf($framework, payload_raw, exeopts)
464464
end
465465
elsif(opts[:platform].index(Msf::Module::Platform::Solaris))
466466
elf = case opts[:arch]
467-
when /x86/; Msf::Util::EXE.to_solaris_x86_elf($framework, payload_raw, exeopts)
467+
when /^x86$/; Msf::Util::EXE.to_solaris_x86_elf($framework, payload_raw, exeopts)
468468
end
469469
end
470470
if elf.nil?
471471
print_error("This format does not support that architecture")
472472
exit
473473
end
474474
$stdout.write elf
475-
when /macho/i
475+
when /^macho$/i
476476
bin = case opts[:arch]
477-
when /x64/; Msf::Util::EXE.to_osx_x64_macho($framework, payload_raw, exeopts)
478-
when /x86/; Msf::Util::EXE.to_osx_x86_macho($framework, payload_raw, exeopts)
479-
when /arm/; Msf::Util::EXE.to_osx_arm_macho($framework, payload_raw, exeopts)
480-
when /ppc/; Msf::Util::EXE.to_osx_ppc_macho($framework, payload_raw, exeopts)
477+
when /^x64$/; Msf::Util::EXE.to_osx_x64_macho($framework, payload_raw, exeopts)
478+
when /^x86$/; Msf::Util::EXE.to_osx_x86_macho($framework, payload_raw, exeopts)
479+
when /^arm$/; Msf::Util::EXE.to_osx_arm_macho($framework, payload_raw, exeopts)
480+
when /^ppc$/; Msf::Util::EXE.to_osx_ppc_macho($framework, payload_raw, exeopts)
481481
end
482482
if bin.nil?
483483
print_error("This format does not support that architecture")
484484
exit
485485
end
486486
$stdout.write bin
487-
when /dll/i
487+
when /^dll$/i
488488
dll = case opts[:arch]
489-
when /x86/; Msf::Util::EXE.to_win32pe_dll($framework, payload_raw)
490-
when /x64|x86_64/; Msf::Util::EXE.to_win64pe_dll($framework, payload_raw)
489+
when /^x86$/; Msf::Util::EXE.to_win32pe_dll($framework, payload_raw)
490+
when /^(x64|x86_64)$/; Msf::Util::EXE.to_win64pe_dll($framework, payload_raw)
491491
end
492492
if dll.nil?
493493
print_error("This format does not support that architecture")
494494
exit
495495
end
496496

497497
$stdout.write dll
498-
when /exe/i
498+
when /^exe$/i
499499
$stdout.write exe
500-
when /exe-small/i
501-
when /vba/i
500+
when /^exe-small$/i
501+
when /^vba$/i
502502
vba = Msf::Util::EXE.to_vba($framework, payload_raw)
503503
$stdout.puts vba
504-
when /vba-exe/i
504+
when /^vba-exe$/i
505505
exe = Msf::Util::EXE.to_win32pe($framework, payload_raw)
506506
vba = Msf::Util::EXE.to_exe_vba(exe)
507507
$stdout.puts vba
508-
when /vbs/i
508+
when /^vbs$/i
509509
exe = Msf::Util::EXE.to_win32pe($framework, payload_raw)
510510
vbs = Msf::Util::EXE.to_exe_vbs(exe)
511511
$stdout.puts vbs
512-
when /war/i
512+
when /^war$/i
513513
if (!exe and payload.platform.platforms.index(Msf::Module::Platform::Java))
514514
exe = payload.generate_war.pack
515515
else
516516
exe = Msf::Util::EXE.to_jsp_war(exe)
517517
end
518518
$stdout.write exe
519-
when /psh/i
519+
when /^psh$/i
520520
psh = Msf::Util::EXE.to_win32pe_psh($framework, payload_raw, exeopts)
521521
$stdout.write psh
522-
when /psh-net/i
522+
when /^psh-net$/i
523523
psh = Msf::Util::EXE.to_win32pe_psh_net($framework, payload_raw, exeopts)
524524
$stdout.write psh
525525
else

0 commit comments

Comments
 (0)