ronin-exploits 0.2.1 → 0.3.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.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
data.tar.gz.sig
CHANGED
|
Binary file
|
data/History.txt
CHANGED
|
@@ -1,3 +1,125 @@
|
|
|
1
|
+
=== 0.3.0 / 2009-09-24
|
|
2
|
+
|
|
3
|
+
* Require ronin >= 0.3.0.
|
|
4
|
+
* Require ronin-gen >= 0.2.0.
|
|
5
|
+
* Require rspec >= 1.2.8.
|
|
6
|
+
* Require yard >= 0.2.3.5.
|
|
7
|
+
* Added Ronin::Vuln::Behavior.drop_privileges.
|
|
8
|
+
* Added Ronin::Vuln::Behavior.exit_program.
|
|
9
|
+
* Added Ronin::Vuln::Behavior.crash_program.
|
|
10
|
+
* Added Ronin::Controls.
|
|
11
|
+
* Added Ronin::Controls::Behaviors.
|
|
12
|
+
* Added Ronin::Controls::Helpers.
|
|
13
|
+
* Added Ronin::Controls::Helpers::CommandExec.
|
|
14
|
+
* Added Ronin::Controls::Helpers::DirCreate.
|
|
15
|
+
* Added Ronin::Controls::Helpers::DirListing.
|
|
16
|
+
* Added Ronin::Controls::Helpers::DirRemove.
|
|
17
|
+
* Added Ronin::Controls::Helpers::FileCtime.
|
|
18
|
+
* Added Ronin::Controls::Helpers::FileMtime.
|
|
19
|
+
* Added Ronin::Controls::Helpers::FileOwnership.
|
|
20
|
+
* Added Ronin::Controls::Helpers::FileRead.
|
|
21
|
+
* Added Ronin::Controls::Helpers::FileRemove.
|
|
22
|
+
* Added Ronin::Controls::Helpers::FileWrite.
|
|
23
|
+
* Added Ronin::Controls::Helpers::MemoryRead.
|
|
24
|
+
* Added Ronin::Controls::Helpers::MemoryWrite.
|
|
25
|
+
* Added Ronin::Model::TargetsProduct.
|
|
26
|
+
* Added Ronin::Exploits::Exploit#target=.
|
|
27
|
+
* Added Ronin::Exploits::Exploit#payload=.
|
|
28
|
+
* Added Ronin::Exploits::Exploit#raw_payload=.
|
|
29
|
+
* Added Ronin::Exploits::Exploit#build_payload!.
|
|
30
|
+
* Added Ronin::Payloads::HasPayload.
|
|
31
|
+
* Added Ronin::Payloads::Helpers::Chained
|
|
32
|
+
* Added Ronin::Generators::Exploits.
|
|
33
|
+
* Added Ronin::Generators::Exploits::Exploit.
|
|
34
|
+
* Added Ronin::Generators::Exploits::Local.
|
|
35
|
+
* Added Ronin::Generators::Exploits::Remote.
|
|
36
|
+
* Added Ronin::Generators::Exploits::RemoteTCP.
|
|
37
|
+
* Added Ronin::Generators::Exploits::RemoteUDP.
|
|
38
|
+
* Added Ronin::Generators::Exploits::FTP.
|
|
39
|
+
* Added Ronin::Generators::Exploits::HTTP.
|
|
40
|
+
* Added Ronin::Generators::Exploits::Web.
|
|
41
|
+
* Added Ronin::Generators::Payloads.
|
|
42
|
+
* Added Ronin::Generators::Payloads::Payload.
|
|
43
|
+
* Added Ronin::Generators::Payloads::BinaryPayload.
|
|
44
|
+
* Added Ronin::Generators::Payloads::Shellcode.
|
|
45
|
+
* Added Ronin::Generators::Payloads::Nops.
|
|
46
|
+
* Added Ronin::UI::CommandLine::Commands::Exploit.
|
|
47
|
+
* Added Ronin::UI::CommandLine::Commands::Exploits.
|
|
48
|
+
* Added Ronin::UI::CommandLine::Commands::Payload.
|
|
49
|
+
* Added Ronin::UI::CommandLine::Commands::Payloads.
|
|
50
|
+
* Added Ronin::UI::CommandLine::Commands::GenExploit.
|
|
51
|
+
* Added Ronin::UI::CommandLine::Commands::GenLocalExploit.
|
|
52
|
+
* Added Ronin::UI::CommandLine::Commands::GenRemoteExploit.
|
|
53
|
+
* Added Ronin::UI::CommandLine::Commands::GenRemoteTcpExploit.
|
|
54
|
+
* Added Ronin::UI::CommandLine::Commands::GenRemoteUdpExploit.
|
|
55
|
+
* Added Ronin::UI::CommandLine::Commands::GenFtpExploit.
|
|
56
|
+
* Added Ronin::UI::CommandLine::Commands::GenHttpExploit.
|
|
57
|
+
* Added Ronin::UI::CommandLine::Commands::GenWebExploit.
|
|
58
|
+
* Added Ronin::UI::CommandLine::Commands::GenPayload.
|
|
59
|
+
* Added Ronin::UI::CommandLine::Commands::GenBinaryPayload.
|
|
60
|
+
* Added Ronin::UI::CommandLine::Commands::GenShellcode.
|
|
61
|
+
* Added Ronin::UI::CommandLine::Commands::GenNops.
|
|
62
|
+
* Added the ronin-exploit script.
|
|
63
|
+
* Added the ronin-exploits script.
|
|
64
|
+
* Added the ronin-payload script.
|
|
65
|
+
* Added the ronin-payloads script.
|
|
66
|
+
* Added the ronin-gen-exploit script.
|
|
67
|
+
* Added the ronin-gen-local-exploit script.
|
|
68
|
+
* Added the ronin-gen-remote-exploit script.
|
|
69
|
+
* Added the ronin-gen-remote-tcp-exploit script.
|
|
70
|
+
* Added the ronin-gen-remote-udp-exploit script.
|
|
71
|
+
* Added the ronin-gen-ftp-exploit script.
|
|
72
|
+
* Added the ronin-gen-http-exploit script.
|
|
73
|
+
* Added the ronin-gen-payload script.
|
|
74
|
+
* Added the ronin-gen-binary-payload script.
|
|
75
|
+
* Added the ronin-gen-shellcode script.
|
|
76
|
+
* Added the ronin-gen-nops script.
|
|
77
|
+
* Renamed Ronin::Vuln::Behavior.priv_escalation to gain_privileges.
|
|
78
|
+
* Renamed Ronin::Exploits::Exploit#select_target to use_target!.
|
|
79
|
+
* Renamed Ronin::Exploits::Exploit#call to exploit!.
|
|
80
|
+
* Renamed Ronin::Exploits::Exploit#encode_with to encode_payload.
|
|
81
|
+
* Renamed Ronin::Payloads::Encoder to Ronin::Payloads::Encoders::Encoder.
|
|
82
|
+
* Renamed Ronin::Payloads::Encoders::Encoder#call to encode.
|
|
83
|
+
* Renamed Ronin::Exploits::Exploit#encoded_payload=.
|
|
84
|
+
* Removed Ronin::Payloads::Payload#payload to raw_payload.
|
|
85
|
+
* Removed Ronin::Payloads::Payload#call.
|
|
86
|
+
* Moved to YARD based documentation.
|
|
87
|
+
* Updated the project summary and 3-point description for Ronin Exploits.
|
|
88
|
+
* Ronin::Model::TargetsArch now auto-defines a relationship with Arch.
|
|
89
|
+
* Ronin::Model::TargetsOS now auto-defines a relationship with OS.
|
|
90
|
+
* Ronin::Model::TargetsProduct now auto-defines a relationship with Product.
|
|
91
|
+
* Refactored Ronin::Exploits::Exploit.
|
|
92
|
+
* Include Ronin::Controls::Behaviors into Ronin::Exploits::Exploit.
|
|
93
|
+
* Made Ronin::Exploits::Exploit#to_s more robust.
|
|
94
|
+
* Safely load exploit helpers using the new require_within method.
|
|
95
|
+
* Allow Ronin::Exploits::Exploit#encode_payload to accept a block, which
|
|
96
|
+
will be used to encode the payload.
|
|
97
|
+
* No longer allow the payload to be directly passed to
|
|
98
|
+
Ronin::Exploits::Exploit#build!.
|
|
99
|
+
* Allow an index or query to be passed to
|
|
100
|
+
Ronin::Exploits::Exploit#use_target!.
|
|
101
|
+
* Have Ronin::Exploits::Exploit#build_payload! only reset @raw_payload
|
|
102
|
+
if a payload is set.
|
|
103
|
+
* Make sure Ronin::Exploits::Exploit#encode_payload! cannot set the
|
|
104
|
+
encoded_payload to nil.
|
|
105
|
+
* Allow Ronin::Exploits::Exploit#encode_payload! to use either
|
|
106
|
+
Ronin::Payloads::Encoders::Encoder or Proc objects.
|
|
107
|
+
* Allow Ronin::Exploits::Exploit#build_payload! to pass options to
|
|
108
|
+
Ronin::Payloads::Payload#build!.
|
|
109
|
+
* Allow Ronin::Exploits::Exploit#build! to pass options to
|
|
110
|
+
Ronin::Exploits::Exploit#build_payload!.
|
|
111
|
+
* Ronin::Exploits::Exploit#deploy! no longer receives options.
|
|
112
|
+
* Allow Ronin::Exploits::Exploit#exploit! to accept a :dry_run option,
|
|
113
|
+
which will cause the exploit to be built but *not* deployed.
|
|
114
|
+
* Default the @buffer instance variable to an empty String, in
|
|
115
|
+
Ronin::Exploits::Helpers::BufferOverflow.
|
|
116
|
+
* Default the @format_string instance variable to an empty String, in
|
|
117
|
+
Ronin::Exploits::Helpers::FormatString.
|
|
118
|
+
* Refactored Ronin::Payloads::Payload.
|
|
119
|
+
* Include Ronin::Controls::Behaviors into Ronin::Payloads::Payload.
|
|
120
|
+
* Made Ronin::Payloads::Payload#to_s more robust.
|
|
121
|
+
* Safely load payload helpers using the new require_within method.
|
|
122
|
+
|
|
1
123
|
=== 0.2.1 / 2009-07-02
|
|
2
124
|
|
|
3
125
|
* Use Hoe >= 2.0.0.
|
data/Manifest.txt
CHANGED
|
@@ -3,26 +3,55 @@ COPYING.txt
|
|
|
3
3
|
Manifest.txt
|
|
4
4
|
README.txt
|
|
5
5
|
Rakefile
|
|
6
|
-
TODO.txt
|
|
7
6
|
bin/ronin-payload
|
|
7
|
+
bin/ronin-exploit
|
|
8
8
|
bin/ronin-payloads
|
|
9
9
|
bin/ronin-exploits
|
|
10
|
+
bin/ronin-gen-exploit
|
|
11
|
+
bin/ronin-gen-local-exploit
|
|
12
|
+
bin/ronin-gen-remote-exploit
|
|
13
|
+
bin/ronin-gen-remote-tcp-exploit
|
|
14
|
+
bin/ronin-gen-remote-udp-exploit
|
|
15
|
+
bin/ronin-gen-http-exploit
|
|
16
|
+
bin/ronin-gen-ftp-exploit
|
|
17
|
+
bin/ronin-gen-web-exploit
|
|
18
|
+
bin/ronin-gen-payload
|
|
19
|
+
bin/ronin-gen-binary-payload
|
|
20
|
+
bin/ronin-gen-shellcode
|
|
21
|
+
bin/ronin-gen-nops
|
|
10
22
|
lib/ronin/model/has_default_port.rb
|
|
11
23
|
lib/ronin/model/targets_arch.rb
|
|
12
24
|
lib/ronin/model/targets_os.rb
|
|
25
|
+
lib/ronin/model/targets_product.rb
|
|
13
26
|
lib/ronin/vuln/behavior.rb
|
|
27
|
+
lib/ronin/controls.rb
|
|
28
|
+
lib/ronin/controls/exceptions.rb
|
|
29
|
+
lib/ronin/controls/exceptions/not_implemented.rb
|
|
30
|
+
lib/ronin/controls/exceptions/program_not_found.rb
|
|
31
|
+
lib/ronin/controls/behaviors.rb
|
|
32
|
+
lib/ronin/controls/file_system.rb
|
|
33
|
+
lib/ronin/controls/helpers.rb
|
|
34
|
+
lib/ronin/controls/helpers/memory_read.rb
|
|
35
|
+
lib/ronin/controls/helpers/memory_write.rb
|
|
36
|
+
lib/ronin/controls/helpers/file_read.rb
|
|
37
|
+
lib/ronin/controls/helpers/file_write.rb
|
|
38
|
+
lib/ronin/controls/helpers/file_remove.rb
|
|
39
|
+
lib/ronin/controls/helpers/file_ownership.rb
|
|
40
|
+
lib/ronin/controls/helpers/file_mtime.rb
|
|
41
|
+
lib/ronin/controls/helpers/file_ctime.rb
|
|
42
|
+
lib/ronin/controls/helpers/dir_listing.rb
|
|
43
|
+
lib/ronin/controls/helpers/dir_create.rb
|
|
44
|
+
lib/ronin/controls/helpers/dir_remove.rb
|
|
45
|
+
lib/ronin/controls/helpers/command_exec.rb
|
|
14
46
|
lib/ronin/exploits.rb
|
|
15
47
|
lib/ronin/exploits/exceptions.rb
|
|
48
|
+
lib/ronin/exploits/exceptions/exception.rb
|
|
16
49
|
lib/ronin/exploits/exceptions/unknown_helper.rb
|
|
17
50
|
lib/ronin/exploits/exceptions/target_unspecified.rb
|
|
18
51
|
lib/ronin/exploits/exceptions/target_data_missing.rb
|
|
19
52
|
lib/ronin/exploits/exceptions/exploit_not_built.rb
|
|
20
53
|
lib/ronin/exploits/exceptions/restricted_char.rb
|
|
21
54
|
lib/ronin/exploits/exceptions/payload_size.rb
|
|
22
|
-
lib/ronin/exploits/arch.rb
|
|
23
|
-
lib/ronin/exploits/os.rb
|
|
24
|
-
lib/ronin/exploits/license.rb
|
|
25
|
-
lib/ronin/exploits/product.rb
|
|
26
55
|
lib/ronin/exploits/verifiers.rb
|
|
27
56
|
lib/ronin/exploits/helpers.rb
|
|
28
57
|
lib/ronin/exploits/helpers/file_based.rb
|
|
@@ -33,7 +62,7 @@ lib/ronin/exploits/helpers/format_string.rb
|
|
|
33
62
|
lib/ronin/exploits/targets.rb
|
|
34
63
|
lib/ronin/exploits/targets/buffer_overflow.rb
|
|
35
64
|
lib/ronin/exploits/targets/format_string.rb
|
|
36
|
-
lib/ronin/exploits/
|
|
65
|
+
lib/ronin/exploits/control.rb
|
|
37
66
|
lib/ronin/exploits/target.rb
|
|
38
67
|
lib/ronin/exploits/exploit.rb
|
|
39
68
|
lib/ronin/exploits/exploit_author.rb
|
|
@@ -47,20 +76,16 @@ lib/ronin/exploits/web.rb
|
|
|
47
76
|
lib/ronin/exploits/version.rb
|
|
48
77
|
lib/ronin/payloads.rb
|
|
49
78
|
lib/ronin/payloads/exceptions.rb
|
|
79
|
+
lib/ronin/payloads/exceptions/exception.rb
|
|
50
80
|
lib/ronin/payloads/exceptions/unknown_helper.rb
|
|
51
|
-
lib/ronin/payloads/
|
|
52
|
-
lib/ronin/payloads/arch.rb
|
|
53
|
-
lib/ronin/payloads/os.rb
|
|
54
|
-
lib/ronin/payloads/encoder.rb
|
|
55
|
-
lib/ronin/payloads/encoders.rb
|
|
56
|
-
lib/ronin/payloads/encoders/xor.rb
|
|
81
|
+
lib/ronin/payloads/exceptions/not_implemented.rb
|
|
57
82
|
lib/ronin/payloads/helpers.rb
|
|
58
|
-
lib/ronin/payloads/helpers/
|
|
59
|
-
lib/ronin/payloads/helpers/exceptions/not_implemented.rb
|
|
60
|
-
lib/ronin/payloads/helpers/exceptions/program_not_found.rb
|
|
61
|
-
lib/ronin/payloads/helpers/file_system.rb
|
|
62
|
-
lib/ronin/payloads/helpers/shell.rb
|
|
83
|
+
lib/ronin/payloads/helpers/chained.rb
|
|
63
84
|
lib/ronin/payloads/helpers/rpc.rb
|
|
85
|
+
lib/ronin/payloads/encoders.rb
|
|
86
|
+
lib/ronin/payloads/encoders/encoder.rb
|
|
87
|
+
lib/ronin/payloads/encoders/xor.rb
|
|
88
|
+
lib/ronin/payloads/has_payload.rb
|
|
64
89
|
lib/ronin/payloads/control.rb
|
|
65
90
|
lib/ronin/payloads/payload_author.rb
|
|
66
91
|
lib/ronin/payloads/payload.rb
|
|
@@ -69,25 +94,76 @@ lib/ronin/payloads/asm_payload.rb
|
|
|
69
94
|
lib/ronin/payloads/nops.rb
|
|
70
95
|
lib/ronin/payloads/shellcode.rb
|
|
71
96
|
lib/ronin/payloads/web_payload.rb
|
|
97
|
+
lib/ronin/generators/exploits.rb
|
|
98
|
+
lib/ronin/generators/exploits/exploit.rb
|
|
99
|
+
lib/ronin/generators/exploits/local.rb
|
|
100
|
+
lib/ronin/generators/exploits/remote.rb
|
|
101
|
+
lib/ronin/generators/exploits/remote_tcp.rb
|
|
102
|
+
lib/ronin/generators/exploits/remote_udp.rb
|
|
103
|
+
lib/ronin/generators/exploits/http.rb
|
|
104
|
+
lib/ronin/generators/exploits/ftp.rb
|
|
105
|
+
lib/ronin/generators/exploits/web.rb
|
|
106
|
+
lib/ronin/generators/exploits/static.rb
|
|
107
|
+
lib/ronin/generators/payloads.rb
|
|
108
|
+
lib/ronin/generators/payloads/payload.rb
|
|
109
|
+
lib/ronin/generators/payloads/binary_payload.rb
|
|
110
|
+
lib/ronin/generators/payloads/shellcode.rb
|
|
111
|
+
lib/ronin/generators/payloads/nops.rb
|
|
112
|
+
lib/ronin/generators/payloads/static.rb
|
|
72
113
|
lib/ronin/ui/command_line/commands/payload.rb
|
|
114
|
+
lib/ronin/ui/command_line/commands/exploit.rb
|
|
73
115
|
lib/ronin/ui/command_line/commands/payloads.rb
|
|
74
116
|
lib/ronin/ui/command_line/commands/exploits.rb
|
|
117
|
+
lib/ronin/ui/command_line/commands/gen_exploit.rb
|
|
118
|
+
lib/ronin/ui/command_line/commands/gen_local_exploit.rb
|
|
119
|
+
lib/ronin/ui/command_line/commands/gen_remote_exploit.rb
|
|
120
|
+
lib/ronin/ui/command_line/commands/gen_remote_tcp_exploit.rb
|
|
121
|
+
lib/ronin/ui/command_line/commands/gen_remote_udp_exploit.rb
|
|
122
|
+
lib/ronin/ui/command_line/commands/gen_http_exploit.rb
|
|
123
|
+
lib/ronin/ui/command_line/commands/gen_ftp_exploit.rb
|
|
124
|
+
lib/ronin/ui/command_line/commands/gen_web_exploit.rb
|
|
125
|
+
lib/ronin/ui/command_line/commands/gen_payload.rb
|
|
126
|
+
lib/ronin/ui/command_line/commands/gen_binary_payload.rb
|
|
127
|
+
lib/ronin/ui/command_line/commands/gen_shellcode.rb
|
|
128
|
+
lib/ronin/ui/command_line/commands/gen_nops.rb
|
|
75
129
|
tasks/spec.rb
|
|
130
|
+
tasks/yard.rb
|
|
131
|
+
static/ronin/generators/exploits/_header.erb
|
|
132
|
+
static/ronin/generators/exploits/_helpers.erb
|
|
133
|
+
static/ronin/generators/exploits/_cache.erb
|
|
134
|
+
static/ronin/generators/exploits/exploit.erb
|
|
135
|
+
static/ronin/generators/exploits/local.erb
|
|
136
|
+
static/ronin/generators/exploits/remote.erb
|
|
137
|
+
static/ronin/generators/exploits/remote_tcp.erb
|
|
138
|
+
static/ronin/generators/exploits/remote_udp.erb
|
|
139
|
+
static/ronin/generators/exploits/http.erb
|
|
140
|
+
static/ronin/generators/exploits/ftp.erb
|
|
141
|
+
static/ronin/generators/exploits/web.erb
|
|
142
|
+
static/ronin/generators/payloads/_header.erb
|
|
143
|
+
static/ronin/generators/payloads/_helpers.erb
|
|
144
|
+
static/ronin/generators/payloads/_cache.erb
|
|
145
|
+
static/ronin/generators/payloads/payload.erb
|
|
146
|
+
static/ronin/generators/payloads/binary_payload.erb
|
|
147
|
+
static/ronin/generators/payloads/shellcode.erb
|
|
148
|
+
static/ronin/generators/payloads/nops.erb
|
|
76
149
|
spec/spec_helper.rb
|
|
77
150
|
spec/helpers/database.rb
|
|
78
151
|
spec/helpers/objects.rb
|
|
79
|
-
spec/objects/exploits/
|
|
152
|
+
spec/objects/exploits/simple.rb
|
|
80
153
|
spec/objects/exploits/example.rb
|
|
81
|
-
spec/objects/payloads/
|
|
154
|
+
spec/objects/payloads/simple.rb
|
|
82
155
|
spec/exploits_spec.rb
|
|
83
156
|
spec/model/models/default_port_model.rb
|
|
84
157
|
spec/model/models/non_default_port_model.rb
|
|
85
158
|
spec/model/models/targets_arch_model.rb
|
|
86
159
|
spec/model/models/targets_os_model.rb
|
|
160
|
+
spec/model/models/targets_product_model.rb
|
|
87
161
|
spec/model/has_default_port_spec.rb
|
|
88
162
|
spec/model/targets_arch_spec.rb
|
|
89
163
|
spec/model/targets_os_spec.rb
|
|
164
|
+
spec/model/targets_product_spec.rb
|
|
90
165
|
spec/vuln/behavior_spec.rb
|
|
166
|
+
spec/controls/behaviors_examples.rb
|
|
91
167
|
spec/exploits/targets/buffer_overflow_spec.rb
|
|
92
168
|
spec/exploits/target_spec.rb
|
|
93
169
|
spec/exploits/exploit_spec.rb
|
|
@@ -101,6 +177,20 @@ spec/exploits/binary_exploit_spec.rb
|
|
|
101
177
|
spec/exploits/padding_exploit_spec.rb
|
|
102
178
|
spec/exploits/buffer_overflow_exploit_spec.rb
|
|
103
179
|
spec/exploits/format_string_exploit_spec.rb
|
|
104
|
-
spec/payloads/encoder_spec.rb
|
|
180
|
+
spec/payloads/encoders/encoder_spec.rb
|
|
105
181
|
spec/payloads/encoders/xor_spec.rb
|
|
106
182
|
spec/payloads/payload_spec.rb
|
|
183
|
+
spec/generators/exploits/exploit_examples.rb
|
|
184
|
+
spec/generators/exploits/exploit_spec.rb
|
|
185
|
+
spec/generators/exploits/local_spec.rb
|
|
186
|
+
spec/generators/exploits/remote_spec.rb
|
|
187
|
+
spec/generators/exploits/remote_tcp_spec.rb
|
|
188
|
+
spec/generators/exploits/remote_udp_spec.rb
|
|
189
|
+
spec/generators/exploits/http_spec.rb
|
|
190
|
+
spec/generators/exploits/ftp_spec.rb
|
|
191
|
+
spec/generators/exploits/web_spec.rb
|
|
192
|
+
spec/generators/payloads/payload_examples.rb
|
|
193
|
+
spec/generators/payloads/payload_spec.rb
|
|
194
|
+
spec/generators/payloads/binary_payload_spec.rb
|
|
195
|
+
spec/generators/payloads/shellcode_spec.rb
|
|
196
|
+
spec/generators/payloads/nops_spec.rb
|
data/README.txt
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
* http://ronin.rubyforge.org/exploits/
|
|
4
4
|
* http://github.com/postmodern/ronin-exploits
|
|
5
|
-
* irc.freenode.net
|
|
5
|
+
* irc.freenode.net #ronin
|
|
6
6
|
* Postmodern (postmodern.mod3 at gmail.com)
|
|
7
7
|
|
|
8
8
|
== DESCRIPTION:
|
|
@@ -10,61 +10,131 @@
|
|
|
10
10
|
Ronin Exploits is a Ruby library for Ronin that provides exploitation and
|
|
11
11
|
payload crafting functionality.
|
|
12
12
|
|
|
13
|
-
Ronin is a Ruby platform
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
Ronin is a Ruby platform for exploit development and security research.
|
|
14
|
+
Ronin allows for the rapid development and distribution of code, exploits
|
|
15
|
+
or payloads over many common Source-Code-Management (SCM) systems.
|
|
16
16
|
|
|
17
|
-
===
|
|
17
|
+
=== Ruby
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
commercial software.
|
|
19
|
+
Ronin's Ruby environment allows security researchers to leverage Ruby with
|
|
20
|
+
ease. The Ruby environment contains a multitude of convenience methods
|
|
21
|
+
for working with data in Ruby, a Ruby Object Database, a customized Ruby
|
|
22
|
+
Console and an extendable command-line interface.
|
|
24
23
|
|
|
25
|
-
===
|
|
24
|
+
=== Extend
|
|
26
25
|
|
|
27
|
-
Ronin
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
Ronin's more specialized features are provided by additional Ronin
|
|
27
|
+
libraries, which users can choose to install. These libraries can allow
|
|
28
|
+
one to write and run Exploits and Payloads, scan for PHP vulnerabilities,
|
|
29
|
+
perform Google Dorks or run 3rd party scanners.
|
|
30
30
|
|
|
31
|
-
===
|
|
31
|
+
=== Publish
|
|
32
32
|
|
|
33
|
-
Ronin
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
users to form their own communities, independent of the main developers
|
|
38
|
-
of Ronin.
|
|
33
|
+
Ronin allows users to publish and share code, exploits, payloads or other
|
|
34
|
+
data via Overlays. Overlays are directories of code and data that can be
|
|
35
|
+
hosted on any SVN, Hg, Git or Rsync server. Ronin makes it easy to create,
|
|
36
|
+
install or update Overlays.
|
|
39
37
|
|
|
40
38
|
== FEATURES:
|
|
41
39
|
|
|
42
|
-
* Ability to define
|
|
40
|
+
* Ability to define Payloads based on:
|
|
43
41
|
* Contributing authors.
|
|
44
42
|
* Behaviors they control.
|
|
45
43
|
* Helpers they use.
|
|
46
|
-
* Ability to define
|
|
44
|
+
* Ability to define Payload Encoders:
|
|
47
45
|
* Architectures they target.
|
|
48
46
|
* OSes they target.
|
|
49
|
-
* Ability to define
|
|
50
|
-
*
|
|
47
|
+
* Ability to define Exploits based on:
|
|
48
|
+
* Whether they are local or remote.
|
|
51
49
|
* Protocol they use.
|
|
52
50
|
* Contributing authors.
|
|
51
|
+
* Behaviors they control.
|
|
53
52
|
* Disclosure status.
|
|
54
53
|
* Level of weaponization.
|
|
55
|
-
* Behaviors the vulnerability allows.
|
|
56
54
|
* Architectures they target.
|
|
57
55
|
* OSes they target.
|
|
58
56
|
* Products they target.
|
|
59
57
|
* Helpers they use.
|
|
58
|
+
* Provides a simple three phase process of building, verifying and
|
|
59
|
+
deploying Exploits and Payloads.
|
|
60
|
+
* Allows adding arbitrary target data to the targets of Exploits.
|
|
61
|
+
* Allows combining Payloads with Exploits.
|
|
62
|
+
* Allows using a raw-payload with an Exploit.
|
|
63
|
+
* Allows the addition of multiple Payload Encoders to an Exploit.
|
|
64
|
+
* Allows chaining multiple Payloads together.
|
|
65
|
+
* Provides a multitude of exploit and payload generators which can create
|
|
66
|
+
customized skeleton Ruby Exploits and Payloads.
|
|
60
67
|
|
|
61
|
-
==
|
|
68
|
+
== SYNOPSIS:
|
|
62
69
|
|
|
63
|
-
*
|
|
70
|
+
* Generate a skeleton exploit, with some custom information:
|
|
64
71
|
|
|
65
|
-
|
|
72
|
+
$ ronin-gen exploit exploit.rb --name Example \
|
|
73
|
+
--controls command_exec \
|
|
74
|
+
--status proven \
|
|
75
|
+
--authors Postmodern \
|
|
76
|
+
--description "This is an example."
|
|
66
77
|
|
|
67
|
-
|
|
78
|
+
* To generate other types of exploits, you can specify +local_exploit+,
|
|
79
|
+
+remote_exploit+, +remote_tcp_exploit+, +remote_udp_exploit+,
|
|
80
|
+
+ftp_exploit+, +http_exploit+ or +web_exploit+, instead of simply
|
|
81
|
+
+exploit+.
|
|
82
|
+
|
|
83
|
+
* Generate a skeleton payload, with some custom information:
|
|
84
|
+
|
|
85
|
+
$ ronin-gen payload payload.rb --name Example \
|
|
86
|
+
--controls file_read file_write \
|
|
87
|
+
--authors Postmodern \
|
|
88
|
+
--description "This is an example."
|
|
89
|
+
|
|
90
|
+
* To generate other types of payloads, you can specify +binary_payload+,
|
|
91
|
+
+shellcode+ or +nops+, instead of simply +payload+.
|
|
92
|
+
|
|
93
|
+
* List available payloads:
|
|
94
|
+
|
|
95
|
+
$ ronin-payloads
|
|
96
|
+
|
|
97
|
+
* Print information about a payload:
|
|
98
|
+
|
|
99
|
+
$ ronin-payloads -n NAME -v
|
|
100
|
+
|
|
101
|
+
* Build and output a payload:
|
|
102
|
+
|
|
103
|
+
$ ronin-payload NAME
|
|
104
|
+
|
|
105
|
+
* Build and output a raw unescaped payload:
|
|
106
|
+
|
|
107
|
+
$ ronin-payload NAME --raw
|
|
108
|
+
|
|
109
|
+
* Load a payload from a file, then build and output it:
|
|
110
|
+
|
|
111
|
+
$ ronin-payload -f FILE
|
|
112
|
+
|
|
113
|
+
* List available exploits:
|
|
114
|
+
|
|
115
|
+
$ ronin-exploits
|
|
116
|
+
|
|
117
|
+
* Print information about an exploit:
|
|
118
|
+
|
|
119
|
+
$ ronin-exploits -n NAME -v
|
|
120
|
+
|
|
121
|
+
* Build and deploy an exploit:
|
|
122
|
+
|
|
123
|
+
$ ronin-exploit -n NAME --host example.com --port 9999
|
|
124
|
+
|
|
125
|
+
* Load an exploit from a file, then build and deploy it:
|
|
126
|
+
|
|
127
|
+
$ ronin-exploit -f FILE --host example.com --port 9999
|
|
128
|
+
|
|
129
|
+
* Build and deploy an exploit, with a payload:
|
|
130
|
+
|
|
131
|
+
$ ronin-exploit -n NAME --host example.com --port 9999 -P PAYLOAD_NAME
|
|
132
|
+
|
|
133
|
+
* Build and deploy an exploit, with a raw payload:
|
|
134
|
+
|
|
135
|
+
$ ronin-exploit -n NAME --host example.com --port 9999 \
|
|
136
|
+
--raw-payload \
|
|
137
|
+
`echo -en "\x66\x31\xc0\xfe\xc0\xb3\xff\xcd\x80"`
|
|
68
138
|
|
|
69
139
|
== EXAMPLES:
|
|
70
140
|
|
|
@@ -127,7 +197,7 @@ of Ronin.
|
|
|
127
197
|
#
|
|
128
198
|
# Base64 encodes the specified _data_.
|
|
129
199
|
#
|
|
130
|
-
def
|
|
200
|
+
def encode(data)
|
|
131
201
|
return data.to_s.base64_encode
|
|
132
202
|
end
|
|
133
203
|
end
|
|
@@ -149,6 +219,8 @@ of Ronin.
|
|
|
149
219
|
|
|
150
220
|
author(:name => 'Postmodern', :organization => 'SophSec')
|
|
151
221
|
|
|
222
|
+
control :code_exec
|
|
223
|
+
|
|
152
224
|
targeting do |target|
|
|
153
225
|
target.arch :i686
|
|
154
226
|
target.os :name => 'Linux'
|
|
@@ -171,6 +243,15 @@ of Ronin.
|
|
|
171
243
|
end
|
|
172
244
|
end
|
|
173
245
|
|
|
246
|
+
== REQUIREMENTS:
|
|
247
|
+
|
|
248
|
+
* {ronin}[http://ronin.rubyforge.org/] >= 0.3.0
|
|
249
|
+
* {ronin-gen}[http://ronin.rubyforge.org/gen/] >= 0.2.0
|
|
250
|
+
|
|
251
|
+
== INSTALL:
|
|
252
|
+
|
|
253
|
+
$ sudo gem install ronin-exploits
|
|
254
|
+
|
|
174
255
|
== LICENSE:
|
|
175
256
|
|
|
176
257
|
Ronin Exploits - A Ruby library for Ronin that provides exploitation and
|