metasploit_data_models 0.19.4 → 0.19.7
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
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YjIzZmZkYmUxMzhmMjg5ZDA0Y2M1MmU2NTgyNjQ2YTRlYzc3OWZhYg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NTc2M2QyZjZhOTZiMGQyNDJlOWRjNmEyMzdhY2E0NzQ2NTgwOGMzMg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NjQwNTdkNTBhZTdlNWZjZTJlYjc3ZjA2MTA1ODBkMTEyNDZlM2I5YjBlN2Qw
|
10
|
+
YWY4ZjZhZDA0ZmRiOWQ1MDY1NWEyZGY4MWFkMDc1YzhlYjRkNThjN2NhOGRk
|
11
|
+
MjJjMzEyM2U1MDU2ZmZmYjQzZGQyOGRiMTg3N2E4YjhlNDRiOWE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTUzODYwOWJmMTliMzkzMjhjOGY2NTRmNGExNzgzNzc1YmJmODI2MDYyODZl
|
14
|
+
NjMwYmIyMWVkN2YxYTZiZjhhNzAwNDJhZDg3N2ZjYTdhZDQ4OWUyMjgxNWE4
|
15
|
+
NjhkZGE2YjU0MGFlYTY0OTM0NTdjOTMwYTZmNzE0Y2ZlMzFmMGQ=
|
data/app/models/mdm/host.rb
CHANGED
@@ -7,8 +7,13 @@ class Mdm::Host < ActiveRecord::Base
|
|
7
7
|
# CONSTANTS
|
8
8
|
#
|
9
9
|
|
10
|
-
#
|
11
|
-
#
|
10
|
+
# Special {#arch} value to indicate we should look at {#detected_arch}
|
11
|
+
# instead
|
12
|
+
UNKNOWN_ARCHITECTURE = 'Unknown'
|
13
|
+
|
14
|
+
# Either the CPU architecture for native code or the programming language
|
15
|
+
# name for exploits that run code in the programming language's virtual
|
16
|
+
# machine.
|
12
17
|
ARCHITECTURES = [
|
13
18
|
'armbe',
|
14
19
|
'armle',
|
@@ -28,7 +33,9 @@ class Mdm::Host < ActiveRecord::Base
|
|
28
33
|
# To be used for compatability with 'X86_64'
|
29
34
|
'x64',
|
30
35
|
'x86',
|
31
|
-
'x86_64'
|
36
|
+
'x86_64',
|
37
|
+
'',
|
38
|
+
UNKNOWN_ARCHITECTURE
|
32
39
|
]
|
33
40
|
|
34
41
|
# Fields searched for the search scope
|
@@ -309,6 +316,12 @@ class Mdm::Host < ActiveRecord::Base
|
|
309
316
|
#
|
310
317
|
# @return [Integer]
|
311
318
|
|
319
|
+
# @!attribute [rw] detected_arch
|
320
|
+
# The architecture of the host's CPU as detected by `Recog`. If {#arch} is
|
321
|
+
# not {UNKNOWN_ARCHITECTURE}, this is undefined.
|
322
|
+
#
|
323
|
+
# @return [String] a free-form string most likely from network data
|
324
|
+
|
312
325
|
# @!attribute [rw] exploit_attempt_count
|
313
326
|
# Counter cache for {#exploit_attempts}.
|
314
327
|
#
|
@@ -406,6 +419,12 @@ class Mdm::Host < ActiveRecord::Base
|
|
406
419
|
#
|
407
420
|
# @return [Integer]
|
408
421
|
|
422
|
+
#
|
423
|
+
# Callbacks
|
424
|
+
#
|
425
|
+
|
426
|
+
before_validation :normalize_arch
|
427
|
+
|
409
428
|
#
|
410
429
|
# Nested Attributes
|
411
430
|
# @note Must be declared after relations being referenced.
|
@@ -541,6 +560,17 @@ class Mdm::Host < ActiveRecord::Base
|
|
541
560
|
!!self.virtual_host
|
542
561
|
end
|
543
562
|
|
563
|
+
private
|
564
|
+
|
565
|
+
def normalize_arch
|
566
|
+
if attribute_present?(:arch) && !ARCHITECTURES.include?(self.arch)
|
567
|
+
self.detected_arch = arch
|
568
|
+
self.arch = UNKNOWN_ARCHITECTURE
|
569
|
+
end
|
570
|
+
end
|
571
|
+
|
572
|
+
public
|
573
|
+
|
544
574
|
Metasploit::Concern.run(self)
|
545
575
|
end
|
546
576
|
|
@@ -6,7 +6,7 @@ module MetasploitDataModels
|
|
6
6
|
# The minor version number, scoped to the {MAJOR} version number.
|
7
7
|
MINOR = 19
|
8
8
|
# The patch number, scoped to the {MINOR} version number.
|
9
|
-
PATCH =
|
9
|
+
PATCH = 7
|
10
10
|
|
11
11
|
# The full version string, including the {MAJOR}, {MINOR}, {PATCH}, and optionally, the `PRERELEASE` in the
|
12
12
|
# {http://semver.org/spec/v2.0.0.html semantic versioning v2.0.0} format.
|
@@ -25,7 +25,8 @@ describe Mdm::Host do
|
|
25
25
|
'x64',
|
26
26
|
'x86',
|
27
27
|
'x86_64',
|
28
|
-
''
|
28
|
+
'',
|
29
|
+
'Unknown',
|
29
30
|
]
|
30
31
|
end
|
31
32
|
|
@@ -268,6 +269,15 @@ describe Mdm::Host do
|
|
268
269
|
architectures.should include('x86')
|
269
270
|
architectures.should include('x86_64')
|
270
271
|
end
|
272
|
+
|
273
|
+
it 'should include blank string to indicate no detection has happened' do
|
274
|
+
architectures.should include('')
|
275
|
+
end
|
276
|
+
|
277
|
+
it 'should include "Unknown" for failed detection attempts' do
|
278
|
+
architectures.should include('Unknown')
|
279
|
+
end
|
280
|
+
|
271
281
|
end
|
272
282
|
|
273
283
|
context 'SEARCH_FIELDS' do
|
@@ -382,7 +392,24 @@ describe Mdm::Host do
|
|
382
392
|
end
|
383
393
|
end
|
384
394
|
|
385
|
-
|
395
|
+
context 'arch' do
|
396
|
+
let(:workspace) { FactoryGirl.create(:mdm_workspace) }
|
397
|
+
let(:address) { '192.168.0.1' }
|
398
|
+
let(:host) { FactoryGirl.create(:mdm_host, :address => address, :workspace => workspace, :arch => arch) }
|
399
|
+
context 'with an unknown architecture' do
|
400
|
+
let(:arch) { "asdfasdf" }
|
401
|
+
it 'should normalize to Unknown' do
|
402
|
+
host.should be_valid
|
403
|
+
host.arch.should be described_class::UNKNOWN_ARCHITECTURE
|
404
|
+
end
|
405
|
+
end
|
406
|
+
described_class::ARCHITECTURES.each do |arch|
|
407
|
+
context "with known architecture '#{arch}'" do
|
408
|
+
let(:arch) { arch }
|
409
|
+
it { should be_valid }
|
410
|
+
end
|
411
|
+
end
|
412
|
+
end
|
386
413
|
it { should ensure_inclusion_of(:state).in_array(states).allow_nil }
|
387
414
|
it { should validate_presence_of(:workspace) }
|
388
415
|
end
|
@@ -819,4 +846,4 @@ describe Mdm::Host do
|
|
819
846
|
end
|
820
847
|
|
821
848
|
end
|
822
|
-
end
|
849
|
+
end
|
data/spec/dummy/db/structure.sql
CHANGED
@@ -310,7 +310,8 @@ CREATE TABLE hosts (
|
|
310
310
|
service_count integer DEFAULT 0,
|
311
311
|
host_detail_count integer DEFAULT 0,
|
312
312
|
exploit_attempt_count integer DEFAULT 0,
|
313
|
-
cred_count integer DEFAULT 0
|
313
|
+
cred_count integer DEFAULT 0,
|
314
|
+
detected_arch character varying(255)
|
314
315
|
);
|
315
316
|
|
316
317
|
|
@@ -2984,6 +2985,8 @@ INSERT INTO schema_migrations (version) VALUES ('20130604145732');
|
|
2984
2985
|
|
2985
2986
|
INSERT INTO schema_migrations (version) VALUES ('20130717150737');
|
2986
2987
|
|
2988
|
+
INSERT INTO schema_migrations (version) VALUES ('20140905031549');
|
2989
|
+
|
2987
2990
|
INSERT INTO schema_migrations (version) VALUES ('21');
|
2988
2991
|
|
2989
2992
|
INSERT INTO schema_migrations (version) VALUES ('22');
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metasploit_data_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.19.
|
4
|
+
version: 0.19.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Huckins
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2014-
|
14
|
+
date: 2014-09-09 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rake
|
@@ -364,6 +364,7 @@ files:
|
|
364
364
|
- db/migrate/20130531144949_making_host_tags_a_real_ar_model.rb
|
365
365
|
- db/migrate/20130604145732_create_task_sessions.rb
|
366
366
|
- db/migrate/20130717150737_remove_pname_validation.rb
|
367
|
+
- db/migrate/20140905031549_add_detected_arch_to_host.rb
|
367
368
|
- lib/mdm.rb
|
368
369
|
- lib/mdm/host/operating_system_normalization.rb
|
369
370
|
- lib/mdm/module.rb
|