recog 2.3.22 → 3.0.2

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.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +2 -0
  3. data/LICENSE +1 -1
  4. data/README.md +25 -16
  5. data/Rakefile +2 -9
  6. data/lib/recog/db_manager.rb +1 -1
  7. data/lib/recog/fingerprint.rb +21 -7
  8. data/lib/recog/fingerprint_parse_error.rb +10 -0
  9. data/lib/recog/match_reporter.rb +37 -3
  10. data/lib/recog/matcher.rb +5 -10
  11. data/lib/recog/verifier.rb +4 -4
  12. data/lib/recog/verify_reporter.rb +7 -6
  13. data/lib/recog/version.rb +1 -1
  14. data/{bin → recog/bin}/recog_match +20 -7
  15. data/{xml → recog/xml}/apache_modules.xml +0 -0
  16. data/{xml → recog/xml}/apache_os.xml +61 -19
  17. data/{xml → recog/xml}/architecture.xml +15 -1
  18. data/{xml → recog/xml}/dhcp_vendor_class.xml +10 -10
  19. data/{xml → recog/xml}/dns_versionbind.xml +16 -13
  20. data/{xml → recog/xml}/favicons.xml +167 -9
  21. data/{xml → recog/xml}/fingerprints.xsd +9 -1
  22. data/{xml → recog/xml}/ftp_banners.xml +131 -141
  23. data/{xml → recog/xml}/h323_callresp.xml +2 -2
  24. data/{xml → recog/xml}/hp_pjl_id.xml +81 -81
  25. data/{xml → recog/xml}/html_title.xml +250 -9
  26. data/{xml → recog/xml}/http_cookies.xml +111 -34
  27. data/{xml → recog/xml}/http_servers.xml +483 -270
  28. data/{xml → recog/xml}/http_wwwauth.xml +83 -37
  29. data/{xml → recog/xml}/imap_banners.xml +10 -10
  30. data/{xml → recog/xml}/ldap_searchresult.xml +0 -0
  31. data/{xml → recog/xml}/mdns_device-info_txt.xml +0 -0
  32. data/{xml → recog/xml}/mdns_workstation_txt.xml +0 -0
  33. data/{xml → recog/xml}/mysql_banners.xml +0 -0
  34. data/{xml → recog/xml}/mysql_error.xml +0 -0
  35. data/{xml → recog/xml}/nntp_banners.xml +8 -5
  36. data/{xml → recog/xml}/ntp_banners.xml +33 -33
  37. data/{xml → recog/xml}/operating_system.xml +92 -77
  38. data/{xml → recog/xml}/pop_banners.xml +25 -25
  39. data/{xml → recog/xml}/rsh_resp.xml +0 -0
  40. data/{xml → recog/xml}/rtsp_servers.xml +0 -0
  41. data/{xml → recog/xml}/sip_banners.xml +16 -5
  42. data/{xml → recog/xml}/sip_user_agents.xml +122 -27
  43. data/{xml → recog/xml}/smb_native_lm.xml +5 -5
  44. data/{xml → recog/xml}/smb_native_os.xml +25 -25
  45. data/{xml → recog/xml}/smtp_banners.xml +132 -131
  46. data/{xml → recog/xml}/smtp_debug.xml +0 -0
  47. data/{xml → recog/xml}/smtp_ehlo.xml +0 -0
  48. data/{xml → recog/xml}/smtp_expn.xml +0 -0
  49. data/{xml → recog/xml}/smtp_help.xml +1 -1
  50. data/{xml → recog/xml}/smtp_mailfrom.xml +0 -0
  51. data/{xml → recog/xml}/smtp_noop.xml +0 -0
  52. data/{xml → recog/xml}/smtp_quit.xml +0 -0
  53. data/{xml → recog/xml}/smtp_rcptto.xml +0 -0
  54. data/{xml → recog/xml}/smtp_rset.xml +0 -0
  55. data/{xml → recog/xml}/smtp_turn.xml +0 -0
  56. data/{xml → recog/xml}/smtp_vrfy.xml +0 -0
  57. data/{xml → recog/xml}/snmp_sysdescr.xml +1248 -1233
  58. data/{xml → recog/xml}/snmp_sysobjid.xml +13 -2
  59. data/{xml → recog/xml}/ssh_banners.xml +9 -5
  60. data/{xml → recog/xml}/telnet_banners.xml +83 -1
  61. data/{xml → recog/xml}/tls_jarm.xml +30 -2
  62. data/{xml → recog/xml}/x11_banners.xml +3 -3
  63. data/{xml → recog/xml}/x509_issuers.xml +24 -4
  64. data/{xml → recog/xml}/x509_subjects.xml +32 -3
  65. data/recog.gemspec +9 -5
  66. data/spec/data/external_example_fingerprint/hp_printer_ex_01.txt +1 -0
  67. data/spec/data/external_example_fingerprint/hp_printer_ex_02.txt +1 -0
  68. data/spec/data/external_example_fingerprint.xml +8 -0
  69. data/spec/data/external_example_illegal_path_fingerprint.xml +7 -0
  70. data/spec/lib/recog/db_spec.rb +84 -61
  71. data/spec/lib/recog/fingerprint_spec.rb +4 -4
  72. data/spec/lib/recog/match_reporter_spec.rb +22 -8
  73. data/spec/lib/recog/verify_reporter_spec.rb +8 -8
  74. data/spec/spec_helper.rb +4 -0
  75. data.tar.gz.sig +0 -0
  76. metadata +154 -142
  77. metadata.gz.sig +0 -0
  78. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -37
  79. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
  80. data/.github/ISSUE_TEMPLATE/fingerprint_request.md +0 -27
  81. data/.github/PULL_REQUEST_TEMPLATE +0 -24
  82. data/.github/SECURITY.md +0 -35
  83. data/.github/dependabot.yml +0 -8
  84. data/.github/workflows/ci.yml +0 -26
  85. data/.github/workflows/verify.yml +0 -89
  86. data/.gitignore +0 -23
  87. data/.rspec +0 -3
  88. data/.ruby-gemset +0 -1
  89. data/.ruby-version +0 -1
  90. data/.snyk +0 -10
  91. data/.travis.yml +0 -25
  92. data/CONTRIBUTING.md +0 -276
  93. data/bin/recog_cleanup +0 -16
  94. data/bin/recog_export +0 -81
  95. data/bin/recog_standardize +0 -163
  96. data/bin/recog_verify +0 -63
  97. data/cpe-remap.yaml +0 -356
  98. data/features/data/failing_banners_fingerprints.xml +0 -20
  99. data/features/data/matching_banners_fingerprints.xml +0 -23
  100. data/features/data/multiple_banners_fingerprints.xml +0 -32
  101. data/features/data/no_tests.xml +0 -3
  102. data/features/data/sample_banner.txt +0 -2
  103. data/features/data/successful_tests.xml +0 -18
  104. data/features/data/tests_with_failures.xml +0 -20
  105. data/features/data/tests_with_warnings.xml +0 -17
  106. data/features/match.feature +0 -36
  107. data/features/support/aruba.rb +0 -3
  108. data/features/support/env.rb +0 -6
  109. data/features/verify.feature +0 -48
  110. data/identifiers/README.md +0 -70
  111. data/identifiers/fields.txt +0 -105
  112. data/identifiers/hw_device.txt +0 -84
  113. data/identifiers/hw_family.txt +0 -121
  114. data/identifiers/hw_product.txt +0 -461
  115. data/identifiers/os_architecture.txt +0 -10
  116. data/identifiers/os_device.txt +0 -75
  117. data/identifiers/os_family.txt +0 -234
  118. data/identifiers/os_product.txt +0 -350
  119. data/identifiers/service_family.txt +0 -249
  120. data/identifiers/service_product.txt +0 -764
  121. data/identifiers/vendor.txt +0 -847
  122. data/lib/recog/verifier_factory.rb +0 -13
  123. data/misc/convert_mysql_err +0 -61
  124. data/misc/order.xsl +0 -17
  125. data/requirements.txt +0 -2
  126. data/spec/lib/fingerprint_self_test_spec.rb +0 -175
  127. data/tools/dev/hooks/pre-commit +0 -21
  128. data/update_cpes.py +0 -250
