ronin-db-activerecord 0.1.6 → 0.2.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog.md +91 -0
  3. data/README.md +49 -1
  4. data/db/migrate/0037_add_created_at_column_to_ronin_ports_table.rb +40 -0
  5. data/db/migrate/0038_add_created_at_column_to_ronin_services_table.rb +40 -0
  6. data/db/migrate/0039_create_ronin_cert_names_table.rb +37 -0
  7. data/db/migrate/0040_create_ronin_cert_issuers_table.rb +52 -0
  8. data/db/migrate/0041_create_ronin_cert_subjects_table.rb +54 -0
  9. data/db/migrate/0042_create_ronin_cert_subject_alt_names_table.rb +42 -0
  10. data/db/migrate/0043_create_ronin_certs_table.rb +61 -0
  11. data/db/migrate/0044_add_cert_id_column_to_ronin_open_ports_table.rb +35 -0
  12. data/db/migrate/0045_create_ronin_notes_table.rb +120 -0
  13. data/db/migrate/0046_create_ronin_web_vulns_table.rb +61 -0
  14. data/db/migrate/0047_create_ronin_phone_numbers_table.rb +47 -0
  15. data/db/migrate/0048_create_ronin_street_addresses_table.rb +46 -0
  16. data/db/migrate/0049_create_ronin_people_table.rb +48 -0
  17. data/db/migrate/0050_create_ronin_personal_connections_table.rb +48 -0
  18. data/db/migrate/0051_create_ronin_personal_phone_numbers_table.rb +48 -0
  19. data/db/migrate/0052_create_ronin_personal_email_addresses_table.rb +45 -0
  20. data/db/migrate/0053_create_ronin_personal_street_addresses_table.rb +47 -0
  21. data/db/migrate/0054_add_type_column_to_ronin_organizations_table.rb +33 -0
  22. data/db/migrate/0055_add_parent_id_column_to_ronin_organizations_table.rb +43 -0
  23. data/db/migrate/0056_create_ronin_organization_departments_table.rb +59 -0
  24. data/db/migrate/0057_create_ronin_organization_members_table.rb +62 -0
  25. data/db/migrate/0058_create_ronin_organization_customers_table.rb +52 -0
  26. data/db/migrate/0059_create_ronin_organization_phone_numbers_table.rb +47 -0
  27. data/db/migrate/0060_create_ronin_organization_email_addresses_table.rb +45 -0
  28. data/db/migrate/0061_create_ronin_organization_street_addresses_table.rb +47 -0
  29. data/db/migrate/0062_add_source_ip_column_to_http_requests_table.rb +30 -0
  30. data/db/migrate/0063_create_ronin_dns_queries_table.rb +41 -0
  31. data/db/migrate/0064_create_ronin_dns_records_table.rb +42 -0
  32. data/db/migrate/0065_create_ronin_organization_host_names_table.rb +43 -0
  33. data/db/migrate/0066_create_ronin_organization_ip_addresses_table.rb +43 -0
  34. data/gemspec.yml +1 -1
  35. data/lib/ronin/db/address.rb +1 -1
  36. data/lib/ronin/db/advisory.rb +66 -1
  37. data/lib/ronin/db/arch.rb +1 -1
  38. data/lib/ronin/db/asn.rb +15 -1
  39. data/lib/ronin/db/cert.rb +501 -0
  40. data/lib/ronin/db/cert_issuer.rb +78 -0
  41. data/lib/ronin/db/cert_name.rb +107 -0
  42. data/lib/ronin/db/cert_organization.rb +127 -0
  43. data/lib/ronin/db/cert_subject.rb +81 -0
  44. data/lib/ronin/db/cert_subject_alt_name.rb +88 -0
  45. data/lib/ronin/db/credential.rb +10 -1
  46. data/lib/ronin/db/dns_query.rb +98 -0
  47. data/lib/ronin/db/dns_record.rb +76 -0
  48. data/lib/ronin/db/email_address.rb +139 -1
  49. data/lib/ronin/db/host_name.rb +45 -1
  50. data/lib/ronin/db/host_name_ip_address.rb +1 -1
  51. data/lib/ronin/db/http_header_name.rb +1 -1
  52. data/lib/ronin/db/http_query_param.rb +1 -1
  53. data/lib/ronin/db/http_query_param_name.rb +1 -1
  54. data/lib/ronin/db/http_request.rb +13 -1
  55. data/lib/ronin/db/http_request_header.rb +1 -1
  56. data/lib/ronin/db/http_response.rb +1 -1
  57. data/lib/ronin/db/http_response_header.rb +1 -1
  58. data/lib/ronin/db/ip_address.rb +46 -1
  59. data/lib/ronin/db/ip_address_mac_address.rb +1 -1
  60. data/lib/ronin/db/mac_address.rb +28 -1
  61. data/lib/ronin/db/migrations.rb +1 -1
  62. data/lib/ronin/db/model/has_name.rb +18 -1
  63. data/lib/ronin/db/model/has_unique_name.rb +1 -1
  64. data/lib/ronin/db/model/importable.rb +1 -1
  65. data/lib/ronin/db/model/last_scanned_at.rb +1 -1
  66. data/lib/ronin/db/model.rb +1 -1
  67. data/lib/ronin/db/models.rb +44 -2
  68. data/lib/ronin/db/note.rb +199 -0
  69. data/lib/ronin/db/open_port.rb +104 -3
  70. data/lib/ronin/db/organization.rb +237 -3
  71. data/lib/ronin/db/organization_customer.rb +73 -0
  72. data/lib/ronin/db/organization_department.rb +97 -0
  73. data/lib/ronin/db/organization_email_address.rb +66 -0
  74. data/lib/ronin/db/organization_host_name.rb +65 -0
  75. data/lib/ronin/db/organization_ip_address.rb +65 -0
  76. data/lib/ronin/db/organization_member.rb +158 -0
  77. data/lib/ronin/db/organization_phone_number.rb +66 -0
  78. data/lib/ronin/db/organization_street_address.rb +66 -0
  79. data/lib/ronin/db/os.rb +35 -1
  80. data/lib/ronin/db/os_guess.rb +1 -1
  81. data/lib/ronin/db/password.rb +84 -1
  82. data/lib/ronin/db/person.rb +455 -0
  83. data/lib/ronin/db/personal_connection.rb +110 -0
  84. data/lib/ronin/db/personal_email_address.rb +66 -0
  85. data/lib/ronin/db/personal_phone_number.rb +76 -0
  86. data/lib/ronin/db/personal_street_address.rb +66 -0
  87. data/lib/ronin/db/phone_number.rb +330 -0
  88. data/lib/ronin/db/port.rb +110 -1
  89. data/lib/ronin/db/service.rb +130 -1
  90. data/lib/ronin/db/service_credential.rb +1 -1
  91. data/lib/ronin/db/software.rb +37 -1
  92. data/lib/ronin/db/software_vendor.rb +1 -1
  93. data/lib/ronin/db/street_address.rb +340 -0
  94. data/lib/ronin/db/url.rb +37 -1
  95. data/lib/ronin/db/url_query_param.rb +1 -1
  96. data/lib/ronin/db/url_query_param_name.rb +9 -1
  97. data/lib/ronin/db/url_scheme.rb +1 -1
  98. data/lib/ronin/db/user_name.rb +58 -1
  99. data/lib/ronin/db/vulnerability.rb +1 -1
  100. data/lib/ronin/db/web_credential.rb +1 -1
  101. data/lib/ronin/db/web_vuln.rb +348 -0
  102. metadata +57 -2
