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.
Files changed (89) hide show
  1. data/History.txt +80 -2
  2. data/Manifest.txt +63 -16
  3. data/README.txt +89 -2
  4. data/Rakefile +1 -1
  5. data/TODO.txt +1 -1
  6. data/bin/ronin-exploits +12 -0
  7. data/bin/ronin-payload +12 -0
  8. data/bin/ronin-payloads +12 -0
  9. data/lib/ronin/exploits.rb +13 -10
  10. data/lib/ronin/exploits/{impact.rb → allow.rb} +9 -4
  11. data/lib/ronin/exploits/exceptions.rb +3 -0
  12. data/lib/ronin/exploits/exceptions/target_data_missing.rb +29 -0
  13. data/lib/ronin/exploits/exceptions/target_unspecified.rb +29 -0
  14. data/lib/ronin/exploits/exceptions/unknown_helper.rb +29 -0
  15. data/lib/ronin/exploits/exploit.rb +330 -77
  16. data/lib/ronin/exploits/{format_string_target.rb → ftp.rb} +5 -11
  17. data/lib/ronin/exploits/helpers.rb +27 -0
  18. data/lib/ronin/exploits/helpers/binary.rb +44 -0
  19. data/lib/ronin/exploits/helpers/buffer_overflow.rb +102 -0
  20. data/lib/ronin/exploits/helpers/format_string.rb +107 -0
  21. data/lib/ronin/exploits/helpers/padding.rb +84 -0
  22. data/lib/ronin/exploits/http.rb +37 -0
  23. data/lib/ronin/exploits/{requirement.rb → local.rb} +2 -14
  24. data/lib/ronin/exploits/remote.rb +34 -0
  25. data/lib/ronin/exploits/remote_tcp.rb +70 -0
  26. data/lib/ronin/exploits/remote_udp.rb +70 -0
  27. data/lib/ronin/exploits/target.rb +134 -0
  28. data/lib/ronin/exploits/targets.rb +29 -0
  29. data/lib/ronin/exploits/{buffer_overflow_target.rb → targets/buffer_overflow.rb} +13 -11
  30. data/lib/ronin/exploits/{exploit_target.rb → targets/format_string.rb} +11 -14
  31. data/lib/ronin/exploits/version.rb +1 -1
  32. data/lib/ronin/exploits/{web_exploit.rb → web.rb} +3 -3
  33. data/lib/ronin/model/targets_arch.rb +59 -0
  34. data/lib/ronin/model/targets_os.rb +59 -0
  35. data/lib/ronin/payloads.rb +7 -3
  36. data/lib/ronin/payloads/binary_payload.rb +3 -7
  37. data/lib/ronin/payloads/{ability.rb → control.rb} +7 -2
  38. data/lib/ronin/payloads/encoder.rb +78 -0
  39. data/lib/ronin/payloads/encoders.rb +33 -0
  40. data/lib/ronin/payloads/encoders/xor.rb +81 -0
  41. data/lib/ronin/payloads/exceptions.rb +24 -0
  42. data/lib/ronin/payloads/exceptions/unknown_helper.rb +29 -0
  43. data/lib/ronin/payloads/helpers.rb +26 -0
  44. data/lib/ronin/payloads/helpers/exceptions.rb +24 -0
  45. data/lib/ronin/payloads/helpers/exceptions/program_not_found.rb +31 -0
  46. data/lib/ronin/payloads/helpers/exceptions/unimplemented.rb +31 -0
  47. data/lib/ronin/payloads/helpers/file_system.rb +187 -0
  48. data/lib/ronin/payloads/helpers/rpc.rb +83 -0
  49. data/lib/ronin/payloads/helpers/shell.rb +91 -0
  50. data/lib/ronin/payloads/nops.rb +32 -0
  51. data/lib/ronin/payloads/payload.rb +90 -53
  52. data/lib/ronin/payloads/shellcode.rb +1 -1
  53. data/lib/ronin/payloads/web_payload.rb +2 -1
  54. data/lib/ronin/targeted_arch.rb +38 -0
  55. data/lib/ronin/targeted_os.rb +38 -0
  56. data/lib/ronin/targeted_product.rb +34 -0
  57. data/lib/ronin/ui/command_line/commands/exploits.rb +77 -0
  58. data/lib/ronin/ui/command_line/commands/payload.rb +106 -0
  59. data/lib/ronin/ui/command_line/commands/payloads.rb +73 -0
  60. data/spec/exploits/binary_exploit_spec.rb +44 -0
  61. data/spec/exploits/buffer_overflow_exploit_spec.rb +70 -0
  62. data/spec/exploits/exploit_spec.rb +122 -25
  63. data/spec/exploits/format_string_exploit_spec.rb +32 -0
  64. data/spec/exploits/ftp_spec.rb +17 -0
  65. data/spec/exploits/http_spec.rb +17 -0
  66. data/spec/exploits/padding_exploit_spec.rb +44 -0
  67. data/spec/exploits/remote_tcp_spec.rb +24 -0
  68. data/spec/exploits/remote_udp_spec.rb +24 -0
  69. data/spec/exploits/target_spec.rb +91 -0
  70. data/spec/exploits/targets/buffer_overflow_spec.rb +18 -0
  71. data/spec/exploits/{web_exploit_spec.rb → web_spec.rb} +5 -5
  72. data/spec/helpers/database.rb +5 -0
  73. data/spec/helpers/objects.rb +22 -0
  74. data/spec/objects/exploits/test.rb +28 -0
  75. data/spec/objects/payloads/example.rb +19 -0
  76. data/spec/objects/payloads/test.rb +11 -0
  77. data/spec/payloads/encoder_spec.rb +26 -0
  78. data/spec/payloads/encoders/xor_spec.rb +20 -0
  79. data/spec/payloads/payload_spec.rb +48 -13
  80. data/spec/spec_helper.rb +3 -5
  81. metadata +71 -22
  82. data/lib/ronin/exploits/binary_exploit.rb +0 -139
  83. data/lib/ronin/exploits/buffer_overflow.rb +0 -80
  84. data/lib/ronin/exploits/exploitable.rb +0 -77
  85. data/lib/ronin/exploits/format_string.rb +0 -88
  86. data/lib/ronin/models.rb +0 -38
  87. data/lib/ronin/translators/xor.rb +0 -96
  88. data/spec/exploits/exploitable_spec.rb +0 -21
  89. data/spec/translators/xor_spec.rb +0 -26