@@ -1,20 +0,0 @@
1
- <?xml version="1.0"?>
2
- <fingerprints>
3
- <fingerprint pattern="^foo$">
4
- <description>foo test</description>
5
- <!-- Fail: doesn't match -->
6
- <example>bar</example>
7
- </fingerprint>
8
- <fingerprint pattern="^This matches$">
9
- <!-- Warn: no name -->
10
- <!-- Fail: doesn't match -->
11
- <example>This almost matches</example>
12
- </fingerprint>
13
- <fingerprint pattern="^(\S+) ([\d.]+)$">
14
- <description>bar test</description>
15
- <!-- Fail: expected os.version doesn't match the capture group -->
16
- <example os.version="5.0" >bar 1.0</example>
17
- <param pos="2" name="os.version" />
18
- <param pos="1" name="os.name" value="Bar" />
19
- </fingerprint>
20
- </fingerprints>
@@ -1,17 +0,0 @@
1
- <?xml version="1.0"?>
2
- <fingerprints>
3
- <fingerprint pattern="^-{10} Welcome to Pure-FTPd (.*)-{10}$">
4
- <example pureftpd.config="">---------- Welcome to Pure-FTPd ----------</example>
5
- <description>Pure-FTPd</description>
6
- <param pos="1" name="pureftpd.config"/>
7
- <param pos="0" name="service.family" value="Pure-FTPd"/>
8
- <param pos="0" name="service.product" value="Pure-FTPd"/>
9
- </fingerprint>
10
- <fingerprint pattern="^-{10} Welcome to Pure-FTPd (.*)-{10}$">
11
- <!-- should warn with no examples -->
12
- <description>Pure-FTPd</description>
13
- <param pos="1" name="pureftpd.config"/>
14
- <param pos="0" name="service.family" value="Pure-FTPd"/>
15
- <param pos="0" name="service.product" value="Pure-FTPd"/>
16
- </fingerprint>
17
- </fingerprints>
@@ -1,36 +0,0 @@
1
- Feature: Match
2
- @no-clobber
3
- Scenario: Finds matches
4
- When I run `recog_match matching_banners_fingerprints.xml sample_banner.txt`
5
- Then it should pass with:
6
- """
7
- MATCH: {"matched"=>"Pure-FTPd Config data can be zero or more of: [privsep] [TLS]", "pureftpd.config"=>"[privsep] [TLS] ", "service.family"=>"Pure-FTPd", "service.product"=>"Pure-FTPd", "service.protocol"=>"ftp", "fingerprint_db"=>"matching_banners_fingerprints", "data"=>"---------- Welcome to Pure-FTPd [privsep] [TLS] ----------"}
8
- MATCH: {"matched"=>"SunOS/Solaris", "os.vendor"=>"Sun", "os.family"=>"Solaris", "os.product"=>"Solaris", "os.device"=>"General", "host.name"=>"polaris", "os.version"=>"5.8", "service.protocol"=>"ftp", "fingerprint_db"=>"matching_banners_fingerprints", "data"=>"polaris FTP server (SunOS 5.8) ready."}
9
- """
10
-
11
- @no-clobber
12
- Scenario: Fails at finding matches
13
- When I run `recog_match failing_banners_fingerprints.xml sample_banner.txt`
14
- Then it should pass with:
15
- """
16
- FAIL: ---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
17
- FAIL: polaris FTP server (SunOS 5.8) ready
18
- """
19
-
20
- @no-clobber
21
- Scenario: Finds multiple matches
22
- When I run `recog_match multiple_banners_fingerprints.xml sample_banner.txt --multi-match`
23
- Then it should pass with:
24
- """
25
- MATCHES: {"matched"=>"Generic FTP, Checks for the existence of the word FTP in the line", "service.protocol"=>"", "fingerprint_db"=>"multiple_banners_fingerprints", "data"=>"---------- Welcome to Pure-FTPd [privsep] [TLS] ----------"},{"matched"=>"Pure-FTPd Config data can be zero or more of: [privsep] [TLS]", "pureftpd.config"=>"[privsep] [TLS] ", "service.family"=>"Pure-FTPd", "service.product"=>"Pure-FTPd", "service.protocol"=>"ftp", "fingerprint_db"=>"multiple_banners_fingerprints", "data"=>"---------- Welcome to Pure-FTPd [privsep] [TLS] ----------"}
26
- MATCHES: {"matched"=>"Generic FTP, Checks for the existence of the word FTP in the line", "service.protocol"=>"", "fingerprint_db"=>"multiple_banners_fingerprints", "data"=>"polaris FTP server (SunOS 5.8) ready."},{"matched"=>"SunOS/Solaris", "service.protocol"=>"ftp", "os.vendor"=>"Sun", "os.family"=>"Solaris", "os.product"=>"Solaris", "os.device"=>"General", "host.name"=>"polaris", "os.version"=>"5.8", "fingerprint_db"=>"multiple_banners_fingerprints", "data"=>"polaris FTP server (SunOS 5.8) ready."}
27
- """
28
-
29
- @no-clobber
30
- Scenario: Finds first matches using no-multi-match flag
31
- When I run `recog_match multiple_banners_fingerprints.xml sample_banner.txt --no-multi-match`
32
- Then it should pass with:
33
- """
34
- MATCH: {"matched"=>"Generic FTP, Checks for the existence of the word FTP in the line", "service.protocol"=>"", "fingerprint_db"=>"multiple_banners_fingerprints", "data"=>"---------- Welcome to Pure-FTPd [privsep] [TLS] ----------"}
35
- MATCH: {"matched"=>"Generic FTP, Checks for the existence of the word FTP in the line", "service.protocol"=>"", "fingerprint_db"=>"multiple_banners_fingerprints", "data"=>"polaris FTP server (SunOS 5.8) ready."}
36
- """
@@ -1,3 +0,0 @@
1
- Aruba.configure do |config|
2
- config.working_directory = 'features/data'
3
- end
@@ -1,6 +0,0 @@
1
- require 'aruba/cucumber'
2
-
3
- Before do
4
- @dirs = ["features/data"]
5
- @aruba_timeout_seconds = 30
6
- end
@@ -1,48 +0,0 @@
1
- Feature: Verify
2
- @no-clobber
3
- Scenario: No tests
4
- When I run `recog_verify no_tests.xml`
5
- Then it should pass with exactly:
6
- """
7
- no_tests.xml: SUMMARY: Test completed with 0 successful, 0 warnings, and 0 failures
8
- """
9
-
10
- @no-clobber
11
- Scenario: Successful tests
12
- When I run `recog_verify successful_tests.xml`
13
- Then it should pass with exactly:
14
- """
15
- successful_tests.xml: SUMMARY: Test completed with 4 successful, 0 warnings, and 0 failures
16
- """
17
-
18
- @no-clobber
19
- Scenario: Tests with warnings, warnings enabled
20
- When I run `recog_verify tests_with_warnings.xml`
21
- Then it should fail with:
22
- """
23
- tests_with_warnings.xml: WARN: 'Pure-FTPd' has no test cases
24
- tests_with_warnings.xml: WARN: 'Pure-FTPd' is missing an example that checks for parameter 'pureftpd.config' which is derived from a capture group
25
- tests_with_warnings.xml: SUMMARY: Test completed with 1 successful, 2 warnings, and 0 failures
26
- """
27
- And the exit status should be 2
28
-
29
- @no-clobber
30
- Scenario: Tests with warnings, warnings disabled
31
- When I run `recog_verify --no-warnings tests_with_warnings.xml`
32
- Then it should pass with exactly:
33
- """
34
- tests_with_warnings.xml: SUMMARY: Test completed with 1 successful, 0 warnings, and 0 failures
35
- """
36
-
37
- @no-clobber
38
- Scenario: Tests with failures
39
- When I run `recog_verify tests_with_failures.xml`
40
- Then it should fail with:
41
- """
42
- tests_with_failures.xml: FAIL: 'foo test' failed to match "bar" with (?-mix:^foo$)'
43
- tests_with_failures.xml: FAIL: '' failed to match "This almost matches" with (?-mix:^This matches$)'
44
- tests_with_failures.xml: FAIL: 'bar test's os.name is a non-zero pos but specifies a value of 'Bar'
45
- tests_with_failures.xml: FAIL: 'bar test' failed to find expected capture group os.version '5.0'. Result was 1.0
46
- tests_with_failures.xml: SUMMARY: Test completed with 0 successful, 0 warnings, and 4 failures
47
- """
48
- And the exit status should be 4
@@ -1,70 +0,0 @@
1
- # Recog: Identifiers
2
-
3
- This directory contains lists of standard identifiers for mapping Recog matches.
4
- The goal is define a standard set of constants to represent known software,
5
- hardware, vendors, and categories.
6
-
7
- This is currently incomplete and will be updated as standardization work moves
8
- forward.
9
-
10
- Fingerprints should use these identifiers whenever possible; if a different name
11
- or syntax for a given identifier is preferred, this should be implemented in the
12
- application through a mapping function.
13
-
14
- ## Lists
15
-
16
- ### Fields
17
-
18
- `fields.txt` defines the various fields (`os.vendor`, etc.) used to assert
19
- information about a match.
20
-
21
- ### Vendors
22
-
23
- `vendor.txt` defines known vendor names, covering services, operating systems,
24
- and hardware.
25
-
26
- ### Operating Systems
27
-
28
- `os_architecture.txt` defines known CPU types.
29
-
30
- `os_product.txt` defines known operating system names.
31
-
32
- `os_family.txt` defines known operating system families.
33
-
34
- `os_device.txt` defines known types of devices by function or purpose.
35
-
36
- ### Hardware
37
-
38
- `hw_product.txt` defines known hardware product names.
39
-
40
- `hw_family.txt` defines known hardware product families.
41
-
42
- `hw_device.txt` defines known types of devices by function or purpose (overlaps
43
- with `os_device.txt`).
44
-
45
- ### Services
46
-
47
- `service_product.txt` defines known service product names.
48
-
49
- `service_family.txt` defines known service product families.
50
-
51
- ### Software
52
-
53
- `software_product.txt` defines known software product names.
54
-
55
- `software_family.txt` defines known software product families.
56
-
57
- `software_class.txt` defines known types of software by function or purpose.
58
-
59
- ## Pending Work
60
-
61
- * All existing fingerprints should be correlated against these lists to
62
- identify mismatches and updated accordingly.
63
-
64
- * All net new identifiers from the existing fingerprints should be merged into
65
- these lists.
66
-
67
- * All fingerprint assertions should be enumerated, documented, and standardized
68
- where possible (`host.mac`, etc).
69
-
70
- * Hardware identifiers should be enumerated, consolidated, and standardized.
@@ -1,105 +0,0 @@
1
- agilent.serial
2
- apache.info
3
- apache.variant
4
- apache.variant.version
5
- aptinex.model
6
- chromecast.capabilities
7
- chromecast.generation
8
- cisco.imc_model
9
- cisco.model
10
- cookie
11
- dell.service_tag
12
- digi.serial_number
13
- extron.model
14
- host.domain
15
- host.ip
16
- host.mac
17
- host.mac_eui64
18
- host.mac_local
19
- host.name
20
- host.time
21
- hw.certainty
22
- hw.cpe23
23
- hw.device
24
- hw.family
25
- hw.model
26
- hw.product
27
- hw.serial_number
28
- hw.series
29
- hw.vendor
30
- hw.version
31
- imail.eval
32
- jetty.info
33
- junction.cookie
34
- junction.name
35
- lantronix.serial_number
36
- lenovo.machine_model
37
- lenovo.machine_type
38
- linux.kernel.version
39
- loadbalancer.poolname
40
- mdaemon.unregistered
41
- mercur.os.info
42
- metainfo.version
43
- metainfo.version.version
44
- ms.nttp.version
45
- notes.build.version
46
- ntmail.id
47
- openssh.comment
48
- openssh.cvepatch
49
- os.arch
50
- os.build
51
- os.certainty
52
- os.cpe23
53
- os.device
54
- os.edition
55
- os.family
56
- os.model
57
- os.product
58
- os.rev
59
- os.vendor
60
- os.version
61
- os.version.version
62
- os.version.version.version
63
- postfix.os.info
64
- postoffice.build
65
- postoffice.id
66
- procurve.model
67
- proftpd.server.name
68
- pureftpd.config
69
- python.version
70
- qpopper.version
71
- securetransport.build
72
- sendmail.config.version
73
- sendmail.hpux.phne.version
74
- sendmail.vendor.version
75
- service.certainty
76
- service.component.cpe23
77
- service.component.family
78
- service.component.product
79
- service.component.vendor
80
- service.component.version
81
- service.cpe23
82
- service.device
83
- service.edition
84
- service.family
85
- service.node
86
- service.product
87
- service.protocol
88
- service.vendor
89
- service.version
90
- service.version.version
91
- service.version.version.version
92
- service.version.version.version.version
93
- siemens.model
94
- snmp.fpmib.oid.1
95
- snmp.fpmib.oid.2
96
- system.time
97
- system.time.format
98
- system.time.micros
99
- system.time.millis
100
- tandberg.model
101
- thttpd.mx-patch
102
- tomcat.info
103
- unify.model
104
- wd2go.device_id
105
- zmailer.ident
@@ -1,84 +0,0 @@
1
- ADSL Modem
2
- AV Receiver
3
- Access Control
4
- Alarm Panel
5
- Appliance
6
- Audio Encoder
7
- Broadband Router
8
- Building Automation
9
- Cable Modem
10
- Check Scanner
11
- DOCSIS Cable Modem
12
- DSL Modem
13
- DVR
14
- Data Terminal
15
- Desktop
16
- Device
17
- Device Hub
18
- Device Server
19
- Display Controller
20
- Environment Control
21
- Ethernet Adapter
22
- Firewall
23
- HMI Controller
24
- Handheld Scanner
25
- Hypervisor
26
- IP Camera
27
- IPS
28
- Industrial Control
29
- JTAG Adapter
30
- KVM
31
- Laptop
32
- Light Bulb
33
- Lights Out Management
34
- Media Player
35
- Media Receiver
36
- Media Server
37
- Mobile Phone
38
- Monitoring
39
- Multifunction Device
40
- NAS
41
- Network Appliance
42
- Network Audio
43
- Network Management Device
44
- PLC
45
- Power Device
46
- Power Meter
47
- Power Relay
48
- Powerline
49
- Print Server
50
- Printer
51
- Relay Controller
52
- Router
53
- SD-WAN Appliance
54
- SIP Device
55
- SIP Gateway
56
- Scanner
57
- Security Appliance
58
- Sensor
59
- Smart TV
60
- Storage
61
- Storage Appliance
62
- Support Appliance
63
- Switch
64
- Tablet
65
- Tape Library
66
- Telecom
67
- Test Instrument
68
- Thin Client
69
- UPS
70
- VPN
71
- Video Conference
72
- Video Conferencing
73
- Video Decoder
74
- Video Encoder
75
- VoIP
76
- VoIP Server
77
- VoIP Switch
78
- Voice Appliance
79
- WAP
80
- WLAN Repeater
81
- Web Cam
82
- Whiteboard
83
- Wireless Controller
84
- Wireless Presenter
@@ -1,121 +0,0 @@
1
- AR Series
2
- Adaptive Security Appliance
3
- Aficio
4
- AirPort
5
- Apple TV
6
- Communication Manager
7
- DVR
8
- Data ONTAP
9
- DiskStation
10
- Document Centre
11
- EDR
12
- Eurotherm
13
- Extended Systems ExtendNet
14
- FRITZ!Box
15
- FRITZ!Fon
16
- FRITZ!Powerline
17
- FRITZ!WLAN Repeater
18
- FS
19
- Firewall-1
20
- Forms Printer
21
- FortiGate
22
- FortiVoice
23
- GW25
24
- GXV
25
- GXW
26
- HDX
27
- HandyTone
28
- HomePod
29
- Honeywell
30
- ILOM
31
- IMDVR
32
- ION
33
- JetDirect
34
- LX Series
35
- LaserJet
36
- LinkCom Xpress
37
- MGate
38
- MPEG4 DVR
39
- MT
40
- MX Series
41
- Mac mini
42
- MacBook
43
- MacBook Pro
44
- MegaRAC
45
- MiiNePort
46
- Multifunction
47
- My Book
48
- NE
49
- NPort
50
- NetScaler
51
- NetVanta
52
- Netscaler
53
- Network Audio
54
- Network Security Appliance
55
- Network Video Door Station
56
- OpenScape Desk Phone
57
- Optra
58
- Orbi
59
- POWER System
60
- Phaser
61
- Primergy
62
- Pro Series
63
- RMX
64
- ReadyNAS
65
- RealPresence
66
- RealPresence Group
67
- Router
68
- S500 Range
69
- SIP Device
70
- SIP Gateway
71
- SL2100
72
- Service Access Switch
73
- Service Router
74
- Simatic HMI
75
- Simatic NET
76
- Simatic S7
77
- Simatic Sinumerik
78
- SoundPoint
79
- SoundTouch
80
- SpeedTouch
81
- Speedport
82
- Storage
83
- Sun Fire
84
- Sunny
85
- Switch
86
- System X
87
- TASKalfa
88
- TelePresence
89
- Time Capsule
90
- TippingPoint
91
- Turbo Station
92
- UNIVERGE
93
- UniFi
94
- Unified Security Gateway
95
- VDX
96
- VSX
97
- VVX
98
- Vigor
99
- VoIP
100
- WD2GO
101
- WiMax
102
- Wide Format
103
- Wide Format Printer
104
- WorkCentre
105
- WorkCentre Pro
106
- Xserve
107
- ZXDSL
108
- ZXHN
109
- ZXV
110
- airMAX
111
- iLO
112
- iMac
113
- iPad
114
- iPad Air
115
- iPad Pro
116
- iPad mini
117
- iPhone
118
- iPod
119
- iSTAR Door Controllers
120
- imageClass
121
- imageRunner