@@ -0,0 +1,348 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # ronin-db-activerecord - ActiveRecord backend for the Ronin Database.
4
+ #
5
+ # Copyright (c) 2022-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ #
7
+ # ronin-db-activerecord 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-activerecord 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-activerecord. If not, see <https://www.gnu.org/licenses/>.
19
+ #
20
+
21
+ require 'ronin/db/model'
22
+ require 'active_record'
23
+
24
+ module Ronin
25
+ module DB
26
+ #
27
+ # Represents discovered web vulnerabilities.
28
+ #
29
+ class WebVuln < ActiveRecord::Base
30
+
31
+ include Model
32
+
33
+ # NOTE: disable STI so we can use the type column as an enum.
34
+ self.inheritance_column = nil
35
+
36
+ # @!attribute [rw] id
37
+ # The primary key of the URL.
38
+ #
39
+ # @return [Integer]
40
+ attribute :id, :integer
41
+
42
+ # @!attribute [rw] scheme
43
+ # The scheme of the URL.
44
+ #
45
+ # @return [URL]
46
+ belongs_to :url, required: true,
47
+ class_name: 'URL'
48
+
49
+ # @!attribute [rw] type
50
+ # The type of vuln.
51
+ #
52
+ # @return ["lfi", "rfi", "sqli", "ssti", "open_redirect", "reflected_xss", "command_injection"]
53
+ enum type: {
54
+ lfi: 'lfi',
55
+ rfi: 'rfi',
56
+ sqli: 'sqli',
57
+ ssti: 'ssti',
58
+ open_redirect: 'open_redirect',
59
+ reflected_xss: 'reflected_xss',
60
+ command_injection: 'command_injection'
61
+ }
62
+ validates :type, presence: true
63
+
64
+ # @!attribute [rw] query_param
65
+ # The query param of the URL.
66
+ #
67
+ # @return [String, nil]
68
+ attribute :query_param, :string
69
+
70
+ # @!attribute [rw] header_name
71
+ # The header name string part of the URL.
72
+ #
73
+ # @return [String, nil]
74
+ attribute :header_name, :string
75
+
76
+ # @!attribute [rw] cookie_param
77
+ # The cookie param of the URL.
78
+ #
79
+ # @return [String, nil]
80
+ attribute :cookie_param, :string
81
+
82
+ # @!attribute [rw] form_param
83
+ # The form param of the URL.
84
+ #
85
+ # @return [String, nil]
86
+ attribute :form_param, :string
87
+ validate :param_validation
88
+
89
+ # @!attribute [rw] request_method
90
+ # The request method for the URL.
91
+ #
92
+ # @return ["copy", "delete", "get", "head", "lock", "mkcol", "move", "options", "patch", "post", "propfind", "proppatch", "put", "trace", "unlock"]
93
+ enum request_method: {
94
+ copy: 'COPY',
95
+ delete: 'DELETE',
96
+ get: 'GET',
97
+ head: 'HEAD',
98
+ lock: 'LOCK',
99
+ mkcol: 'MKCOL',
100
+ move: 'MOVE',
101
+ options: 'OPTIONS',
102
+ patch: 'PATCH',
103
+ post: 'POST',
104
+ propfind: 'PROPFIND',
105
+ proppatch: 'PROPPATCH',
106
+ put: 'PUT',
107
+ trace: 'TRACE',
108
+ unlock: 'UNLOCK'
109
+ }, _suffix: :request
110
+
111
+ # @!attribute [rw] lfi_os
112
+ # The LFI os.
113
+ #
114
+ # @return [:unix, :windows, nil]
115
+ enum lfi_os: {
116
+ unix: 'unix',
117
+ windows: 'windows'
118
+ }, _prefix: true
119
+
120
+ # @!attribute [rw] lfi_depth
121
+ # The LFI depth.
122
+ #
123
+ # @return [Integer, nil]
124
+ attribute :lfi_depth, :integer
125
+
126
+ # @!attribute [rw] lfi_filter_bypass
127
+ # The LFI filter bypass.
128
+ #
129
+ # @return [:null_byte, :base64, :rot13, :zlib, nil]
130
+ enum lfi_filter_bypass: {
131
+ null_byte: 'null_byte',
132
+ base64: 'base64',
133
+ rot13: 'rot13',
134
+ zlib: 'zlib'
135
+ }, _prefix: true
136
+
137
+ # @!attribute [rw] rfi_script_lang
138
+ # The RFI script lang.
139
+ #
140
+ # @return [:asp, :asp_net, :cold_fusion, :jsp, :php, :perl, nil]
141
+ enum rfi_script_lang: {
142
+ asp: 'asp',
143
+ asp_net: 'asp_net',
144
+ cold_fusion: 'cold_fusion',
145
+ jsp: 'jsp',
146
+ php: 'php',
147
+ perl: 'perl'
148
+ }, _prefix: true
149
+
150
+ # @!attribute [rw] rfi_filter_bypass
151
+ # The RFI filter bypass.
152
+ #
153
+ # @return [:null_byte, :double_encode, nil]
154
+ enum rfi_filter_bypass: {
155
+ null_byte: 'null_byte',
156
+ double_encode: 'double_encode'
157
+ }, _prefix: true
158
+
159
+ # @!attribute [rw] ssti_escape_type
160
+ # The SSTI escape type.
161
+ #
162
+ # @return [:double_curly_braces, :dollar_curly_braces, :dollar_double_curly_braces, :pound_curly_braces, :angle_brackets_percent, :custom, nil]
163
+ enum ssti_escape_type: {
164
+ double_curly_braces: 'double_curly_braces',
165
+ dollar_curly_braces: 'dollar_curly_braces',
166
+ dollar_double_curly_braces: 'dollar_double_curly_braces',
167
+ pound_curly_braces: 'pound_curly_braces',
168
+ angle_brackets_percent: 'angle_brackets_percent',
169
+ custom: 'custom'
170
+ }, _prefix: true
171
+
172
+ # @!attribute [rw] sqli_escape_quote
173
+ # The SQLi escape quote.
174
+ #
175
+ # @return [Boolean, nil]
176
+ attribute :sqli_escape_quote, :boolean
177
+
178
+ # @!attribute [rw] sqli_escape_parens
179
+ # The SQLi escape parens.
180
+ #
181
+ # @return [Boolean, nil]
182
+ attribute :sqli_escape_parens, :boolean
183
+
184
+ # @!attribute [rw] sqli_terminate
185
+ # The SQLi terminate.
186
+ #
187
+ # @return [Boolean, nil]
188
+ attribute :sqli_terminate, :boolean
189
+
190
+ # @!attribute [rw] command_injection_escape_quote
191
+ # The Command Injection escape quote character.
192
+ #
193
+ # @return [String, nil]
194
+ attribute :command_injection_escape_quote, :string
195
+
196
+ # @!attribute [rw] command_injection_escape_operator
197
+ # The Command Injection escape operator character.
198
+ #
199
+ # @return [String, nil]
200
+ attribute :command_injection_escape_operator, :string
201
+
202
+ # @!attribute [rw] command_injection_terminator
203
+ # The Command Injection terminator character.
204
+ #
205
+ # @return [String, nil]
206
+ attribute :command_injection_terminator, :string
207
+
208
+ # @!attribute [r] created_at
209
+ # Defines the created_at timestamp
210
+ #
211
+ # @return [Time]
212
+ attribute :created_at, :datetime
213
+
214
+ #
215
+ # Queries all web vulnerabilities belonging to the given host name.
216
+ #
217
+ # @param [String] host_name
218
+ # The host name to search for.
219
+ #
220
+ # @return [Array<WebVuln>]
221
+ # The matching web vulnerabilities.
222
+ #
223
+ def self.for_host(host_name)
224
+ joins(url: [:host_name]).where(
225
+ url: {
226
+ ronin_host_names: {name: host_name}
227
+ }
228
+ )
229
+ end
230
+
231
+ #
232
+ # Queries all web vulnerabilities belonging to the given domain name.
233
+ #
234
+ # @param [String] domain
235
+ # The domain to search for.
236
+ #
237
+ # @return [Array<WebVuln>]
238
+ # The matching web vulnerabilities.
239
+ #
240
+ def self.for_domain(domain)
241
+ joins(url: [:host_name]).merge(HostName.with_domain(domain))
242
+ end
243
+
244
+ #
245
+ # Queries all web vulnerabilities with the matching URL path.
246
+ #
247
+ # @param [String] path
248
+ # The URL path to search for.
249
+ #
250
+ # @return [Array<WebVuln>]
251
+ # The matching web vulnerabilities.
252
+ #
253
+ def self.for_path(path)
254
+ joins(:url).where(url: {path: path})
255
+ end
256
+
257
+ #
258
+ # Queries all web vulnerabilities of the given type.
259
+ #
260
+ # @param [:lfi, :rfi, :sqli, :ssti, :open_redirect, :reflected_xss, :command_injection] type
261
+ # The web vulnerability type to search for.
262
+ #
263
+ # @return [Array<WebVuln>]
264
+ # The matching web vulnerabilities.
265
+ #
266
+ def self.with_type(type)
267
+ where(type: type)
268
+ end
269
+
270
+ #
271
+ # Queries all web vulnerabilities effecting the given query param name.
272
+ #
273
+ # @param [String] name
274
+ # The query param name to search for.
275
+ #
276
+ # @return [Array<WebVuln>]
277
+ # The matching web vulnerabilities.
278
+ #
279
+ def self.with_query_param(name)
280
+ where(query_param: name)
281
+ end
282
+
283
+ #
284
+ # Queries all web vulnerabilities effecting the given header name.
285
+ #
286
+ # @param [String] name
287
+ # The header name to search for.
288
+ #
289
+ # @return [Array<WebVuln>]
290
+ # The matching web vulnerabilities.
291
+ #
292
+ def self.with_header_name(name)
293
+ where(header_name: name)
294
+ end
295
+
296
+ #
297
+ # Queries all web vulnerabilities effecting the given cookie param name.
298
+ #
299
+ # @param [String] name
300
+ # The cookie param name to search for.
301
+ #
302
+ # @return [Array<WebVuln>]
303
+ # The matching web vulnerabilities.
304
+ #
305
+ def self.with_cookie_param(name)
306
+ where(cookie_param: name)
307
+ end
308
+
309
+ #
310
+ # Queries all web vulnerabilities effecting the given form param name.
311
+ #
312
+ # @param [String] name
313
+ # The form param name to search for.
314
+ #
315
+ # @return [Array<WebVuln>]
316
+ # The matching web vulnerabilities.
317
+ #
318
+ def self.with_form_param(name)
319
+ where(form_param: name)
320
+ end
321
+
322
+ #
323
+ # Queries all web vulnerabilities with the given request method.
324
+ #
325
+ # @param [String] request_method
326
+ # The request method to search for.
327
+ #
328
+ # @return [Array<WebVuln>]
329
+ # The matching web vulnerabilities.
330
+ #
331
+ def self.with_request_method(request_method)
332
+ where(request_method: request_method)
333
+ end
334
+
335
+ #
336
+ # Validates presence of at least one param fields.
337
+ #
338
+ def param_validation
339
+ unless (query_param || header_name || cookie_param || form_param)
340
+ self.errors.add(:base, "query_param, header_name, cookie_param or from_param must be present")
341
+ end
342
+ end
343
+
344
+ end
345
+ end
346
+ end
347
+
348
+ require 'ronin/db/url'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ronin-db-activerecord
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Postmodern
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-20 00:00:00.000000000 Z
11
+ date: 2024-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: uri-query_params
@@ -110,12 +110,50 @@ files:
110
110
  - db/migrate/0034_create_ronin_service_credentials_table.rb
