public
Description: Ronin Exploits is a Ruby library for Ronin that provides exploitation and payload crafting functionality.
Homepage: http://ronin.rubyforge.org/exploits/
Clone URL: git://github.com/postmodern/ronin-exploits.git
ronin-exploits / History.txt
100644 262 lines (249 sloc) 11.547 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
=== 0.3.1 / 2009-10-01
 
* Removed duplicate +default_port+ properties from Ronin::Exploits::FTP
  and Ronin::Exploits::HTTP, which were causing dm-core 0.10.1 to crash.
 
=== 0.3.0 / 2009-09-24
 
* Require ronin >= 0.3.0.
* Require ronin-gen >= 0.2.0.
* Require rspec >= 1.2.8.
* Require yard >= 0.2.3.5.
* Added Ronin::Vuln::Behavior.drop_privileges.
* Added Ronin::Vuln::Behavior.exit_program.
* Added Ronin::Vuln::Behavior.crash_program.
* Added Ronin::Controls.
* Added Ronin::Controls::Behaviors.
* Added Ronin::Controls::Helpers.
* Added Ronin::Controls::Helpers::CommandExec.
* Added Ronin::Controls::Helpers::DirCreate.
* Added Ronin::Controls::Helpers::DirListing.
* Added Ronin::Controls::Helpers::DirRemove.
* Added Ronin::Controls::Helpers::FileCtime.
* Added Ronin::Controls::Helpers::FileMtime.
* Added Ronin::Controls::Helpers::FileOwnership.
* Added Ronin::Controls::Helpers::FileRead.
* Added Ronin::Controls::Helpers::FileRemove.
* Added Ronin::Controls::Helpers::FileWrite.
* Added Ronin::Controls::Helpers::MemoryRead.
* Added Ronin::Controls::Helpers::MemoryWrite.
* Added Ronin::Model::TargetsProduct.
* Added Ronin::Exploits::Exploit#target=.
* Added Ronin::Exploits::Exploit#payload=.
* Added Ronin::Exploits::Exploit#raw_payload=.
* Added Ronin::Exploits::Exploit#build_payload!.
* Added Ronin::Payloads::HasPayload.
* Added Ronin::Payloads::Helpers::Chained
* Added Ronin::Generators::Exploits.
* Added Ronin::Generators::Exploits::Exploit.
* Added Ronin::Generators::Exploits::Local.
* Added Ronin::Generators::Exploits::Remote.
* Added Ronin::Generators::Exploits::RemoteTCP.
* Added Ronin::Generators::Exploits::RemoteUDP.
* Added Ronin::Generators::Exploits::FTP.
* Added Ronin::Generators::Exploits::HTTP.
* Added Ronin::Generators::Exploits::Web.
* Added Ronin::Generators::Payloads.
* Added Ronin::Generators::Payloads::Payload.
* Added Ronin::Generators::Payloads::BinaryPayload.
* Added Ronin::Generators::Payloads::Shellcode.
* Added Ronin::Generators::Payloads::Nops.
* Added Ronin::UI::CommandLine::Commands::Exploit.
* Added Ronin::UI::CommandLine::Commands::Exploits.
* Added Ronin::UI::CommandLine::Commands::Payload.
* Added Ronin::UI::CommandLine::Commands::Payloads.
* Added Ronin::UI::CommandLine::Commands::GenExploit.
* Added Ronin::UI::CommandLine::Commands::GenLocalExploit.
* Added Ronin::UI::CommandLine::Commands::GenRemoteExploit.
* Added Ronin::UI::CommandLine::Commands::GenRemoteTcpExploit.
* Added Ronin::UI::CommandLine::Commands::GenRemoteUdpExploit.
* Added Ronin::UI::CommandLine::Commands::GenFtpExploit.
* Added Ronin::UI::CommandLine::Commands::GenHttpExploit.
* Added Ronin::UI::CommandLine::Commands::GenWebExploit.
* Added Ronin::UI::CommandLine::Commands::GenPayload.
* Added Ronin::UI::CommandLine::Commands::GenBinaryPayload.
* Added Ronin::UI::CommandLine::Commands::GenShellcode.
* Added Ronin::UI::CommandLine::Commands::GenNops.
* Added the ronin-exploit script.
* Added the ronin-exploits script.
* Added the ronin-payload script.
* Added the ronin-payloads script.
* Added the ronin-gen-exploit script.
* Added the ronin-gen-local-exploit script.
* Added the ronin-gen-remote-exploit script.
* Added the ronin-gen-remote-tcp-exploit script.
* Added the ronin-gen-remote-udp-exploit script.
* Added the ronin-gen-ftp-exploit script.
* Added the ronin-gen-http-exploit script.
* Added the ronin-gen-payload script.
* Added the ronin-gen-binary-payload script.
* Added the ronin-gen-shellcode script.
* Added the ronin-gen-nops script.
* Renamed Ronin::Vuln::Behavior.priv_escalation to gain_privileges.
* Renamed Ronin::Exploits::Exploit#select_target to use_target!.
* Renamed Ronin::Exploits::Exploit#call to exploit!.
* Renamed Ronin::Exploits::Exploit#encode_with to encode_payload.
* Renamed Ronin::Payloads::Encoder to Ronin::Payloads::Encoders::Encoder.
* Renamed Ronin::Payloads::Encoders::Encoder#call to encode.
* Renamed Ronin::Exploits::Exploit#encoded_payload=.
* Removed Ronin::Payloads::Payload#payload to raw_payload.
* Removed Ronin::Payloads::Payload#call.
* Moved to YARD based documentation.
* Updated the project summary and 3-point description for Ronin Exploits.
* Ronin::Model::TargetsArch now auto-defines a relationship with Arch.
* Ronin::Model::TargetsOS now auto-defines a relationship with OS.
* Ronin::Model::TargetsProduct now auto-defines a relationship with Product.
* Refactored Ronin::Exploits::Exploit.
* Include Ronin::Controls::Behaviors into Ronin::Exploits::Exploit.
* Made Ronin::Exploits::Exploit#to_s more robust.
* Safely load exploit helpers using the new require_within method.
* Allow Ronin::Exploits::Exploit#encode_payload to accept a block, which
  will be used to encode the payload.
