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.
Files changed (240) hide show
  1. data.tar.gz.sig +0 -0
  2. data/History.txt +95 -0
  3. data/Manifest.txt +55 -25
  4. data/README.txt +64 -52
  5. data/Rakefile +21 -14
  6. data/bin/ronin +1 -1
  7. data/bin/ronin-add +1 -1
  8. data/bin/ronin-console +1 -1
  9. data/bin/ronin-help +1 -1
  10. data/bin/ronin-install +1 -1
  11. data/bin/ronin-list +1 -1
  12. data/bin/ronin-remove +1 -1
  13. data/bin/ronin-uninstall +1 -1
  14. data/bin/ronin-update +1 -1
  15. data/lib/ronin.rb +2 -4
  16. data/lib/ronin/arch.rb +66 -21
  17. data/lib/ronin/author.rb +27 -18
  18. data/lib/ronin/cacheable.rb +63 -23
  19. data/lib/ronin/code/emittable.rb +1 -4
  20. data/lib/ronin/code/reference.rb +2 -5
  21. data/lib/ronin/code/symbol_table.rb +1 -4
  22. data/lib/ronin/code/token.rb +1 -4
  23. data/lib/ronin/config.rb +31 -10
  24. data/lib/ronin/database.rb +1 -4
  25. data/lib/ronin/database/database.rb +42 -23
  26. data/lib/ronin/database/exceptions.rb +1 -4
  27. data/lib/ronin/database/exceptions/invalid_config.rb +1 -4
  28. data/lib/ronin/environment.rb +1 -5
  29. data/lib/ronin/extensions.rb +1 -5
  30. data/lib/ronin/extensions/array.rb +8 -6
  31. data/lib/ronin/extensions/file.rb +9 -4
  32. data/lib/ronin/extensions/ip_addr.rb +33 -13
  33. data/lib/ronin/extensions/kernel.rb +44 -9
  34. data/lib/ronin/extensions/meta.rb +1 -4
  35. data/lib/ronin/extensions/string.rb +8 -7
  36. data/lib/ronin/extensions/uri.rb +1 -4
  37. data/lib/ronin/extensions/uri/http.rb +1 -48
  38. data/lib/ronin/extensions/uri/query_params.rb +27 -8
  39. data/lib/ronin/formatting.rb +1 -4
  40. data/lib/ronin/formatting/binary.rb +1 -4
  41. data/lib/ronin/formatting/digest.rb +1 -4
  42. data/lib/ronin/formatting/extensions.rb +1 -4
  43. data/lib/ronin/formatting/extensions/binary.rb +1 -4
  44. data/lib/ronin/formatting/extensions/binary/file.rb +3 -28
  45. data/lib/ronin/formatting/extensions/binary/integer.rb +31 -12
  46. data/lib/ronin/formatting/extensions/binary/string.rb +59 -36
  47. data/lib/ronin/formatting/extensions/digest.rb +1 -4
  48. data/lib/ronin/formatting/extensions/digest/string.rb +31 -9
  49. data/lib/ronin/formatting/extensions/http.rb +1 -4
  50. data/lib/ronin/formatting/extensions/http/string.rb +16 -9
  51. data/lib/ronin/formatting/extensions/text.rb +1 -4
  52. data/lib/ronin/formatting/extensions/text/array.rb +17 -7
  53. data/lib/ronin/formatting/extensions/text/string.rb +70 -27
  54. data/lib/ronin/formatting/http.rb +1 -4
  55. data/lib/ronin/formatting/text.rb +1 -4
  56. data/lib/ronin/license.rb +72 -65
  57. data/lib/ronin/model.rb +1 -4
  58. data/lib/ronin/model/has_description.rb +37 -8
  59. data/lib/ronin/model/has_license.rb +12 -8
  60. data/lib/ronin/model/has_name.rb +10 -7
  61. data/lib/ronin/model/has_version.rb +14 -4
  62. data/lib/ronin/model/model.rb +71 -14
  63. data/lib/ronin/network.rb +1 -4
  64. data/lib/ronin/network/esmtp.rb +1 -4
  65. data/lib/ronin/network/extensions.rb +1 -4
  66. data/lib/ronin/network/extensions/esmtp.rb +1 -4
  67. data/lib/ronin/network/extensions/esmtp/net.rb +49 -21
  68. data/lib/ronin/network/extensions/http.rb +1 -4
  69. data/lib/ronin/network/extensions/http/net.rb +319 -531
  70. data/lib/ronin/network/extensions/imap.rb +1 -4
  71. data/lib/ronin/network/extensions/imap/net.rb +50 -23
  72. data/lib/ronin/network/extensions/pop3.rb +1 -4
  73. data/lib/ronin/network/extensions/pop3/net.rb +40 -17
  74. data/lib/ronin/network/extensions/smtp.rb +1 -4
  75. data/lib/ronin/network/extensions/smtp/net.rb +49 -21
  76. data/lib/ronin/network/extensions/tcp.rb +1 -4
  77. data/lib/ronin/network/extensions/tcp/net.rb +234 -31
  78. data/lib/ronin/network/extensions/telnet.rb +1 -4
  79. data/lib/ronin/network/extensions/telnet/net.rb +83 -51
  80. data/lib/ronin/network/extensions/udp.rb +1 -4
  81. data/lib/ronin/network/extensions/udp/net.rb +164 -27
  82. data/lib/ronin/{sessions.rb → network/helpers.rb} +10 -13
  83. data/lib/ronin/network/helpers/esmtp.rb +129 -0
  84. data/lib/ronin/{sessions/session.rb → network/helpers/helper.rb} +25 -17
  85. data/lib/ronin/network/helpers/http.rb +444 -0
  86. data/lib/ronin/network/helpers/imap.rb +115 -0
  87. data/lib/ronin/network/helpers/pop3.rb +110 -0
  88. data/lib/ronin/network/helpers/smtp.rb +123 -0
  89. data/lib/ronin/network/helpers/tcp.rb +309 -0
  90. data/lib/ronin/network/helpers/telnet.rb +158 -0
  91. data/lib/ronin/network/helpers/udp.rb +197 -0
  92. data/lib/ronin/network/http.rb +3 -156
  93. data/lib/ronin/network/http/exceptions.rb +1 -4
  94. data/lib/ronin/network/http/exceptions/unknown_request.rb +1 -4
  95. data/lib/ronin/network/http/http.rb +214 -0
  96. data/lib/ronin/network/http/proxy.rb +308 -0
  97. data/lib/ronin/network/imap.rb +7 -6
  98. data/lib/ronin/network/pop3.rb +7 -6
  99. data/lib/ronin/network/smtp.rb +1 -4
  100. data/lib/ronin/network/smtp/email.rb +34 -18
  101. data/lib/ronin/network/smtp/smtp.rb +19 -7
  102. data/lib/ronin/network/tcp.rb +1 -4
  103. data/lib/ronin/network/telnet.rb +25 -12
  104. data/lib/ronin/network/udp.rb +1 -4
  105. data/lib/ronin/os.rb +43 -21
  106. data/lib/ronin/path.rb +29 -9
  107. data/lib/ronin/platform.rb +1 -4
  108. data/lib/ronin/platform/exceptions.rb +1 -4
  109. data/lib/ronin/platform/exceptions/extension_not_found.rb +1 -4
  110. data/lib/ronin/platform/exceptions/overlay_cached.rb +1 -4
  111. data/lib/ronin/platform/exceptions/overlay_not_found.rb +1 -4
  112. data/lib/ronin/platform/extension.rb +195 -52
  113. data/lib/ronin/platform/extension_cache.rb +60 -24
  114. data/lib/ronin/platform/maintainer.rb +15 -8
  115. data/lib/ronin/platform/object_cache.rb +29 -8
  116. data/lib/ronin/platform/overlay.rb +82 -26
  117. data/lib/ronin/platform/overlay_cache.rb +179 -56
  118. data/lib/ronin/platform/platform.rb +154 -58
  119. data/lib/ronin/platform/ronin.rb +38 -11
  120. data/lib/ronin/product.rb +17 -17
  121. data/lib/ronin/rpc.rb +1 -4
  122. data/lib/ronin/rpc/call.rb +1 -4
  123. data/lib/ronin/rpc/client.rb +1 -4
  124. data/lib/ronin/rpc/console.rb +1 -4
  125. data/lib/ronin/rpc/exceptions.rb +1 -4
  126. data/lib/ronin/rpc/exceptions/not_implemented.rb +1 -4
  127. data/lib/ronin/rpc/exceptions/response_missing.rb +1 -4
  128. data/lib/ronin/rpc/response.rb +1 -4
  129. data/lib/ronin/rpc/service.rb +1 -4
  130. data/lib/ronin/rpc/shell.rb +1 -4
  131. data/lib/ronin/scanners.rb +1 -4
  132. data/lib/ronin/scanners/exceptions.rb +1 -4
  133. data/lib/ronin/scanners/exceptions/unknown_category.rb +1 -4
  134. data/lib/ronin/scanners/scanner.rb +82 -26
  135. data/lib/ronin/static.rb +1 -4
  136. data/lib/ronin/static/finders.rb +1 -4
  137. data/lib/ronin/static/static.rb +16 -7
  138. data/lib/ronin/templates.rb +2 -4
  139. data/lib/ronin/templates/erb.rb +24 -10
  140. data/lib/ronin/templates/template.rb +130 -0
  141. data/lib/ronin/ui.rb +2 -6
  142. data/lib/ronin/ui/command_line.rb +1 -4
  143. data/lib/ronin/ui/command_line/command.rb +137 -68
  144. data/lib/ronin/ui/command_line/command_line.rb +52 -29
  145. data/lib/ronin/ui/command_line/commands/add.rb +39 -67
  146. data/lib/ronin/ui/command_line/commands/console.rb +23 -27
  147. data/lib/ronin/ui/command_line/commands/help.rb +10 -29
  148. data/lib/ronin/ui/command_line/commands/install.rb +31 -56
  149. data/lib/ronin/ui/command_line/commands/list.rb +34 -52
  150. data/lib/ronin/ui/command_line/commands/remove.rb +12 -32
  151. data/lib/ronin/ui/command_line/commands/uninstall.rb +11 -31
  152. data/lib/ronin/ui/command_line/commands/update.rb +15 -35
  153. data/lib/ronin/ui/command_line/exceptions.rb +1 -4
  154. data/lib/ronin/ui/command_line/exceptions/unknown_command.rb +1 -4
  155. data/lib/ronin/ui/console.rb +54 -23
  156. data/lib/ronin/ui/hexdump.rb +1 -4
  157. data/lib/ronin/ui/hexdump/extensions.rb +1 -4
  158. data/lib/ronin/ui/hexdump/extensions/file.rb +8 -6
  159. data/lib/ronin/ui/hexdump/extensions/kernel.rb +4 -5
  160. data/lib/ronin/ui/hexdump/hexdump.rb +8 -5
  161. data/lib/ronin/{sessions/exceptions.rb → ui/output.rb} +3 -5
  162. data/lib/ronin/ui/output/handler.rb +121 -0
  163. data/lib/ronin/ui/output/helpers.rb +110 -0
  164. data/lib/ronin/ui/output/output.rb +144 -0
  165. data/lib/ronin/ui/shell.rb +38 -12
  166. data/lib/ronin/version.rb +2 -5
  167. data/lib/ronin/{sessions/exceptions/variable_missing.rb → yard.rb} +2 -10
  168. data/lib/ronin/{ronin.rb → yard/handlers.rb} +5 -15
  169. data/lib/ronin/yard/handlers/ruby.rb +27 -0
  170. data/lib/ronin/yard/handlers/ruby/base.rb +27 -0
  171. data/lib/ronin/yard/handlers/ruby/belongs_to_handler.rb +45 -0
  172. data/lib/ronin/yard/handlers/ruby/eval_block_handler.rb +18 -0
  173. data/lib/ronin/yard/handlers/ruby/has_handler.rb +49 -0
  174. data/lib/ronin/yard/handlers/ruby/legacy.rb +26 -0
  175. data/lib/ronin/yard/handlers/ruby/legacy/belongs_to_handler.rb +41 -0
  176. data/lib/ronin/yard/handlers/ruby/legacy/eval_block_handler.rb +19 -0
  177. data/lib/ronin/yard/handlers/ruby/legacy/has_handler.rb +34 -0
  178. data/lib/ronin/yard/handlers/ruby/legacy/metaclass_eval_handler.rb +21 -0
  179. data/lib/ronin/yard/handlers/ruby/legacy/property_handler.rb +41 -0
  180. data/lib/ronin/yard/handlers/ruby/legacy/scanner_handler.rb +61 -0
  181. data/lib/ronin/yard/handlers/ruby/metaclass_eval_handler.rb +18 -0
  182. data/lib/ronin/yard/handlers/ruby/property_handler.rb +45 -0
  183. data/lib/ronin/yard/handlers/ruby/scanner_handler.rb +66 -0
  184. data/spec/author_spec.rb +3 -3
  185. data/spec/extensions/classes/some_class.rb +2 -0
  186. data/spec/extensions/kernel_spec.rb +17 -0
  187. data/spec/extensions/uri/http_spec.rb +0 -31
  188. data/spec/formatting/binary/integer_spec.rb +4 -0
  189. data/spec/formatting/text/string_spec.rb +96 -0
  190. data/spec/license_spec.rb +6 -6
  191. data/spec/model/classes/basic_model.rb +13 -0
  192. data/spec/model/classes/custom_model.rb +17 -0
  193. data/spec/model/classes/described_model.rb +10 -0
  194. data/spec/model/has_description_spec.rb +42 -0
  195. data/spec/model/has_license_spec.rb +18 -4
  196. data/spec/model/model_spec.rb +68 -0
  197. data/spec/network/helpers/classes/test_helper.rb +11 -0
  198. data/spec/network/helpers/classes/uses_test_helper.rb +10 -0
  199. data/spec/network/helpers/helper_spec.rb +25 -0
  200. data/spec/network/{http_spec.rb → http/http_spec.rb} +0 -0
  201. data/spec/network/http/proxy_spec.rb +116 -0
  202. data/spec/os_spec.rb +4 -4
  203. data/spec/platform/extension_cache_spec.rb +14 -0
  204. data/spec/platform/extension_spec.rb +11 -0
  205. data/spec/platform/platform_spec.rb +8 -0
  206. data/spec/product_spec.rb +9 -9
  207. data/spec/spec_helper.rb +1 -1
  208. data/spec/templates/classes/{uses_erb.rb → example_erb.rb} +1 -1
  209. data/spec/templates/classes/example_template.rb +21 -0
  210. data/spec/templates/erb_spec.rb +2 -2
  211. data/spec/templates/helpers/static.rb +5 -0
  212. data/spec/templates/helpers/static/templates/_relative.erb +1 -0
  213. data/spec/templates/helpers/static/templates/example.erb +1 -0
  214. data/spec/templates/template_spec.rb +41 -0
  215. data/spec/ui/command_line/classes/test_command.rb +23 -0
  216. data/spec/ui/command_line/command_spec.rb +31 -0
  217. data/spec/ui/output_spec.rb +29 -0
  218. data/static/ronin/platform/overlay.xsl +135 -114
  219. data/tasks/spec.rb +1 -0
  220. data/tasks/yard.rb +18 -0
  221. metadata +98 -59
  222. metadata.gz.sig +0 -0
  223. data/TODO.txt +0 -15
  224. data/lib/ronin/extensions/hash.rb +0 -62
  225. data/lib/ronin/sessions/esmtp.rb +0 -57
  226. data/lib/ronin/sessions/http.rb +0 -678
  227. data/lib/ronin/sessions/imap.rb +0 -54
  228. data/lib/ronin/sessions/pop3.rb +0 -52
  229. data/lib/ronin/sessions/smtp.rb +0 -57
  230. data/lib/ronin/sessions/tcp.rb +0 -100
  231. data/lib/ronin/sessions/telnet.rb +0 -55
  232. data/lib/ronin/sessions/udp.rb +0 -73
  233. data/lib/ronin/ui/command_line/options.rb +0 -136
  234. data/lib/ronin/ui/diagnostics.rb +0 -66
  235. data/lib/ronin/ui/verbose.rb +0 -58
  236. data/spec/extensions/hash_spec.rb +0 -38
  237. data/spec/sessions/classes/test_session.rb +0 -11
  238. data/spec/sessions/classes/uses_test_session.rb +0 -10
  239. data/spec/sessions/session_spec.rb +0 -25
  240. data/spec/ui/verbose_spec.rb +0 -17
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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