ronin 1.0.0.pre3 → 1.0.0.pre4
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING.txt +623 -288
- data/ChangeLog.md +21 -2
- data/Gemfile +5 -12
- data/README.md +6 -7
- data/gemspec.yml +3 -3
- data/lib/ronin.rb +6 -7
- data/lib/ronin/address.rb +18 -7
- data/lib/ronin/arch.rb +6 -7
- data/lib/ronin/author.rb +6 -7
- data/lib/ronin/bootstrap.rb +6 -8
- data/lib/ronin/cached_file.rb +6 -7
- data/lib/ronin/campaign.rb +10 -11
- data/lib/ronin/class_methods.rb +6 -7
- data/lib/ronin/config.rb +6 -7
- data/lib/ronin/credential.rb +19 -8
- data/lib/ronin/database.rb +6 -7
- data/lib/ronin/database/database.rb +8 -9
- data/lib/ronin/database/exceptions.rb +6 -7
- data/lib/ronin/database/exceptions/invalid_config.rb +6 -7
- data/lib/ronin/database/exceptions/unknown_repository.rb +6 -7
- data/lib/ronin/database/migrations.rb +6 -7
- data/lib/ronin/database/migrations/create_addresses_table.rb +6 -7
- data/lib/ronin/database/migrations/create_arches_table.rb +6 -7
- data/lib/ronin/database/migrations/create_authors_table.rb +6 -7
- data/lib/ronin/database/migrations/create_cached_files_table.rb +6 -7
- data/lib/ronin/database/migrations/create_campaigns_table.rb +8 -7
- data/lib/ronin/database/migrations/create_countries_table.rb +6 -7
- data/lib/ronin/database/migrations/create_credentials_table.rb +16 -10
- data/lib/ronin/database/migrations/create_email_addresses_table.rb +10 -11
- data/lib/ronin/database/migrations/create_host_name_ip_addresses_table.rb +14 -9
- data/lib/ronin/database/migrations/create_ip_address_mac_addresses_table.rb +14 -9
- data/lib/ronin/database/migrations/create_licenses_table.rb +6 -7
- data/lib/ronin/database/migrations/create_open_ports_table.rb +11 -7
- data/lib/ronin/database/migrations/create_organizations_table.rb +8 -7
- data/lib/ronin/database/migrations/create_os_guesses_table.rb +13 -9
- data/lib/ronin/database/migrations/create_os_table.rb +6 -7
- data/lib/ronin/database/migrations/create_passwords_table.rb +6 -7
- data/lib/ronin/database/migrations/create_ports_table.rb +6 -7
- data/lib/ronin/database/migrations/create_proxies_table.rb +6 -7
- data/lib/ronin/database/migrations/create_remote_files_table.rb +6 -7
- data/lib/ronin/database/migrations/create_repositories_table.rb +6 -7
- data/lib/ronin/database/migrations/create_services_table.rb +6 -8
- data/lib/ronin/database/migrations/create_softwares_table.rb +6 -7
- data/lib/ronin/database/migrations/create_taggings_table.rb +6 -7
- data/lib/ronin/database/migrations/create_tags_table.rb +6 -7
- data/lib/ronin/database/migrations/create_targets_table.rb +7 -8
- data/lib/ronin/database/migrations/create_url_query_params_table.rb +6 -7
- data/lib/ronin/database/migrations/create_url_schemes_table.rb +6 -7
- data/lib/ronin/database/migrations/create_urls_table.rb +16 -9
- data/lib/ronin/database/migrations/create_user_names_table.rb +6 -7
- data/lib/ronin/database/migrations/create_vendors_table.rb +6 -7
- data/lib/ronin/database/migrations/exceptions.rb +6 -7
- data/lib/ronin/database/migrations/exceptions/duplicate_migration.rb +6 -7
- data/lib/ronin/database/migrations/exceptions/unknown_migration.rb +6 -7
- data/lib/ronin/database/migrations/graph.rb +19 -0
- data/lib/ronin/database/migrations/migration.rb +6 -7
- data/lib/ronin/database/migrations/migrations.rb +6 -7
- data/lib/ronin/email_address.rb +34 -13
- data/lib/ronin/engine.rb +6 -7
- data/lib/ronin/engine/buildable.rb +6 -7
- data/lib/ronin/engine/class_methods.rb +6 -7
- data/lib/ronin/engine/deployable.rb +6 -7
- data/lib/ronin/engine/engine.rb +6 -7
- data/lib/ronin/engine/exceptions.rb +6 -7
- data/lib/ronin/engine/exceptions/deploy_failed.rb +6 -7
- data/lib/ronin/engine/exceptions/not_built.rb +6 -7
- data/lib/ronin/engine/exceptions/verification_failed.rb +6 -7
- data/lib/ronin/engine/instance_methods.rb +6 -7
- data/lib/ronin/engine/verifiable.rb +6 -7
- data/lib/ronin/environment.rb +11 -7
- data/lib/ronin/exceptions.rb +6 -7
- data/lib/ronin/exceptions/duplicate_repository.rb +6 -7
- data/lib/ronin/exceptions/repository_not_found.rb +6 -7
- data/lib/ronin/host_name.rb +40 -22
- data/lib/ronin/host_name_ip_address.rb +11 -9
- data/lib/ronin/installation.rb +6 -7
- data/lib/ronin/ip_address.rb +41 -33
- data/lib/ronin/ip_address_mac_address.rb +11 -9
- data/lib/ronin/license.rb +6 -7
- data/lib/ronin/mac_address.rb +8 -13
- data/lib/ronin/model.rb +6 -7
- data/lib/ronin/model/cacheable.rb +6 -7
- data/lib/ronin/model/cacheable/cacheable.rb +6 -7
- data/lib/ronin/model/cacheable/class_methods.rb +6 -7
- data/lib/ronin/model/class_methods.rb +6 -7
- data/lib/ronin/model/has_authors.rb +6 -7
- data/lib/ronin/model/has_authors/class_methods.rb +8 -9
- data/lib/ronin/model/has_authors/has_authors.rb +6 -7
- data/lib/ronin/model/has_description.rb +6 -7
- data/lib/ronin/model/has_description/class_methods.rb +7 -8
- data/lib/ronin/model/has_description/has_description.rb +6 -7
- data/lib/ronin/model/has_license.rb +6 -7
- data/lib/ronin/model/has_license/class_methods.rb +7 -8
- data/lib/ronin/model/has_license/has_license.rb +6 -7
- data/lib/ronin/model/has_name.rb +6 -7
- data/lib/ronin/model/has_name/class_methods.rb +7 -12
- data/lib/ronin/model/has_name/has_name.rb +6 -7
- data/lib/ronin/model/has_title.rb +6 -7
- data/lib/ronin/model/has_title/class_methods.rb +7 -8
- data/lib/ronin/model/has_title/has_title.rb +6 -7
- data/lib/ronin/model/has_unique_name.rb +18 -7
- data/lib/ronin/model/has_version.rb +6 -7
- data/lib/ronin/model/has_version/class_methods.rb +7 -8
- data/lib/ronin/model/has_version/has_version.rb +6 -7
- data/lib/ronin/model/model.rb +6 -7
- data/lib/ronin/model/types.rb +6 -7
- data/lib/ronin/model/types/description.rb +6 -7
- data/lib/ronin/network/mixins.rb +11 -13
- data/lib/ronin/network/mixins/esmtp.rb +11 -13
- data/lib/ronin/network/mixins/http.rb +11 -13
- data/lib/ronin/network/mixins/imap.rb +11 -13
- data/lib/ronin/network/mixins/pop3.rb +11 -13
- data/lib/ronin/network/mixins/smtp.rb +11 -13
- data/lib/ronin/network/mixins/tcp.rb +11 -13
- data/lib/ronin/network/mixins/telnet.rb +11 -13
- data/lib/ronin/network/mixins/udp.rb +11 -13
- data/lib/ronin/open_port.rb +11 -11
- data/lib/ronin/organization.rb +8 -9
- data/lib/ronin/os.rb +6 -7
- data/lib/ronin/os_guess.rb +14 -12
- data/lib/ronin/password.rb +18 -7
- data/lib/ronin/port.rb +18 -7
- data/lib/ronin/proxy.rb +6 -7
- data/lib/ronin/proxy_credential.rb +6 -7
- data/lib/ronin/remote_file.rb +13 -11
- data/lib/ronin/repository.rb +8 -12
- data/lib/ronin/ronin.rb +6 -7
- data/lib/ronin/service.rb +8 -23
- data/lib/ronin/service_credential.rb +6 -7
- data/lib/ronin/software.rb +6 -7
- data/lib/ronin/spec/database.rb +6 -7
- data/lib/ronin/spec/ui/output.rb +6 -7
- data/lib/ronin/target.rb +11 -9
- data/lib/ronin/tcp_port.rb +6 -7
- data/lib/ronin/udp_port.rb +6 -7
- data/lib/ronin/ui.rb +6 -7
- data/lib/ronin/ui/cli.rb +6 -7
- data/lib/ronin/ui/cli/cli.rb +6 -7
- data/lib/ronin/ui/cli/command.rb +6 -7
- data/lib/ronin/ui/cli/commands.rb +6 -7
- data/lib/ronin/ui/cli/commands/campaigns.rb +6 -7
- data/lib/ronin/ui/cli/commands/console.rb +7 -8
- data/lib/ronin/ui/cli/commands/creds.rb +6 -7
- data/lib/ronin/ui/cli/commands/database.rb +6 -7
- data/lib/ronin/ui/cli/commands/emails.rb +6 -7
- data/lib/ronin/ui/cli/commands/exec.rb +6 -7
- data/lib/ronin/ui/cli/commands/help.rb +6 -7
- data/lib/ronin/ui/cli/commands/hosts.rb +10 -9
- data/lib/ronin/ui/cli/commands/ips.rb +10 -9
- data/lib/ronin/ui/cli/commands/repos.rb +6 -7
- data/lib/ronin/ui/cli/commands/urls.rb +6 -7
- data/lib/ronin/ui/cli/engine_command.rb +6 -7
- data/lib/ronin/ui/cli/exceptions.rb +6 -7
- data/lib/ronin/ui/cli/exceptions/unknown_command.rb +6 -7
- data/lib/ronin/ui/cli/model_command.rb +6 -7
- data/lib/ronin/ui/console.rb +8 -12
- data/lib/ronin/ui/hexdump.rb +6 -7
- data/lib/ronin/ui/hexdump/extensions.rb +6 -7
- data/lib/ronin/ui/hexdump/extensions/file.rb +6 -7
- data/lib/ronin/ui/hexdump/extensions/kernel.rb +6 -7
- data/lib/ronin/ui/hexdump/hexdump.rb +13 -7
- data/lib/ronin/ui/output.rb +6 -7
- data/lib/ronin/ui/output/helpers.rb +6 -7
- data/lib/ronin/ui/output/output.rb +6 -7
- data/lib/ronin/ui/output/terminal.rb +6 -7
- data/lib/ronin/ui/output/terminal/color.rb +6 -7
- data/lib/ronin/ui/output/terminal/raw.rb +6 -7
- data/lib/ronin/ui/shell.rb +6 -7
- data/lib/ronin/url.rb +123 -30
- data/lib/ronin/url_query_param.rb +32 -7
- data/lib/ronin/url_scheme.rb +6 -7
- data/lib/ronin/user_name.rb +6 -7
- data/lib/ronin/vendor.rb +6 -7
- data/lib/ronin/version.rb +7 -8
- data/lib/ronin/web_credential.rb +52 -8
- data/spec/arch_spec.rb +7 -0
- data/spec/author_spec.rb +1 -1
- data/spec/campaign_spec.rb +1 -1
- data/spec/credential_spec.rb +33 -0
- data/spec/database_spec.rb +23 -0
- data/spec/email_address_spec.rb +15 -0
- data/spec/engine/buildable_spec.rb +2 -2
- data/spec/engine/deployable_spec.rb +2 -2
- data/spec/host_name_spec.rb +20 -0
- data/spec/ip_address.rb +20 -3
- data/spec/model/cacheable_spec.rb +1 -1
- data/spec/model/has_description_spec.rb +1 -1
- data/spec/os_spec.rb +26 -0
- data/spec/password_spec.rb +4 -0
- data/spec/port_spec.rb +43 -0
- data/spec/repository_spec.rb +10 -10
- data/spec/service_spec.rb +18 -0
- data/spec/software_spec.rb +15 -5
- data/spec/url_query_param_spec.rb +30 -0
- data/spec/url_scheme_spec.rb +18 -0
- data/spec/url_spec.rb +54 -37
- metadata +18 -9
- data/lib/ronin/ui/async_console.rb +0 -130
data/lib/ronin/os.rb
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
#
|
2
|
-
#
|
2
|
+
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# This file is part of Ronin.
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# Ronin is free software: you can redistribute it and/or modify
|
7
7
|
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
9
|
# (at your option) any later version.
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# Ronin is distributed in the hope that it will be useful,
|
12
12
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
13
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
14
|
# GNU General Public License for more details.
|
15
15
|
#
|
16
16
|
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with
|
18
|
-
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
19
18
|
#
|
20
19
|
|
21
20
|
require 'ronin/model'
|
data/lib/ronin/os_guess.rb
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
#
|
2
|
-
#
|
2
|
+
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# This file is part of Ronin.
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# Ronin is free software: you can redistribute it and/or modify
|
7
7
|
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
9
|
# (at your option) any later version.
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# Ronin is distributed in the hope that it will be useful,
|
12
12
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
13
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
14
|
# GNU General Public License for more details.
|
15
15
|
#
|
16
16
|
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with
|
18
|
-
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
19
18
|
#
|
20
19
|
|
21
20
|
require 'ronin/ip_address'
|
@@ -29,13 +28,16 @@ module Ronin
|
|
29
28
|
|
30
29
|
include Model
|
31
30
|
|
32
|
-
# The
|
33
|
-
|
31
|
+
# The primary-key of the OS guess.
|
32
|
+
property :id, Serial
|
34
33
|
|
35
|
-
# The
|
36
|
-
belongs_to :
|
34
|
+
# The IP Address the OS guess was made against.
|
35
|
+
belongs_to :ip_address, :model => 'IPAddress'
|
37
36
|
|
38
|
-
#
|
37
|
+
# The guessed OS.
|
38
|
+
belongs_to :os, :model => 'OS'
|
39
|
+
|
40
|
+
# Tracks when an OS guess is made against an IP Address.
|
39
41
|
timestamps :created_at
|
40
42
|
|
41
43
|
end
|
data/lib/ronin/password.rb
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
#
|
2
|
-
#
|
2
|
+
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# This file is part of Ronin.
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# Ronin is free software: you can redistribute it and/or modify
|
7
7
|
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
9
|
# (at your option) any later version.
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# Ronin is distributed in the hope that it will be useful,
|
12
12
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
13
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
14
|
# GNU General Public License for more details.
|
15
15
|
#
|
16
16
|
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with
|
18
|
-
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
19
18
|
#
|
20
19
|
|
21
20
|
require 'ronin/credential'
|
@@ -122,5 +121,17 @@ module Ronin
|
|
122
121
|
self.clear_text
|
123
122
|
end
|
124
123
|
|
124
|
+
#
|
125
|
+
# Inspects the password.
|
126
|
+
#
|
127
|
+
# @return [String]
|
128
|
+
# The inspected password.
|
129
|
+
#
|
130
|
+
# @since 1.0.0
|
131
|
+
#
|
132
|
+
def inspect
|
133
|
+
"#<#{self.class}: #{self.clear_text}>"
|
134
|
+
end
|
135
|
+
|
125
136
|
end
|
126
137
|
end
|
data/lib/ronin/port.rb
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
#
|
2
|
-
#
|
2
|
+
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# This file is part of Ronin.
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# Ronin is free software: you can redistribute it and/or modify
|
7
7
|
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
9
|
# (at your option) any later version.
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# Ronin is distributed in the hope that it will be useful,
|
12
12
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
13
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
14
|
# GNU General Public License for more details.
|
15
15
|
#
|
16
16
|
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with
|
18
|
-
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
19
18
|
#
|
20
19
|
|
21
20
|
require 'ronin/open_port'
|
@@ -67,5 +66,17 @@ module Ronin
|
|
67
66
|
"#{self.number}/#{self.protocol}"
|
68
67
|
end
|
69
68
|
|
69
|
+
#
|
70
|
+
# Inspects the port.
|
71
|
+
#
|
72
|
+
# @return [String]
|
73
|
+
# The inspected port.
|
74
|
+
#
|
75
|
+
# @since 1.0.0
|
76
|
+
#
|
77
|
+
def inspect
|
78
|
+
"#<#{self.class}: #{self}>"
|
79
|
+
end
|
80
|
+
|
70
81
|
end
|
71
82
|
end
|
data/lib/ronin/proxy.rb
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
#
|
2
|
-
#
|
2
|
+
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# This file is part of Ronin.
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# Ronin is free software: you can redistribute it and/or modify
|
7
7
|
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
9
|
# (at your option) any later version.
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# Ronin is distributed in the hope that it will be useful,
|
12
12
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
13
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
14
|
# GNU General Public License for more details.
|
15
15
|
#
|
16
16
|
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with
|
18
|
-
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
19
18
|
#
|
20
19
|
|
21
20
|
require 'ronin/network/http/proxy'
|
@@ -1,21 +1,20 @@
|
|
1
1
|
#
|
2
|
-
#
|
2
|
+
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# This file is part of Ronin.
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# Ronin is free software: you can redistribute it and/or modify
|
7
7
|
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
9
|
# (at your option) any later version.
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# Ronin is distributed in the hope that it will be useful,
|
12
12
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
13
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
14
|
# GNU General Public License for more details.
|
15
15
|
#
|
16
16
|
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with
|
18
|
-
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
19
18
|
#
|
20
19
|
|
21
20
|
require 'ronin/credential'
|
data/lib/ronin/remote_file.rb
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
#
|
2
|
-
#
|
2
|
+
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# This file is part of Ronin.
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# Ronin is free software: you can redistribute it and/or modify
|
7
7
|
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
9
|
# (at your option) any later version.
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# Ronin is distributed in the hope that it will be useful,
|
12
12
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
13
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
14
|
# GNU General Public License for more details.
|
15
15
|
#
|
16
16
|
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with
|
18
|
-
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
19
18
|
#
|
20
19
|
|
21
20
|
require 'ronin/target'
|
@@ -36,11 +35,10 @@ module Ronin
|
|
36
35
|
|
37
36
|
# Remote path of the file
|
38
37
|
property :remote_path, String, :required => true,
|
39
|
-
:index => true
|
40
|
-
:unique => :target_remote_path
|
38
|
+
:index => true
|
41
39
|
|
42
40
|
# The target the file was recovered from
|
43
|
-
belongs_to :target
|
41
|
+
belongs_to :target
|
44
42
|
|
45
43
|
# The address the file was recovered from
|
46
44
|
has 1, :address, :through => :target
|
@@ -51,6 +49,9 @@ module Ronin
|
|
51
49
|
# Tags
|
52
50
|
has_tags_on :tags
|
53
51
|
|
52
|
+
# Validates the uniqueness of the remote_path and the target.
|
53
|
+
validates_uniqueness_of :remote_path, :scope => [:target]
|
54
|
+
|
54
55
|
#
|
55
56
|
# Searches for all remote files with the basename.
|
56
57
|
#
|
@@ -63,7 +64,8 @@ module Ronin
|
|
63
64
|
# @since 1.0.0
|
64
65
|
#
|
65
66
|
def self.named(basename)
|
66
|
-
all(:remote_path => basename) |
|
67
|
+
all(:remote_path => basename) |
|
68
|
+
all(:remote_path.like => "%/#{basename}")
|
67
69
|
end
|
68
70
|
|
69
71
|
#
|
data/lib/ronin/repository.rb
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
#
|
2
|
-
#
|
2
|
+
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# This file is part of Ronin.
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# Ronin is free software: you can redistribute it and/or modify
|
7
7
|
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
9
|
# (at your option) any later version.
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# Ronin is distributed in the hope that it will be useful,
|
12
12
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
13
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
14
|
# GNU General Public License for more details.
|
15
15
|
#
|
16
16
|
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with
|
18
|
-
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
19
18
|
#
|
20
19
|
|
21
20
|
require 'ronin/exceptions/duplicate_repository'
|
@@ -224,10 +223,7 @@ module Ronin
|
|
224
223
|
:domain => LOCAL_DOMAIN
|
225
224
|
))
|
226
225
|
|
227
|
-
name
|
228
|
-
domain = repo.domain
|
229
|
-
|
230
|
-
if Repository.count(:name => name, :domain => domain) > 0
|
226
|
+
if Repository.count(:name => repo.name, :domain => repo.domain) > 0
|
231
227
|
raise(DuplicateRepository,"the Repository #{repo} already exists in the database")
|
232
228
|
end
|
233
229
|
|
@@ -567,7 +563,7 @@ module Ronin
|
|
567
563
|
local_repo.update(self.uri)
|
568
564
|
|
569
565
|
# re-initialize the metadata
|
570
|
-
initialize_metadata
|
566
|
+
initialize_metadata
|
571
567
|
|
572
568
|
# save the repository
|
573
569
|
if save
|
data/lib/ronin/ronin.rb
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
#
|
2
|
-
#
|
2
|
+
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# This file is part of Ronin.
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# Ronin is free software: you can redistribute it and/or modify
|
7
7
|
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
9
|
# (at your option) any later version.
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# Ronin is distributed in the hope that it will be useful,
|
12
12
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
13
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
14
|
# GNU General Public License for more details.
|
15
15
|
#
|
16
16
|
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with
|
18
|
-
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
19
18
|
#
|
20
19
|
|
21
20
|
require 'ronin/class_methods'
|
data/lib/ronin/service.rb
CHANGED
@@ -1,52 +1,37 @@
|
|
1
1
|
#
|
2
|
-
#
|
2
|
+
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# This file is part of Ronin.
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# Ronin is free software: you can redistribute it and/or modify
|
7
7
|
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
9
|
# (at your option) any later version.
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# Ronin is distributed in the hope that it will be useful,
|
12
12
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
13
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
14
|
# GNU General Public License for more details.
|
15
15
|
#
|
16
16
|
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with
|
18
|
-
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
19
18
|
#
|
20
19
|
|
21
20
|
require 'ronin/open_port'
|
22
21
|
require 'ronin/model'
|
22
|
+
require 'ronin/model/has_unique_name'
|
23
23
|
|
24
24
|
module Ronin
|
25
25
|
class Service
|
26
26
|
|
27
27
|
include Model
|
28
|
+
include Model::HasUniqueName
|
28
29
|
|
29
30
|
# Primary key of the service
|
30
31
|
property :id, Serial
|
31
32
|
|
32
|
-
# Name of the service
|
33
|
-
property :name, String, :required => true,
|
34
|
-
:unique => true
|
35
|
-
|
36
33
|
# The open ports running the service
|
37
34
|
has 1..n, :open_ports
|
38
35
|
|
39
|
-
#
|
40
|
-
# Converts the service to a string.
|
41
|
-
#
|
42
|
-
# @return [String]
|
43
|
-
# The service name.
|
44
|
-
#
|
45
|
-
# @since 1.0.0
|
46
|
-
#
|
47
|
-
def to_s
|
48
|
-
self.name.to_s
|
49
|
-
end
|
50
|
-
|
51
36
|
end
|
52
37
|
end
|
@@ -1,21 +1,20 @@
|
|
1
1
|
#
|
2
|
-
#
|
2
|
+
# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com)
|
3
3
|
#
|
4
|
-
#
|
4
|
+
# This file is part of Ronin.
|
5
5
|
#
|
6
|
-
#
|
6
|
+
# Ronin is free software: you can redistribute it and/or modify
|
7
7
|
# it under the terms of the GNU General Public License as published by
|
8
|
-
# the Free Software Foundation
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
9
|
# (at your option) any later version.
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# Ronin is distributed in the hope that it will be useful,
|
12
12
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
13
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
14
|
# GNU General Public License for more details.
|
15
15
|
#
|
16
16
|
# You should have received a copy of the GNU General Public License
|
17
|
-
# along with
|
18
|
-
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
# along with Ronin. If not, see <http://www.gnu.org/licenses/>.
|
19
18
|
#
|
20
19
|
|
21
20
|
require 'ronin/credential'
|