* No longer allow the payload to be directly passed to
  Ronin::Exploits::Exploit#build!.
* Allow an index or query to be passed to
  Ronin::Exploits::Exploit#use_target!.
* Have Ronin::Exploits::Exploit#build_payload! only reset @raw_payload
  if a payload is set.
* Make sure Ronin::Exploits::Exploit#encode_payload! cannot set the
  encoded_payload to nil.
* Allow Ronin::Exploits::Exploit#encode_payload! to use either
  Ronin::Payloads::Encoders::Encoder or Proc objects.
* Allow Ronin::Exploits::Exploit#build_payload! to pass options to
  Ronin::Payloads::Payload#build!.
* Allow Ronin::Exploits::Exploit#build! to pass options to
  Ronin::Exploits::Exploit#build_payload!.
* Ronin::Exploits::Exploit#deploy! no longer receives options.
* Allow Ronin::Exploits::Exploit#exploit! to accept a :dry_run option,
  which will cause the exploit to be built but *not* deployed.
* Default the @buffer instance variable to an empty String, in
  Ronin::Exploits::Helpers::BufferOverflow.
* Default the @format_string instance variable to an empty String, in
  Ronin::Exploits::Helpers::FormatString.
* Refactored Ronin::Payloads::Payload.
* Include Ronin::Controls::Behaviors into Ronin::Payloads::Payload.
* Made Ronin::Payloads::Payload#to_s more robust.
* Safely load payload helpers using the new require_within method.
 
=== 0.2.1 / 2009-07-02
 
* Use Hoe >= 2.0.0.
* Require ronin >= 0.2.4.
* Added Ronin::Model::TargetsArch.
* Added Ronin::Model::TargetsOS.
* Added Ronin::Mode::HasDefaultPort.
* Added Exploit#deployed?.
* Added Exploit#inspect.
* Added Exploits::Helpers::FileBased.
* Added Exploits::Web#http_method.
* Added Exploits::Web#targeted_url_path.
* Added Payload#inspect.
* Added Payload#call method.
* Renamed Exploit#exploit to Exploit#call.
* Renamed Payloads::Helpers::Unimplemented to
  Payloads::Helpers::NotImplemented.
* Renamed RPC#call to RPC#call_method.
* Removed Exploit#switch_payload.
* Moved verifier methods into Exploits::Verifiers.
* Allow Exploit#allow to accept multiple behaviors.
* Include UI::Diagnostics into Ronin::Exploits::Exploit.
* Include Sessions::HTTP into Exploits::Web.
* Include UI::Diagnostics into Ronin::Payloads::Payload.
* Allow Payload#controlling to accept multiple behaviors.
* Added more specs.
 
=== 0.2.0 / 2009-04-11
 