111
111
  - db/migrate/0035_create_ronin_web_credentials_table.rb
112
112
  - db/migrate/0036_add_software_id_column_to_open_ports_table.rb
113
+ - db/migrate/0037_add_created_at_column_to_ronin_ports_table.rb
114
+ - db/migrate/0038_add_created_at_column_to_ronin_services_table.rb
115
+ - db/migrate/0039_create_ronin_cert_names_table.rb
116
+ - db/migrate/0040_create_ronin_cert_issuers_table.rb
117
+ - db/migrate/0041_create_ronin_cert_subjects_table.rb
118
+ - db/migrate/0042_create_ronin_cert_subject_alt_names_table.rb
119
+ - db/migrate/0043_create_ronin_certs_table.rb
120
+ - db/migrate/0044_add_cert_id_column_to_ronin_open_ports_table.rb
121
+ - db/migrate/0045_create_ronin_notes_table.rb
122
+ - db/migrate/0046_create_ronin_web_vulns_table.rb
123
+ - db/migrate/0047_create_ronin_phone_numbers_table.rb
124
+ - db/migrate/0048_create_ronin_street_addresses_table.rb
125
+ - db/migrate/0049_create_ronin_people_table.rb
126
+ - db/migrate/0050_create_ronin_personal_connections_table.rb
127
+ - db/migrate/0051_create_ronin_personal_phone_numbers_table.rb
128
+ - db/migrate/0052_create_ronin_personal_email_addresses_table.rb
129
+ - db/migrate/0053_create_ronin_personal_street_addresses_table.rb
130
+ - db/migrate/0054_add_type_column_to_ronin_organizations_table.rb
131
+ - db/migrate/0055_add_parent_id_column_to_ronin_organizations_table.rb
132
+ - db/migrate/0056_create_ronin_organization_departments_table.rb
133
+ - db/migrate/0057_create_ronin_organization_members_table.rb
134
+ - db/migrate/0058_create_ronin_organization_customers_table.rb
135
+ - db/migrate/0059_create_ronin_organization_phone_numbers_table.rb
136
+ - db/migrate/0060_create_ronin_organization_email_addresses_table.rb
137
+ - db/migrate/0061_create_ronin_organization_street_addresses_table.rb
138
+ - db/migrate/0062_add_source_ip_column_to_http_requests_table.rb
139
+ - db/migrate/0063_create_ronin_dns_queries_table.rb
140
+ - db/migrate/0064_create_ronin_dns_records_table.rb
141
+ - db/migrate/0065_create_ronin_organization_host_names_table.rb
142
+ - db/migrate/0066_create_ronin_organization_ip_addresses_table.rb
113
143
  - gemspec.yml
