ronin-exploits 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/History.txt +122 -0
- data/Manifest.txt +110 -20
- data/README.txt +112 -31
- data/Rakefile +12 -1
- data/bin/ronin-exploit +12 -0
- data/bin/ronin-exploits +1 -1
- data/bin/ronin-gen-binary-payload +12 -0
- data/bin/ronin-gen-exploit +12 -0
- data/bin/ronin-gen-ftp-exploit +12 -0
- data/bin/ronin-gen-http-exploit +12 -0
- data/bin/ronin-gen-local-exploit +12 -0
- data/bin/ronin-gen-nops +12 -0
- data/bin/ronin-gen-payload +12 -0
- data/bin/ronin-gen-remote-exploit +12 -0
- data/bin/ronin-gen-remote-tcp-exploit +12 -0
- data/bin/ronin-gen-remote-udp-exploit +12 -0
- data/bin/ronin-gen-shellcode +12 -0
- data/bin/ronin-gen-web-exploit +12 -0
- data/bin/ronin-payload +1 -1
- data/bin/ronin-payloads +1 -1
- data/lib/ronin/controls.rb +23 -0
- data/lib/ronin/controls/behaviors.rb +133 -0
- data/lib/ronin/{payloads/helpers → controls}/exceptions.rb +2 -4
- data/lib/ronin/{payloads/arch.rb → controls/exceptions/not_implemented.rb} +3 -8
- data/lib/ronin/controls/exceptions/program_not_found.rb +27 -0
- data/lib/ronin/controls/file_system.rb +145 -0
- data/lib/ronin/{exploits/os.rb → controls/helpers.rb} +12 -13
- data/lib/ronin/controls/helpers/command_exec.rb +143 -0
- data/lib/ronin/controls/helpers/dir_create.rb +42 -0
- data/lib/ronin/controls/helpers/dir_listing.rb +62 -0
- data/lib/ronin/controls/helpers/dir_remove.rb +42 -0
- data/lib/ronin/controls/helpers/file_ctime.rb +52 -0
- data/lib/ronin/controls/helpers/file_mtime.rb +53 -0
- data/lib/ronin/controls/helpers/file_ownership.rb +53 -0
- data/lib/ronin/controls/helpers/file_read.rb +62 -0
- data/lib/ronin/controls/helpers/file_remove.rb +51 -0
- data/lib/ronin/controls/helpers/file_write.rb +62 -0
- data/lib/ronin/controls/helpers/memory_read.rb +39 -0
- data/lib/ronin/controls/helpers/memory_write.rb +39 -0
- data/lib/ronin/exploits.rb +0 -2
- data/lib/ronin/exploits/{allow.rb → control.rb} +5 -9
- data/lib/ronin/exploits/exceptions.rb +1 -2
- data/lib/ronin/exploits/exceptions/exception.rb +27 -0
- data/lib/ronin/exploits/exceptions/exploit_not_built.rb +3 -3
- data/lib/ronin/exploits/exceptions/payload_size.rb +3 -3
- data/lib/ronin/exploits/exceptions/restricted_char.rb +3 -3
- data/lib/ronin/exploits/exceptions/target_data_missing.rb +3 -3
- data/lib/ronin/exploits/exceptions/target_unspecified.rb +3 -3
- data/lib/ronin/exploits/exceptions/unknown_helper.rb +3 -3
- data/lib/ronin/exploits/exploit.rb +449 -92
- data/lib/ronin/exploits/exploit_author.rb +2 -3
- data/lib/ronin/exploits/ftp.rb +7 -2
- data/lib/ronin/exploits/helpers.rb +0 -2
- data/lib/ronin/exploits/helpers/binary.rb +11 -5
- data/lib/ronin/exploits/helpers/buffer_overflow.rb +38 -25
- data/lib/ronin/exploits/helpers/file_based.rb +29 -30
- data/lib/ronin/exploits/helpers/format_string.rb +34 -24
- data/lib/ronin/exploits/helpers/padding.rb +33 -16
- data/lib/ronin/exploits/http.rb +9 -4
- data/lib/ronin/exploits/local.rb +8 -2
- data/lib/ronin/exploits/remote.rb +8 -2
- data/lib/ronin/exploits/remote_tcp.rb +26 -8
- data/lib/ronin/exploits/remote_udp.rb +26 -8
- data/lib/ronin/exploits/target.rb +41 -30
- data/lib/ronin/exploits/targets.rb +0 -2
- data/lib/ronin/exploits/targets/buffer_overflow.rb +0 -2
- data/lib/ronin/exploits/targets/format_string.rb +0 -2
- data/lib/ronin/exploits/verifiers.rb +45 -16
- data/lib/ronin/exploits/version.rb +1 -3
- data/lib/ronin/exploits/web.rb +18 -6
- data/lib/ronin/generators/exploits.rb +23 -0
- data/lib/ronin/generators/exploits/exploit.rb +70 -0
- data/lib/ronin/generators/exploits/ftp.rb +42 -0
- data/lib/ronin/generators/exploits/http.rb +42 -0
- data/lib/ronin/generators/exploits/local.rb +42 -0
- data/lib/ronin/generators/exploits/remote.rb +42 -0
- data/lib/ronin/generators/exploits/remote_tcp.rb +44 -0
- data/lib/ronin/generators/exploits/remote_udp.rb +44 -0
- data/lib/ronin/{exploits/arch.rb → generators/exploits/static.rb} +5 -9
- data/lib/ronin/generators/exploits/web.rb +45 -0
- data/lib/ronin/generators/payloads.rb +23 -0
- data/lib/ronin/generators/payloads/binary_payload.rb +42 -0
- data/lib/ronin/generators/payloads/nops.rb +42 -0
- data/lib/ronin/generators/payloads/payload.rb +66 -0
- data/lib/ronin/generators/payloads/shellcode.rb +42 -0
- data/lib/ronin/generators/payloads/static.rb +30 -0
- data/lib/ronin/model/has_default_port.rb +6 -6
- data/lib/ronin/model/targets_arch.rb +18 -7
- data/lib/ronin/model/targets_os.rb +18 -8
- data/lib/ronin/model/targets_product.rb +68 -0
- data/lib/ronin/payloads.rb +0 -2
- data/lib/ronin/payloads/asm_payload.rb +8 -2
- data/lib/ronin/payloads/binary_payload.rb +8 -2
- data/lib/ronin/payloads/control.rb +1 -5
- data/lib/ronin/payloads/encoders.rb +1 -2
- data/lib/ronin/payloads/encoders/encoder.rb +92 -0
- data/lib/ronin/payloads/encoders/xor.rb +4 -6
- data/lib/ronin/payloads/exceptions.rb +1 -2
- data/lib/ronin/payloads/{helpers/exceptions/not_implemented.rb → exceptions/exception.rb} +1 -5
- data/lib/ronin/payloads/{helpers/exceptions/program_not_found.rb → exceptions/not_implemented.rb} +3 -5
- data/lib/ronin/payloads/exceptions/unknown_helper.rb +3 -3
- data/lib/ronin/payloads/has_payload.rb +111 -0
- data/lib/ronin/payloads/helpers.rb +1 -4
- data/lib/ronin/payloads/helpers/chained.rb +61 -0
- data/lib/ronin/payloads/helpers/rpc.rb +31 -21
- data/lib/ronin/payloads/nops.rb +7 -2
- data/lib/ronin/payloads/payload.rb +144 -85
- data/lib/ronin/payloads/payload_author.rb +2 -3
- data/lib/ronin/payloads/shellcode.rb +8 -5
- data/lib/ronin/payloads/web_payload.rb +8 -2
- data/lib/ronin/ui/command_line/commands/exploit.rb +193 -0
- data/lib/ronin/ui/command_line/commands/exploits.rb +102 -25
- data/lib/ronin/ui/command_line/commands/gen_binary_payload.rb +34 -0
- data/lib/ronin/ui/command_line/commands/gen_exploit.rb +34 -0
- data/lib/ronin/ui/command_line/commands/gen_ftp_exploit.rb +34 -0
- data/lib/ronin/ui/command_line/commands/gen_http_exploit.rb +34 -0
- data/lib/ronin/ui/command_line/commands/gen_local_exploit.rb +34 -0
- data/lib/ronin/{exploits/license.rb → ui/command_line/commands/gen_nops.rb} +8 -8
- data/lib/ronin/ui/command_line/commands/gen_payload.rb +34 -0
- data/lib/ronin/ui/command_line/commands/gen_remote_exploit.rb +34 -0
- data/lib/ronin/ui/command_line/commands/gen_remote_tcp_exploit.rb +34 -0
- data/lib/ronin/ui/command_line/commands/gen_remote_udp_exploit.rb +34 -0
- data/lib/ronin/ui/command_line/commands/gen_shellcode.rb +34 -0
- data/lib/ronin/ui/command_line/commands/gen_web_exploit.rb +34 -0
- data/lib/ronin/ui/command_line/commands/payload.rb +73 -50
- data/lib/ronin/ui/command_line/commands/payloads.rb +78 -23
- data/lib/ronin/vuln/behavior.rb +101 -28
- data/spec/controls/behaviors_examples.rb +38 -0
- data/spec/exploits/exploit_spec.rb +177 -23
- data/spec/exploits/file_based_exploit_spec.rb +16 -7
- data/spec/exploits/remote_tcp_spec.rb +1 -1
- data/spec/exploits/remote_udp_spec.rb +1 -1
- data/spec/generators/exploits/exploit_examples.rb +24 -0
- data/spec/generators/exploits/exploit_spec.rb +42 -0
- data/spec/generators/exploits/ftp_spec.rb +42 -0
- data/spec/generators/exploits/http_spec.rb +42 -0
- data/spec/generators/exploits/local_spec.rb +42 -0
- data/spec/generators/exploits/remote_spec.rb +42 -0
- data/spec/generators/exploits/remote_tcp_spec.rb +47 -0
- data/spec/generators/exploits/remote_udp_spec.rb +47 -0
- data/spec/generators/exploits/web_spec.rb +52 -0
- data/spec/generators/payloads/binary_payload_spec.rb +31 -0
- data/spec/generators/payloads/nops_spec.rb +31 -0
- data/spec/generators/payloads/payload_examples.rb +16 -0
- data/spec/generators/payloads/payload_spec.rb +31 -0
- data/spec/generators/payloads/shellcode_spec.rb +31 -0
- data/spec/model/models/targets_product_model.rb +11 -0
- data/spec/model/targets_arch_spec.rb +11 -1
- data/spec/model/targets_os_spec.rb +11 -1
- data/spec/model/targets_product_spec.rb +35 -0
- data/spec/objects/exploits/{test.rb → simple.rb} +1 -1
- data/spec/objects/payloads/{test.rb → simple.rb} +6 -2
- data/spec/payloads/encoders/encoder_spec.rb +30 -0
- data/spec/payloads/encoders/xor_spec.rb +1 -1
- data/spec/payloads/payload_spec.rb +41 -43
- data/spec/spec_helper.rb +4 -1
- data/static/ronin/generators/exploits/_cache.erb +14 -0
- data/static/ronin/generators/exploits/_header.erb +1 -0
- data/static/ronin/generators/exploits/_helpers.erb +4 -0
- data/static/ronin/generators/exploits/exploit.erb +24 -0
- data/static/ronin/generators/exploits/ftp.erb +24 -0
- data/static/ronin/generators/exploits/http.erb +26 -0
- data/static/ronin/generators/exploits/local.erb +24 -0
- data/static/ronin/generators/exploits/remote.erb +24 -0
- data/static/ronin/generators/exploits/remote_tcp.erb +26 -0
- data/static/ronin/generators/exploits/remote_udp.erb +26 -0
- data/static/ronin/generators/exploits/web.erb +28 -0
- data/static/ronin/generators/payloads/_cache.erb +10 -0
- data/static/ronin/generators/payloads/_header.erb +1 -0
- data/static/ronin/generators/payloads/_helpers.erb +2 -0
- data/static/ronin/generators/payloads/binary_payload.erb +25 -0
- data/static/ronin/generators/payloads/nops.erb +19 -0
- data/static/ronin/generators/payloads/payload.erb +25 -0
- data/static/ronin/generators/payloads/shellcode.erb +25 -0
- data/tasks/spec.rb +1 -0
- data/tasks/yard.rb +13 -0
- metadata +162 -30
- metadata.gz.sig +0 -0
- data/TODO.txt +0 -22
- data/lib/ronin/exploits/product.rb +0 -34
- data/lib/ronin/payloads/encoder.rb +0 -84
- data/lib/ronin/payloads/helpers/file_system.rb +0 -187
- data/lib/ronin/payloads/helpers/shell.rb +0 -91
- data/lib/ronin/payloads/license.rb +0 -34
- data/lib/ronin/payloads/os.rb +0 -34
- data/spec/payloads/encoder_spec.rb +0 -30
@@ -4,15 +4,15 @@ require 'ronin/exploits/helpers/file_based'
|
|
4
4
|
require 'spec_helper'
|
5
5
|
|
6
6
|
describe Exploits::Helpers::FileBased do
|
7
|
-
before(:
|
7
|
+
before(:each) do
|
8
8
|
@exploit = Exploits::Local.new do
|
9
9
|
helper :file_based
|
10
10
|
|
11
11
|
self.name = 'file exploit'
|
12
|
-
self.
|
12
|
+
self.output_file_name = 'file_exploit.dat'
|
13
13
|
|
14
14
|
def build
|
15
|
-
|
15
|
+
build_file do |file|
|
16
16
|
file << 'some data'
|
17
17
|
end
|
18
18
|
end
|
@@ -20,20 +20,29 @@ describe Exploits::Helpers::FileBased do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
it "should have an absolute path for the file to be built" do
|
23
|
-
@exploit.
|
23
|
+
@exploit.output_file_path.should_not be_empty
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should sanitize the output_file_name used in the absolute path" do
|
27
|
+
@exploit.output_file_name = '../evil.txt'
|
28
|
+
|
29
|
+
@exploit.output_file_path.should == File.join(
|
30
|
+
@exploit.output_dir,
|
31
|
+
'evil.txt'
|
32
|
+
)
|
24
33
|
end
|
25
34
|
|
26
35
|
it "should have a default output directory" do
|
27
36
|
@exploit.output_dir.should == Ronin::Config::TMP_DIR
|
28
37
|
end
|
29
38
|
|
30
|
-
it "should have a default
|
31
|
-
@exploit.
|
39
|
+
it "should have a default output_file_name, based on the exploit name" do
|
40
|
+
@exploit.output_file_name.should == 'file_exploit.dat'
|
32
41
|
end
|
33
42
|
|
34
43
|
it "should build a file" do
|
35
44
|
@exploit.build!
|
36
45
|
|
37
|
-
File.read(@exploit.
|
46
|
+
File.read(@exploit.output_file_path).should == 'some data'
|
38
47
|
end
|
39
48
|
end
|
@@ -11,7 +11,7 @@ describe Exploits::RemoteTCP do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should include the TCP Session module" do
|
14
|
-
Exploits::RemoteTCP.include?(
|
14
|
+
Exploits::RemoteTCP.include?(Network::Helpers::TCP).should == true
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should initialize all parameters by default" do
|
@@ -11,7 +11,7 @@ describe Exploits::RemoteUDP do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should include the UDP Session module" do
|
14
|
-
Exploits::RemoteUDP.include?(
|
14
|
+
Exploits::RemoteUDP.include?(Network::Helpers::UDP).should == true
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should initialize all parameters by default" do
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
shared_examples_for "an Exploit" do
|
4
|
+
it "should set the name property" do
|
5
|
+
@exploit.name.should == Generators::Exploits::Exploit::DEFAULT_NAME
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should set the description property" do
|
9
|
+
@exploit.description.should == Generators::Exploits::Exploit::DEFAULT_DESCRIPTION
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should set the status property" do
|
13
|
+
@exploit.status.should == Generators::Exploits::Exploit::DEFAULT_STATUS
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should set the disclosure property" do
|
17
|
+
@exploit.disclosure.include?(:in_wild).should == true
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should defines an author" do
|
21
|
+
@exploit.authors.length.should == 1
|
22
|
+
@exploit.authors.first.name.should == Author::ANONYMOUSE
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'ronin/generators/exploits/exploit'
|
2
|
+
require 'ronin/exploits/exploit'
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
require 'generators/exploits/exploit_examples'
|
6
|
+
|
7
|
+
require 'tmpdir'
|
8
|
+
require 'fileutils'
|
9
|
+
|
10
|
+
describe Generators::Exploits::Exploit do
|
11
|
+
before(:all) do
|
12
|
+
@path = File.join(Dir.tmpdir,'generated_exploit.rb')
|
13
|
+
|
14
|
+
Generators::Exploits::Exploit.generate(
|
15
|
+
{
|
16
|
+
:helpers => ['buffer_overflow'],
|
17
|
+
:controls => ['code_exec']
|
18
|
+
},
|
19
|
+
[@path]
|
20
|
+
)
|
21
|
+
|
22
|
+
@exploit = Exploits::Exploit.load_from(@path)
|
23
|
+
end
|
24
|
+
|
25
|
+
it_should_behave_like "an Exploit"
|
26
|
+
|
27
|
+
it "should define an Exploit" do
|
28
|
+
@exploit.class.should == Exploits::Exploit
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should define helpers to load" do
|
32
|
+
@exploit.kind_of?(Exploits::Helpers::BufferOverflow).should == true
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should define behaviors which it controls" do
|
36
|
+
@exploit.behaviors.should == [:code_exec]
|
37
|
+
end
|
38
|
+
|
39
|
+
after(:all) do
|
40
|
+
FileUtils.rm(@path)
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'ronin/generators/exploits/ftp'
|
2
|
+
require 'ronin/exploits/ftp'
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
require 'generators/exploits/exploit_examples'
|
6
|
+
|
7
|
+
require 'tmpdir'
|
8
|
+
require 'fileutils'
|
9
|
+
|
10
|
+
describe Generators::Exploits::FTP do
|
11
|
+
before(:all) do
|
12
|
+
@path = File.join(Dir.tmpdir,'generated_exploit.rb')
|
13
|
+
|
14
|
+
Generators::Exploits::FTP.generate(
|
15
|
+
{
|
16
|
+
:helpers => ['buffer_overflow'],
|
17
|
+
:controls => ['code_exec']
|
18
|
+
},
|
19
|
+
[@path]
|
20
|
+
)
|
21
|
+
|
22
|
+
@exploit = Exploits::FTP.load_from(@path)
|
23
|
+
end
|
24
|
+
|
25
|
+
it_should_behave_like "an Exploit"
|
26
|
+
|
27
|
+
it "should define a FTP exploit" do
|
28
|
+
@exploit.class.should == Exploits::FTP
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should define helpers to load" do
|
32
|
+
@exploit.kind_of?(Exploits::Helpers::BufferOverflow).should == true
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should define controlled behaviors" do
|
36
|
+
@exploit.behaviors.should == [:code_exec]
|
37
|
+
end
|
38
|
+
|
39
|
+
after(:all) do
|
40
|
+
FileUtils.rm(@path)
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'ronin/generators/exploits/http'
|
2
|
+
require 'ronin/exploits/http'
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
require 'generators/exploits/exploit_examples'
|
6
|
+
|
7
|
+
require 'tmpdir'
|
8
|
+
require 'fileutils'
|
9
|
+
|
10
|
+
describe Generators::Exploits::HTTP do
|
11
|
+
before(:all) do
|
12
|
+
@path = File.join(Dir.tmpdir,'generated_exploit.rb')
|
13
|
+
|
14
|
+
Generators::Exploits::HTTP.generate(
|
15
|
+
{
|
16
|
+
:helpers => ['buffer_overflow'],
|
17
|
+
:controls => ['code_exec']
|
18
|
+
},
|
19
|
+
[@path]
|
20
|
+
)
|
21
|
+
|
22
|
+
@exploit = Exploits::HTTP.load_from(@path)
|
23
|
+
end
|
24
|
+
|
25
|
+
it_should_behave_like "an Exploit"
|
26
|
+
|
27
|
+
it "should define a HTTP exploit" do
|
28
|
+
@exploit.class.should == Exploits::HTTP
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should define helpers to load" do
|
32
|
+
@exploit.kind_of?(Exploits::Helpers::BufferOverflow).should == true
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should define controlled behaviors" do
|
36
|
+
@exploit.behaviors.should == [:code_exec]
|
37
|
+
end
|
38
|
+
|
39
|
+
after(:all) do
|
40
|
+
FileUtils.rm(@path)
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'ronin/generators/exploits/local'
|
2
|
+
require 'ronin/exploits/local'
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
require 'generators/exploits/exploit_examples'
|
6
|
+
|
7
|
+
require 'tmpdir'
|
8
|
+
require 'fileutils'
|
9
|
+
|
10
|
+
describe Generators::Exploits::Local do
|
11
|
+
before(:all) do
|
12
|
+
@path = File.join(Dir.tmpdir,'generated_exploit.rb')
|
13
|
+
|
14
|
+
Generators::Exploits::Local.generate(
|
15
|
+
{
|
16
|
+
:helpers => ['buffer_overflow'],
|
17
|
+
:controls => ['code_exec']
|
18
|
+
},
|
19
|
+
[@path]
|
20
|
+
)
|
21
|
+
|
22
|
+
@exploit = Exploits::Local.load_from(@path)
|
23
|
+
end
|
24
|
+
|
25
|
+
it_should_behave_like "an Exploit"
|
26
|
+
|
27
|
+
it "should define a Local exploit" do
|
28
|
+
@exploit.class.should == Exploits::Local
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should define helpers to load" do
|
32
|
+
@exploit.kind_of?(Exploits::Helpers::BufferOverflow).should == true
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should define controlled behaviors" do
|
36
|
+
@exploit.behaviors.should == [:code_exec]
|
37
|
+
end
|
38
|
+
|
39
|
+
after(:all) do
|
40
|
+
FileUtils.rm(@path)
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'ronin/generators/exploits/remote'
|
2
|
+
require 'ronin/exploits/remote'
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
require 'generators/exploits/exploit_examples'
|
6
|
+
|
7
|
+
require 'tmpdir'
|
8
|
+
require 'fileutils'
|
9
|
+
|
10
|
+
describe Generators::Exploits::Remote do
|
11
|
+
before(:all) do
|
12
|
+
@path = File.join(Dir.tmpdir,'generated_exploit.rb')
|
13
|
+
|
14
|
+
Generators::Exploits::Remote.generate(
|
15
|
+
{
|
16
|
+
:helpers => ['buffer_overflow'],
|
17
|
+
:controls => ['code_exec']
|
18
|
+
},
|
19
|
+
[@path]
|
20
|
+
)
|
21
|
+
|
22
|
+
@exploit = Exploits::Remote.load_from(@path)
|
23
|
+
end
|
24
|
+
|
25
|
+
it_should_behave_like "an Exploit"
|
26
|
+
|
27
|
+
it "should define a Remote exploit" do
|
28
|
+
@exploit.class.should == Exploits::Remote
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should define helpers to load" do
|
32
|
+
@exploit.kind_of?(Exploits::Helpers::BufferOverflow).should == true
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should define controlled behaviors" do
|
36
|
+
@exploit.behaviors.should == [:code_exec]
|
37
|
+
end
|
38
|
+
|
39
|
+
after(:all) do
|
40
|
+
FileUtils.rm(@path)
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'ronin/generators/exploits/remote_tcp'
|
2
|
+
require 'ronin/exploits/remote_tcp'
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
require 'generators/exploits/exploit_examples'
|
6
|
+
|
7
|
+
require 'tmpdir'
|
8
|
+
require 'fileutils'
|
9
|
+
|
10
|
+
describe Generators::Exploits::RemoteTCP do
|
11
|
+
before(:all) do
|
12
|
+
@path = File.join(Dir.tmpdir,'generated_exploit.rb')
|
13
|
+
|
14
|
+
Generators::Exploits::RemoteTCP.generate(
|
15
|
+
{
|
16
|
+
:helpers => ['buffer_overflow'],
|
17
|
+
:controls => ['code_exec'],
|
18
|
+
:default_port => 22
|
19
|
+
},
|
20
|
+
[@path]
|
21
|
+
)
|
22
|
+
|
23
|
+
@exploit = Exploits::RemoteTCP.load_from(@path)
|
24
|
+
end
|
25
|
+
|
26
|
+
it_should_behave_like "an Exploit"
|
27
|
+
|
28
|
+
it "should define a RemoteTCP exploit" do
|
29
|
+
@exploit.class.should == Exploits::RemoteTCP
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should define helpers to load" do
|
33
|
+
@exploit.kind_of?(Exploits::Helpers::BufferOverflow).should == true
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should define controlled behaviors" do
|
37
|
+
@exploit.behaviors.should == [:code_exec]
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should set the default_port property" do
|
41
|
+
@exploit.default_port.should == 22
|
42
|
+
end
|
43
|
+
|
44
|
+
after(:all) do
|
45
|
+
FileUtils.rm(@path)
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'ronin/generators/exploits/remote_udp'
|
2
|
+
require 'ronin/exploits/remote_udp'
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
require 'generators/exploits/exploit_examples'
|
6
|
+
|
7
|
+
require 'tmpdir'
|
8
|
+
require 'fileutils'
|
9
|
+
|
10
|
+
describe Generators::Exploits::RemoteUDP do
|
11
|
+
before(:all) do
|
12
|
+
@path = File.join(Dir.tmpdir,'generated_exploit.rb')
|
13
|
+
|
14
|
+
Generators::Exploits::RemoteUDP.generate(
|
15
|
+
{
|
16
|
+
:helpers => ['buffer_overflow'],
|
17
|
+
:controls => ['code_exec'],
|
18
|
+
:default_port => 22
|
19
|
+
},
|
20
|
+
[@path]
|
21
|
+
)
|
22
|
+
|
23
|
+
@exploit = Exploits::RemoteUDP.load_from(@path)
|
24
|
+
end
|
25
|
+
|
26
|
+
it_should_behave_like "an Exploit"
|
27
|
+
|
28
|
+
it "should define a RemoteUDP exploit" do
|
29
|
+
@exploit.class.should == Exploits::RemoteUDP
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should define helpers to load" do
|
33
|
+
@exploit.kind_of?(Exploits::Helpers::BufferOverflow).should == true
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should define controlled behaviors" do
|
37
|
+
@exploit.behaviors.should == [:code_exec]
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should set the default_port property" do
|
41
|
+
@exploit.default_port.should == 22
|
42
|
+
end
|
43
|
+
|
44
|
+
after(:all) do
|
45
|
+
FileUtils.rm(@path)
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'ronin/generators/exploits/web'
|
2
|
+
require 'ronin/exploits/web'
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
require 'generators/exploits/exploit_examples'
|
6
|
+
|
7
|
+
require 'tmpdir'
|
8
|
+
require 'fileutils'
|
9
|
+
|
10
|
+
describe Generators::Exploits::Web do
|
11
|
+
before(:all) do
|
12
|
+
@path = File.join(Dir.tmpdir,'generated_exploit.rb')
|
13
|
+
|
14
|
+
Generators::Exploits::Web.generate(
|
15
|
+
{
|
16
|
+
:helpers => ['buffer_overflow'],
|
17
|
+
:controls => ['code_exec'],
|
18
|
+
:url_path => '/some/path',
|
19
|
+
:url_query => 'var=1'
|
20
|
+
},
|
21
|
+
[@path]
|
22
|
+
)
|
23
|
+
|
24
|
+
@exploit = Exploits::Web.load_from(@path)
|
25
|
+
end
|
26
|
+
|
27
|
+
it_should_behave_like "an Exploit"
|
28
|
+
|
29
|
+
it "should define a Web exploit" do
|
30
|
+
@exploit.class.should == Exploits::Web
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should define helpers to load" do
|
34
|
+
@exploit.kind_of?(Exploits::Helpers::BufferOverflow).should == true
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should define controlled behaviors" do
|
38
|
+
@exploit.behaviors.should == [:code_exec]
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should set the url_path property" do
|
42
|
+
@exploit.url_path.should == '/some/path'
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should set the url_query property" do
|
46
|
+
@exploit.url_query.should == 'var=1'
|
47
|
+
end
|
48
|
+
|
49
|
+
after(:all) do
|
50
|
+
FileUtils.rm(@path)
|
51
|
+
end
|
52
|
+
end
|