ronin 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +19 -1
- data/Manifest.txt +8 -17
- data/README.txt +0 -4
- data/Rakefile +14 -15
- data/TODO.txt +1 -2
- data/lib/ronin.rb +2 -2
- data/lib/ronin/extensions.rb +1 -0
- data/lib/ronin/extensions/file.rb +33 -0
- data/lib/ronin/formatting/extensions/http/string.rb +12 -0
- data/lib/ronin/formatting/extensions/text/string.rb +4 -4
- data/lib/ronin/model.rb +8 -0
- data/lib/ronin/objectify/exceptions/object_context_not_found.rb +3 -1
- data/lib/ronin/objectify/exceptions/unknown_object_context.rb +3 -1
- data/lib/ronin/sessions/telnet.rb +5 -2
- data/lib/ronin/{web.rb → translators.rb} +1 -2
- data/lib/ronin/{hexdump.rb → ui.rb} +2 -2
- data/lib/ronin/{hexdump/extensions.rb → ui/hexdump.rb} +2 -2
- data/lib/ronin/ui/hexdump/extensions.rb +25 -0
- data/lib/ronin/{hexdump → ui/hexdump}/extensions/file.rb +2 -2
- data/lib/ronin/{hexdump → ui/hexdump}/extensions/kernel.rb +2 -2
- data/lib/ronin/ui/hexdump/hexdump.rb +78 -0
- data/lib/ronin/version.rb +1 -1
- data/spec/formatting/html_spec.rb +9 -0
- data/spec/formatting/http_spec.rb +9 -0
- data/spec/formatting/text_spec.rb +20 -1
- metadata +12 -51
- data/lib/ronin/hexdump/hexdump.rb +0 -76
- data/lib/ronin/sessions/web.rb +0 -78
- data/lib/ronin/web/extensions.rb +0 -1
- data/lib/ronin/web/extensions/hpricot.rb +0 -5
- data/lib/ronin/web/extensions/hpricot/comment.rb +0 -19
- data/lib/ronin/web/extensions/hpricot/container.rb +0 -46
- data/lib/ronin/web/extensions/hpricot/doc.rb +0 -21
- data/lib/ronin/web/extensions/hpricot/elem.rb +0 -25
- data/lib/ronin/web/extensions/hpricot/tag.rb +0 -19
- data/lib/ronin/web/extensions/hpricot/text.rb +0 -19
- data/lib/ronin/web/web.rb +0 -331
- data/spec/web/extensions/hpricot_spec.rb +0 -62
data/History.txt
CHANGED
@@ -1,4 +1,22 @@
|
|
1
|
-
=== 0.1.
|
1
|
+
=== 0.1.4 / 2009-01-22
|
2
|
+
|
3
|
+
* Moved Ronin::Web and Ronin::Sessions::Web into the ronin-web library.
|
4
|
+
* Removed dependencies to hpricot, mechanize, spidr and rack.
|
5
|
+
* Moved Hexdump into the Ronin::UI namespace.
|
6
|
+
* Require parameters >= 0.1.3:
|
7
|
+
* Parameters 0.1.3 adds support for using lambdas as the default values
|
8
|
+
of parameters.
|
9
|
+
* Temporarily added Ronin::Model.first_or_new:
|
10
|
+
* Will be removed once dkubb's version of first_or_new is merged into
|
11
|
+
dm-core.
|
12
|
+
* Added the File.write method.
|
13
|
+
* Added specs for String#format_http and String#format_html.
|
14
|
+
* Fixed a formatting bug in String#format_chars and String#format_bytes.
|
15
|
+
* Fixed typos.
|
16
|
+
* Automatically load 'ronin/ui/hexdump' when starting the
|
17
|
+
Ronin::UI::Console.
|
18
|
+
|
19
|
+
=== 0.1.3 / 2009-01-08
|
2
20
|
|
3
21
|
* Moved Context into the Contextify library.
|
4
22
|
* Require dm-core >= 0.9.9.
|
data/Manifest.txt
CHANGED
@@ -15,6 +15,7 @@ lib/ronin/extensions/uri.rb
|
|
15
15
|
lib/ronin/extensions/uri/query_params.rb
|
16
16
|
lib/ronin/extensions/uri/http.rb
|
17
17
|
lib/ronin/extensions/string.rb
|
18
|
+
lib/ronin/extensions/file.rb
|
18
19
|
lib/ronin/formatting.rb
|
19
20
|
lib/ronin/formatting/digest.rb
|
20
21
|
lib/ronin/formatting/binary.rb
|
@@ -33,14 +34,10 @@ lib/ronin/formatting/extensions/html.rb
|
|
33
34
|
lib/ronin/formatting/extensions/html/string.rb
|
34
35
|
lib/ronin/formatting/extensions/http.rb
|
35
36
|
lib/ronin/formatting/extensions/http/string.rb
|
36
|
-
lib/ronin/hexdump.rb
|
37
|
-
lib/ronin/hexdump/hexdump.rb
|
38
|
-
lib/ronin/hexdump/extensions.rb
|
39
|
-
lib/ronin/hexdump/extensions/file.rb
|
40
|
-
lib/ronin/hexdump/extensions/kernel.rb
|
41
37
|
lib/ronin/chars.rb
|
42
38
|
lib/ronin/chars/char_set.rb
|
43
39
|
lib/ronin/chars/chars.rb
|
40
|
+
lib/ronin/translators.rb
|
44
41
|
lib/ronin/translators/translator.rb
|
45
42
|
lib/ronin/path.rb
|
46
43
|
lib/ronin/network.rb
|
@@ -88,16 +85,6 @@ lib/ronin/rpc/client.rb
|
|
88
85
|
lib/ronin/rpc/service.rb
|
89
86
|
lib/ronin/rpc/console.rb
|
90
87
|
lib/ronin/rpc/shell.rb
|
91
|
-
lib/ronin/web.rb
|
92
|
-
lib/ronin/web/extensions.rb
|
93
|
-
lib/ronin/web/extensions/hpricot.rb
|
94
|
-
lib/ronin/web/extensions/hpricot/tag.rb
|
95
|
-
lib/ronin/web/extensions/hpricot/text.rb
|
96
|
-
lib/ronin/web/extensions/hpricot/comment.rb
|
97
|
-
lib/ronin/web/extensions/hpricot/elem.rb
|
98
|
-
lib/ronin/web/extensions/hpricot/container.rb
|
99
|
-
lib/ronin/web/extensions/hpricot/doc.rb
|
100
|
-
lib/ronin/web/web.rb
|
101
88
|
lib/ronin/sessions.rb
|
102
89
|
lib/ronin/sessions/session.rb
|
103
90
|
lib/ronin/sessions/tcp.rb
|
@@ -108,7 +95,6 @@ lib/ronin/sessions/pop3.rb
|
|
108
95
|
lib/ronin/sessions/imap.rb
|
109
96
|
lib/ronin/sessions/telnet.rb
|
110
97
|
lib/ronin/sessions/http.rb
|
111
|
-
lib/ronin/sessions/web.rb
|
112
98
|
lib/ronin/database.rb
|
113
99
|
lib/ronin/database/exceptions.rb
|
114
100
|
lib/ronin/database/exceptions/invalid_config.rb
|
@@ -140,6 +126,12 @@ lib/ronin/cache/extension_cache.rb
|
|
140
126
|
lib/ronin/cache/extension.rb
|
141
127
|
lib/ronin/cache/cache.rb
|
142
128
|
lib/ronin/cache/ronin.rb
|
129
|
+
lib/ronin/ui.rb
|
130
|
+
lib/ronin/ui/hexdump.rb
|
131
|
+
lib/ronin/ui/hexdump/hexdump.rb
|
132
|
+
lib/ronin/ui/hexdump/extensions.rb
|
133
|
+
lib/ronin/ui/hexdump/extensions/file.rb
|
134
|
+
lib/ronin/ui/hexdump/extensions/kernel.rb
|
143
135
|
lib/ronin/ui/console.rb
|
144
136
|
lib/ronin/ui/shell.rb
|
145
137
|
lib/ronin/ui/command_line.rb
|
@@ -183,7 +175,6 @@ spec/formatting/http_spec.rb
|
|
183
175
|
spec/formatting/text_spec.rb
|
184
176
|
spec/code/reference_spec.rb
|
185
177
|
spec/code/symbol_table_spec.rb
|
186
|
-
spec/web/extensions/hpricot_spec.rb
|
187
178
|
spec/license_spec.rb
|
188
179
|
spec/path_spec.rb
|
189
180
|
spec/platform_spec.rb
|
data/README.txt
CHANGED
@@ -61,7 +61,6 @@ of Ronin.
|
|
61
61
|
* Imap
|
62
62
|
* Telnet
|
63
63
|
* HTTP
|
64
|
-
* Web access (utilizing Mechanize and Hpricot).
|
65
64
|
* Provides an IRB styled console with:
|
66
65
|
* Tab-completion enabled.
|
67
66
|
* Auto-indentation enabled.
|
@@ -69,9 +68,6 @@ of Ronin.
|
|
69
68
|
|
70
69
|
== REQUIREMENTS:
|
71
70
|
|
72
|
-
* hpricot
|
73
|
-
* mechanize
|
74
|
-
* spidr >= 0.1.3
|
75
71
|
* DataMapper:
|
76
72
|
* dm-core >= 0.9.9
|
77
73
|
* data_objects >= 0.9.9
|
data/Rakefile
CHANGED
@@ -9,21 +9,20 @@ Hoe.new('ronin', Ronin::VERSION) do |p|
|
|
9
9
|
p.rubyforge_name = 'ronin'
|
10
10
|
p.developer('Postmodern','postmodern.mod3@gmail.com')
|
11
11
|
p.remote_rdoc_dir = 'docs/ronin'
|
12
|
-
p.extra_deps = [
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
['repertoire', '>=0.1.2']]
|
12
|
+
p.extra_deps = [
|
13
|
+
['dm-core', '>=0.9.9'],
|
14
|
+
['data_objects', '>=0.9.9'],
|
15
|
+
['do_sqlite3', '>=0.9.9'],
|
16
|
+
['dm-types', '>=0.9.9'],
|
17
|
+
['dm-serializer', '>=0.9.9'],
|
18
|
+
['dm-aggregates', '>=0.9.9'],
|
19
|
+
['dm-validations', '>=0.9.9'],
|
20
|
+
['dm-predefined', '>=0.1.0'],
|
21
|
+
['parameters', '>=0.1.3'],
|
22
|
+
['contextify', '>=0.1.0'],
|
23
|
+
['reverse-require', '>=0.3.1'],
|
24
|
+
['repertoire', '>=0.1.2']
|
25
|
+
]
|
27
26
|
end
|
28
27
|
|
29
28
|
# vim: syntax=Ruby
|
data/TODO.txt
CHANGED
data/lib/ronin.rb
CHANGED
@@ -21,14 +21,14 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/extensions'
|
25
24
|
require 'ronin/config'
|
25
|
+
require 'ronin/extensions'
|
26
26
|
require 'ronin/formatting'
|
27
27
|
require 'ronin/chars'
|
28
28
|
require 'ronin/path'
|
29
29
|
require 'ronin/network'
|
30
|
-
require 'ronin/web'
|
31
30
|
require 'ronin/models'
|
31
|
+
require 'ronin/ui'
|
32
32
|
require 'ronin/ronin'
|
33
33
|
require 'ronin/version'
|
34
34
|
|
data/lib/ronin/extensions.rb
CHANGED
@@ -0,0 +1,33 @@
|
|
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
|
+
class File
|
25
|
+
|
26
|
+
#
|
27
|
+
# Writes the specified _data_ to the specified _path_.
|
28
|
+
#
|
29
|
+
def File.write(path,data)
|
30
|
+
File.open(path,'w') { |file| file.write(data) }
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -21,6 +21,8 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
+
require 'ronin/formatting/extensions/text'
|
25
|
+
|
24
26
|
require 'uri'
|
25
27
|
require 'cgi'
|
26
28
|
|
@@ -66,4 +68,14 @@ class String
|
|
66
68
|
CGI.unescape(self)
|
67
69
|
end
|
68
70
|
|
71
|
+
#
|
72
|
+
# Returns the HTTP hexidecimal encoded form of the string.
|
73
|
+
#
|
74
|
+
# "hello".format_http
|
75
|
+
# # => "hello"
|
76
|
+
#
|
77
|
+
def format_http(options={})
|
78
|
+
format_bytes(options) { |c| sprintf("%%%x",c) }
|
79
|
+
end
|
80
|
+
|
69
81
|
end
|
@@ -38,16 +38,16 @@ class String
|
|
38
38
|
included = (options[:included] || Ronin::Chars.all)
|
39
39
|
excluded = (options[:excluded] || [])
|
40
40
|
|
41
|
-
|
41
|
+
targeted = included - excluded
|
42
42
|
formatted = ''
|
43
43
|
|
44
44
|
self.each_byte do |b|
|
45
45
|
c = b.chr
|
46
46
|
|
47
|
-
if
|
48
|
-
|
47
|
+
if targeted.include_byte?(b)
|
48
|
+
formatted << block.call(c)
|
49
49
|
else
|
50
|
-
|
50
|
+
formatted << c
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
data/lib/ronin/model.rb
CHANGED
@@ -49,6 +49,14 @@ module Ronin
|
|
49
49
|
|
50
50
|
# The class type property
|
51
51
|
property :type, Discriminator
|
52
|
+
|
53
|
+
#
|
54
|
+
# Finds the first resource by conditions, or initializes a new
|
55
|
+
# resource with the attributes if none found.
|
56
|
+
#
|
57
|
+
def self.first_or_new(query,attributes={})
|
58
|
+
first(query) || new(query.merge(attributes))
|
59
|
+
end
|
52
60
|
end
|
53
61
|
end
|
54
62
|
end
|
@@ -31,8 +31,11 @@ module Ronin
|
|
31
31
|
|
32
32
|
setup_session do
|
33
33
|
parameter :host, :description => 'Telnet host'
|
34
|
-
parameter :port,
|
35
|
-
|
34
|
+
parameter :port,
|
35
|
+
:default => lambda {
|
36
|
+
Ronin::Network::Telnet.default_port
|
37
|
+
},
|
38
|
+
:description => 'Telnet port'
|
36
39
|
|
37
40
|
parameter :telnet_user, :description => 'Telnet user'
|
38
41
|
parameter :telnet_password, :description => 'Telnet password'
|
@@ -0,0 +1,25 @@
|
|
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 'ronin/ui/hexdump/extensions/file'
|
25
|
+
require 'ronin/ui/hexdump/extensions/kernel'
|
@@ -21,7 +21,7 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/hexdump/hexdump'
|
24
|
+
require 'ronin/ui/hexdump/hexdump'
|
25
25
|
|
26
26
|
class File
|
27
27
|
|
@@ -30,7 +30,7 @@ class File
|
|
30
30
|
# to the given _output_ stream.
|
31
31
|
#
|
32
32
|
def self.hexdump(path,output=STDOUT)
|
33
|
-
Ronin::Hexdump.dump(self.open(path),output)
|
33
|
+
Ronin::UI::Hexdump.dump(self.open(path),output)
|
34
34
|
end
|
35
35
|
|
36
36
|
end
|
@@ -21,13 +21,13 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/hexdump/hexdump'
|
24
|
+
require 'ronin/ui/hexdump/hexdump'
|
25
25
|
|
26
26
|
module Kernel
|
27
27
|
#
|
28
28
|
# Hexdumps the specified _object_ to the given _output_ stream.
|
29
29
|
#
|
30
30
|
def hexdump(object,output=STDOUT)
|
31
|
-
Ronin::Hexdump.dump(object,output)
|
31
|
+
Ronin::UI::Hexdump.dump(object,output)
|
32
32
|
end
|
33
33
|
end
|
@@ -0,0 +1,78 @@
|
|
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
|
+
module Ronin
|
25
|
+
module UI
|
26
|
+
module Hexdump
|
27
|
+
#
|
28
|
+
# Hexdumps the specified _object_ to the given _output_ stream.
|
29
|
+
#
|
30
|
+
def Hexdump.dump(object,output=STDOUT)
|
31
|
+
index = 0
|
32
|
+
offset = 0
|
33
|
+
hex_segment = nil
|
34
|
+
print_segment = nil
|
35
|
+
|
36
|
+
segment = lambda {
|
37
|
+
output.printf(
|
38
|
+
"%.8x %s |%s|\n",
|
39
|
+
index,
|
40
|
+
hex_segment.join(' ').ljust(47).insert(23,' '),
|
41
|
+
print_segment
|
42
|
+
)
|
43
|
+
}
|
44
|
+
|
45
|
+
object.each_byte do |b|
|
46
|
+
if offset == 0
|
47
|
+
hex_segment = []
|
48
|
+
print_segment = []
|
49
|
+
end
|
50
|
+
|
51
|
+
hex_segment << ("%.2x" % b)
|
52
|
+
|
53
|
+
print_segment[offset] = case b
|
54
|
+
when (0x20..0x7e)
|
55
|
+
b.chr
|
56
|
+
else
|
57
|
+
'.'
|
58
|
+
end
|
59
|
+
|
60
|
+
offset += 1
|
61
|
+
|
62
|
+
if (offset >= 16)
|
63
|
+
segment.call
|
64
|
+
|
65
|
+
offset = 0
|
66
|
+
index += 16
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
unless offset == 0
|
71
|
+
segment.call
|
72
|
+
end
|
73
|
+
|
74
|
+
return nil
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|