114
144
  - lib/ronin/db/address.rb
115
145
  - lib/ronin/db/advisory.rb
116
146
  - lib/ronin/db/arch.rb
117
147
  - lib/ronin/db/asn.rb
148
+ - lib/ronin/db/cert.rb
149
+ - lib/ronin/db/cert_issuer.rb
150
+ - lib/ronin/db/cert_name.rb
151
+ - lib/ronin/db/cert_organization.rb
152
+ - lib/ronin/db/cert_subject.rb
153
+ - lib/ronin/db/cert_subject_alt_name.rb
118
154
  - lib/ronin/db/credential.rb
155
+ - lib/ronin/db/dns_query.rb
156
+ - lib/ronin/db/dns_record.rb
119
157
  - lib/ronin/db/email_address.rb
120
158
  - lib/ronin/db/host_name.rb
121
159
  - lib/ronin/db/host_name_ip_address.rb
@@ -136,16 +174,32 @@ files:
136
174
  - lib/ronin/db/model/importable.rb
137
175
  - lib/ronin/db/model/last_scanned_at.rb
138
176
  - lib/ronin/db/models.rb
177
+ - lib/ronin/db/note.rb
139
178
  - lib/ronin/db/open_port.rb
140
179
  - lib/ronin/db/organization.rb