@@ -1,4 +1,82 @@
1
- == 0.1.1 / 2009-01-22
1
+ === 0.2.0 / 2009-04-11
2
+
3
+ * Added Ronin::TargetedArch.
4
+ * Added Ronin::TargetedOS.
5
+ * Added Ronin::TargetedProduct.
6
+ * Added Ronin::Model::TargetsArch.
7
+ * Added Ronin::Model::TargetsOS.
8
+ * Refactored Ronin::Exploits:
9
+ * Added Ronin::Exploits::Target.
10
+ * Added Ronin::Exploits::Targets::BufferOverflow.
11
+ * Added Ronin::Exploits::Targets::FormatString.
12
+ * Added Ronin::Exploits::Helpers::Binary.
13
+ * Added Ronin::Exploits::Helpers::Padding.
14
+ * Added Ronin::Exploits::Helpers::BufferOverflow.
15
+ * Added Ronin::Exploits::Helpers::FormatString.
16
+ * Added Ronin::Exploits::Local.
17
+ * Added Ronin::Exploits::Remote.
18
+ * Added Ronin::Exploits::RemoteTCP.
19
+ * Added Ronin::Exploits::RemoteUDP.
20
+ * Added Ronin::Exploits::FTP.
21
+ * Added Ronin::Exploits::HTTP.
22
+ * Renamed Ronin::Exploits::Impact to Ronin::Exploits::Allow.
23
+ * Removed the Ronin::Exploits::Requirement.
24
+ * Rewrote Ronin::Exploits::Exploit:
25
+ * Use the new Ronin::Cacheable module.
26
+ * Added a status property, which may be either <tt>:potential</tt>,
27
+ <tt>:proven</tt>, <tt>:weaponized</tt>, but will default to
28
+ <tt>:potential</tt>.
29
+ * Added a disclosure property, which can be a combination of
30
+ <tt>:private</tt>, <tt>:in_wild</tt>, <tt>:vendor_aware</tt>
31
+ or <tt>:public</tt>.
32
+ * Added Exploit#helper, which will extend the Exploit object with the
33
+ Helper module with the similar name.
34
+ * Added the Exploit#build!, Exploit#verify!, Exploit#deploy!
35
+ methods, which will call the user-defined Exploit#build,
36
+ Exploit#verify, Exploit#deploy methods, respectively.
37
+ * Added Exploit#targeting.
38
+ * Added Exploit#behaviors.
39
+ * Added Exploit#targeted_archs, Exploit#targeted_oses,
40
+ Exploit#targeted_products.
41
+ * Added Exploit#select_target.
42
+ * Added the Exploit#target which will return the current selected
43
+ target, or the first target of the exploit.
44
+ * Added the Exploit#arch, Exploit#os and Exploit#product methods.
45
+ * Added the Exploit#verify_target!, Exploit#verify_arch!,
46
+ Exploit#verify_os! and Exploit#verify_product! methods.
47
+ * Added Exploit#encoded_payload.
48
+ * Added Exploit#encode_payload!.
49
+ * Have Exploit#verify_restricted! raise an exception listing all
50
+ restricted characters found in the given text.
51
+ * Renamed Exploit#allows to Exploit#allowing.
52
+ * Renamed Exploit#verify_restricted to Exploit#verify_restricted!.
53
+ * Renamed Exploit#exploit to Exploit#exploit!.
54
+ * Removed Exploit#payloads.
55
+ * Removed Exploit#vulnerable?.
56
+ * Refactored Ronin::Payloads:
57
+ * Added Ronin::Payloads::Helpers::FileSystem.
58
+ * Added Ronin::Payloads::Helpers::RPC.
59
+ * Added Ronin::Payloads::Helpers::Shell.
60
+ * Added Ronin::Payloads::Nops.
61
+ * Added Ronin::Payloads::Encoder.
62
+ * Added Ronin::Payloads::Encoders::XOR.
63
+ * Renamed Ronin::Payloads::Ability to Ronin::Payloads::Control.
64
+ * Rewrote Ronin::Payloads::Payload:
65
+ * Use the new Ronin::Cacheable module.
66
+ * Use Ronin::Model::TargetsArch.
67
+ * Use Ronin::Model::TargetsOS.
68
+ * Added Payload#helper, which will extend the Payload object with the
69
+ Helper module with the similar name.
70
+ * Added Payload#behaviors.
71
+ * Added Payload#build!, Payload#verify!, Payload#deploy!, which will
72
+ call the user-defined Payload#build, Payload#verify, Payload#deploy
73
+ methods, respectively.
74
+ * Rewrote Payload#to_s to return the name and version of the payload.
75
+ * Renamed Payload#controls to Payload#controlling.
76
+ * Removed encoders from the Payload class.
77
+ * Added specs.
78
+
79
+ === 0.1.1 / 2009-01-22
2
80
 
3
81
  * Removed old references to the <tt>ronin/vulnerability</tt> directory.
4
82
  * Removed old references to the Ronin::Vulnerability namespace.
@@ -9,7 +87,7 @@
9
87
  * Reduce usage of first_or_create.
10
88
  * Updated target methods.
11
89
 
12
- == 0.1.0 / 2008-01-08
90
+ === 0.1.0 / 2008-01-08
13
91
 
14
92
  * Initial release.
15
93
  * Supports many basic exploit types:
@@ -4,40 +4,87 @@ Manifest.txt
4
4
  README.txt
5
5
  Rakefile
6
6
  TODO.txt
7
+ bin/ronin-payload
8
+ bin/ronin-payloads
9
+ bin/ronin-exploits
10
+ lib/ronin/targeted_arch.rb
11
+ lib/ronin/targeted_os.rb
12
+ lib/ronin/targeted_product.rb
13
+ lib/ronin/model/targets_arch.rb
14
+ lib/ronin/model/targets_os.rb
7
15
  lib/ronin/vuln/behavior.rb
8
16
  lib/ronin/exploits.rb
9
17
  lib/ronin/exploits/exceptions.rb
18
+ lib/ronin/exploits/exceptions/unknown_helper.rb
19
+ lib/ronin/exploits/exceptions/target_unspecified.rb
20
+ lib/ronin/exploits/exceptions/target_data_missing.rb
10
21
  lib/ronin/exploits/exceptions/exploit_not_built.rb
11
22
  lib/ronin/exploits/exceptions/restricted_char.rb
