ronin-exploits 0.1.1 → 0.2.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.
- data/History.txt +80 -2
- data/Manifest.txt +63 -16
- data/README.txt +89 -2
- data/Rakefile +1 -1
- data/TODO.txt +1 -1
- data/bin/ronin-exploits +12 -0
- data/bin/ronin-payload +12 -0
- data/bin/ronin-payloads +12 -0
- data/lib/ronin/exploits.rb +13 -10
- data/lib/ronin/exploits/{impact.rb → allow.rb} +9 -4
- data/lib/ronin/exploits/exceptions.rb +3 -0
- data/lib/ronin/exploits/exceptions/target_data_missing.rb +29 -0
- data/lib/ronin/exploits/exceptions/target_unspecified.rb +29 -0
- data/lib/ronin/exploits/exceptions/unknown_helper.rb +29 -0
- data/lib/ronin/exploits/exploit.rb +330 -77
- data/lib/ronin/exploits/{format_string_target.rb → ftp.rb} +5 -11
- data/lib/ronin/exploits/helpers.rb +27 -0
- data/lib/ronin/exploits/helpers/binary.rb +44 -0
- data/lib/ronin/exploits/helpers/buffer_overflow.rb +102 -0
- data/lib/ronin/exploits/helpers/format_string.rb +107 -0
- data/lib/ronin/exploits/helpers/padding.rb +84 -0
- data/lib/ronin/exploits/http.rb +37 -0
- data/lib/ronin/exploits/{requirement.rb → local.rb} +2 -14
- data/lib/ronin/exploits/remote.rb +34 -0
- data/lib/ronin/exploits/remote_tcp.rb +70 -0
- data/lib/ronin/exploits/remote_udp.rb +70 -0
- data/lib/ronin/exploits/target.rb +134 -0
- data/lib/ronin/exploits/targets.rb +29 -0
- data/lib/ronin/exploits/{buffer_overflow_target.rb → targets/buffer_overflow.rb} +13 -11
- data/lib/ronin/exploits/{exploit_target.rb → targets/format_string.rb} +11 -14
- data/lib/ronin/exploits/version.rb +1 -1
- data/lib/ronin/exploits/{web_exploit.rb → web.rb} +3 -3
- data/lib/ronin/model/targets_arch.rb +59 -0
- data/lib/ronin/model/targets_os.rb +59 -0
- data/lib/ronin/payloads.rb +7 -3
- data/lib/ronin/payloads/binary_payload.rb +3 -7
- data/lib/ronin/payloads/{ability.rb → control.rb} +7 -2
- data/lib/ronin/payloads/encoder.rb +78 -0
- data/lib/ronin/payloads/encoders.rb +33 -0
- data/lib/ronin/payloads/encoders/xor.rb +81 -0
- data/lib/ronin/payloads/exceptions.rb +24 -0
- data/lib/ronin/payloads/exceptions/unknown_helper.rb +29 -0
- data/lib/ronin/payloads/helpers.rb +26 -0
- data/lib/ronin/payloads/helpers/exceptions.rb +24 -0
- data/lib/ronin/payloads/helpers/exceptions/program_not_found.rb +31 -0
- data/lib/ronin/payloads/helpers/exceptions/unimplemented.rb +31 -0
- data/lib/ronin/payloads/helpers/file_system.rb +187 -0
- data/lib/ronin/payloads/helpers/rpc.rb +83 -0
- data/lib/ronin/payloads/helpers/shell.rb +91 -0
- data/lib/ronin/payloads/nops.rb +32 -0
- data/lib/ronin/payloads/payload.rb +90 -53
- data/lib/ronin/payloads/shellcode.rb +1 -1
- data/lib/ronin/payloads/web_payload.rb +2 -1
- data/lib/ronin/targeted_arch.rb +38 -0
- data/lib/ronin/targeted_os.rb +38 -0
- data/lib/ronin/targeted_product.rb +34 -0
- data/lib/ronin/ui/command_line/commands/exploits.rb +77 -0
- data/lib/ronin/ui/command_line/commands/payload.rb +106 -0
- data/lib/ronin/ui/command_line/commands/payloads.rb +73 -0
- data/spec/exploits/binary_exploit_spec.rb +44 -0
- data/spec/exploits/buffer_overflow_exploit_spec.rb +70 -0
- data/spec/exploits/exploit_spec.rb +122 -25
- data/spec/exploits/format_string_exploit_spec.rb +32 -0
- data/spec/exploits/ftp_spec.rb +17 -0
- data/spec/exploits/http_spec.rb +17 -0
- data/spec/exploits/padding_exploit_spec.rb +44 -0
- data/spec/exploits/remote_tcp_spec.rb +24 -0
- data/spec/exploits/remote_udp_spec.rb +24 -0
- data/spec/exploits/target_spec.rb +91 -0
- data/spec/exploits/targets/buffer_overflow_spec.rb +18 -0
- data/spec/exploits/{web_exploit_spec.rb → web_spec.rb} +5 -5
- data/spec/helpers/database.rb +5 -0
- data/spec/helpers/objects.rb +22 -0
- data/spec/objects/exploits/test.rb +28 -0
- data/spec/objects/payloads/example.rb +19 -0
- data/spec/objects/payloads/test.rb +11 -0
- data/spec/payloads/encoder_spec.rb +26 -0
- data/spec/payloads/encoders/xor_spec.rb +20 -0
- data/spec/payloads/payload_spec.rb +48 -13
- data/spec/spec_helper.rb +3 -5
- metadata +71 -22
- data/lib/ronin/exploits/binary_exploit.rb +0 -139
- data/lib/ronin/exploits/buffer_overflow.rb +0 -80
- data/lib/ronin/exploits/exploitable.rb +0 -77
- data/lib/ronin/exploits/format_string.rb +0 -88
- data/lib/ronin/models.rb +0 -38
- data/lib/ronin/translators/xor.rb +0 -96
- data/spec/exploits/exploitable_spec.rb +0 -21
- data/spec/translators/xor_spec.rb +0 -26
@@ -21,22 +21,16 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/exploits/
|
24
|
+
require 'ronin/exploits/remote_tcp'
|
25
25
|
|
26
26
|
module Ronin
|
27
27
|
module Exploits
|
28
|
-
class
|
28
|
+
class FTP < RemoteTCP
|
29
29
|
|
30
|
-
|
31
|
-
property :pop_length, Integer, :default => 0
|
30
|
+
contextify :ronin_ftp_exploit
|
32
31
|
|
33
|
-
#
|
34
|
-
property :
|
35
|
-
|
36
|
-
# Overwrite
|
37
|
-
property :overwrite, Integer, :default => 0x0
|
38
|
-
|
39
|
-
belongs_to :format_string
|
32
|
+
# Default port to connect to
|
33
|
+
property :default_port, Integer, :default => 21
|
40
34
|
|
41
35
|
end
|
42
36
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Exploits - A Ruby library for Ronin that provides exploitation and
|
4
|
+
# payload crafting functionality.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2007-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/exploits/helpers/binary'
|
25
|
+
require 'ronin/exploits/helpers/padding'
|
26
|
+
require 'ronin/exploits/helpers/buffer_overflow'
|
27
|
+
require 'ronin/exploits/helpers/format_string'
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Exploits - A Ruby library for Ronin that provides exploitation and
|
4
|
+
# payload crafting functionality.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2007-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/exploits/exceptions/target_data_missing'
|
25
|
+
require 'ronin/formatting/binary'
|
26
|
+
|
27
|
+
module Ronin
|
28
|
+
module Exploits
|
29
|
+
module Helpers
|
30
|
+
module Binary
|
31
|
+
#
|
32
|
+
# Packs the specified _integer_ using the current targeted arch
|
33
|
+
# and the given _address_length_. The _address_length_ will
|
34
|
+
# default to the address length of the currently targeted arch.
|
35
|
+
#
|
36
|
+
def pack(integer,address_length=nil)
|
37
|
+
verify_arch!
|
38
|
+
|
39
|
+
return integer.pack(arch,(address_length || arch.address_length))
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Exploits - A Ruby library for Ronin that provides exploitation and
|
4
|
+
# payload crafting functionality.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2007-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/exploits/exceptions/payload_size'
|
25
|
+
require 'ronin/exploits/targets/buffer_overflow'
|
26
|
+
require 'ronin/exploits/helpers/binary'
|
27
|
+
require 'ronin/exploits/helpers/padding'
|
28
|
+
|
29
|
+
module Ronin
|
30
|
+
module Exploits
|
31
|
+
module Helpers
|
32
|
+
module BufferOverflow
|
33
|
+
def self.included(base)
|
34
|
+
base.module_eval do
|
35
|
+
include Ronin::Exploits::Helpers::Binary
|
36
|
+
include Ronin::Exploits::Helpers::Padding
|
37
|
+
|
38
|
+
has n, :targets,
|
39
|
+
:class_name => 'Ronin::Exploits::Targets::BufferOverflow'
|
40
|
+
|
41
|
+
# The buffer to use for the buffer overflow
|
42
|
+
attr_reader :buffer
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.extended(obj)
|
47
|
+
obj.instance_eval do
|
48
|
+
extend Ronin::Exploits::Helpers::Binary
|
49
|
+
extend Ronin::Exploits::Helpers::Padding
|
50
|
+
|
51
|
+
#
|
52
|
+
# Returns the buffer to use for the buffer overflow.
|
53
|
+
#
|
54
|
+
def buffer
|
55
|
+
@buffer
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
#
|
61
|
+
# Adds a new Targets::BufferOverflow with the given _attributes_
|
62
|
+
# and _block_.
|
63
|
+
#
|
64
|
+
def targeting(attributes={},&block)
|
65
|
+
self.targets << Targets::BufferOverflow.new(attributes,&block)
|
66
|
+
end
|
67
|
+
|
68
|
+
protected
|
69
|
+
|
70
|
+
#
|
71
|
+
# Builds the buffer with the current target and payload to be
|
72
|
+
# used in the buffer overflow exploit.
|
73
|
+
#
|
74
|
+
def build_buffer
|
75
|
+
verify_target!
|
76
|
+
|
77
|
+
if encoded_payload.length > target.buffer_length
|
78
|
+
raise(PayloadSize,"the specified payload is too large for the target's buffer length",caller)
|
79
|
+
end
|
80
|
+
|
81
|
+
buffer = pad(target.buffer_length - encoded_payload.length) + encoded_payload
|
82
|
+
ip_packed = pack(target.ip)
|
83
|
+
|
84
|
+
if target.bp
|
85
|
+
buffer << ((pack(target.bp) + ip_packed) * target.frame_repeat)
|
86
|
+
else
|
87
|
+
buffer << ((ip_packed * 2) * target.frame_repeat)
|
88
|
+
end
|
89
|
+
|
90
|
+
return buffer
|
91
|
+
end
|
92
|
+
|
93
|
+
#
|
94
|
+
# Default builder method which simply calls build_buffer.
|
95
|
+
#
|
96
|
+
def build
|
97
|
+
@buffer = build_buffer
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Exploits - A Ruby library for Ronin that provides exploitation and
|
4
|
+
# payload crafting functionality.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2007-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/exploits/targets/format_string'
|
25
|
+
require 'ronin/exploits/helpers/binary'
|
26
|
+
|
27
|
+
module Ronin
|
28
|
+
module Exploits
|
29
|
+
module Helpers
|
30
|
+
module FormatString
|
31
|
+
def self.included(base)
|
32
|
+
base.module_eval do
|
33
|
+
include Ronin::Exploits::Helpers::Binary
|
34
|
+
|
35
|
+
has n, :targets,
|
36
|
+
:class_name => 'Ronin::Exploits::Targets::FormatString'
|
37
|
+
|
38
|
+
# The built format string
|
39
|
+
attr_reader :format_string
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.extended(obj)
|
44
|
+
obj.instance_eval do
|
45
|
+
extend Ronin::Exploits::Helpers::Binary
|
46
|
+
|
47
|
+
#
|
48
|
+
# Returns the format string of the exploit.
|
49
|
+
#
|
50
|
+
def format_string
|
51
|
+
@format_string
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
#
|
57
|
+
# Adds a new Targets::FormatString with the given _attributes_
|
58
|
+
# and _block_.
|
59
|
+
#
|
60
|
+
def targeting(attributes={},&block)
|
61
|
+
self.targets << Targets::FormatString.new(attributes,&block)
|
62
|
+
end
|
63
|
+
|
64
|
+
protected
|
65
|
+
|
66
|
+
#
|
67
|
+
# Builds a format string using the current target and payload to
|
68
|
+
# be used in the format string exploit.
|
69
|
+
#
|
70
|
+
def build_format_string
|
71
|
+
verify_target!
|
72
|
+
|
73
|
+
buffer = pack(target.overwrite) +
|
74
|
+
pack(target.overwrite + (target.arch.address_length / 2))
|
75
|
+
|
76
|
+
low_mask = 0xff
|
77
|
+
(target.arch.address_length/2).times do
|
78
|
+
low_mask <<= 8
|
79
|
+
low_mask |= 0xff
|
80
|
+
end
|
81
|
+
|
82
|
+
high_mask = low_mask << (target.arch.address_length*4)
|
83
|
+
high = (target.address & high_mask) >> (target.arch.address_length/2)
|
84
|
+
low = target.address & low_mask
|
85
|
+
|
86
|
+
if low < high
|
87
|
+
low -= (target.arch.address_length*2)
|
88
|
+
buffer += format("%%.%ud%%%u$hn%%.%ud%%%u$hn",low,target.pop_length,high-low,target.pop_length+1)
|
89
|
+
else
|
90
|
+
high -= (target.arch.address_length*2)
|
91
|
+
buffer += format("%%.%ud%%%u$hn%%.%ud%%%u$hn",high,target.pop_length+1,low-high,target.pop_length)
|
92
|
+
end
|
93
|
+
|
94
|
+
buffer << encoded_payload
|
95
|
+
return buffer
|
96
|
+
end
|
97
|
+
|
98
|
+
#
|
99
|
+
# The default builder method, simply calls build_format_string.
|
100
|
+
#
|
101
|
+
def build
|
102
|
+
@format_string = build_format_string
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Exploits - A Ruby library for Ronin that provides exploitation and
|
4
|
+
# payload crafting functionality.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2007-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/formatting/text'
|
25
|
+
|
26
|
+
module Ronin
|
27
|
+
module Exploits
|
28
|
+
module Helpers
|
29
|
+
module Padding
|
30
|
+
def self.included(base)
|
31
|
+
base.module_eval do
|
32
|
+
# String to pad extra space with
|
33
|
+
parameter :padding,
|
34
|
+
:default => 'A',
|
35
|
+
:description => 'padding string'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.extended(obj)
|
40
|
+
obj.instance_eval do
|
41
|
+
# String to pad extra space with
|
42
|
+
parameter :padding,
|
43
|
+
:default => 'A',
|
44
|
+
:description => 'padding string'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
protected
|
49
|
+
|
50
|
+
#
|
51
|
+
# Returns padding with the specified _max_length_.
|
52
|
+
#
|
53
|
+
# pad(28)
|
54
|
+
# # => "AAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
55
|
+
#
|
56
|
+
def pad(max_length)
|
57
|
+
''.pad(@padding.to_s,max_length)
|
58
|
+
end
|
59
|
+
|
60
|
+
#
|
61
|
+
# Pads the specified _data_ to the left up to the specified
|
62
|
+
# _max_length_.
|
63
|
+
#
|
64
|
+
# pad_left("\xff\xff",48)
|
65
|
+
# # => "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\xff\xff"
|
66
|
+
#
|
67
|
+
def pad_left(data,max_length)
|
68
|
+
pad(max_length - data.length) + data
|
69
|
+
end
|
70
|
+
|
71
|
+
#
|
72
|
+
# Pads the specified _data_ to the right up to the specified
|
73
|
+
# _max_length_.
|
74
|
+
#
|
75
|
+
# pad_right("\xff\xff",48)
|
76
|
+
# # => "\xff\xffAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
77
|
+
#
|
78
|
+
def pad_right(data,max_length)
|
79
|
+
data.to_s.pad(@padding,max_length)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Exploits - A Ruby library for Ronin that provides exploitation and
|
4
|
+
# payload crafting functionality.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2007-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/exploits/remote_tcp'
|
25
|
+
|
26
|
+
module Ronin
|
27
|
+
module Exploits
|
28
|
+
class HTTP < RemoteTCP
|
29
|
+
|
30
|
+
contextify :ronin_http_exploit
|
31
|
+
|
32
|
+
# Default port to connect to
|
33
|
+
property :default_port, Integer, :default => 80
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -21,25 +21,13 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/vuln/behavior'
|
25
24
|
require 'ronin/exploits/exploit'
|
26
25
|
|
27
|
-
require 'ronin/model'
|
28
|
-
|
29
26
|
module Ronin
|
30
27
|
module Exploits
|
31
|
-
class
|
32
|
-
|
33
|
-
include Model
|
34
|
-
|
35
|
-
# The behavior which is required
|
36
|
-
belongs_to :behavior, :class_name => 'Vuln::Behavior'
|
37
|
-
|
38
|
-
# The exploit which requires the behavior
|
39
|
-
belongs_to :exploit
|
28
|
+
class Local < Exploit
|
40
29
|
|
41
|
-
|
42
|
-
validates_present :behavior_id, :exploit_id
|
30
|
+
contextify :ronin_local_exploit
|
43
31
|
|
44
32
|
end
|
45
33
|
end
|