180
+ - lib/ronin/db/organization_customer.rb
181
+ - lib/ronin/db/organization_department.rb
182
+ - lib/ronin/db/organization_email_address.rb
183
+ - lib/ronin/db/organization_host_name.rb
184
+ - lib/ronin/db/organization_ip_address.rb
185
+ - lib/ronin/db/organization_member.rb
186
+ - lib/ronin/db/organization_phone_number.rb
187
+ - lib/ronin/db/organization_street_address.rb
141
188
  - lib/ronin/db/os.rb
142
189
  - lib/ronin/db/os_guess.rb
143
190
  - lib/ronin/db/password.rb
191
+ - lib/ronin/db/person.rb
192
+ - lib/ronin/db/personal_connection.rb
193
+ - lib/ronin/db/personal_email_address.rb
194
+ - lib/ronin/db/personal_phone_number.rb
195
+ - lib/ronin/db/personal_street_address.rb
196
+ - lib/ronin/db/phone_number.rb
144
197
  - lib/ronin/db/port.rb
145
198
  - lib/ronin/db/service.rb
146
199
  - lib/ronin/db/service_credential.rb
147
200
  - lib/ronin/db/software.rb
148
201
  - lib/ronin/db/software_vendor.rb
202
+ - lib/ronin/db/street_address.rb
149
203
  - lib/ronin/db/url.rb
150
204
  - lib/ronin/db/url_query_param.rb
151
205
  - lib/ronin/db/url_query_param_name.rb
@@ -153,6 +207,7 @@ files:
153
207
  - lib/ronin/db/user_name.rb
154
208
  - lib/ronin/db/vulnerability.rb
155
209
  - lib/ronin/db/web_credential.rb
210
+ - lib/ronin/db/web_vuln.rb
156
211
  - ronin-db-activerecord.gemspec
157
212
  homepage: https://ronin-rb.dev/
158
213
  licenses: