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/sessions/imap.rb
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
#--
|
|
3
|
-
# Ronin - A ruby development platform designed for information security
|
|
4
|
-
# and data exploration tasks.
|
|
5
|
-
#
|
|
6
|
-
# Copyright (c) 2006-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
|
-
require 'ronin/sessions/session'
|
|
25
|
-
require 'ronin/network/imap'
|
|
26
|
-
|
|
27
|
-
module Ronin
|
|
28
|
-
module Sessions
|
|
29
|
-
module IMAP
|
|
30
|
-
include Session
|
|
31
|
-
|
|
32
|
-
protected
|
|
33
|
-
|
|
34
|
-
def imap_connect(options={},&block)
|
|
35
|
-
require_variable :host
|
|
36
|
-
|
|
37
|
-
options[:port] ||= @port
|
|
38
|
-
options[:auth] ||= @imap_auth
|
|
39
|
-
options[:user] ||= @imap_user
|
|
40
|
-
options[:password] ||= @imap_password
|
|
41
|
-
|
|
42
|
-
return ::Net.imap_connect(@host,options,&block)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def imap_session(options={},&block)
|
|
46
|
-
imap_connect(options) do |sess|
|
|
47
|
-
block.call(sess) if block
|
|
48
|
-
sess.close
|
|
49
|
-
sess.logout
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
data/lib/ronin/sessions/pop3.rb
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
#--
|
|
3
|
-
# Ronin - A ruby development platform designed for information security
|
|
4
|
-
# and data exploration tasks.
|
|
5
|
-
#
|
|
6
|
-
# Copyright (c) 2006-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
|
-
require 'ronin/sessions/session'
|
|
25
|
-
require 'ronin/network/pop3'
|
|
26
|
-
|
|
27
|
-
module Ronin
|
|
28
|
-
module Sessions
|
|
29
|
-
module POP3
|
|
30
|
-
include Session
|
|
31
|
-
|
|
32
|
-
protected
|
|
33
|
-
|
|
34
|
-
def pop3_connect(options={},&block)
|
|
35
|
-
require_variable :host
|
|
36
|
-
|
|
37
|
-
options[:port] ||= @port
|
|
38
|
-
options[:user] ||= @pop3_user
|
|
39
|
-
options[:password] ||= @pop3_password
|
|
40
|
-
|
|
41
|
-
return ::Net.pop3_connect(@host,options,&block)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def pop3_session(options={},&block)
|
|
45
|
-
pop3_connect(options) do |sess|
|
|
46
|
-
block.call(sess) if block
|
|
47
|
-
sess.finish
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
data/lib/ronin/sessions/smtp.rb
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
#--
|
|
3
|
-
# Ronin - A ruby development platform designed for information security
|
|
4
|
-
# and data exploration tasks.
|
|
5
|
-
#
|
|
6
|
-
# Copyright (c) 2006-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
|
-
require 'ronin/sessions/session'
|
|
25
|
-
require 'ronin/network/smtp'
|
|
26
|
-
|
|
27
|
-
module Ronin
|
|
28
|
-
module Sessions
|
|
29
|
-
module SMTP
|
|
30
|
-
include Session
|
|
31
|
-
|
|
32
|
-
protected
|
|
33
|
-
|
|
34
|
-
def smtp_message(options={},&block)
|
|
35
|
-
Network::SMTP.message(options,&block)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def smtp_connect(options={},&block)
|
|
39
|
-
require_variable :host
|
|
40
|
-
|
|
41
|
-
options[:port] ||= @port
|
|
42
|
-
options[:login] ||= @smtp_login
|
|
43
|
-
options[:user] ||= @smtp_user
|
|
44
|
-
options[:password] ||= @smtp_password
|
|
45
|
-
|
|
46
|
-
return ::Net.smtp_connect(@host,options,&block)
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def smtp_session(options={},&block)
|
|
50
|
-
smtp_connect(options) do |sess|
|
|
51
|
-
block.call(sess) if block
|
|
52
|
-
sess.close
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
data/lib/ronin/sessions/tcp.rb
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
#--
|
|
3
|
-
# Ronin - A ruby development platform designed for information security
|
|
4
|
-
# and data exploration tasks.
|
|
5
|
-
#
|
|
6
|
-
# Copyright (c) 2006-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
|
-
require 'ronin/sessions/session'
|
|
25
|
-
require 'ronin/network/tcp'
|
|
26
|
-
|
|
27
|
-
module Ronin
|
|
28
|
-
module Sessions
|
|
29
|
-
module TCP
|
|
30
|
-
include Session
|
|
31
|
-
|
|
32
|
-
protected
|
|
33
|
-
|
|
34
|
-
#
|
|
35
|
-
# Opens a TCP connection to the host and port specified by the
|
|
36
|
-
# +host+ and +port+ parameters. If the +local_host+ and +local_port+
|
|
37
|
-
# parameters are set, they will be used for the local host and port
|
|
38
|
-
# of the TCP connection. A TCPSocket object will be returned. If
|
|
39
|
-
# a _block_ is given, it will be passed the newly created TCPSocket
|
|
40
|
-
# object.
|
|
41
|
-
#
|
|
42
|
-
def tcp_connect(&block)
|
|
43
|
-
require_variable :host
|
|
44
|
-
require_variable :port
|
|
45
|
-
|
|
46
|
-
return ::Net.tcp_connect(@host,@port,@local_host,@local_port,&block)
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
#
|
|
50
|
-
# Connects to the host and port specified by the +host+ and +port+
|
|
51
|
-
# parameters, then sends the specified _data_. If a _block_ is given,
|
|
52
|
-
# it will be passed the newly created TCPSocket object.
|
|
53
|
-
#
|
|
54
|
-
def tcp_connect_and_send(data,&block)
|
|
55
|
-
require_variable :host
|
|
56
|
-
require_variable :port
|
|
57
|
-
|
|
58
|
-
return ::Net.tcp_connect_and_send(data,@host,@port,@local_host,@local_port,&block)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
#
|
|
62
|
-
# Creates a TCP session to the host and port specified by the
|
|
63
|
-
# +host+ and +port+ parameters. If a _block_ is given, it will be
|
|
64
|
-
# passed the temporary TCPSocket object. After the given _block_
|
|
65
|
-
# has returned, the TCPSocket object will be closed.
|
|
66
|
-
#
|
|
67
|
-
def tcp_session(&block)
|
|
68
|
-
require_variable :host
|
|
69
|
-
require_variable :port
|
|
70
|
-
|
|
71
|
-
return Net.tcp_session(@host,@port,@local_host,@local_port,&block)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
#
|
|
75
|
-
# Connects to the host and port specified by the +host+ and +port+
|
|
76
|
-
# parameters, reads the banner then closes the connection, returning
|
|
77
|
-
# the banner String. If a _block_ is given, it will be passed the
|
|
78
|
-
# banner String.
|
|
79
|
-
#
|
|
80
|
-
def tcp_banner(&block)
|
|
81
|
-
require_variable :host
|
|
82
|
-
require_variable :port
|
|
83
|
-
|
|
84
|
-
return ::Net.tcp_banner(@host,@port,@local_host,@local_port,&block)
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
#
|
|
88
|
-
# Connects to the host and port specified by the +host+ and +port+
|
|
89
|
-
# parameters, sends the specified _data_ and then closes the
|
|
90
|
-
# connection. Returns +true+ if the data was successfully sent.
|
|
91
|
-
#
|
|
92
|
-
def tcp_send(data)
|
|
93
|
-
require_variable :host
|
|
94
|
-
require_variable :port
|
|
95
|
-
|
|
96
|
-
return ::Net.tcp_send(data,@host,@port,@local_host,@local_port)
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
end
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
#--
|
|
3
|
-
# Ronin - A ruby development platform designed for information security
|
|
4
|
-
# and data exploration tasks.
|
|
5
|
-
#
|
|
6
|
-
# Copyright (c) 2006-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
|
-
require 'ronin/sessions/session'
|
|
25
|
-
require 'ronin/network/telnet'
|
|
26
|
-
|
|
27
|
-
module Ronin
|
|
28
|
-
module Sessions
|
|
29
|
-
module Telnet
|
|
30
|
-
include Session
|
|
31
|
-
|
|
32
|
-
protected
|
|
33
|
-
|
|
34
|
-
def telnet_connect(options={},&block)
|
|
35
|
-
require_variable :host
|
|
36
|
-
|
|
37
|
-
options[:port] ||= @port
|
|
38
|
-
options[:user] ||= @telnet_user
|
|
39
|
-
options[:password] ||= @telnet_password
|
|
40
|
-
|
|
41
|
-
options[:proxy] ||= @telnet_proxy
|
|
42
|
-
options[:ssl] ||= @telnet_ssl
|
|
43
|
-
|
|
44
|
-
return ::Net.telnet_connect(@host,options,&block)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def telnet_session(options={},&block)
|
|
48
|
-
return telnet_connect(options) do |sess|
|
|
49
|
-
block.call(sess) if block
|
|
50
|
-
sess.close
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
data/lib/ronin/sessions/udp.rb
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
#--
|
|
3
|
-
# Ronin - A ruby development platform designed for information security
|
|
4
|
-
# and data exploration tasks.
|
|
5
|
-
#
|
|
6
|
-
# Copyright (c) 2006-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
|
-
require 'ronin/sessions/session'
|
|
25
|
-
require 'ronin/network/udp'
|
|
26
|
-
|
|
27
|
-
module Ronin
|
|
28
|
-
module Sessions
|
|
29
|
-
module UDP
|
|
30
|
-
include Session
|
|
31
|
-
|
|
32
|
-
protected
|
|
33
|
-
|
|
34
|
-
#
|
|
35
|
-
# Opens a UDP connection to the host and port specified by the
|
|
36
|
-
# +host+ and +port+ parameters. If the +local_host+ and +local_port+
|
|
37
|
-
# parameters are set, they will be used for the local host and port
|
|
38
|
-
# of the UDP connection. A UDPSocket object will be returned.
|
|
39
|
-
#
|
|
40
|
-
def udp_connect(&block)
|
|
41
|
-
require_variable :host
|
|
42
|
-
require_variable :port
|
|
43
|
-
|
|
44
|
-
return ::Net.udp_connect(@host,@port,@local_host,@local_port,&block)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
#
|
|
48
|
-
# Connects to the host and port specified by the +host+ and +port+
|
|
49
|
-
# parameters, then sends the specified _data_. If a _block_ is given,
|
|
50
|
-
# it will be passed the newly created UDPSocket object.
|
|
51
|
-
#
|
|
52
|
-
def udp_connect_and_send(data,&block)
|
|
53
|
-
require_variable :host
|
|
54
|
-
require_variable :port
|
|
55
|
-
|
|
56
|
-
return ::Net.udp_connect_and_send(data,@host,@port,@local_host,@local_port,&block)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
#
|
|
60
|
-
# Creates a UDP session to the host and port specified by the
|
|
61
|
-
# +host+ and +port+ parameters. If a _block_ is given, it will be
|
|
62
|
-
# passed the temporary UDPSocket object. After the given _block_
|
|
63
|
-
# has returned, the UDPSocket object will be closed.
|
|
64
|
-
#
|
|
65
|
-
def udp_session(&block)
|
|
66
|
-
require_variable :host
|
|
67
|
-
require_variable :port
|
|
68
|
-
|
|
69
|
-
return ::Net.udp_session(@host,@port,@local_host,@local_port,&block)
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
#--
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
5
|
-
#
|
|
6
|
-
# Copyright (c) 2006-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
|
-
require 'optparse'
|
|
25
|
-
|
|
26
|
-
module Ronin
|
|
27
|
-
module UI
|
|
28
|
-
module CommandLine
|
|
29
|
-
class Options < OptionParser
|
|
30
|
-
|
|
31
|
-
#
|
|
32
|
-
# Creates a new Options object with the specified _program_ name
|
|
33
|
-
# and the given _banner_. If a _block_ is given, it will be passed
|
|
34
|
-
# the newly created Options object.
|
|
35
|
-
#
|
|
36
|
-
def initialize(program,&block)
|
|
37
|
-
@program = program
|
|
38
|
-
|
|
39
|
-
super(&block)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
#
|
|
43
|
-
# Sets the example usage for the options to the specified _example_.
|
|
44
|
-
#
|
|
45
|
-
def usage=(example)
|
|
46
|
-
self.banner = "Usage: #{@program} #{example}"
|
|
47
|
-
self.separator ''
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
#
|
|
51
|
-
# Adds an options section to the help message. If a _block_ is given
|
|
52
|
-
# it will be called before any default options are added.
|
|
53
|
-
#
|
|
54
|
-
def options(&block)
|
|
55
|
-
self.separator ' Options:'
|
|
56
|
-
|
|
57
|
-
block.call() if block
|
|
58
|
-
|
|
59
|
-
self.on('-h','--help','print this message') do
|
|
60
|
-
help
|
|
61
|
-
exit
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
self.separator ''
|
|
65
|
-
|
|
66
|
-
return self
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
#
|
|
70
|
-
# Creates an arguments section in the help message using the given
|
|
71
|
-
# _args_.
|
|
72
|
-
#
|
|
73
|
-
def arguments(args={})
|
|
74
|
-
self.separator ' Arguments:'
|
|
75
|
-
|
|
76
|
-
args.each do |name,description|
|
|
77
|
-
self.separator " #{name}\t#{description}"
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
self.separator ''
|
|
81
|
-
return self
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
#
|
|
85
|
-
# Addes a summary section with the specified _text_.
|
|
86
|
-
#
|
|
87
|
-
def summary(text)
|
|
88
|
-
self.separator ' Summary:'
|
|
89
|
-
|
|
90
|
-
text.each_line do |line|
|
|
91
|
-
line = line.strip
|
|
92
|
-
|
|
93
|
-
self.separator " #{line}" unless line.empty?
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
self.separator ''
|
|
97
|
-
return self
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
#
|
|
101
|
-
# Adds a defaults section with the specified _flags_.
|
|
102
|
-
#
|
|
103
|
-
def defaults(*flags)
|
|
104
|
-
self.separator ' Defaults:'
|
|
105
|
-
|
|
106
|
-
flags.each { |flag| self.separator " #{flag}" }
|
|
107
|
-
|
|
108
|
-
self.separator ''
|
|
109
|
-
return self
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
#
|
|
113
|
-
# Prints the help message and exits successfully. If a _block_ is
|
|
114
|
-
# given it will be called after the help message has been print
|
|
115
|
-
# and before the Program has exited.
|
|
116
|
-
#
|
|
117
|
-
def help(&block)
|
|
118
|
-
puts self
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
#
|
|
122
|
-
# Parses the specified _arguments_ and returns any remaining
|
|
123
|
-
# arguments. If a _block_ is given, it will be passed any
|
|
124
|
-
# remaining arguments.
|
|
125
|
-
#
|
|
126
|
-
def parse(arguments,&block)
|
|
127
|
-
args = super(arguments)
|
|
128
|
-
|
|
129
|
-
block.call(args) if block
|
|
130
|
-
return args
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
end
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
end
|