ronin-db 0.1.2-java → 0.2.0.rc1-java
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.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +3 -2
- data/.gitignore +1 -0
- data/ChangeLog.md +33 -0
- data/Gemfile +6 -4
- data/README.md +17 -5
- data/Rakefile +13 -35
- data/data/completions/ronin-db +271 -0
- data/gemspec.yml +17 -2
- data/lib/ronin/db/cli/command.rb +1 -1
- data/lib/ronin/db/cli/commands/add.rb +1 -1
- data/lib/ronin/db/cli/commands/asn.rb +12 -2
- data/lib/ronin/db/cli/commands/certs.rb +322 -0
- data/lib/ronin/db/cli/commands/completion.rb +63 -0
- data/lib/ronin/db/cli/commands/creds.rb +2 -1
- data/lib/ronin/db/cli/commands/edit.rb +1 -1
- data/lib/ronin/db/cli/commands/emails.rb +22 -1
- data/lib/ronin/db/cli/commands/hosts.rb +2 -1
- data/lib/ronin/db/cli/commands/ips.rb +2 -1
- data/lib/ronin/db/cli/commands/irb.rb +8 -4
- data/lib/ronin/db/cli/commands/list.rb +1 -1
- data/lib/ronin/db/cli/commands/migrate.rb +12 -8
- data/lib/ronin/db/cli/commands/open_ports.rb +102 -0
- data/lib/ronin/db/cli/commands/oses.rb +95 -0
- data/lib/ronin/db/cli/commands/passwords.rb +83 -0
- data/lib/ronin/db/cli/commands/people.rb +185 -0
- data/lib/ronin/db/cli/commands/phone_numbers.rb +136 -0
- data/lib/ronin/db/cli/commands/ports.rb +103 -0
- data/lib/ronin/db/cli/commands/remove.rb +1 -1
- data/lib/ronin/db/cli/commands/services.rb +102 -0
- data/lib/ronin/db/cli/commands/software.rb +95 -0
- data/lib/ronin/db/cli/commands/street_addresses.rb +129 -0
- data/lib/ronin/db/cli/commands/urls.rb +2 -1
- data/lib/ronin/db/cli/commands/web_vulns.rb +235 -0
- data/lib/ronin/db/cli/database_options.rb +87 -0
- data/lib/ronin/db/cli/deletable.rb +85 -0
- data/lib/ronin/db/cli/importable.rb +108 -0
- data/lib/ronin/db/cli/model_command.rb +8 -6
- data/lib/ronin/db/cli/modifiable.rb +12 -104
- data/lib/ronin/db/cli/printing.rb +58 -0
- data/lib/ronin/db/cli/ruby_shell.rb +1 -1
- data/lib/ronin/db/cli/uri_methods.rb +1 -1
- data/lib/ronin/db/cli.rb +3 -1
- data/lib/ronin/db/config_file.rb +13 -8
- data/lib/ronin/db/exceptions.rb +10 -1
- data/lib/ronin/db/home.rb +1 -1
- data/lib/ronin/db/root.rb +1 -1
- data/lib/ronin/db/tasks.rb +87 -0
- data/lib/ronin/db/version.rb +2 -2
- data/lib/ronin/db.rb +24 -7
- data/man/ronin-db-add.1 +48 -70
- data/man/ronin-db-add.1.md +26 -22
- data/man/ronin-db-asn.1 +37 -55
- data/man/ronin-db-asn.1.md +29 -19
- data/man/ronin-db-certs.1 +108 -0
- data/man/ronin-db-certs.1.md +106 -0
- data/man/ronin-db-completion.1 +76 -0
- data/man/ronin-db-completion.1.md +78 -0
- data/man/ronin-db-creds.1 +29 -47
- data/man/ronin-db-creds.1.md +23 -16
- data/man/ronin-db-edit.1 +16 -27
- data/man/ronin-db-edit.1.md +11 -7
- data/man/ronin-db-emails.1 +37 -50
- data/man/ronin-db-emails.1.md +30 -17
- data/man/ronin-db-hosts.1 +32 -52
- data/man/ronin-db-hosts.1.md +25 -18
- data/man/ronin-db-ips.1 +32 -53
- data/man/ronin-db-ips.1.md +26 -19
- data/man/ronin-db-irb.1 +23 -36
- data/man/ronin-db-irb.1.md +17 -10
- data/man/ronin-db-list.1 +17 -31
- data/man/ronin-db-list.1.md +13 -9
- data/man/ronin-db-migrate.1 +23 -36
- data/man/ronin-db-migrate.1.md +17 -10
- data/man/ronin-db-open-ports.1 +72 -0
- data/man/ronin-db-open-ports.1.md +70 -0
- data/man/ronin-db-oses.1 +72 -0
- data/man/ronin-db-oses.1.md +70 -0
- data/man/ronin-db-passwords.1 +75 -0
- data/man/ronin-db-passwords.1.md +73 -0
- data/man/ronin-db-people.1 +96 -0
- data/man/ronin-db-people.1.md +94 -0
- data/man/ronin-db-phone-numbers.1 +93 -0
- data/man/ronin-db-phone-numbers.1.md +91 -0
- data/man/ronin-db-ports.1 +87 -0
- data/man/ronin-db-ports.1.md +85 -0
- data/man/ronin-db-remove.1 +16 -29
- data/man/ronin-db-remove.1.md +12 -8
- data/man/ronin-db-services.1 +84 -0
- data/man/ronin-db-services.1.md +82 -0
- data/man/ronin-db-software.1 +72 -0
- data/man/ronin-db-software.1.md +70 -0
- data/man/ronin-db-street-addresses.1 +81 -0
- data/man/ronin-db-street-addresses.1.md +79 -0
- data/man/ronin-db-urls.1 +38 -61
- data/man/ronin-db-urls.1.md +28 -21
- data/man/ronin-db-web-vulns.1 +87 -0
- data/man/ronin-db-web-vulns.1.md +85 -0
- data/man/ronin-db.1 +118 -0
- data/man/ronin-db.1.md +99 -0
- data/scripts/setup +58 -0
- metadata +70 -13
- data/lib/ronin/db/cli/database_command.rb +0 -71
- data/lib/ronin/db/cli/resources_command.rb +0 -118
@@ -0,0 +1,102 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# ronin-db - A common database library for managing and querying security data.
|
4
|
+
#
|
5
|
+
# Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
|
+
#
|
7
|
+
# ronin-db is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU Lesser General Public License as published
|
9
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# ronin-db is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU Lesser General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU Lesser General Public License
|
18
|
+
# along with ronin-db. If not, see <https://www.gnu.org/licenses/>.
|
19
|
+
#
|
20
|
+
|
21
|
+
require 'ronin/db/cli/model_command'
|
22
|
+
|
23
|
+
module Ronin
|
24
|
+
module DB
|
25
|
+
class CLI
|
26
|
+
module Commands
|
27
|
+
#
|
28
|
+
# Manages all OpenPorts in the database.
|
29
|
+
#
|
30
|
+
# ## Usage
|
31
|
+
#
|
32
|
+
# ronin-db open-ports [options]
|
33
|
+
#
|
34
|
+
# ## Options
|
35
|
+
#
|
36
|
+
# --db NAME The database to connect to (Default: default)
|
37
|
+
# --db-uri URI The database URI to connect to
|
38
|
+
# --db-file PATH The sqlite3 database file to use
|
39
|
+
# -v, --verbose Enables verbose output
|
40
|
+
# --add VALUE Adds a value to the database
|
41
|
+
# --import FILE Imports the values from the FILE into the database
|
42
|
+
# --delete VALUE Deletes a value from the database
|
43
|
+
# --delete-all Deletes all values from the database
|
44
|
+
# -p, --with-port PORT Searches for all OpenPorts associated with the PORT number
|
45
|
+
# -P, --with-protocol tcp|udp Searches for all OpenPorts associated with the protocol
|
46
|
+
# -S, --with-service SERVICE Searches for all OpenPorts associated with the SERVICE
|
47
|
+
# -I, --with-ip IP Searches for all OpenPorts associated with the IP
|
48
|
+
# -h, --help Print help information
|
49
|
+
#
|
50
|
+
# @since 0.2.0
|
51
|
+
#
|
52
|
+
class OpenPorts < ModelCommand
|
53
|
+
|
54
|
+
command_name 'open-ports'
|
55
|
+
|
56
|
+
model_file 'ronin/db/open_port'
|
57
|
+
model_name 'OpenPort'
|
58
|
+
|
59
|
+
option :with_port, short: '-p',
|
60
|
+
value: {
|
61
|
+
type: Integer,
|
62
|
+
usage: 'PORT'
|
63
|
+
},
|
64
|
+
desc: 'Searches for all OpenPorts with the PORT number' do |port|
|
65
|
+
@query_method_calls << [:with_port_number, [port]]
|
66
|
+
end
|
67
|
+
|
68
|
+
option :with_protocol, short: '-P',
|
69
|
+
value: {
|
70
|
+
type: [:tcp, :udp]
|
71
|
+
},
|
72
|
+
desc: 'Searches for all OpenPorts associated with the protocol' do |protocol|
|
73
|
+
@query_method_calls << [:with_protocol, [protocol]]
|
74
|
+
end
|
75
|
+
|
76
|
+
option :with_service, short: '-S',
|
77
|
+
value: {
|
78
|
+
type: String,
|
79
|
+
usage: 'SERVICE'
|
80
|
+
},
|
81
|
+
desc: 'Searches for all OpenPorts associated with the SERVICE' do |service|
|
82
|
+
@query_method_calls << [:with_service_name, [service]]
|
83
|
+
end
|
84
|
+
|
85
|
+
option :with_ip, short: '-I',
|
86
|
+
value: {
|
87
|
+
type: String,
|
88
|
+
usage: 'IP'
|
89
|
+
},
|
90
|
+
desc: 'Searches for all OpenPorts associated with the IP' do |ip|
|
91
|
+
@query_method_calls << [:with_ip_address, [ip]]
|
92
|
+
end
|
93
|
+
|
94
|
+
description 'Queries OpenPorts'
|
95
|
+
|
96
|
+
man_page 'ronin-db-open-ports.1'
|
97
|
+
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# ronin-db - A common database library for managing and querying security data.
|
4
|
+
#
|
5
|
+
# Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
|
+
#
|
7
|
+
# ronin-db is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU Lesser General Public License as published
|
9
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# ronin-db is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU Lesser General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU Lesser General Public License
|
18
|
+
# along with ronin-db. If not, see <https://www.gnu.org/licenses/>.
|
19
|
+
#
|
20
|
+
|
21
|
+
require 'ronin/db/cli/model_command'
|
22
|
+
|
23
|
+
module Ronin
|
24
|
+
module DB
|
25
|
+
class CLI
|
26
|
+
module Commands
|
27
|
+
#
|
28
|
+
# Queries all OSes in the database.
|
29
|
+
#
|
30
|
+
# ## Usage
|
31
|
+
#
|
32
|
+
# ronin-db oses [options]
|
33
|
+
#
|
34
|
+
# ## Options
|
35
|
+
#
|
36
|
+
# --db NAME The database to connect to (Default: default)
|
37
|
+
# --db-uri URI The database URI to connect to
|
38
|
+
# --db-file PATH The sqlite3 database file to use
|
39
|
+
# -v, --verbose Enables verbose output
|
40
|
+
# -N, --name NAME Searches for all OSes records with the matching name
|
41
|
+
# --named NAME Searches for all OSes containing the NAME
|
42
|
+
# -F, --flavor linux|bsd Searches for all OSes with the flavor
|
43
|
+
# -V, --version VERSION Searches for all OSes with the VERSION
|
44
|
+
# -h, --help Print help information
|
45
|
+
#
|
46
|
+
# @since 0.2.0
|
47
|
+
#
|
48
|
+
class Oses < ModelCommand
|
49
|
+
|
50
|
+
model_file 'ronin/db/os'
|
51
|
+
model_name 'OS'
|
52
|
+
|
53
|
+
option :name, short: '-N',
|
54
|
+
value: {
|
55
|
+
type: String,
|
56
|
+
usage: 'NAME'
|
57
|
+
},
|
58
|
+
desc: 'Searches for all OSes records with the matching name' do |name|
|
59
|
+
@query_method_calls << [:with_name, [name]]
|
60
|
+
end
|
61
|
+
|
62
|
+
option :named, value: {
|
63
|
+
type: String,
|
64
|
+
usage: 'NAME'
|
65
|
+
},
|
66
|
+
desc: 'Searches for all OSes containing the NAME' do |name|
|
67
|
+
@query_method_calls << [:named, [name]]
|
68
|
+
end
|
69
|
+
|
70
|
+
option :flavor, short: '-F',
|
71
|
+
value: {
|
72
|
+
type: [:linux, :bsd]
|
73
|
+
},
|
74
|
+
desc: 'Searches for all OSes with the flavor' do |flavor|
|
75
|
+
@query_method_calls << [:with_flavor, [flavor]]
|
76
|
+
end
|
77
|
+
|
78
|
+
option :version, short: '-V',
|
79
|
+
value: {
|
80
|
+
type: String,
|
81
|
+
usage: 'VERSION'
|
82
|
+
},
|
83
|
+
desc: 'Searches for all OSes with the VERSION' do |version|
|
84
|
+
@query_method_calls << [:with_version, [version]]
|
85
|
+
end
|
86
|
+
|
87
|
+
description 'Queries OSes'
|
88
|
+
|
89
|
+
man_page 'ronin-db-oses.1'
|
90
|
+
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# ronin-db - A common database library for managing and querying security data.
|
4
|
+
#
|
5
|
+
# Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
|
+
#
|
7
|
+
# ronin-db is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU Lesser General Public License as published
|
9
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# ronin-db is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU Lesser General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU Lesser General Public License
|
18
|
+
# along with ronin-db. If not, see <https://www.gnu.org/licenses/>.
|
19
|
+
#
|
20
|
+
|
21
|
+
require 'ronin/db/cli/model_command'
|
22
|
+
require 'ronin/db/cli/modifiable'
|
23
|
+
|
24
|
+
module Ronin
|
25
|
+
module DB
|
26
|
+
class CLI
|
27
|
+
module Commands
|
28
|
+
#
|
29
|
+
# Manages all Passwords in the database.
|
30
|
+
#
|
31
|
+
# ## Usage
|
32
|
+
#
|
33
|
+
# ronin-db passwords [options]
|
34
|
+
#
|
35
|
+
# ## Options
|
36
|
+
#
|
37
|
+
# --db NAME The database to connect to (Default: default)
|
38
|
+
# --db-uri URI The database URI to connect to
|
39
|
+
# --db-file PATH The sqlite3 database file to use
|
40
|
+
# -v, --verbose Enables verbose output
|
41
|
+
# --add VALUE Adds a value to the database
|
42
|
+
# --import FILE Imports the values from the FILE into the database
|
43
|
+
# --delete VALUE Deletes a value from the database
|
44
|
+
# --delete-all Deletes all values from the database
|
45
|
+
# -u, --for-user USER Searches for all Passwords associated with the USER name
|
46
|
+
# -e, --with-email EMAIL Searches for all Passwords associated with the EMAIL address
|
47
|
+
#
|
48
|
+
# @since 0.2.0
|
49
|
+
#
|
50
|
+
class Passwords < ModelCommand
|
51
|
+
|
52
|
+
include Modifiable
|
53
|
+
|
54
|
+
model_file 'ronin/db/password'
|
55
|
+
model_name 'Password'
|
56
|
+
|
57
|
+
option :for_user, short: '-u',
|
58
|
+
value: {
|
59
|
+
type: String,
|
60
|
+
usage: 'USER'
|
61
|
+
},
|
62
|
+
desc: 'Searches for all Passwords associated with the USER name' do |user|
|
63
|
+
@query_method_calls << [:for_user, [user]]
|
64
|
+
end
|
65
|
+
|
66
|
+
option :with_email, short: '-e',
|
67
|
+
value: {
|
68
|
+
type: String,
|
69
|
+
usage: 'EMAIL'
|
70
|
+
},
|
71
|
+
desc: 'Searches for all Passwords associated with the EMAIL address' do |email|
|
72
|
+
@query_method_calls << [:with_email_address, [email]]
|
73
|
+
end
|
74
|
+
|
75
|
+
description 'Manages all Passwords in the database'
|
76
|
+
|
77
|
+
man_page 'ronin-db-passwords.1'
|
78
|
+
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,185 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# ronin-db - A common database library for managing and querying security data.
|
4
|
+
#
|
5
|
+
# Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
|
+
#
|
7
|
+
# ronin-db is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU Lesser General Public License as published
|
9
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# ronin-db is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU Lesser General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU Lesser General Public License
|
18
|
+
# along with ronin-db. If not, see <https://www.gnu.org/licenses/>.
|
19
|
+
#
|
20
|
+
|
21
|
+
require 'ronin/db/cli/model_command'
|
22
|
+
require 'ronin/db/cli/modifiable'
|
23
|
+
|
24
|
+
module Ronin
|
25
|
+
module DB
|
26
|
+
class CLI
|
27
|
+
module Commands
|
28
|
+
#
|
29
|
+
# Manages all People in the database.
|
30
|
+
#
|
31
|
+
# ## Usage
|
32
|
+
#
|
33
|
+
# ronin-db people [options]
|
34
|
+
#
|
35
|
+
# ## Options
|
36
|
+
#
|
37
|
+
# --db NAME The database to connect to (Default: default)
|
38
|
+
# --db-uri URI The database URI to connect to
|
39
|
+
# --db-file PATH The sqlite3 database file to use
|
40
|
+
# -v, --verbose Enables verbose output
|
41
|
+
# --add VALUE Adds a value to the database
|
42
|
+
# --import FILE Imports the values from the FILE into the database
|
43
|
+
# --delete VALUE Deletes a value from the database
|
44
|
+
# --delete-all Deletes all values from the database
|
45
|
+
# -a, --for-address ADDRESS Searches for all People associated with the street address
|
46
|
+
# -c, --for-city CITY Searches for all People associated with the city
|
47
|
+
# -s, --for-state STATE Searches for all People associated with the state
|
48
|
+
# -s, --for-province PROVINCE Searches for all People associated with the province
|
49
|
+
# -z, --for-zipcode ZIPCODE Searches for all People associated with the zipcode
|
50
|
+
# -C, --for-country COUNTRY Searches for all People associated with the Country
|
51
|
+
# -P, --with-prefix PREFIX Searches for all People with the prefix
|
52
|
+
# -f, --with-first-name NAME Searches for all People with the first name
|
53
|
+
# -m, --with-middle-name NAME Searches for all People with the middle name
|
54
|
+
# -M INITIAL, Searches for all People with the middle name
|
55
|
+
# --with-middle-initial
|
56
|
+
# -l, --with-last-name NAME Searches for all People with the last name
|
57
|
+
# -S, --with-suffix SUFFIX Searches for all People with the suffix
|
58
|
+
# -h, --help Print help information
|
59
|
+
#
|
60
|
+
# @since 0.2.0
|
61
|
+
#
|
62
|
+
class People < ModelCommand
|
63
|
+
|
64
|
+
include Modifiable
|
65
|
+
|
66
|
+
model_file 'ronin/db/person'
|
67
|
+
model_name 'Person'
|
68
|
+
|
69
|
+
option :for_address, short: '-a',
|
70
|
+
value: {
|
71
|
+
type: String,
|
72
|
+
usage: 'ADDRESS'
|
73
|
+
},
|
74
|
+
desc: 'Searches for all People associated with the street address' do |address|
|
75
|
+
@query_method_calls << [:for_address, [address]]
|
76
|
+
end
|
77
|
+
|
78
|
+
option :for_city, short: '-c',
|
79
|
+
value: {
|
80
|
+
type: String,
|
81
|
+
usage: 'CITY'
|
82
|
+
},
|
83
|
+
desc: 'Searches for all People associated with the city' do |city|
|
84
|
+
@query_method_calls << [:for_city, [city]]
|
85
|
+
end
|
86
|
+
|
87
|
+
option :for_state, short: '-s',
|
88
|
+
value: {
|
89
|
+
type: String,
|
90
|
+
usage: 'STATE'
|
91
|
+
},
|
92
|
+
desc: 'Searches for all People associated with the state' do |state|
|
93
|
+
@query_method_calls << [:for_state, [state]]
|
94
|
+
end
|
95
|
+
|
96
|
+
option :for_province, short: '-p',
|
97
|
+
value: {
|
98
|
+
type: String,
|
99
|
+
usage: 'PROVINCE'
|
100
|
+
},
|
101
|
+
desc: 'Searches for all People associated with the province' do |province|
|
102
|
+
@query_method_calls << [:for_province, [province]]
|
103
|
+
end
|
104
|
+
|
105
|
+
option :for_zipcode, short: '-z',
|
106
|
+
value: {
|
107
|
+
type: String,
|
108
|
+
usage: 'ZIPCODE'
|
109
|
+
},
|
110
|
+
desc: 'Searches for all People associated with the zipcode' do |zipcode|
|
111
|
+
@query_method_calls << [:for_zipcode, [zipcode]]
|
112
|
+
end
|
113
|
+
|
114
|
+
option :for_country, short: '-C',
|
115
|
+
value: {
|
116
|
+
type: String,
|
117
|
+
usage: 'COUNTRY'
|
118
|
+
},
|
119
|
+
desc: 'Searches for all People associated with the Country' do |country|
|
120
|
+
@query_method_calls << [:for_country, [country]]
|
121
|
+
end
|
122
|
+
|
123
|
+
option :with_prefix, short: '-P',
|
124
|
+
value: {
|
125
|
+
type: String,
|
126
|
+
usage: 'PREFIX'
|
127
|
+
},
|
128
|
+
desc: 'Searches for all People with the prefix' do |prefix|
|
129
|
+
@query_method_calls << [:with_prefix, [prefix]]
|
130
|
+
end
|
131
|
+
|
132
|
+
option :with_first_name, short: '-f',
|
133
|
+
value: {
|
134
|
+
type: String,
|
135
|
+
usage: 'NAME'
|
136
|
+
},
|
137
|
+
desc: 'Searches for all People with the first name' do |name|
|
138
|
+
@query_method_calls << [:with_first_name, [name]]
|
139
|
+
end
|
140
|
+
|
141
|
+
option :with_middle_name, short: '-m',
|
142
|
+
value: {
|
143
|
+
type: String,
|
144
|
+
usage: 'NAME'
|
145
|
+
},
|
146
|
+
desc: 'Searches for all People with the middle name' do |name|
|
147
|
+
@query_method_calls << [:with_middle_name, [name]]
|
148
|
+
end
|
149
|
+
|
150
|
+
option :with_middle_initial, short: '-M',
|
151
|
+
value: {
|
152
|
+
type: String,
|
153
|
+
usage: 'INITIAL'
|
154
|
+
},
|
155
|
+
desc: 'Searches for all People with the middle name' do |initial|
|
156
|
+
@query_method_calls << [:with_middle_initial, [initial]]
|
157
|
+
end
|
158
|
+
|
159
|
+
option :with_last_name, short: '-l',
|
160
|
+
value: {
|
161
|
+
type: String,
|
162
|
+
usage: 'NAME'
|
163
|
+
},
|
164
|
+
desc: 'Searches for all People with the last name' do |name|
|
165
|
+
@query_method_calls << [:with_last_name, [name]]
|
166
|
+
end
|
167
|
+
|
168
|
+
option :with_suffix, short: '-S',
|
169
|
+
value: {
|
170
|
+
type: String,
|
171
|
+
usage: 'SUFFIX'
|
172
|
+
},
|
173
|
+
desc: 'Searches for all People with the suffix' do |suffix|
|
174
|
+
@query_method_calls << [:with_suffix, [suffix]]
|
175
|
+
end
|
176
|
+
|
177
|
+
description 'Queries People'
|
178
|
+
|
179
|
+
man_page 'ronin-db-people.1'
|
180
|
+
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# ronin-db - A common database library for managing and querying security data.
|
4
|
+
#
|
5
|
+
# Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
|
6
|
+
#
|
7
|
+
# ronin-db is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU Lesser General Public License as published
|
9
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# ronin-db is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU Lesser General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU Lesser General Public License
|
18
|
+
# along with ronin-db. If not, see <https://www.gnu.org/licenses/>.
|
19
|
+
#
|
20
|
+
|
21
|
+
require 'ronin/db/cli/model_command'
|
22
|
+
require 'ronin/db/cli/modifiable'
|
23
|
+
|
24
|
+
module Ronin
|
25
|
+
module DB
|
26
|
+
class CLI
|
27
|
+
module Commands
|
28
|
+
#
|
29
|
+
# Manages all PhoneNumbers in the database.
|
30
|
+
#
|
31
|
+
# ## Usage
|
32
|
+
#
|
33
|
+
# ronin-db phone-numbers [options]
|
34
|
+
#
|
35
|
+
# ## Options
|
36
|
+
#
|
37
|
+
# --db NAME The database to connect to (Default: default)
|
38
|
+
# --db-uri URI The database URI to connect to
|
39
|
+
# --db-file PATH The sqlite3 database file to use
|
40
|
+
# -v, --verbose Enables verbose output
|
41
|
+
# --add VALUE Adds a value to the database
|
42
|
+
# --import FILE Imports the values from the FILE into the database
|
43
|
+
# --delete VALUE Deletes a value from the database
|
44
|
+
# --delete-all Deletes all values from the database
|
45
|
+
# -P, --for-person FULL_NAME Searches for phone numbers associated with the person's full name
|
46
|
+
# -O, --for-organization NAME Searches for phone numbers associated with the organization's name
|
47
|
+
# -c, --with-country-code NUM Searches for phone numbers with the country code
|
48
|
+
# -a, --with-area-code NUM Searches for phone numbers with the area code
|
49
|
+
# -p, --with-prefix NUM Searches for phone numbers with the prefix
|
50
|
+
# -l, --with-line-number NUM Searches for phone numbers with the line number
|
51
|
+
# -S, --similar-to PHONE_NUMBER Searches for phone numbers similar to another phone number
|
52
|
+
# -h, --help Print help information
|
53
|
+
#
|
54
|
+
# @since 0.2.0
|
55
|
+
#
|
56
|
+
class PhoneNumbers < ModelCommand
|
57
|
+
|
58
|
+
include Modifiable
|
59
|
+
|
60
|
+
command_name 'phone-numbers'
|
61
|
+
|
62
|
+
model_file 'ronin/db/phone_number'
|
63
|
+
model_name 'PhoneNumber'
|
64
|
+
|
65
|
+
option :for_person, short: '-P',
|
66
|
+
value: {
|
67
|
+
type: String,
|
68
|
+
usage: 'FULL_NAME'
|
69
|
+
},
|
70
|
+
desc: "Searches for phone numbers associated with the person's full name" do |full_name|
|
71
|
+
@query_method_calls << [:for_person, [full_name]]
|
72
|
+
end
|
73
|
+
|
74
|
+
option :for_organization, short: '-O',
|
75
|
+
value: {
|
76
|
+
type: String,
|
77
|
+
usage: 'NAME'
|
78
|
+
},
|
79
|
+
desc: "Searches for phone numbers associated with the organization's name" do |name|
|
80
|
+
@query_method_calls << [:for_organization, [name]]
|
81
|
+
end
|
82
|
+
|
83
|
+
option :with_country_code, short: '-c',
|
84
|
+
value: {
|
85
|
+
type: String,
|
86
|
+
usage: 'NUM'
|
87
|
+
},
|
88
|
+
desc: 'Searches for phone numbers with the country code' do |country_code|
|
89
|
+
@query_method_calls << [:with_country_code, country_code]
|
90
|
+
end
|
91
|
+
|
92
|
+
option :with_area_code, short: '-a',
|
93
|
+
value: {
|
94
|
+
type: String,
|
95
|
+
usage: 'NUM'
|
96
|
+
},
|
97
|
+
desc: 'Searches for phone numbers with the area code' do |area_code|
|
98
|
+
@query_method_calls << [:with_area_code, area_code]
|
99
|
+
end
|
100
|
+
|
101
|
+
option :with_prefix, short: '-p',
|
102
|
+
value: {
|
103
|
+
type: String,
|
104
|
+
usage: 'NUM'
|
105
|
+
},
|
106
|
+
desc: 'Searches for phone numbers with the prefix' do |prefix|
|
107
|
+
@query_method_calls << [:with_prefix, prefix]
|
108
|
+
end
|
109
|
+
|
110
|
+
option :with_line_number, short: '-l',
|
111
|
+
value: {
|
112
|
+
type: String,
|
113
|
+
usage: 'NUM'
|
114
|
+
},
|
115
|
+
desc: 'Searches for phone numbers with the line number' do |line_number|
|
116
|
+
@query_method_calls << [:with_line_number, line_number]
|
117
|
+
end
|
118
|
+
|
119
|
+
option :similar_to, short: '-S',
|
120
|
+
value: {
|
121
|
+
type: String,
|
122
|
+
usage: 'PHONE_NUMBER'
|
123
|
+
},
|
124
|
+
desc: 'Searches for phone numbers similar to another phone number' do |number|
|
125
|
+
@query_method_calls << [:similar_to, number]
|
126
|
+
end
|
127
|
+
|
128
|
+
description 'Queries PhoneNumbers'
|
129
|
+
|
130
|
+
man_page 'ronin-db-phone-numbers.1'
|
131
|
+
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|