payload_spec.rb 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. require 'spec_helper'
  2. RSpec.describe Msf::Simple::Payload do
  3. include_context 'Msf::Simple::Framework#modules loading'
  4. let(:generator_format) { 'raw' }
  5. let(:generator_opts) {
  6. {
  7. 'BadChars' => '',
  8. 'Encoder' => '',
  9. 'Options' => { 'LHOST' => '1.1.1.1', 'LPORT' => '8443' } ,
  10. 'Format' => generator_format,
  11. 'NoComment' => false,
  12. 'NopSledSize' => 0,
  13. 'MaxSize' => 0,
  14. 'Iterations' => 1,
  15. 'ForceEncode' => false
  16. }
  17. }
  18. let!(:payload_module) {
  19. load_and_create_module(
  20. ancestor_reference_names: %w{
  21. stagers/windows/reverse_tcp
  22. stages/windows/meterpreter
  23. },
  24. module_type: 'payload',
  25. reference_name: 'windows/meterpreter/reverse_tcp'
  26. )
  27. }
  28. subject(:payload) {
  29. described_class.generate_simple(payload_module, generator_opts)
  30. }
  31. it { expect { payload }.not_to raise_error }
  32. # These are languages that are missing a to_comment implementation in Rex::Text.
  33. UNSUPPORTED_LANGS = %w(vbapplication vbscript)
  34. (::Msf::Simple::Buffer.transform_formats - UNSUPPORTED_LANGS).each do |format|
  35. context "when given the transform format '#{format}'" do
  36. let(:generator_format) { format }
  37. it { expect { payload }.not_to raise_error }
  38. end
  39. end
  40. end