12
23
  lib/ronin/exploits/exceptions/payload_size.rb
13
- lib/ronin/exploits/exploitable.rb
14
- lib/ronin/exploits/requirement.rb
15
- lib/ronin/exploits/impact.rb
24
+ lib/ronin/exploits/helpers.rb
25
+ lib/ronin/exploits/helpers/binary.rb
26
+ lib/ronin/exploits/helpers/padding.rb
27
+ lib/ronin/exploits/helpers/buffer_overflow.rb
28
+ lib/ronin/exploits/helpers/format_string.rb
29
+ lib/ronin/exploits/targets.rb
30
+ lib/ronin/exploits/targets/buffer_overflow.rb
31
+ lib/ronin/exploits/targets/format_string.rb
32
+ lib/ronin/exploits/allow.rb
33
+ lib/ronin/exploits/target.rb
16
34
  lib/ronin/exploits/exploit.rb
17
35
  lib/ronin/exploits/exploit_author.rb
18
- lib/ronin/exploits/exploit_target.rb
19
- lib/ronin/exploits/binary_exploit.rb
20
- lib/ronin/exploits/buffer_overflow.rb
21
- lib/ronin/exploits/buffer_overflow_target.rb
22
- lib/ronin/exploits/format_string.rb
23
- lib/ronin/exploits/format_string_target.rb
24
- lib/ronin/exploits/web_exploit.rb
36
+ lib/ronin/exploits/remote.rb
37
+ lib/ronin/exploits/local.rb
38
+ lib/ronin/exploits/remote_tcp.rb
39
+ lib/ronin/exploits/remote_udp.rb
40
+ lib/ronin/exploits/ftp.rb
41
+ lib/ronin/exploits/http.rb
42
+ lib/ronin/exploits/web.rb
25
43
  lib/ronin/exploits/version.rb
26
- lib/ronin/models.rb
27
44
  lib/ronin/payloads.rb
28
- lib/ronin/payloads/ability.rb
45
+ lib/ronin/payloads/exceptions.rb
46
+ lib/ronin/payloads/exceptions/unknown_helper.rb
47
+ lib/ronin/payloads/encoder.rb
48
+ lib/ronin/payloads/encoders.rb
49
+ lib/ronin/payloads/encoders/xor.rb
50
+ lib/ronin/payloads/helpers.rb
51
+ lib/ronin/payloads/helpers/exceptions.rb
52
+ lib/ronin/payloads/helpers/exceptions/unimplemented.rb
53
+ lib/ronin/payloads/helpers/exceptions/program_not_found.rb
54
+ lib/ronin/payloads/helpers/file_system.rb
55
+ lib/ronin/payloads/helpers/shell.rb
56
+ lib/ronin/payloads/helpers/rpc.rb
57
+ lib/ronin/payloads/control.rb
29
58
  lib/ronin/payloads/payload_author.rb
30
59
  lib/ronin/payloads/payload.rb
31
60
  lib/ronin/payloads/binary_payload.rb
61
+ lib/ronin/payloads/nops.rb
32
62
  lib/ronin/payloads/shellcode.rb
33
63
  lib/ronin/payloads/web_payload.rb
34
- lib/ronin/translators/xor.rb
64
+ lib/ronin/ui/command_line/commands/payload.rb
65
+ lib/ronin/ui/command_line/commands/payloads.rb
66
+ lib/ronin/ui/command_line/commands/exploits.rb
35
67
  tasks/spec.rb
36
68
  spec/spec_helper.rb
69
+ spec/helpers/database.rb
70
+ spec/helpers/objects.rb
71
+ spec/objects/exploits/test.rb
72
+ spec/objects/payloads/test.rb
73
+ spec/objects/payloads/example.rb
37
74
  spec/exploits_spec.rb
38
75
  spec/vuln/behavior_spec.rb
39
- spec/exploits/exploitable_spec.rb
76
+ spec/exploits/targets/buffer_overflow_spec.rb
77
+ spec/exploits/target_spec.rb
40
78
  spec/exploits/exploit_spec.rb