* Added Ronin::TargetedArch.
* Added Ronin::TargetedOS.
* Added Ronin::TargetedProduct.
* Added Ronin::Model::TargetsArch.
* Added Ronin::Model::TargetsOS.
* Refactored Ronin::Exploits:
  * Added Ronin::Exploits::Target.
  * Added Ronin::Exploits::Targets::BufferOverflow.
  * Added Ronin::Exploits::Targets::FormatString.
  * Added Ronin::Exploits::Helpers::Binary.
  * Added Ronin::Exploits::Helpers::Padding.
  * Added Ronin::Exploits::Helpers::BufferOverflow.
  * Added Ronin::Exploits::Helpers::FormatString.
  * Added Ronin::Exploits::Local.
  * Added Ronin::Exploits::Remote.
  * Added Ronin::Exploits::RemoteTCP.
  * Added Ronin::Exploits::RemoteUDP.
  * Added Ronin::Exploits::FTP.
  * Added Ronin::Exploits::HTTP.
  * Renamed Ronin::Exploits::Impact to Ronin::Exploits::Allow.
  * Removed the Ronin::Exploits::Requirement.
  * Rewrote Ronin::Exploits::Exploit:
    * Use the new Ronin::Cacheable module.
    * Added a status property, which may be either <tt>:potential</tt>,
      <tt>:proven</tt>, <tt>:weaponized</tt>, but will default to
      <tt>:potential</tt>.
    * Added a disclosure property, which can be a combination of
      <tt>:private</tt>, <tt>:in_wild</tt>, <tt>:vendor_aware</tt>
      or <tt>:public</tt>.
    * Added Exploit#helper, which will extend the Exploit object with the
      Helper module with the similar name.
    * Added the Exploit#build!, Exploit#verify!, Exploit#deploy!
      methods, which will call the user-defined Exploit#build,
      Exploit#verify, Exploit#deploy methods, respectively.
    * Added Exploit#targeting.
    * Added Exploit#behaviors.
    * Added Exploit#targeted_archs, Exploit#targeted_oses,
      Exploit#targeted_products.
    * Added Exploit#select_target.
    * Added the Exploit#target which will return the current selected
      target, or the first target of the exploit.
    * Added the Exploit#arch, Exploit#os and Exploit#product methods.
    * Added the Exploit#verify_target!, Exploit#verify_arch!,
      Exploit#verify_os! and Exploit#verify_product! methods.
    * Added Exploit#encoded_payload.
    * Added Exploit#encode_payload!.
    * Have Exploit#verify_restricted! raise an exception listing all
      restricted characters found in the given text.
    * Renamed Exploit#allows to Exploit#allowing.
    * Renamed Exploit#verify_restricted to Exploit#verify_restricted!.
    * Renamed Exploit#exploit to Exploit#exploit!.
    * Removed Exploit#payloads.
    * Removed Exploit#vulnerable?.
* Refactored Ronin::Payloads:
  * Added Ronin::Payloads::Helpers::FileSystem.
  * Added Ronin::Payloads::Helpers::RPC.
  * Added Ronin::Payloads::Helpers::Shell.
  * Added Ronin::Payloads::Nops.
  * Added Ronin::Payloads::Encoder.
  * Added Ronin::Payloads::Encoders::XOR.
  * Renamed Ronin::Payloads::Ability to Ronin::Payloads::Control.
  * Rewrote Ronin::Payloads::Payload:
    * Use the new Ronin::Cacheable module.
    * Use Ronin::Model::TargetsArch.
    * Use Ronin::Model::TargetsOS.
    * Added Payload#helper, which will extend the Payload object with the
      Helper module with the similar name.
    * Added Payload#behaviors.
    * Added Payload#build!, Payload#verify!, Payload#deploy!, which will
      call the user-defined Payload#build, Payload#verify, Payload#deploy
      methods, respectively.
    * Rewrote Payload#to_s to return the name and version of the payload.
    * Renamed Payload#controls to Payload#controlling.
    * Removed encoders from the Payload class.
* Added specs.
 
=== 0.1.1 / 2009-01-22
 
* Removed old references to the <tt>ronin/vulnerability</tt> directory.
* Removed old references to the Ronin::Vulnerability namespace.
* Removed past usage of the <tt>:value</tt> option with parameters.
  * Parametes now uses the <tt>:default</tt> option, for specifying the
    default value of parameters.
* Added the missing Ronin::Exploits::PayloadSize exception.
* Reduce usage of first_or_create.
* Updated target methods.
 
=== 0.1.0 / 2008-01-08
 
* Initial release.
  * Supports many basic exploit types:
    * Ronin::Exploits::Exploit
    * Ronin::Exploits::BinaryExploit
    * Ronin::Exploits::BufferOverflow
    * Ronin::Exploits::FormatString
    * Ronin::Exploits::WebExploit
  * Supports a few basic payload types:
    * Ronin::Payloads::Payload
    * Ronin::Payloads::BinaryPayload
    * Ronin::Payloads::Shellcode
    * Ronin::Payloads::WebPayload
  * Provides the ability to associate Vulnerability Taxonomy information
    with Exploits and Payloads.
  * Provides a semi-intelligent XOR translator (Ronin::Translators::XOR).