ronin 0.2.4 → 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 +95 -0
- data/Manifest.txt +55 -25
- data/README.txt +64 -52
- data/Rakefile +21 -14
- data/bin/ronin +1 -1
- data/bin/ronin-add +1 -1
- data/bin/ronin-console +1 -1
- data/bin/ronin-help +1 -1
- data/bin/ronin-install +1 -1
- data/bin/ronin-list +1 -1
- data/bin/ronin-remove +1 -1
- data/bin/ronin-uninstall +1 -1
- data/bin/ronin-update +1 -1
- data/lib/ronin.rb +2 -4
- data/lib/ronin/arch.rb +66 -21
- data/lib/ronin/author.rb +27 -18
- data/lib/ronin/cacheable.rb +63 -23
- data/lib/ronin/code/emittable.rb +1 -4
- data/lib/ronin/code/reference.rb +2 -5
- data/lib/ronin/code/symbol_table.rb +1 -4
- data/lib/ronin/code/token.rb +1 -4
- data/lib/ronin/config.rb +31 -10
- data/lib/ronin/database.rb +1 -4
- data/lib/ronin/database/database.rb +42 -23
- data/lib/ronin/database/exceptions.rb +1 -4
- data/lib/ronin/database/exceptions/invalid_config.rb +1 -4
- data/lib/ronin/environment.rb +1 -5
- data/lib/ronin/extensions.rb +1 -5
- data/lib/ronin/extensions/array.rb +8 -6
- data/lib/ronin/extensions/file.rb +9 -4
- data/lib/ronin/extensions/ip_addr.rb +33 -13
- data/lib/ronin/extensions/kernel.rb +44 -9
- data/lib/ronin/extensions/meta.rb +1 -4
- data/lib/ronin/extensions/string.rb +8 -7
- data/lib/ronin/extensions/uri.rb +1 -4
- data/lib/ronin/extensions/uri/http.rb +1 -48
- data/lib/ronin/extensions/uri/query_params.rb +27 -8
- data/lib/ronin/formatting.rb +1 -4
- data/lib/ronin/formatting/binary.rb +1 -4
- data/lib/ronin/formatting/digest.rb +1 -4
- data/lib/ronin/formatting/extensions.rb +1 -4
- data/lib/ronin/formatting/extensions/binary.rb +1 -4
- data/lib/ronin/formatting/extensions/binary/file.rb +3 -28
- data/lib/ronin/formatting/extensions/binary/integer.rb +31 -12
- data/lib/ronin/formatting/extensions/binary/string.rb +59 -36
- data/lib/ronin/formatting/extensions/digest.rb +1 -4
- data/lib/ronin/formatting/extensions/digest/string.rb +31 -9
- data/lib/ronin/formatting/extensions/http.rb +1 -4
- data/lib/ronin/formatting/extensions/http/string.rb +16 -9
- data/lib/ronin/formatting/extensions/text.rb +1 -4
- data/lib/ronin/formatting/extensions/text/array.rb +17 -7
- data/lib/ronin/formatting/extensions/text/string.rb +70 -27
- data/lib/ronin/formatting/http.rb +1 -4
- data/lib/ronin/formatting/text.rb +1 -4
- data/lib/ronin/license.rb +72 -65
- data/lib/ronin/model.rb +1 -4
- data/lib/ronin/model/has_description.rb +37 -8
- data/lib/ronin/model/has_license.rb +12 -8
- data/lib/ronin/model/has_name.rb +10 -7
- data/lib/ronin/model/has_version.rb +14 -4
- data/lib/ronin/model/model.rb +71 -14
- data/lib/ronin/network.rb +1 -4
- data/lib/ronin/network/esmtp.rb +1 -4
- data/lib/ronin/network/extensions.rb +1 -4
- data/lib/ronin/network/extensions/esmtp.rb +1 -4
- data/lib/ronin/network/extensions/esmtp/net.rb +49 -21
- data/lib/ronin/network/extensions/http.rb +1 -4
- data/lib/ronin/network/extensions/http/net.rb +319 -531
- data/lib/ronin/network/extensions/imap.rb +1 -4
- data/lib/ronin/network/extensions/imap/net.rb +50 -23
- data/lib/ronin/network/extensions/pop3.rb +1 -4
- data/lib/ronin/network/extensions/pop3/net.rb +40 -17
- data/lib/ronin/network/extensions/smtp.rb +1 -4
- data/lib/ronin/network/extensions/smtp/net.rb +49 -21
- data/lib/ronin/network/extensions/tcp.rb +1 -4
- data/lib/ronin/network/extensions/tcp/net.rb +234 -31
- data/lib/ronin/network/extensions/telnet.rb +1 -4
- data/lib/ronin/network/extensions/telnet/net.rb +83 -51
- data/lib/ronin/network/extensions/udp.rb +1 -4
- data/lib/ronin/network/extensions/udp/net.rb +164 -27
- data/lib/ronin/{sessions.rb → network/helpers.rb} +10 -13
- data/lib/ronin/network/helpers/esmtp.rb +129 -0
- data/lib/ronin/{sessions/session.rb → network/helpers/helper.rb} +25 -17
- data/lib/ronin/network/helpers/http.rb +444 -0
- data/lib/ronin/network/helpers/imap.rb +115 -0
- data/lib/ronin/network/helpers/pop3.rb +110 -0
- data/lib/ronin/network/helpers/smtp.rb +123 -0
- data/lib/ronin/network/helpers/tcp.rb +309 -0
- data/lib/ronin/network/helpers/telnet.rb +158 -0
- data/lib/ronin/network/helpers/udp.rb +197 -0
- data/lib/ronin/network/http.rb +3 -156
- data/lib/ronin/network/http/exceptions.rb +1 -4
- data/lib/ronin/network/http/exceptions/unknown_request.rb +1 -4
- data/lib/ronin/network/http/http.rb +214 -0
- data/lib/ronin/network/http/proxy.rb +308 -0
- data/lib/ronin/network/imap.rb +7 -6
- data/lib/ronin/network/pop3.rb +7 -6
- data/lib/ronin/network/smtp.rb +1 -4
- data/lib/ronin/network/smtp/email.rb +34 -18
- data/lib/ronin/network/smtp/smtp.rb +19 -7
- data/lib/ronin/network/tcp.rb +1 -4
- data/lib/ronin/network/telnet.rb +25 -12
- data/lib/ronin/network/udp.rb +1 -4
- data/lib/ronin/os.rb +43 -21
- data/lib/ronin/path.rb +29 -9
- data/lib/ronin/platform.rb +1 -4
- data/lib/ronin/platform/exceptions.rb +1 -4
- data/lib/ronin/platform/exceptions/extension_not_found.rb +1 -4
- data/lib/ronin/platform/exceptions/overlay_cached.rb +1 -4
- data/lib/ronin/platform/exceptions/overlay_not_found.rb +1 -4
- data/lib/ronin/platform/extension.rb +195 -52
- data/lib/ronin/platform/extension_cache.rb +60 -24
- data/lib/ronin/platform/maintainer.rb +15 -8
- data/lib/ronin/platform/object_cache.rb +29 -8
- data/lib/ronin/platform/overlay.rb +82 -26
- data/lib/ronin/platform/overlay_cache.rb +179 -56
- data/lib/ronin/platform/platform.rb +154 -58
- data/lib/ronin/platform/ronin.rb +38 -11
- data/lib/ronin/product.rb +17 -17
- data/lib/ronin/rpc.rb +1 -4
- data/lib/ronin/rpc/call.rb +1 -4
- data/lib/ronin/rpc/client.rb +1 -4
- data/lib/ronin/rpc/console.rb +1 -4
- data/lib/ronin/rpc/exceptions.rb +1 -4
- data/lib/ronin/rpc/exceptions/not_implemented.rb +1 -4
- data/lib/ronin/rpc/exceptions/response_missing.rb +1 -4
- data/lib/ronin/rpc/response.rb +1 -4
- data/lib/ronin/rpc/service.rb +1 -4
- data/lib/ronin/rpc/shell.rb +1 -4
- data/lib/ronin/scanners.rb +1 -4
- data/lib/ronin/scanners/exceptions.rb +1 -4
- data/lib/ronin/scanners/exceptions/unknown_category.rb +1 -4
- data/lib/ronin/scanners/scanner.rb +82 -26
- data/lib/ronin/static.rb +1 -4
- data/lib/ronin/static/finders.rb +1 -4
- data/lib/ronin/static/static.rb +16 -7
- data/lib/ronin/templates.rb +2 -4
- data/lib/ronin/templates/erb.rb +24 -10
- data/lib/ronin/templates/template.rb +130 -0
- data/lib/ronin/ui.rb +2 -6
- data/lib/ronin/ui/command_line.rb +1 -4
- data/lib/ronin/ui/command_line/command.rb +137 -68
- data/lib/ronin/ui/command_line/command_line.rb +52 -29
- data/lib/ronin/ui/command_line/commands/add.rb +39 -67
- data/lib/ronin/ui/command_line/commands/console.rb +23 -27
- data/lib/ronin/ui/command_line/commands/help.rb +10 -29
- data/lib/ronin/ui/command_line/commands/install.rb +31 -56
- data/lib/ronin/ui/command_line/commands/list.rb +34 -52
- data/lib/ronin/ui/command_line/commands/remove.rb +12 -32
- data/lib/ronin/ui/command_line/commands/uninstall.rb +11 -31
- data/lib/ronin/ui/command_line/commands/update.rb +15 -35
- data/lib/ronin/ui/command_line/exceptions.rb +1 -4
- data/lib/ronin/ui/command_line/exceptions/unknown_command.rb +1 -4
- data/lib/ronin/ui/console.rb +54 -23
- data/lib/ronin/ui/hexdump.rb +1 -4
- data/lib/ronin/ui/hexdump/extensions.rb +1 -4
- data/lib/ronin/ui/hexdump/extensions/file.rb +8 -6
- data/lib/ronin/ui/hexdump/extensions/kernel.rb +4 -5
- data/lib/ronin/ui/hexdump/hexdump.rb +8 -5
- data/lib/ronin/{sessions/exceptions.rb → ui/output.rb} +3 -5
- data/lib/ronin/ui/output/handler.rb +121 -0
- data/lib/ronin/ui/output/helpers.rb +110 -0
- data/lib/ronin/ui/output/output.rb +144 -0
- data/lib/ronin/ui/shell.rb +38 -12
- data/lib/ronin/version.rb +2 -5
- data/lib/ronin/{sessions/exceptions/variable_missing.rb → yard.rb} +2 -10
- data/lib/ronin/{ronin.rb → yard/handlers.rb} +5 -15
- data/lib/ronin/yard/handlers/ruby.rb +27 -0
- data/lib/ronin/yard/handlers/ruby/base.rb +27 -0
- data/lib/ronin/yard/handlers/ruby/belongs_to_handler.rb +45 -0
- data/lib/ronin/yard/handlers/ruby/eval_block_handler.rb +18 -0
- data/lib/ronin/yard/handlers/ruby/has_handler.rb +49 -0
- data/lib/ronin/yard/handlers/ruby/legacy.rb +26 -0
- data/lib/ronin/yard/handlers/ruby/legacy/belongs_to_handler.rb +41 -0
- data/lib/ronin/yard/handlers/ruby/legacy/eval_block_handler.rb +19 -0
- data/lib/ronin/yard/handlers/ruby/legacy/has_handler.rb +34 -0
- data/lib/ronin/yard/handlers/ruby/legacy/metaclass_eval_handler.rb +21 -0
- data/lib/ronin/yard/handlers/ruby/legacy/property_handler.rb +41 -0
- data/lib/ronin/yard/handlers/ruby/legacy/scanner_handler.rb +61 -0
- data/lib/ronin/yard/handlers/ruby/metaclass_eval_handler.rb +18 -0
- data/lib/ronin/yard/handlers/ruby/property_handler.rb +45 -0
- data/lib/ronin/yard/handlers/ruby/scanner_handler.rb +66 -0
- data/spec/author_spec.rb +3 -3
- data/spec/extensions/classes/some_class.rb +2 -0
- data/spec/extensions/kernel_spec.rb +17 -0
- data/spec/extensions/uri/http_spec.rb +0 -31
- data/spec/formatting/binary/integer_spec.rb +4 -0
- data/spec/formatting/text/string_spec.rb +96 -0
- data/spec/license_spec.rb +6 -6
- data/spec/model/classes/basic_model.rb +13 -0
- data/spec/model/classes/custom_model.rb +17 -0
- data/spec/model/classes/described_model.rb +10 -0
- data/spec/model/has_description_spec.rb +42 -0
- data/spec/model/has_license_spec.rb +18 -4
- data/spec/model/model_spec.rb +68 -0
- data/spec/network/helpers/classes/test_helper.rb +11 -0
- data/spec/network/helpers/classes/uses_test_helper.rb +10 -0
- data/spec/network/helpers/helper_spec.rb +25 -0
- data/spec/network/{http_spec.rb → http/http_spec.rb} +0 -0
- data/spec/network/http/proxy_spec.rb +116 -0
- data/spec/os_spec.rb +4 -4
- data/spec/platform/extension_cache_spec.rb +14 -0
- data/spec/platform/extension_spec.rb +11 -0
- data/spec/platform/platform_spec.rb +8 -0
- data/spec/product_spec.rb +9 -9
- data/spec/spec_helper.rb +1 -1
- data/spec/templates/classes/{uses_erb.rb → example_erb.rb} +1 -1
- data/spec/templates/classes/example_template.rb +21 -0
- data/spec/templates/erb_spec.rb +2 -2
- data/spec/templates/helpers/static.rb +5 -0
- data/spec/templates/helpers/static/templates/_relative.erb +1 -0
- data/spec/templates/helpers/static/templates/example.erb +1 -0
- data/spec/templates/template_spec.rb +41 -0
- data/spec/ui/command_line/classes/test_command.rb +23 -0
- data/spec/ui/command_line/command_spec.rb +31 -0
- data/spec/ui/output_spec.rb +29 -0
- data/static/ronin/platform/overlay.xsl +135 -114
- data/tasks/spec.rb +1 -0
- data/tasks/yard.rb +18 -0
- metadata +98 -59
- metadata.gz.sig +0 -0
- data/TODO.txt +0 -15
- data/lib/ronin/extensions/hash.rb +0 -62
- data/lib/ronin/sessions/esmtp.rb +0 -57
- data/lib/ronin/sessions/http.rb +0 -678
- data/lib/ronin/sessions/imap.rb +0 -54
- data/lib/ronin/sessions/pop3.rb +0 -52
- data/lib/ronin/sessions/smtp.rb +0 -57
- data/lib/ronin/sessions/tcp.rb +0 -100
- data/lib/ronin/sessions/telnet.rb +0 -55
- data/lib/ronin/sessions/udp.rb +0 -73
- data/lib/ronin/ui/command_line/options.rb +0 -136
- data/lib/ronin/ui/diagnostics.rb +0 -66
- data/lib/ronin/ui/verbose.rb +0 -58
- data/spec/extensions/hash_spec.rb +0 -38
- data/spec/sessions/classes/test_session.rb +0 -11
- data/spec/sessions/classes/uses_test_session.rb +0 -10
- data/spec/sessions/session_spec.rb +0 -25
- data/spec/ui/verbose_spec.rb +0 -17
data/lib/ronin/code/reference.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
module Ronin
|
|
@@ -125,7 +122,7 @@ module Ronin
|
|
|
125
122
|
return @value.send(name,*arguments,&block)
|
|
126
123
|
end
|
|
127
124
|
|
|
128
|
-
|
|
125
|
+
super(name,*arguments,&block)
|
|
129
126
|
end
|
|
130
127
|
|
|
131
128
|
end
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
require 'ronin/code/reference'
|
data/lib/ronin/code/token.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
require 'ronin/code/emittable'
|
data/lib/ronin/config.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
require 'fileutils'
|
|
@@ -41,17 +38,17 @@ module Ronin
|
|
|
41
38
|
TMP_DIR = FileUtils.mkdir_p(File.join(PATH,'tmp'))
|
|
42
39
|
|
|
43
40
|
#
|
|
44
|
-
#
|
|
45
|
-
# Ronin configuration files directory. If _name_ is not given, than the
|
|
46
|
-
# main Ronin configuration file will be loaded.
|
|
41
|
+
# Loads the Ronin configuration file.
|
|
47
42
|
#
|
|
48
|
-
#
|
|
43
|
+
# @param [String, nil] name
|
|
44
|
+
# The optional name of the file to load within +CONFIG_DIR+.
|
|
45
|
+
# If no name is given, +CONFIG_PATH+ will simply be loaded.
|
|
49
46
|
#
|
|
47
|
+
# @example Load the main config file at <tt>~/.ronin/config.rb</tt>
|
|
50
48
|
# Config.load
|
|
51
49
|
# # => true
|
|
52
50
|
#
|
|
53
|
-
# Load a specific config file in <tt>~/.ronin/config/</tt>
|
|
54
|
-
#
|
|
51
|
+
# @example Load a specific config file in <tt>~/.ronin/config/</tt>
|
|
55
52
|
# Config.load :sql
|
|
56
53
|
# # => true
|
|
57
54
|
#
|
|
@@ -64,5 +61,29 @@ module Ronin
|
|
|
64
61
|
|
|
65
62
|
require path if File.file?(path)
|
|
66
63
|
end
|
|
64
|
+
|
|
65
|
+
#
|
|
66
|
+
# Auto-creates a directory within {TMP_DIR}.
|
|
67
|
+
#
|
|
68
|
+
# @param [String] sub_path
|
|
69
|
+
# The sub-path within {TMP_DIR}.
|
|
70
|
+
#
|
|
71
|
+
# @return [String]
|
|
72
|
+
# The full path within {TMP_DIR}.
|
|
73
|
+
#
|
|
74
|
+
def Config.tmp_dir(sub_path=nil)
|
|
75
|
+
if sub_path
|
|
76
|
+
sub_path = File.expand_path(File.join('',sub_path))
|
|
77
|
+
path = File.join(TMP_DIR,sub_path)
|
|
78
|
+
|
|
79
|
+
unless File.exist?(path)
|
|
80
|
+
FileUtils.mkdir_p(path)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
return path
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
return TMP_DIR
|
|
87
|
+
end
|
|
67
88
|
end
|
|
68
89
|
end
|
data/lib/ronin/database.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
require 'ronin/database/database'
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,11 +16,8 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
|
-
gem 'addressable', '2.0.2'
|
|
25
|
-
|
|
26
21
|
require 'ronin/database/exceptions/invalid_config'
|
|
27
22
|
require 'ronin/model'
|
|
28
23
|
require 'ronin/arch'
|
|
@@ -47,16 +42,16 @@ module Ronin
|
|
|
47
42
|
DEFAULT_LOG_LEVEL = :info
|
|
48
43
|
|
|
49
44
|
# Default configuration of the database
|
|
50
|
-
DEFAULT_CONFIG =
|
|
51
|
-
:adapter => 'sqlite3',
|
|
52
|
-
:database => File.join(Config::PATH,'database.sqlite3')
|
|
53
|
-
}
|
|
45
|
+
DEFAULT_CONFIG = "sqlite3://" + File.join(Config::PATH,'database.sqlite3')
|
|
54
46
|
|
|
55
47
|
#
|
|
56
48
|
# Returns the Database configuration that is stored in the
|
|
57
49
|
# +CONFIG_FILE+. Defaults to +DEFAULT_CONFIG+ if +CONFIG_FILE+ does not
|
|
58
50
|
# exist.
|
|
59
51
|
#
|
|
52
|
+
# @raise [InvalidConfig]
|
|
53
|
+
# The config file did not contain a YAML Hash or String.
|
|
54
|
+
#
|
|
60
55
|
def Database.config
|
|
61
56
|
unless (class_variable_defined?('@@ronin_database_config'))
|
|
62
57
|
@@ronin_database_config = DEFAULT_CONFIG
|
|
@@ -76,27 +71,41 @@ module Ronin
|
|
|
76
71
|
end
|
|
77
72
|
|
|
78
73
|
#
|
|
79
|
-
# Sets the Database configuration
|
|
74
|
+
# Sets the Database configuration.
|
|
75
|
+
#
|
|
76
|
+
# @param [String, Hash] configuration
|
|
77
|
+
# The DataMapper configuration to set the Ronin::Database with.
|
|
80
78
|
#
|
|
81
79
|
def Database.config=(configuration)
|
|
82
80
|
@@ronin_database_config = configuration
|
|
83
81
|
end
|
|
84
82
|
|
|
85
83
|
#
|
|
86
|
-
#
|
|
84
|
+
# @return [DataMapper::Logger, nil]
|
|
85
|
+
# The current Database log.
|
|
87
86
|
#
|
|
88
87
|
def Database.log
|
|
89
88
|
@@ronin_database_log ||= nil
|
|
90
89
|
end
|
|
91
90
|
|
|
92
91
|
#
|
|
93
|
-
# Setup the Database log
|
|
92
|
+
# Setup the Database log.
|
|
93
|
+
#
|
|
94
|
+
# @param [Hash] options
|
|
95
|
+
# Additional options.
|
|
96
|
+
#
|
|
97
|
+
# @option options [String] :path (DEFAULT_LOG_PATH)
|
|
98
|
+
# The path of the log file.
|
|
94
99
|
#
|
|
95
|
-
#
|
|
96
|
-
#
|
|
97
|
-
#
|
|
98
|
-
#
|
|
99
|
-
#
|
|
100
|
+
# @option options [IO] :stream
|
|
101
|
+
# The stream to use for the log.
|
|
102
|
+
#
|
|
103
|
+
# @option options [Symbol] :level
|
|
104
|
+
# The level of messages to log.
|
|
105
|
+
# May be either +:fatal+, +:error+, +:warn+, +:info+ or +:debug+.
|
|
106
|
+
#
|
|
107
|
+
# @return [DataMapper::Logger]
|
|
108
|
+
# The new Database log.
|
|
100
109
|
#
|
|
101
110
|
def Database.setup_log(options={})
|
|
102
111
|
path = (options[:path] || DEFAULT_LOG_PATH)
|
|
@@ -107,7 +116,8 @@ module Ronin
|
|
|
107
116
|
end
|
|
108
117
|
|
|
109
118
|
#
|
|
110
|
-
#
|
|
119
|
+
# @return [Boolean]
|
|
120
|
+
# Specifies wether or not the Database is setup.
|
|
111
121
|
#
|
|
112
122
|
def Database.setup?
|
|
113
123
|
repository = DataMapper.repository(Model::REPOSITORY_NAME)
|
|
@@ -116,7 +126,11 @@ module Ronin
|
|
|
116
126
|
end
|
|
117
127
|
|
|
118
128
|
#
|
|
119
|
-
#
|
|
129
|
+
# Updates the Database, by running auto-upgrades, but only if the
|
|
130
|
+
# Database is already setup.
|
|
131
|
+
#
|
|
132
|
+
# @yield []
|
|
133
|
+
# The block to call before the Database is updated.
|
|
120
134
|
#
|
|
121
135
|
def Database.update!(&block)
|
|
122
136
|
block.call if block
|
|
@@ -126,9 +140,14 @@ module Ronin
|
|
|
126
140
|
end
|
|
127
141
|
|
|
128
142
|
#
|
|
129
|
-
# Sets up the Database
|
|
130
|
-
#
|
|
131
|
-
#
|
|
143
|
+
# Sets up the Database.
|
|
144
|
+
#
|
|
145
|
+
# @param [String, Hash] configuration
|
|
146
|
+
# The DataMapper configuration to use to setup the Database.
|
|
147
|
+
#
|
|
148
|
+
# @yield []
|
|
149
|
+
# The block to call after the Database has been setup, but before
|
|
150
|
+
# it is updated.
|
|
132
151
|
#
|
|
133
152
|
def Database.setup(configuration=Database.config,&block)
|
|
134
153
|
# setup the database log
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
require 'ronin/database/exceptions/invalid_config'
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
module Ronin
|
data/lib/ronin/environment.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
require 'ronin/config'
|
|
@@ -28,7 +25,6 @@ require 'ronin/path'
|
|
|
28
25
|
require 'ronin/network'
|
|
29
26
|
require 'ronin/database'
|
|
30
27
|
require 'ronin/ui'
|
|
31
|
-
require 'ronin/ronin'
|
|
32
28
|
|
|
33
29
|
require 'chars'
|
|
34
30
|
require 'pp'
|
data/lib/ronin/extensions.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,12 +16,10 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
require 'ronin/extensions/meta'
|
|
25
22
|
require 'ronin/extensions/kernel'
|
|
26
|
-
require 'ronin/extensions/hash'
|
|
27
23
|
require 'ronin/extensions/uri'
|
|
28
24
|
require 'ronin/extensions/string'
|
|
29
25
|
require 'ronin/extensions/file'
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,18 +16,22 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
class Array
|
|
25
22
|
|
|
26
23
|
#
|
|
27
|
-
#
|
|
28
|
-
# http://johncarrino.net/blog/2006/08/11/powerset-in-ruby/.
|
|
24
|
+
# Calculates the power-set of the Array.
|
|
29
25
|
#
|
|
26
|
+
# @return [Array]
|
|
27
|
+
# The power set of the array.
|
|
28
|
+
#
|
|
29
|
+
# @example
|
|
30
30
|
# [1,2,3].power_set
|
|
31
31
|
# # => [[], [3], [2], [2, 3], [1], [1, 3], [1, 2], [1, 2, 3]]
|
|
32
32
|
#
|
|
33
|
+
# @see http://johncarrino.net/blog/2006/08/11/powerset-in-ruby/
|
|
34
|
+
#
|
|
33
35
|
def power_set
|
|
34
36
|
inject([[]]) do |power_set,element|
|
|
35
37
|
sub_set = []
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
class File
|
|
@@ -26,6 +23,14 @@ class File
|
|
|
26
23
|
#
|
|
27
24
|
# Writes the specified _data_ to the specified _path_.
|
|
28
25
|
#
|
|
26
|
+
# @param [String] path
|
|
27
|
+
# The path of the file to write to.
|
|
28
|
+
#
|
|
29
|
+
# @param [String] data
|
|
30
|
+
# The data to write to the file.
|
|
31
|
+
#
|
|
32
|
+
# @return [nil]
|
|
33
|
+
#
|
|
29
34
|
def File.write(path,data)
|
|
30
35
|
File.open(path,'w') { |file| file.write(data) }
|
|
31
36
|
end
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
require 'ipaddr'
|
|
@@ -28,20 +25,33 @@ class IPAddr
|
|
|
28
25
|
include Enumerable
|
|
29
26
|
|
|
30
27
|
#
|
|
31
|
-
# Iterates over
|
|
32
|
-
#
|
|
33
|
-
# IPv4 and IPv6 address ranges.
|
|
28
|
+
# Iterates over each IP address within the IP Address range. Supports
|
|
29
|
+
# both IPv4 and IPv6 address ranges.
|
|
34
30
|
#
|
|
31
|
+
# @param [String] cidr_or_glob
|
|
32
|
+
# The IP address range to iterate over.
|
|
33
|
+
# May be in standard CIDR notation or globbed format.
|
|
34
|
+
#
|
|
35
|
+
# @yield [ip]
|
|
36
|
+
# The block which will be passed each IP address contained within the
|
|
37
|
+
# IP address range.
|
|
38
|
+
#
|
|
39
|
+
# @yieldparam [String] ip
|
|
40
|
+
# An IP address within the IP address range.
|
|
41
|
+
#
|
|
42
|
+
# @example Enumerate through a CIDR range
|
|
35
43
|
# IPAddr.each('10.1.1.1/24') do |ip|
|
|
36
|
-
#
|
|
44
|
+
# puts ip
|
|
37
45
|
# end
|
|
38
46
|
#
|
|
47
|
+
# @example Enumerate through a globbed IP range
|
|
39
48
|
# IPAddr.each('10.1.1-5.*') do |ip|
|
|
40
|
-
#
|
|
49
|
+
# puts ip
|
|
41
50
|
# end
|
|
42
51
|
#
|
|
52
|
+
# @example Enumerate through a globbed IPv6 range
|
|
43
53
|
# IPAddr.each('::ff::02-0a::c3') do |ip|
|
|
44
|
-
#
|
|
54
|
+
# puts ip
|
|
45
55
|
# end
|
|
46
56
|
#
|
|
47
57
|
def IPAddr.each(cidr_or_glob,&block)
|
|
@@ -102,10 +112,20 @@ class IPAddr
|
|
|
102
112
|
end
|
|
103
113
|
|
|
104
114
|
#
|
|
105
|
-
# Iterates over each IP address that is included in the addresses
|
|
106
|
-
#
|
|
115
|
+
# Iterates over each IP address that is included in the addresses netmask.
|
|
116
|
+
# Supports both IPv4 and IPv6 addresses.
|
|
117
|
+
#
|
|
118
|
+
# @yield [ip]
|
|
119
|
+
# The block which will be passed every IP address covered be the
|
|
120
|
+
# netmask of the IPAddr object.
|
|
121
|
+
#
|
|
122
|
+
# @yieldparam [String] ip
|
|
123
|
+
# An IP address.
|
|
124
|
+
#
|
|
125
|
+
# @example
|
|
126
|
+
# netblock = IPAddr.new('10.1.1.1/24')
|
|
107
127
|
#
|
|
108
|
-
#
|
|
128
|
+
# netblock.each do |ip|
|
|
109
129
|
# puts ip
|
|
110
130
|
# end
|
|
111
131
|
#
|