41
- spec/exploits/web_exploit_spec.rb
79
+ spec/exploits/remote_tcp_spec.rb
80
+ spec/exploits/remote_udp_spec.rb
81
+ spec/exploits/ftp_spec.rb
82
+ spec/exploits/http_spec.rb
83
+ spec/exploits/web_spec.rb
84
+ spec/exploits/binary_exploit_spec.rb
85
+ spec/exploits/padding_exploit_spec.rb
86
+ spec/exploits/buffer_overflow_exploit_spec.rb
87
+ spec/exploits/format_string_exploit_spec.rb
88
+ spec/payloads/encoder_spec.rb
89
+ spec/payloads/encoders/xor_spec.rb
42
90
  spec/payloads/payload_spec.rb
43
- spec/translators/xor_spec.rb
data/README.txt CHANGED
@@ -1,4 +1,4 @@
1
- = Ronin
1
+ = Ronin Exploits
2
2
 
3
3
  * http://ronin.rubyforge.org/exploits/
4
4
  * http://github.com/postmodern/ronin-exploits
@@ -39,14 +39,101 @@ of Ronin.
39
39
 
40
40
  == FEATURES:
41
41
 
42
+ * Ability to define payloads based on:
43
+ * Contributing authors.
44
+ * Behaviors they control.
45
+ * Helpers they use.
46
+ * Ability to define payload encoders:
47
+ * Architectures they target.
48
+ * OSes they target.
49
+ * Ability to define exploits based on:
50
+ * Wether they are local or remote.
51
+ * Protocol they use.
52
+ * Contributing authors.
53
+ * Disclosure status.
54
+ * Level of weaponization.
55
+ * Behaviors the vulnerability allows.
56
+ * Architectures they target.
57
+ * OSes they target.
58
+ * Products they target.
59
+ * Helpers they use.
60
+
42
61
  == REQUIREMENTS:
43
62
 
