recog 2.3.20 → 2.3.23
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/dependabot.yml +8 -0
- data/.github/workflows/ci.yml +1 -1
- data/.github/workflows/verify.yml +89 -0
- data/.vscode/bin/monitor-recog-fingerprints.sh +54 -0
- data/.vscode/extensions.json +5 -0
- data/.vscode/settings.json +8 -0
- data/.vscode/tasks.json +77 -0
- data/CONTRIBUTING.md +8 -0
- data/README.md +17 -0
- data/bin/recog_standardize +28 -13
- data/bin/recog_verify +42 -8
- data/cpe-remap.yaml +62 -3
- data/features/data/schema_failure.xml +4 -0
- data/features/data/tests_with_failures.xml +6 -0
- data/features/support/hooks.rb +9 -0
- data/features/verify.feature +85 -21
- data/identifiers/fields.txt +6 -5
- data/identifiers/hw_device.txt +8 -0
- data/identifiers/hw_family.txt +8 -0
- data/identifiers/hw_product.txt +54 -0
- data/identifiers/os_device.txt +2 -0
- data/identifiers/os_family.txt +2 -0
- data/identifiers/os_product.txt +18 -2
- data/identifiers/service_product.txt +26 -0
- data/identifiers/vendor.txt +62 -1
- data/lib/recog/db.rb +2 -1
- data/lib/recog/fingerprint.rb +33 -6
- data/lib/recog/fingerprint_parse_error.rb +10 -0
- data/lib/recog/nizer.rb +1 -82
- data/lib/recog/verifier.rb +9 -9
- data/lib/recog/verify_reporter.rb +17 -6
- data/lib/recog/version.rb +1 -1
- data/requirements.txt +1 -1
- data/spec/data/external_example_fingerprint/hp_printer_ex_01.txt +1 -0
- data/spec/data/external_example_fingerprint/hp_printer_ex_02.txt +1 -0
- data/spec/data/external_example_fingerprint.xml +8 -0
- data/spec/data/external_example_illegal_path_fingerprint.xml +7 -0
- data/spec/lib/fingerprint_self_test_spec.rb +1 -0
- data/spec/lib/recog/db_spec.rb +84 -61
- data/spec/lib/recog/fingerprint_spec.rb +4 -4
- data/spec/lib/recog/verify_reporter_spec.rb +73 -4
- data/tools/dev/hooks/pre-commit +21 -0
- data/update_cpes.py +130 -37
- data/xml/apache_os.xml +98 -56
- data/xml/architecture.xml +15 -1
- data/xml/dhcp_vendor_class.xml +206 -0
- data/xml/dns_versionbind.xml +26 -13
- data/xml/favicons.xml +236 -47
- data/xml/fingerprints.xsd +9 -1
- data/xml/ftp_banners.xml +213 -197
- data/xml/h323_callresp.xml +101 -101
- data/xml/hp_pjl_id.xml +84 -84
- data/xml/html_title.xml +715 -45
- data/xml/http_cookies.xml +143 -80
- data/xml/http_servers.xml +510 -310
- data/xml/http_wwwauth.xml +177 -75
- data/xml/imap_banners.xml +10 -10
- data/xml/mdns_device-info_txt.xml +421 -26
- data/xml/mysql_banners.xml +3 -2
- data/xml/nntp_banners.xml +12 -9
- data/xml/ntp_banners.xml +97 -97
- data/xml/operating_system.xml +98 -83
- data/xml/pop_banners.xml +27 -27
- data/xml/rsh_resp.xml +3 -3
- data/xml/sip_banners.xml +46 -8
- data/xml/sip_user_agents.xml +180 -27
- data/xml/smb_native_lm.xml +5 -5
- data/xml/smb_native_os.xml +28 -25
- data/xml/smtp_banners.xml +258 -254
- data/xml/smtp_ehlo.xml +1 -1
- data/xml/smtp_help.xml +11 -11
- data/xml/smtp_noop.xml +2 -2
- data/xml/snmp_sysdescr.xml +1554 -1429
- data/xml/snmp_sysobjid.xml +27 -27
- data/xml/ssh_banners.xml +27 -20
- data/xml/telnet_banners.xml +256 -57
- data/xml/tls_jarm.xml +48 -6
- data/xml/x11_banners.xml +3 -3
- data/xml/x509_issuers.xml +69 -2
- data/xml/x509_subjects.xml +144 -33
- metadata +24 -4
- data/lib/recog/verifier_factory.rb +0 -13
data/features/verify.feature
CHANGED
@@ -2,47 +2,111 @@ Feature: Verify
|
|
2
2
|
@no-clobber
|
3
3
|
Scenario: No tests
|
4
4
|
When I run `recog_verify no_tests.xml`
|
5
|
-
Then it should pass with:
|
5
|
+
Then it should pass with exactly:
|
6
6
|
"""
|
7
|
-
SUMMARY: Test completed with 0 successful, 0 warnings, and 0 failures
|
7
|
+
no_tests.xml: SUMMARY: Test completed with 0 successful, 0 warnings, and 0 failures
|
8
8
|
"""
|
9
9
|
|
10
10
|
@no-clobber
|
11
11
|
Scenario: Successful tests
|
12
12
|
When I run `recog_verify successful_tests.xml`
|
13
|
-
Then it should pass with:
|
13
|
+
Then it should pass with exactly:
|
14
14
|
"""
|
15
|
-
SUMMARY: Test completed with 4 successful, 0 warnings, and 0 failures
|
15
|
+
successful_tests.xml: SUMMARY: Test completed with 4 successful, 0 warnings, and 0 failures
|
16
16
|
"""
|
17
17
|
|
18
18
|
@no-clobber
|
19
|
-
Scenario: Tests with warnings, warnings
|
19
|
+
Scenario: Tests with warnings, warnings disabled
|
20
|
+
When I run `recog_verify --no-warnings tests_with_warnings.xml`
|
21
|
+
Then it should pass with exactly:
|
22
|
+
"""
|
23
|
+
tests_with_warnings.xml: SUMMARY: Test completed with 1 successful, 0 warnings, and 0 failures
|
24
|
+
"""
|
25
|
+
|
26
|
+
# These tests vary due to line numbering issues in Nokogiri, so there are different versions
|
27
|
+
# of the same test depending on the ruby runtime. Nokogiri uses libxml under CRuby, and a custom
|
28
|
+
# java-based parser under JRuby. The Java-based parser only approximates line numbers, which are
|
29
|
+
# typically off if XML prolog or comments are present.
|
30
|
+
#
|
31
|
+
# See https://github.com/sparklemotion/nokogiri/issues/2380
|
32
|
+
@no-clobber
|
33
|
+
@unsupported-on-platform-java
|
34
|
+
Scenario: Tests with warnings, warnings enabled (CRuby)
|
20
35
|
When I run `recog_verify tests_with_warnings.xml`
|
21
36
|
Then it should fail with:
|
22
37
|
"""
|
23
|
-
WARN: 'Pure-FTPd' has no test cases
|
24
|
-
|
25
|
-
SUMMARY: Test completed with 1 successful, 2 warnings, and 0 failures
|
38
|
+
tests_with_warnings.xml:10: WARN: 'Pure-FTPd' has no test cases
|
39
|
+
tests_with_warnings.xml: SUMMARY: Test completed with 1 successful, 1 warnings, and 0 failures
|
26
40
|
"""
|
27
|
-
And the exit status should be
|
28
|
-
|
41
|
+
And the exit status should be 1
|
42
|
+
|
43
|
+
# JRuby 9.2.20.1 and 9.3.3.0 differ in how they parse XML, where the latter is more close to libxml
|
44
|
+
# and Nokogiri. We use a regex test to match results from both versions.
|
29
45
|
@no-clobber
|
30
|
-
|
31
|
-
|
32
|
-
|
46
|
+
@requires-ruby-platform-java
|
47
|
+
Scenario: Tests with warnings, warnings enabled (JRuby)
|
48
|
+
When I run `recog_verify tests_with_warnings.xml`
|
49
|
+
Then it should fail with regex:
|
33
50
|
"""
|
34
|
-
|
51
|
+
tests_with_warnings.xml:\d+: WARN: 'Pure-FTPd' has no test cases
|
52
|
+
tests_with_warnings.xml: SUMMARY: Test completed with 1 successful, 1 warnings, and 0 failures
|
35
53
|
"""
|
54
|
+
And the exit status should be 1
|
36
55
|
|
37
56
|
@no-clobber
|
38
|
-
|
57
|
+
@unsupported-on-platform-java
|
58
|
+
Scenario: Tests with failures (CRuby)
|
39
59
|
When I run `recog_verify tests_with_failures.xml`
|
40
60
|
Then it should fail with:
|
41
61
|
"""
|
42
|
-
FAIL: 'foo test' failed to match "bar" with (?-mix:^foo$)'
|
43
|
-
FAIL: '' failed to match "This almost matches" with (?-mix:^This matches$)'
|
44
|
-
FAIL: 'bar test's os.name is a non-zero pos but specifies a value of 'Bar'
|
45
|
-
FAIL: 'bar test' failed to find expected capture group os.version '5.0'. Result was 1.0
|
46
|
-
|
62
|
+
tests_with_failures.xml:3: FAIL: 'foo test' failed to match "bar" with (?-mix:^foo$)'
|
63
|
+
tests_with_failures.xml:8: FAIL: '' failed to match "This almost matches" with (?-mix:^This matches$)'
|
64
|
+
tests_with_failures.xml:13: FAIL: 'bar test's os.name is a non-zero pos but specifies a value of 'Bar'
|
65
|
+
tests_with_failures.xml:13: FAIL: 'bar test' failed to find expected capture group os.version '5.0'. Result was 1.0
|
66
|
+
tests_with_failures.xml:20: FAIL: 'example with untested parameter' is missing an example that checks for parameter 'os.version' which is derived from a capture group
|
67
|
+
tests_with_failures.xml: SUMMARY: Test completed with 1 successful, 0 warnings, and 5 failures
|
68
|
+
"""
|
69
|
+
And the exit status should be 5
|
70
|
+
|
71
|
+
# JRuby 9.2.20.1 and 9.3.3.0 differ in how they parse XML, where the latter is more close to libxml
|
72
|
+
# and Nokogiri. We use a regex test to match results from both versions.
|
73
|
+
@no-clobber
|
74
|
+
@requires-ruby-platform-java
|
75
|
+
Scenario: Tests with failures (JRuby)
|
76
|
+
When I run `recog_verify tests_with_failures.xml`
|
77
|
+
Then it should fail with regex:
|
78
|
+
"""
|
79
|
+
tests_with_failures.xml:\d+: FAIL: 'foo test' failed to match "bar" with \(\?-mix:\^foo\$\)'
|
80
|
+
tests_with_failures.xml:\d+: FAIL: '' failed to match "This almost matches" with \(\?-mix:\^This matches\$\)'
|
81
|
+
tests_with_failures.xml:\d+: FAIL: 'bar test's os\.name is a non-zero pos but specifies a value of 'Bar'
|
82
|
+
tests_with_failures.xml:\d+: FAIL: 'bar test' failed to find expected capture group os\.version '5\.0'. Result was 1\.0
|
83
|
+
tests_with_failures.xml:\d+: FAIL: 'example with untested parameter' is missing an example that checks for parameter 'os\.version' which is derived from a capture group
|
84
|
+
tests_with_failures.xml: SUMMARY: Test completed with 1 successful, 0 warnings, and 5 failures
|
85
|
+
"""
|
86
|
+
And the exit status should be 5
|
87
|
+
|
88
|
+
@no-clobber
|
89
|
+
@unsupported-on-platform-java
|
90
|
+
Scenario: recog_verify produces XML errors from the XSD with a malformed XML document (CRuby)
|
91
|
+
When I run `recog_verify --schema-location ../../xml/fingerprints.xsd schema_failure.xml`
|
92
|
+
Then it should fail with:
|
93
|
+
"""
|
94
|
+
schema_failure.xml:3: FAIL: 3:0: ERROR: Element 'fingerprint', attribute 'name': The attribute 'name' is not allowed.
|
95
|
+
schema_failure.xml:3: FAIL: 3:0: ERROR: Element 'fingerprint': The attribute 'pattern' is required but missing.
|
96
|
+
schema_failure.xml:3: FAIL: 3:0: ERROR: Element 'fingerprint': Missing child element(s). Expected is ( description ).
|
97
|
+
schema_failure.xml: SUMMARY: Test completed with 0 successful, 0 warnings, and 3 failures
|
98
|
+
"""
|
99
|
+
And the exit status should be 3
|
100
|
+
|
101
|
+
@no-clobber
|
102
|
+
@requires-ruby-platform-java
|
103
|
+
Scenario: recog_verify produces XML errors from the XSD with a malformed XML document (JRuby)
|
104
|
+
When I run `recog_verify --schema_location ../../xml/fingerprints.xsd schema_failure.xml`
|
105
|
+
Then it should fail with:
|
106
|
+
"""
|
107
|
+
schema_failure.xml:-1: FAIL: -1:-1: ERROR: cvc-complex-type.3.2.2: Attribute 'name' is not allowed to appear in element 'fingerprint'.
|
108
|
+
schema_failure.xml:-1: FAIL: -1:-1: ERROR: cvc-complex-type.4: Attribute 'pattern' must appear on element 'fingerprint'.
|
109
|
+
schema_failure.xml:-1: FAIL: -1:-1: ERROR: cvc-complex-type.2.4.b: The content of element 'fingerprint' is not complete. One of '{description}' is expected.
|
110
|
+
schema_failure.xml: SUMMARY: Test completed with 0 successful, 0 warnings, and 3 failures
|
47
111
|
"""
|
48
|
-
And the exit status should be
|
112
|
+
And the exit status should be 3
|
data/identifiers/fields.txt
CHANGED
@@ -2,17 +2,16 @@ agilent.serial
|
|
2
2
|
apache.info
|
3
3
|
apache.variant
|
4
4
|
apache.variant.version
|
5
|
+
aptinex.model
|
5
6
|
chromecast.capabilities
|
6
7
|
chromecast.generation
|
7
|
-
chromecast.serial_number
|
8
8
|
cisco.imc_model
|
9
|
-
cisco.
|
9
|
+
cisco.model
|
10
10
|
cookie
|
11
11
|
dell.service_tag
|
12
|
+
digi.serial_number
|
12
13
|
extron.model
|
13
|
-
fortinet.serial_number
|
14
14
|
host.domain
|
15
|
-
host.id
|
16
15
|
host.ip
|
17
16
|
host.mac
|
18
17
|
host.mac_eui64
|
@@ -25,6 +24,7 @@ hw.device
|
|
25
24
|
hw.family
|
26
25
|
hw.model
|
27
26
|
hw.product
|
27
|
+
hw.serial_number
|
28
28
|
hw.series
|
29
29
|
hw.vendor
|
30
30
|
hw.version
|
@@ -32,6 +32,7 @@ imail.eval
|
|
32
32
|
jetty.info
|
33
33
|
junction.cookie
|
34
34
|
junction.name
|
35
|
+
lantronix.serial_number
|
35
36
|
lenovo.machine_model
|
36
37
|
lenovo.machine_type
|
37
38
|
linux.kernel.version
|
@@ -67,7 +68,6 @@ proftpd.server.name
|
|
67
68
|
pureftpd.config
|
68
69
|
python.version
|
69
70
|
qpopper.version
|
70
|
-
ruckus.serial_number
|
71
71
|
securetransport.build
|
72
72
|
sendmail.config.version
|
73
73
|
sendmail.hpux.phne.version
|
@@ -100,5 +100,6 @@ system.time.millis
|
|
100
100
|
tandberg.model
|
101
101
|
thttpd.mx-patch
|
102
102
|
tomcat.info
|
103
|
+
unify.model
|
103
104
|
wd2go.device_id
|
104
105
|
zmailer.ident
|
data/identifiers/hw_device.txt
CHANGED
@@ -25,12 +25,14 @@ Handheld Scanner
|
|
25
25
|
Hypervisor
|
26
26
|
IP Camera
|
27
27
|
IPS
|
28
|
+
IPTV
|
28
29
|
Industrial Control
|
29
30
|
JTAG Adapter
|
30
31
|
KVM
|
31
32
|
Laptop
|
32
33
|
Light Bulb
|
33
34
|
Lights Out Management
|
35
|
+
Media Player
|
34
36
|
Media Receiver
|
35
37
|
Media Server
|
36
38
|
Mobile Phone
|
@@ -42,6 +44,7 @@ Network Audio
|
|
42
44
|
Network Management Device
|
43
45
|
PLC
|
44
46
|
Power Device
|
47
|
+
Power Meter
|
45
48
|
Power Relay
|
46
49
|
Powerline
|
47
50
|
Print Server
|
@@ -53,6 +56,7 @@ SIP Device
|
|
53
56
|
SIP Gateway
|
54
57
|
Scanner
|
55
58
|
Security Appliance
|
59
|
+
Sensor
|
56
60
|
Smart TV
|
57
61
|
Storage
|
58
62
|
Storage Appliance
|
@@ -62,17 +66,21 @@ Tablet
|
|
62
66
|
Tape Library
|
63
67
|
Telecom
|
64
68
|
Test Instrument
|
69
|
+
Thin Client
|
70
|
+
UPS
|
65
71
|
VPN
|
66
72
|
Video Conference
|
67
73
|
Video Conferencing
|
68
74
|
Video Decoder
|
69
75
|
Video Encoder
|
70
76
|
VoIP
|
77
|
+
VoIP Gateway
|
71
78
|
VoIP Server
|
72
79
|
VoIP Switch
|
73
80
|
Voice Appliance
|
74
81
|
WAP
|
75
82
|
WLAN Repeater
|
83
|
+
Web Cam
|
76
84
|
Whiteboard
|
77
85
|
Wireless Controller
|
78
86
|
Wireless Presenter
|
data/identifiers/hw_family.txt
CHANGED
@@ -9,6 +9,7 @@ Data ONTAP
|
|
9
9
|
DiskStation
|
10
10
|
Document Centre
|
11
11
|
EDR
|
12
|
+
Eurotherm
|
12
13
|
Extended Systems ExtendNet
|
13
14
|
FRITZ!Box
|
14
15
|
FRITZ!Fon
|
@@ -30,6 +31,7 @@ ILOM
|
|
30
31
|
IMDVR
|
31
32
|
ION
|
32
33
|
JetDirect
|
34
|
+
LX Series
|
33
35
|
LaserJet
|
34
36
|
LinkCom Xpress
|
35
37
|
MGate
|
@@ -51,6 +53,7 @@ Netscaler
|
|
51
53
|
Network Audio
|
52
54
|
Network Security Appliance
|
53
55
|
Network Video Door Station
|
56
|
+
OpenScape Desk Phone
|
54
57
|
Optra
|
55
58
|
Orbi
|
56
59
|
POWER System
|
@@ -91,6 +94,7 @@ UniFi
|
|
91
94
|
Unified Security Gateway
|
92
95
|
VDX
|
93
96
|
VSX
|
97
|
+
VVX
|
94
98
|
Vigor
|
95
99
|
VoIP
|
96
100
|
WD2GO
|
@@ -111,3 +115,7 @@ iPad Air
|
|
111
115
|
iPad Pro
|
112
116
|
iPad mini
|
113
117
|
iPhone
|
118
|
+
iPod
|
119
|
+
iSTAR Door Controllers
|
120
|
+
imageClass
|
121
|
+
imageRunner
|
data/identifiers/hw_product.txt
CHANGED
@@ -15,20 +15,25 @@ Adaptive Security Appliance
|
|
15
15
|
AirPort Express
|
16
16
|
AirPort Extreme
|
17
17
|
Alarm Panel
|
18
|
+
AmpliFi
|
18
19
|
AppDynamics
|
19
20
|
Apple TV (2nd generation)
|
20
21
|
Apple TV (3rd generation)
|
21
22
|
Apple TV (4th generation)
|
22
23
|
Apple TV 4K
|
24
|
+
Apple TV 4K (2nd generation)
|
23
25
|
Appliance
|
24
26
|
ArchiveTeam Warrior
|
25
27
|
Asset Management
|
28
|
+
AutoDome
|
26
29
|
AutoVu SharpV
|
30
|
+
BlackBox
|
27
31
|
BladeSystem Onboard Administrator
|
28
32
|
Border GW
|
29
33
|
Bridge
|
30
34
|
CC EtherNet/IP
|
31
35
|
CP
|
36
|
+
CU360
|
32
37
|
Camera
|
33
38
|
Captive Portal
|
34
39
|
CarDetector
|
@@ -39,6 +44,8 @@ Chromecast
|
|
39
44
|
ClearPass Policy Manager
|
40
45
|
ClickShare
|
41
46
|
CloudKey
|
47
|
+
Color Bulb
|
48
|
+
CommServer
|
42
49
|
CommandPost
|
43
50
|
ConnectUPS Web Card
|
44
51
|
Crosswork SON Appliance
|
@@ -48,12 +55,16 @@ DCS-932
|
|
48
55
|
DD OS
|
49
56
|
DNA Center
|
50
57
|
DSL Router
|
58
|
+
DX800A
|
51
59
|
Data ONTAP
|
52
60
|
Digital Signage Player
|
53
61
|
Discover
|
54
62
|
Discovery
|
63
|
+
DocCam
|
55
64
|
Document Centre
|
65
|
+
Drone Detector
|
56
66
|
DuraFon
|
67
|
+
E5810 Gateway Device
|
57
68
|
ECOM100
|
58
69
|
EDR-G902
|
59
70
|
EDR-G903
|
@@ -67,6 +78,7 @@ EdgeSwitch
|
|
67
78
|
Elevation
|
68
79
|
Email Security Gateway
|
69
80
|
EqualLogic
|
81
|
+
Eternus
|
70
82
|
Ethernet Relay Controller
|
71
83
|
Ethernet Relay Module
|
72
84
|
Excella
|
@@ -92,10 +104,12 @@ HT812
|
|
92
104
|
HT813
|
93
105
|
HT814
|
94
106
|
HT818
|
107
|
+
Helium Miner
|
95
108
|
HiPer Access Router Card
|
96
109
|
Home Controller
|
97
110
|
Home Gateway
|
98
111
|
HomePod
|
112
|
+
HomePod mini
|
99
113
|
Hue
|
100
114
|
HyperFlex Connect
|
101
115
|
IA Appliance
|
@@ -109,6 +123,7 @@ IP2IR
|
|
109
123
|
IPMI
|
110
124
|
IVR
|
111
125
|
Infinity Controler
|
126
|
+
Instreamer
|
112
127
|
IntelliSlot Web Card
|
113
128
|
Internet Payment Gateway
|
114
129
|
Internet Phone Adapter
|
@@ -119,8 +134,10 @@ J9155A
|
|
119
134
|
JetDirect
|
120
135
|
K1000
|
121
136
|
KWS-1043N
|
137
|
+
KX-NS1000
|
122
138
|
Key Management
|
123
139
|
Key Management Server
|
140
|
+
LORIX ONE
|
124
141
|
Lantick Ethernet Relay Controller
|
125
142
|
Lencore Sound Manager 2
|
126
143
|
MDS 9000
|
@@ -203,11 +220,15 @@ Mercury
|
|
203
220
|
Mergepoint
|
204
221
|
Miniserver
|
205
222
|
My Book Live
|
223
|
+
N1913A Power Meter
|
206
224
|
N5172B Signal Generator
|
207
225
|
NAM
|
208
226
|
NAS4Free
|
209
227
|
NFVIS
|
210
228
|
NPort
|
229
|
+
NR900
|
230
|
+
NTP-2
|
231
|
+
NTP-RG-1402G
|
211
232
|
NetScaler Gateway
|
212
233
|
NetScaler SDX Gateway
|
213
234
|
NetScreen
|
@@ -220,6 +241,7 @@ Network Node
|
|
220
241
|
Network Security Appliance
|
221
242
|
Nexus 1000V
|
222
243
|
Nexus Player
|
244
|
+
Novus UPS
|
223
245
|
OfficeConnect Switch
|
224
246
|
OnHub
|
225
247
|
OpenManage
|
@@ -227,30 +249,37 @@ OpenManage Switch
|
|
227
249
|
OpenNAC
|
228
250
|
Orbi micro
|
229
251
|
Orbit IP Camera
|
252
|
+
PCoIP Endpoint Device
|
230
253
|
PDR M800
|
231
254
|
PIAF Virtual Appliance
|
232
255
|
PLAY
|
233
256
|
PLC-5
|
234
257
|
Paragon-100G
|
235
258
|
Photonic Switch
|
259
|
+
Plug Outdoor
|
236
260
|
PoliWall
|
261
|
+
PowerLogic Power Meter
|
237
262
|
PowerVault 124T
|
238
263
|
Prime Collaboration Manager
|
239
264
|
Primergy
|
240
265
|
Printer
|
241
266
|
Prosafe Plus
|
267
|
+
Quad Plus Receiver
|
242
268
|
R Series
|
243
269
|
RT31P2
|
244
270
|
RTU
|
245
271
|
Rack PDU Card
|
272
|
+
RadioLinx
|
246
273
|
Raspberry Pi
|
247
274
|
ReadyNAS
|
248
275
|
RecoverPoint
|
249
276
|
ReeCam
|
250
277
|
Roku
|
251
278
|
Room Alert
|
279
|
+
Roomba
|
252
280
|
S7 DALI Gateway
|
253
281
|
SD-WAN
|
282
|
+
SHDSL Router
|
254
283
|
SHIELD
|
255
284
|
SIP Gateway
|
256
285
|
SIParator Firewall
|
@@ -273,6 +302,7 @@ Site Recovery Manager
|
|
273
302
|
SmartEdge Sensor
|
274
303
|
Softswitch
|
275
304
|
SolsticePod
|
305
|
+
SonicPoint
|
276
306
|
SoundPoint
|
277
307
|
Spot
|
278
308
|
Stealthwatch
|
@@ -297,9 +327,12 @@ UCM6202
|
|
297
327
|
UCM6204
|
298
328
|
UCM6208
|
299
329
|
UCS Manager
|
330
|
+
UDS
|
331
|
+
UPS
|
300
332
|
USG20-VPN
|
301
333
|
USG40
|
302
334
|
USG60
|
335
|
+
Ultra Door Controller
|
303
336
|
UniFi Cloud Key
|
304
337
|
UniFi NVR
|
305
338
|
UniFi Security Gateway
|
@@ -319,6 +352,7 @@ WebBox
|
|
319
352
|
Whiteboard
|
320
353
|
Wireless Dock
|
321
354
|
Wireless LAN Controller
|
355
|
+
Wireless Radio
|
322
356
|
Wireless Router
|
323
357
|
XCC
|
324
358
|
Xfinity Broadband Router
|
@@ -345,6 +379,7 @@ iMac (21.5-inch, Mid 2010)
|
|
345
379
|
iMac (21.5-inch, Mid 2011)
|
346
380
|
iMac (21.5-inch, Mid 2014)
|
347
381
|
iMac (24-inch, Early 2009)
|
382
|
+
iMac (24-inch, M1, 2021)
|
348
383
|
iMac (27-inch, Late 2009)
|
349
384
|
iMac (27-inch, Late 2012)
|
350
385
|
iMac (27-inch, Late 2013)
|
@@ -362,12 +397,17 @@ iMac Pro (Retina 5K, Late 2017)
|
|
362
397
|
iPad (4th generation)
|
363
398
|
iPad (5th generation)
|
364
399
|
iPad (6th generation)
|
400
|
+
iPad (7th generation)
|
401
|
+
iPad (8th generation)
|
402
|
+
iPad (9th generation)
|
365
403
|
iPad Air
|
366
404
|
iPad Air (3rd generation)
|
405
|
+
iPad Air (4th generation)
|
367
406
|
iPad Air 2
|
368
407
|
iPad Pro (10.5-inch)
|
369
408
|
iPad Pro (11-inch)
|
370
409
|
iPad Pro (11-inch, 2nd generation)
|
410
|
+
iPad Pro (11-inch, 3rd generation)
|
371
411
|
iPad Pro (12.9-inch)
|
372
412
|
iPad Pro (12.9-inch, 2nd generation)
|
373
413
|
iPad Pro (12.9-inch, 3rd generation)
|
@@ -375,16 +415,22 @@ iPad Pro (12.9-inch, 4th generation)
|
|
375
415
|
iPad Pro (9.7-inch)
|
376
416
|
iPad mini
|
377
417
|
iPad mini (5th generation)
|
418
|
+
iPad mini (6th generation)
|
378
419
|
iPad mini 2
|
379
420
|
iPad mini 3
|
380
421
|
iPad mini 4
|
381
422
|
iPhone
|
423
|
+
iPhone 11
|
382
424
|
iPhone 11 Pro
|
383
425
|
iPhone 11 Pro Max
|
384
426
|
iPhone 12 5G
|
385
427
|
iPhone 12 Mini 5G
|
386
428
|
iPhone 12 Pro 5G
|
387
429
|
iPhone 12 Pro Max 5G
|
430
|
+
iPhone 13
|
431
|
+
iPhone 13 Pro
|
432
|
+
iPhone 13 Pro Max
|
433
|
+
iPhone 13 mini
|
388
434
|
iPhone 3G
|
389
435
|
iPhone 3GS
|
390
436
|
iPhone 4
|
@@ -406,4 +452,12 @@ iPhone X
|
|
406
452
|
iPhone XR
|
407
453
|
iPhone XS
|
408
454
|
iPhone XS Max
|
455
|
+
iPod Touch (1st generation)
|
456
|
+
iPod Touch (2nd generation)
|
457
|
+
iPod Touch (3rd generation)
|
458
|
+
iPod Touch (4th generation)
|
459
|
+
iPod Touch (5th generation)
|
460
|
+
iPod Touch (6th generation)
|
461
|
+
iPod Touch (7th generation)
|
462
|
+
iSTAR Ultra
|
409
463
|
vManage
|
data/identifiers/os_device.txt
CHANGED
data/identifiers/os_family.txt
CHANGED
@@ -185,6 +185,7 @@ System Storage
|
|
185
185
|
T3 Termination
|
186
186
|
TASKalfa
|
187
187
|
TDS750 Series
|
188
|
+
Teradici
|
188
189
|
Time Capsule
|
189
190
|
TippingPoint
|
190
191
|
Total Access
|
@@ -206,6 +207,7 @@ VRP
|
|
206
207
|
Vantage
|
207
208
|
VarioLink
|
208
209
|
VarioPrint
|
210
|
+
Vigor
|
209
211
|
VoIP
|
210
212
|
VxWorks
|
211
213
|
WAP
|
data/identifiers/os_product.txt
CHANGED
@@ -81,13 +81,17 @@ Fabric OS
|
|
81
81
|
Fastmark M5
|
82
82
|
FaxPress
|
83
83
|
Fedora
|
84
|
-
Fedora Core
|
84
|
+
Fedora Core
|
85
|
+
Fermentrack
|
85
86
|
Fiery Print Server
|
86
87
|
Firepower
|
87
88
|
Firewall-1
|
88
89
|
Fireware
|
89
90
|
FortiOS
|
90
91
|
FreeBSD
|
92
|
+
FreeNAS Firmware
|
93
|
+
Freebox OS
|
94
|
+
FreshTomato
|
91
95
|
G2 Console Switch
|
92
96
|
GAiA OS
|
93
97
|
GXP1610 Firmware
|
@@ -116,13 +120,13 @@ IPReach
|
|
116
120
|
IPSO
|
117
121
|
IRIX
|
118
122
|
Integrated Lights Out Manager
|
119
|
-
Integrated Lights Out Manager firmware
|
120
123
|
Irix
|
121
124
|
Isilon OneFS OS
|
122
125
|
JetDirect
|
123
126
|
Junos OS
|
124
127
|
Kamikaze
|
125
128
|
KeeneticOS
|
129
|
+
LORIX OS
|
126
130
|
LX
|
127
131
|
Linux
|
128
132
|
Linux AMI
|
@@ -136,10 +140,12 @@ Mac OS
|
|
136
140
|
Mac OS X
|
137
141
|
Mac OS X Server
|
138
142
|
Management Processor
|
143
|
+
Media Server
|
139
144
|
Meeting Management
|
140
145
|
MegaRAC
|
141
146
|
Mergepoint
|
142
147
|
Meridian 1 Call Server
|
148
|
+
Mongoose OS
|
143
149
|
NAM
|
144
150
|
NAS4Free
|
145
151
|
NEO Tape Library
|
@@ -147,6 +153,8 @@ NET+OS
|
|
147
153
|
NFVIS
|
148
154
|
NRG Printer
|
149
155
|
NT
|
156
|
+
NTP-2 Firmware
|
157
|
+
NTP-RG-1402G Firmware
|
150
158
|
NX-OS
|
151
159
|
NetBSD
|
152
160
|
NetCache
|
@@ -167,6 +175,7 @@ OSSIM
|
|
167
175
|
OfficeConnect Cable Modem
|
168
176
|
Onboard Administrator
|
169
177
|
OneFS
|
178
|
+
Onyx
|
170
179
|
OpenBSD
|
171
180
|
OpenMediaVault
|
172
181
|
OpenServer
|
@@ -216,6 +225,7 @@ SCO UNIX
|
|
216
225
|
SEHI
|
217
226
|
SINIX
|
218
227
|
SL2100 Firmware
|
228
|
+
SMG Firmware
|
219
229
|
SPA112 Firmware
|
220
230
|
SPA122 Firmware
|
221
231
|
SV8100 Firmware
|
@@ -225,6 +235,7 @@ ScanFront
|
|
225
235
|
ScreenOS
|
226
236
|
Secure Linux
|
227
237
|
SecureOS
|
238
|
+
Serenity
|
228
239
|
SmartEdge OS
|
229
240
|
SmartServer
|
230
241
|
SmoothWall
|
@@ -241,6 +252,7 @@ SuperStack 3
|
|
241
252
|
SuperStack 3 Firewall
|
242
253
|
SuperStack II
|
243
254
|
SureStore Tape Library
|
255
|
+
SwOS
|
244
256
|
Switch
|
245
257
|
TMS zl Module
|
246
258
|
TRU64
|
@@ -251,6 +263,8 @@ Tenable Core
|
|
251
263
|
TetrationOS
|
252
264
|
TimOS
|
253
265
|
Time Capsule Firmware
|
266
|
+
Tomato
|
267
|
+
TomatoUSB
|
254
268
|
Traverse
|
255
269
|
Tru64 Unix
|
256
270
|
UCM6202 Firmware
|
@@ -263,6 +277,7 @@ USG40 firmware
|
|
263
277
|
USG60 firmware
|
264
278
|
Ubuntu Linux
|
265
279
|
Ultrix
|
280
|
+
Unified SIP Phone 3900 Firmware
|
266
281
|
UnixWare
|
267
282
|
VBrick Rev
|
268
283
|
VIDOS-NVR
|
@@ -338,4 +353,5 @@ ipOS
|
|
338
353
|
tvOS
|
339
354
|
vManage
|
340
355
|
vSphere Management Assistant
|
356
|
+
webOS
|
341
357
|
z/OS
|