ronin-exploits 0.1.0 → 0.1.1
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 +11 -0
- data/Manifest.txt +1 -0
- data/README.txt +1 -1
- data/TODO.txt +1 -7
- data/lib/ronin/exploits/binary_exploit.rb +10 -4
- data/lib/ronin/exploits/buffer_overflow.rb +7 -3
- data/lib/ronin/exploits/exceptions.rb +1 -0
- data/lib/ronin/exploits/exceptions/payload_size.rb +29 -0
- data/lib/ronin/exploits/exploit.rb +8 -5
- data/lib/ronin/exploits/format_string.rb +9 -5
- data/lib/ronin/exploits/impact.rb +2 -2
- data/lib/ronin/exploits/requirement.rb +2 -2
- data/lib/ronin/exploits/version.rb +1 -1
- data/lib/ronin/payloads/ability.rb +2 -2
- data/lib/ronin/payloads/payload.rb +11 -8
- metadata +4 -3
data/History.txt
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
== 0.1.1 / 2009-01-22
|
2
|
+
|
3
|
+
* Removed old references to the <tt>ronin/vulnerability</tt> directory.
|
4
|
+
* Removed old references to the Ronin::Vulnerability namespace.
|
5
|
+
* Removed past usage of the <tt>:value</tt> option with parameters.
|
6
|
+
* Parametes now uses the <tt>:default</tt> option, for specifying the
|
7
|
+
default value of parameters.
|
8
|
+
* Added the missing Ronin::Exploits::PayloadSize exception.
|
9
|
+
* Reduce usage of first_or_create.
|
10
|
+
* Updated target methods.
|
11
|
+
|
1
12
|
== 0.1.0 / 2008-01-08
|
2
13
|
|
3
14
|
* Initial release.
|
data/Manifest.txt
CHANGED
@@ -9,6 +9,7 @@ lib/ronin/exploits.rb
|
|
9
9
|
lib/ronin/exploits/exceptions.rb
|
10
10
|
lib/ronin/exploits/exceptions/exploit_not_built.rb
|
11
11
|
lib/ronin/exploits/exceptions/restricted_char.rb
|
12
|
+
lib/ronin/exploits/exceptions/payload_size.rb
|
12
13
|
lib/ronin/exploits/exploitable.rb
|
13
14
|
lib/ronin/exploits/requirement.rb
|
14
15
|
lib/ronin/exploits/impact.rb
|
data/README.txt
CHANGED
data/TODO.txt
CHANGED
@@ -1,11 +1,5 @@
|
|
1
1
|
== TODO:
|
2
2
|
|
3
|
-
=== Ronin Exploits 0.1.0:
|
4
|
-
|
5
|
-
* Complete exploit/payload taxonomy code.
|
6
|
-
* Add dm-scope methods for finding exploits based on their taxonomy
|
7
|
-
relations.
|
8
|
-
|
9
3
|
=== Ronin Exploits 0.1.1:
|
10
4
|
|
11
5
|
* Add more dm-scope methods for finding exploits and payloads based:
|
@@ -16,7 +10,7 @@
|
|
16
10
|
* Spec exploit/payload relations and dm-scope methods.
|
17
11
|
* Add methods for chaining exploits.
|
18
12
|
|
19
|
-
=== Ronin Exploits 0.
|
13
|
+
=== Ronin Exploits 0.2.0:
|
20
14
|
|
21
15
|
* Design a basic Vulnerability Scanner class:
|
22
16
|
* Scan networks of hosts.
|
@@ -39,14 +39,16 @@ module Ronin
|
|
39
39
|
|
40
40
|
# Target index to use
|
41
41
|
parameter :target_index,
|
42
|
-
:
|
42
|
+
:default => 0,
|
43
43
|
:description => 'default target index'
|
44
44
|
|
45
45
|
# Custom target to use
|
46
46
|
parameter :custom_target, :description => 'custom target'
|
47
47
|
|
48
48
|
# String to pad extra space with
|
49
|
-
parameter :pad,
|
49
|
+
parameter :pad,
|
50
|
+
:default => 'A',
|
51
|
+
:description => 'padding string'
|
50
52
|
|
51
53
|
# Restricted characters that may not occurr in the built exploit
|
52
54
|
attr_accessor :restricted
|
@@ -65,10 +67,14 @@ module Ronin
|
|
65
67
|
|
66
68
|
#
|
67
69
|
# Adds an ExploitTarget with the given _attributes_. If a _block_ is
|
68
|
-
# given, it will be passed the ExploitTarget
|
70
|
+
# given, it will be passed to the newly created ExploitTarget
|
71
|
+
# object.
|
69
72
|
#
|
70
73
|
def target(attributes={},&block)
|
71
|
-
|
74
|
+
self.targets << ExploitTarget.new(
|
75
|
+
attributes.merge(:exploit => self),
|
76
|
+
&block
|
77
|
+
)
|
72
78
|
end
|
73
79
|
|
74
80
|
#
|
@@ -21,6 +21,7 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
+
require 'ronin/exploits/exceptions/payload_size'
|
24
25
|
require 'ronin/exploits/buffer_overflow_target'
|
25
26
|
require 'ronin/exploits/binary_exploit'
|
26
27
|
|
@@ -37,8 +38,11 @@ module Ronin
|
|
37
38
|
# Adds a new BufferOverflowTarget with the given _attributes_. If a
|
38
39
|
# _block_ is given, it will be passed the BufferOverflowTarget object.
|
39
40
|
#
|
40
|
-
def target(
|
41
|
-
|
41
|
+
def target(attributes={},&block)
|
42
|
+
self.targets << BufferOverflowTarget.new(
|
43
|
+
attributes.merge(:exploit => self),
|
44
|
+
&block
|
45
|
+
)
|
42
46
|
end
|
43
47
|
|
44
48
|
#
|
@@ -68,7 +72,7 @@ module Ronin
|
|
68
72
|
# Default builder method which simply calls build_buffer.
|
69
73
|
#
|
70
74
|
def builder
|
71
|
-
@
|
75
|
+
@exploit = build_buffer
|
72
76
|
end
|
73
77
|
|
74
78
|
end
|
@@ -0,0 +1,29 @@
|
|
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
|
+
module Ronin
|
25
|
+
module Exploits
|
26
|
+
class PayloadSize < RuntimeError
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -24,7 +24,7 @@
|
|
24
24
|
require 'ronin/exploits/requirement'
|
25
25
|
require 'ronin/exploits/impact'
|
26
26
|
require 'ronin/exploits/exploit_author'
|
27
|
-
require 'ronin/
|
27
|
+
require 'ronin/vuln/behavior'
|
28
28
|
require 'ronin/objectify'
|
29
29
|
require 'ronin/has_license'
|
30
30
|
|
@@ -100,15 +100,18 @@ module Ronin
|
|
100
100
|
|
101
101
|
#
|
102
102
|
# Adds an ExploitAuthor with the given _attributes_ to the exploit.
|
103
|
-
# If a _block_ is given, it will be passed the
|
103
|
+
# If a _block_ is given, it will be passed to the newly created
|
104
|
+
# ExploitAuthor object.
|
104
105
|
#
|
105
106
|
def author(attributes={},&block)
|
106
|
-
self.authors << ExploitAuthor.
|
107
|
+
self.authors << ExploitAuthor.new(
|
108
|
+
attributes.merge(:exploit => self),
|
109
|
+
&block
|
110
|
+
)
|
107
111
|
end
|
108
112
|
|
109
113
|
#
|
110
|
-
# Adds a new Requirement for the
|
111
|
-
# _behavior_.
|
114
|
+
# Adds a new Requirement for the specified _behavior_.
|
112
115
|
#
|
113
116
|
def requires(behavior)
|
114
117
|
self.requirements << Requirement.new(
|
@@ -34,11 +34,15 @@ module Ronin
|
|
34
34
|
has n, :targets, :class_name => 'FormatStringTarget'
|
35
35
|
|
36
36
|
#
|
37
|
-
# Adds a new FormatStringTarget with the given
|
38
|
-
# is given, it will be passed the new FormatStringTarget
|
37
|
+
# Adds a new FormatStringTarget with the given _attributes_. If a
|
38
|
+
# _block_ is given, it will be passed the new FormatStringTarget
|
39
|
+
# object.
|
39
40
|
#
|
40
|
-
def target(
|
41
|
-
self.targets << FormatStringTarget.new(
|
41
|
+
def target(attributes={},&block)
|
42
|
+
self.targets << FormatStringTarget.new(
|
43
|
+
attributes.merge(:exploit => self),
|
44
|
+
&block
|
45
|
+
)
|
42
46
|
end
|
43
47
|
|
44
48
|
#
|
@@ -76,7 +80,7 @@ module Ronin
|
|
76
80
|
# The default builder method, simply calls build_format_string.
|
77
81
|
#
|
78
82
|
def builder
|
79
|
-
@
|
83
|
+
@exploit = build_format_string
|
80
84
|
end
|
81
85
|
|
82
86
|
end
|
@@ -21,7 +21,7 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/
|
24
|
+
require 'ronin/vuln/behavior'
|
25
25
|
require 'ronin/exploits/exploit'
|
26
26
|
|
27
27
|
require 'ronin/model'
|
@@ -33,7 +33,7 @@ module Ronin
|
|
33
33
|
include Model
|
34
34
|
|
35
35
|
# The behavior which the impact allows
|
36
|
-
belongs_to :behavior, :class_name => '
|
36
|
+
belongs_to :behavior, :class_name => 'Vuln::Behavior'
|
37
37
|
|
38
38
|
# The exploit which facilitates the impact
|
39
39
|
belongs_to :exploit
|
@@ -21,7 +21,7 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/
|
24
|
+
require 'ronin/vuln/behavior'
|
25
25
|
require 'ronin/exploits/exploit'
|
26
26
|
|
27
27
|
require 'ronin/model'
|
@@ -33,7 +33,7 @@ module Ronin
|
|
33
33
|
include Model
|
34
34
|
|
35
35
|
# The behavior which is required
|
36
|
-
belongs_to :behavior, :class_name => '
|
36
|
+
belongs_to :behavior, :class_name => 'Vuln::Behavior'
|
37
37
|
|
38
38
|
# The exploit which requires the behavior
|
39
39
|
belongs_to :exploit
|
@@ -21,7 +21,7 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/
|
24
|
+
require 'ronin/vuln/behavior'
|
25
25
|
require 'ronin/payloads/payload'
|
26
26
|
|
27
27
|
require 'ronin/model'
|
@@ -33,7 +33,7 @@ module Ronin
|
|
33
33
|
include Model
|
34
34
|
|
35
35
|
# The behavior the ability provides
|
36
|
-
belongs_to :behavior, :class_name => '
|
36
|
+
belongs_to :behavior, :class_name => 'Vuln::Behavior'
|
37
37
|
|
38
38
|
# The payload which has this ability
|
39
39
|
belongs_to :payload
|
@@ -100,23 +100,26 @@ module Ronin
|
|
100
100
|
end
|
101
101
|
|
102
102
|
#
|
103
|
-
# Adds a new Ability to the payload that provides the
|
104
|
-
#
|
103
|
+
# Adds a new Ability to the payload that provides the specified
|
104
|
+
# _behavior_.
|
105
105
|
#
|
106
|
-
def provides(
|
106
|
+
def provides(behavior)
|
107
107
|
self.abilities << Ability.new(
|
108
|
-
:behavior =>
|
109
|
-
:name => name.to_s
|
110
|
-
),
|
108
|
+
:behavior => behavior,
|
111
109
|
:payload => self
|
112
110
|
)
|
113
111
|
end
|
114
112
|
|
115
113
|
#
|
116
|
-
# Adds a new PayloadAuthor with the given _attributes_
|
114
|
+
# Adds a new PayloadAuthor with the given _attributes_. If a _block_
|
115
|
+
# is given, it will be passed to the newly created PayloadAuthor
|
116
|
+
# object.
|
117
117
|
#
|
118
118
|
def author(attributes={},&block)
|
119
|
-
authors << PayloadAuthor.
|
119
|
+
authors << PayloadAuthor.new(
|
120
|
+
attributes.merge(:payload => self),
|
121
|
+
&block
|
122
|
+
)
|
120
123
|
end
|
121
124
|
|
122
125
|
#
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ronin-exploits
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-01-
|
12
|
+
date: 2009-01-22 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.8.
|
33
|
+
version: 1.8.3
|
34
34
|
version:
|
35
35
|
description: Ronin Exploits is a Ruby library for Ronin that provides exploitation and payload crafting functionality. Ronin is a Ruby platform designed for information security and data exploration tasks. Ronin allows for the rapid development and distribution of code over many of the common Source-Code-Management (SCM) systems.
|
36
36
|
email:
|
@@ -57,6 +57,7 @@ files:
|
|
57
57
|
- lib/ronin/exploits/exceptions.rb
|
58
58
|
- lib/ronin/exploits/exceptions/exploit_not_built.rb
|
59
59
|
- lib/ronin/exploits/exceptions/restricted_char.rb
|
60
|
+
- lib/ronin/exploits/exceptions/payload_size.rb
|
60
61
|
- lib/ronin/exploits/exploitable.rb
|
61
62
|
- lib/ronin/exploits/requirement.rb
|
62
63
|
- lib/ronin/exploits/impact.rb
|