44
- * ronin >= 0.1.3
63
+ * {ronin}[http://ronin.rubyforge.org/] >= 0.2.3
45
64
 
46
65
  == INSTALL:
47
66
 
48
67
  $ sudo gem install ronin-exploits
49
68
 
69
+ == EXAMPLES:
70
+
71
+ * Define a shellcode payload:
72
+
73
+ ronin_shellcode do
74
+ cache do
75
+ self.name = 'test'
76
+ self.version = '0.5'
77
+
78
+ self.arch :i686
79
+ self.os :name => 'Linux'
80
+ end
81
+
82
+ parameter :exit_status,
83
+ :default => 0,
84
+ :description => 'Exit status of shellcode'
85
+
86
+ def build
87
+ @payload = "\x66\x31\xc0\xfe\xc0"
88
+
89
+ unless @exit_status == 0
90
+ @payload << "\xb3#{@exit_status.chr}\xcd\x80"
91
+ else
92
+ @payload << "\x66\x31\xdb\xcd\x80"
93
+ end
94
+ end
95
+ end
96
+
97
+ * Define a payload encoder:
98
+
99
+ ronin_payload_encoder do
100
+ cache do
101
+ self.name = 'base64_encode'
102
+ self.description = %{Example base64 payload encoder}
103
+
104
+ self.arch :i686
105
+ self.os :name => 'Linux'
106
+ end
107
+
108
+ def call(data)
109
+ return data.to_s.base64_encode
110
+ end
111
+ end
112
+
113
+ * Define a remote TCP exploit:
114
+
115
+ ronin_remote_tcp_exploit do
116
+ helper :buffer_overflow
117
+
118
+ cache do
119
+ self.name = 'test'
120
+
121
+ targeting do |target|
122
+ target.arch :i686
123
+ target.os :name => 'Linux'
124
+ target.product :name => 'ExampleWare', :version => '2.4.7b'
125
+ end
126
+ end
127
+
128
+ def build
129
+ @buffer = "USER #{build_buffer}\n"
130
+ end
131
+
132
+ def deploy
133
+ tcp_send @buffer
134
+ end
135
+ end
136
+
50
137
  == LICENSE:
51
138
 
52
139
  Ronin Exploits - A Ruby library for Ronin that provides exploitation and
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ Hoe.new('ronin-exploits', Ronin::Exploits::VERSION) do |p|
9
9
  p.rubyforge_name = 'ronin'
10
10
  p.developer('Postmodern', 'postmodern.mod3@gmail.com')
11
11
  p.remote_rdoc_dir = 'docs/ronin-exploits'
12
- p.extra_deps = [['ronin', '>=0.1.3']]
12
+ p.extra_deps = [['ronin', '>=0.2.3']]
13
13
  end
14
14
 
15
15
  # vim: syntax=Ruby
data/TODO.txt CHANGED
@@ -5,7 +5,7 @@
5
5
  * Add more dm-scope methods for finding exploits and payloads based:
6
6
  * Target attributes:
7
7
  * Arch (name).
8
- * Platform (os, version).
8
+ * OS (name, version).
9
9
  * Authors
10
10
  * Spec exploit/payload relations and dm-scope methods.
11
11
  * Add methods for chaining exploits.
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+
5
+ lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
6
+ unless $LOAD_PATH.include?(lib_dir)
7
+ $LOAD_PATH << lib_dir
8
+ end
9
+
10
+ require 'ronin/ui/command_line/commands/exploits'
11
+
12
+ Ronin::UI::CommandLine::Commands::Exploits.run(*ARGV)
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+
5
+ lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
6
+ unless $LOAD_PATH.include?(lib_dir)
7
+ $LOAD_PATH << lib_dir
8
+ end
9
+
10
+ require 'ronin/ui/command_line/commands/payload'
11
+
12
+ Ronin::UI::CommandLine::Commands::Payload.run(*ARGV)
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+
5
+ lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
6
+ unless $LOAD_PATH.include?(lib_dir)
7
+ $LOAD_PATH << lib_dir
8
+ end
9
+
10
+ require 'ronin/ui/command_line/commands/payloads'
11
+
12
+ Ronin::UI::CommandLine::Commands::Payloads.run(*ARGV)
@@ -21,19 +21,22 @@
21
21
  #++
22
22
  #
23
23
 
24
- require 'ronin/exploits/requirement'
25
- require 'ronin/exploits/impact'
26
- require 'ronin/exploits/exploit_author'
27
- require 'ronin/exploits/exploit_target'
24
+ require 'ronin/exploits/targets'
28
25
  require 'ronin/exploits/exploit'
29
- require 'ronin/exploits/binary_exploit'
30
- require 'ronin/exploits/buffer_overflow_target'
31
- require 'ronin/exploits/buffer_overflow'
32
- require 'ronin/exploits/format_string_target'
33
- require 'ronin/exploits/format_string'
26
+ require 'ronin/exploits/local'
27
+ require 'ronin/exploits/remote'
28
+ require 'ronin/exploits/remote_tcp'
29
+ require 'ronin/exploits/remote_udp'
30
+ require 'ronin/exploits/ftp'
31
+ require 'ronin/exploits/http'
32
+ require 'ronin/exploits/web'
33
+ require 'ronin/exploits/version'
34
+ require 'ronin/database'
34
35
 
35
36
  require 'reverse_require'
36
37
 
38
+ require_for 'ronin-exploits', 'ronin/exploits'
39
+
37
40
  module Ronin
38
- require_for 'ronin', 'ronin/exploits'
41
+ Database.update!
39
42
  end
@@ -28,14 +28,19 @@ require 'ronin/model'
28
28
 
29
29
  module Ronin
30
30
  module Exploits
31
- class Impact
31
+ class Allow
32
32
 
33
33
  include Model
34
34
 
35
- # The behavior which the impact allows
36
- belongs_to :behavior, :class_name => 'Vuln::Behavior'
35
+ # The primary key of the allowance
36
+ property :id, Serial
37
37
 
38
- # The exploit which facilitates the impact
38
+ # The behavior which is allowed
39
+ belongs_to :behavior,
40
+ :child_key => [:behavior_id],
41
+ :class_name => '::Ronin::Vuln::Behavior'
42
+
43
+ # The exploit which facilitates the behavior
39
44
  belongs_to :exploit
40
45
 
41
46
  # Validates
@@ -21,6 +21,9 @@
21
21
  #++
22
22
  #
23
23
 
24
+ require 'ronin/exploits/exceptions/unknown_helper'
25
+ require 'ronin/exploits/exceptions/target_unspecified'
26
+ require 'ronin/exploits/exceptions/target_data_missing'
24
27
  require 'ronin/exploits/exceptions/exploit_not_built'
25
28
  require 'ronin/exploits/exceptions/restricted_char'
26
29
  require 'ronin/exploits/exceptions/payload_size'
@@ -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 TargetDataMissing < RuntimeError
27
+ end
28
+ end
29
+ end