recog-intrigue 2.3.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.
Files changed (130) hide show
  1. checksums.yaml +7 -0
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +37 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
  4. data/.github/ISSUE_TEMPLATE/fingerprint_request.md +27 -0
  5. data/.github/PULL_REQUEST_TEMPLATE +24 -0
  6. data/.gitignore +14 -0
  7. data/.rbenv-gemset +1 -0
  8. data/.rspec +3 -0
  9. data/.ruby-gemset +1 -0
  10. data/.ruby-version +1 -0
  11. data/.travis.yml +25 -0
  12. data/.yardopts +1 -0
  13. data/CONTRIBUTING.md +171 -0
  14. data/COPYING +23 -0
  15. data/Gemfile +10 -0
  16. data/LICENSE +7 -0
  17. data/README.md +85 -0
  18. data/Rakefile +22 -0
  19. data/bin/recog_export +81 -0
  20. data/bin/recog_match +55 -0
  21. data/bin/recog_standardize +118 -0
  22. data/bin/recog_verify +64 -0
  23. data/cpe-remap.yaml +134 -0
  24. data/features/data/failing_banners_fingerprints.xml +20 -0
  25. data/features/data/matching_banners_fingerprints.xml +23 -0
  26. data/features/data/multiple_banners_fingerprints.xml +32 -0
  27. data/features/data/no_tests.xml +3 -0
  28. data/features/data/sample_banner.txt +2 -0
  29. data/features/data/successful_tests.xml +18 -0
  30. data/features/data/tests_with_failures.xml +20 -0
  31. data/features/data/tests_with_warnings.xml +17 -0
  32. data/features/match.feature +36 -0
  33. data/features/support/aruba.rb +3 -0
  34. data/features/support/env.rb +6 -0
  35. data/features/verify.feature +48 -0
  36. data/identifiers/README.md +47 -0
  37. data/identifiers/os_architecture.txt +20 -0
  38. data/identifiers/os_device.txt +52 -0
  39. data/identifiers/os_family.txt +160 -0
  40. data/identifiers/os_product.txt +199 -0
  41. data/identifiers/service_family.txt +185 -0
  42. data/identifiers/service_product.txt +255 -0
  43. data/identifiers/software_class.txt +26 -0
  44. data/identifiers/software_family.txt +91 -0
  45. data/identifiers/software_product.txt +333 -0
  46. data/identifiers/vendor.txt +405 -0
  47. data/lib/recog.rb +4 -0
  48. data/lib/recog/db.rb +78 -0
  49. data/lib/recog/db_manager.rb +31 -0
  50. data/lib/recog/fingerprint.rb +280 -0
  51. data/lib/recog/fingerprint/regexp_factory.rb +56 -0
  52. data/lib/recog/fingerprint/test.rb +18 -0
  53. data/lib/recog/formatter.rb +51 -0
  54. data/lib/recog/match_reporter.rb +77 -0
  55. data/lib/recog/matcher.rb +94 -0
  56. data/lib/recog/matcher_factory.rb +14 -0
  57. data/lib/recog/nizer.rb +347 -0
  58. data/lib/recog/verifier.rb +39 -0
  59. data/lib/recog/verifier_factory.rb +13 -0
  60. data/lib/recog/verify_reporter.rb +86 -0
  61. data/lib/recog/version.rb +3 -0
  62. data/misc/convert_mysql_err +61 -0
  63. data/misc/order.xsl +17 -0
  64. data/recog-intrigue.gemspec +45 -0
  65. data/requirements.txt +2 -0
  66. data/spec/data/best_os_match_1.yml +17 -0
  67. data/spec/data/best_os_match_2.yml +17 -0
  68. data/spec/data/best_service_match_1.yml +17 -0
  69. data/spec/data/smb_native_os.txt +25 -0
  70. data/spec/data/test_fingerprints.xml +36 -0
  71. data/spec/data/verification_fingerprints.xml +86 -0
  72. data/spec/data/whitespaced_fingerprint.xml +5 -0
  73. data/spec/lib/fingerprint_self_test_spec.rb +174 -0
  74. data/spec/lib/recog/db_spec.rb +98 -0
  75. data/spec/lib/recog/fingerprint/regexp_factory_spec.rb +73 -0
  76. data/spec/lib/recog/fingerprint_spec.rb +112 -0
  77. data/spec/lib/recog/formatter_spec.rb +69 -0
  78. data/spec/lib/recog/match_reporter_spec.rb +91 -0
  79. data/spec/lib/recog/nizer_spec.rb +330 -0
  80. data/spec/lib/recog/verify_reporter_spec.rb +113 -0
  81. data/spec/spec_helper.rb +82 -0
  82. data/update_cpes.py +186 -0
  83. data/xml/apache_modules.xml +1911 -0
  84. data/xml/apache_os.xml +273 -0
  85. data/xml/architecture.xml +36 -0
  86. data/xml/dns_versionbind.xml +761 -0
  87. data/xml/fingerprints.xsd +128 -0
  88. data/xml/ftp_banners.xml +1553 -0
  89. data/xml/h323_callresp.xml +603 -0
  90. data/xml/hp_pjl_id.xml +358 -0
  91. data/xml/html_title.xml +1630 -0
  92. data/xml/http_cookies.xml +411 -0
  93. data/xml/http_servers.xml +3195 -0
  94. data/xml/http_wwwauth.xml +595 -0
  95. data/xml/imap_banners.xml +245 -0
  96. data/xml/ldap_searchresult.xml +711 -0
  97. data/xml/mdns_device-info_txt.xml +1796 -0
  98. data/xml/mdns_workstation_txt.xml +15 -0
  99. data/xml/mysql_banners.xml +1649 -0
  100. data/xml/mysql_error.xml +871 -0
  101. data/xml/nntp_banners.xml +82 -0
  102. data/xml/ntp_banners.xml +1223 -0
  103. data/xml/operating_system.xml +629 -0
  104. data/xml/pop_banners.xml +499 -0
  105. data/xml/rsh_resp.xml +76 -0
  106. data/xml/rtsp_servers.xml +76 -0
  107. data/xml/sip_banners.xml +359 -0
  108. data/xml/sip_user_agents.xml +221 -0
  109. data/xml/smb_native_lm.xml +62 -0
  110. data/xml/smb_native_os.xml +662 -0
  111. data/xml/smtp_banners.xml +1690 -0
  112. data/xml/smtp_debug.xml +39 -0
  113. data/xml/smtp_ehlo.xml +49 -0
  114. data/xml/smtp_expn.xml +82 -0
  115. data/xml/smtp_help.xml +157 -0
  116. data/xml/smtp_mailfrom.xml +20 -0
  117. data/xml/smtp_noop.xml +44 -0
  118. data/xml/smtp_quit.xml +29 -0
  119. data/xml/smtp_rcptto.xml +25 -0
  120. data/xml/smtp_rset.xml +26 -0
  121. data/xml/smtp_turn.xml +26 -0
  122. data/xml/smtp_vrfy.xml +89 -0
  123. data/xml/snmp_sysdescr.xml +6507 -0
  124. data/xml/snmp_sysobjid.xml +430 -0
  125. data/xml/ssh_banners.xml +1968 -0
  126. data/xml/telnet_banners.xml +1595 -0
  127. data/xml/x11_banners.xml +232 -0
  128. data/xml/x509_issuers.xml +134 -0
  129. data/xml/x509_subjects.xml +1268 -0
  130. metadata +304 -0
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0"?>
2
+ <fingerprints>
3
+ <fingerprint pattern="^=\(.\*.\)=-\.:\. \(\( Welcome to PureFTPd (\d+\..+) \)\) \.:\.-=\(.\*.\)=-$">
4
+ <example>=(&lt;*&gt;)=-.:. (( Welcome to PureFTPd 1.1.0 )) .:.-=(&lt;*&gt;)=-</example>
5
+ <description>Older Pure-FTPd versions</description>
6
+ <param pos="0" name="service.family" value="Pure-FTPd"/>
7
+ <param pos="0" name="service.product" value="Pure-FTPd"/>
8
+ <param pos="1" name="service.version"/>
9
+ </fingerprint>
10
+ <fingerprint pattern="^(\S+) FTP Server \(Solaris (\S+)\) ready\.?$" flags="REG_ICASE">
11
+ <description>SunOS/Solaris</description>
12
+ <example>example.com FTP server (Solaris 5.7) ready.</example>
13
+ <param pos="0" name="os.vendor" value="Sun"/>
14
+ <param pos="0" name="os.family" value="Solaris"/>
15
+ <param pos="0" name="os.product" value="Solaris"/>
16
+ <param pos="0" name="os.device" value="General"/>
17
+ <param pos="1" name="host.name"/>
18
+ <param pos="2" name="os.version"/>
19
+ </fingerprint>
20
+ </fingerprints>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0"?>
2
+ <fingerprints protocol="ftp" database_type="service">
3
+ <fingerprint pattern="^-{10} Welcome to Pure-FTPd (.*)-{10}$">
4
+ <example>---------- Welcome to Pure-FTPd ----------</example>
5
+ <description>Pure-FTPd
6
+ Config data can be zero or more of: [privsep] [TLS]
7
+ </description>
8
+ <param pos="1" name="pureftpd.config"/>
9
+ <param pos="0" name="service.family" value="Pure-FTPd"/>
10
+ <param pos="0" name="service.product" value="Pure-FTPd"/>
11
+ <param pos="0" name="service.protocol" value="ftp"/>
12
+ </fingerprint>
13
+ <fingerprint pattern="^(\S+) FTP Server \(SunOS (\S+)\) ready\.?$" flags="REG_ICASE">
14
+ <description>SunOS/Solaris</description>
15
+ <example>example.com FTP server (SunOS 5.7) ready.</example>
16
+ <param pos="0" name="os.vendor" value="Sun"/>
17
+ <param pos="0" name="os.family" value="Solaris"/>
18
+ <param pos="0" name="os.product" value="Solaris"/>
19
+ <param pos="0" name="os.device" value="General"/>
20
+ <param pos="1" name="host.name"/>
21
+ <param pos="2" name="os.version"/>
22
+ </fingerprint>
23
+ </fingerprints>
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0"?>
2
+ <fingerprints>
3
+ <fingerprint pattern="FTP">
4
+ <example>---- FTP Stuff ----</example>
5
+ <example>FTP server</example>
6
+ <description>Generic FTP,
7
+ Checks for the existence of the word FTP in the line
8
+ </description>
9
+ <!-- Asserting nothing -->
10
+ </fingerprint>
11
+ <fingerprint pattern="^-{10} Welcome to Pure-FTPd (.*)-{10}$">
12
+ <example>---------- Welcome to Pure-FTPd ----------</example>
13
+ <description>Pure-FTPd
14
+ Config data can be zero or more of: [privsep] [TLS]
15
+ </description>
16
+ <param pos="1" name="pureftpd.config"/>
17
+ <param pos="0" name="service.family" value="Pure-FTPd"/>
18
+ <param pos="0" name="service.product" value="Pure-FTPd"/>
19
+ <param pos="0" name="service.protocol" value="ftp"/>
20
+ </fingerprint>
21
+ <fingerprint pattern="^(\S+) FTP Server \(SunOS (\S+)\) ready\.?$" flags="REG_ICASE">
22
+ <description>SunOS/Solaris</description>
23
+ <example>example.com FTP server (SunOS 5.7) ready.</example>
24
+ <param pos="0" name="service.protocol" value="ftp"/>
25
+ <param pos="0" name="os.vendor" value="Sun"/>
26
+ <param pos="0" name="os.family" value="Solaris"/>
27
+ <param pos="0" name="os.product" value="Solaris"/>
28
+ <param pos="0" name="os.device" value="General"/>
29
+ <param pos="1" name="host.name"/>
30
+ <param pos="2" name="os.version"/>
31
+ </fingerprint>
32
+ </fingerprints>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0"?>
2
+ <fingerprints>
3
+ </fingerprints>
@@ -0,0 +1,2 @@
1
+ ---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
2
+ polaris FTP server (SunOS 5.8) ready.
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0"?>
2
+ <fingerprints>
3
+ <fingerprint pattern="^Cisco-SIPGateway/IOS-([\d\.x]+)$">
4
+ <description>Cisco SIPGateway</description>
5
+ <example os.version="12.x">Cisco-SIPGateway/IOS-12.x</example>
6
+ <param pos="0" name="os.vendor" value="Cisco"/>
7
+ <param pos="0" name="os.product" value="IOS"/>
8
+ <param pos="1" name="os.version"/>
9
+ </fingerprint>
10
+ <fingerprint pattern="^bar ([\d.]+)$">
11
+ <description>bar test</description>
12
+ <example os.version="1.0" >bar 1.0</example>
13
+ <example os.version="2.0" >bar 2.0</example>
14
+ <example os.version="2.1" >bar 2.1</example>
15
+ <param pos="1" name="os.version" />
16
+ <param pos="0" name="os.name" value="Bar" />
17
+ </fingerprint>
18
+ </fingerprints>
@@ -0,0 +1,20 @@
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>
@@ -0,0 +1,17 @@
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>
@@ -0,0 +1,36 @@
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
+ """
@@ -0,0 +1,3 @@
1
+ Aruba.configure do |config|
2
+ config.working_directory = 'features/data'
3
+ end
@@ -0,0 +1,6 @@
1
+ require 'aruba/cucumber'
2
+
3
+ Before do
4
+ @dirs = ["features/data"]
5
+ @aruba_timeout_seconds = 30
6
+ end
@@ -0,0 +1,48 @@
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:
6
+ """
7
+ 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:
14
+ """
15
+ 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
+ WARN: 'Pure-FTPd' has no test cases
24
+ WARN: 'Pure-FTPd' is missing an example that checks for parameter 'pureftpd.config' messsage which is derived from a capture group
25
+ 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:
33
+ """
34
+ 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
+ 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
+ SUMMARY: Test completed with 0 successful, 0 warnings, and 4 failures
47
+ """
48
+ And the exit status should be 4
@@ -0,0 +1,47 @@
1
+ # Recog: Identifiers
2
+
3
+ This directory contains lists of standard identifiers for mapping Recog matches. The goal is define a standard set of constants to represent known software, hardware, vendors, and categories.
4
+
5
+ This is currently incomplete and will be updated as standardization work moves forward.
6
+
7
+ Fingerprints should use these identifiers whenever possible; if a different name or syntax for a given identifier is preferred, this should be implemented in the application through a mapping function.
8
+
9
+ ## Lists
10
+
11
+ ### Vendors
12
+
13
+ `vendor.txt` defines known vendor names, covering services, operating systems, and hardware.
14
+
15
+ ### Operating Systems
16
+
17
+ `os_architecture.txt` defines known CPU types.
18
+
19
+ `os_product.txt` defines known operating system names.
20
+
21
+ `os_family.txt` defines known operating system families.
22
+
23
+ `os_device.txt` defines known types of devices by function or purpose.
24
+
25
+ ### Services
26
+
27
+ `service_product.txt` defines known service product names.
28
+
29
+ `service_family.txt` defines known service product families.
30
+
31
+ ### Software
32
+
33
+ `software_product.txt` defines known software product names.
34
+
35
+ `software_family.txt` defines known software product families.
36
+
37
+ `software_class.txt` defines known types of software by function or purpose.
38
+
39
+ ## Pending Work
40
+
41
+ * All existing fingerprints should be correlated against these lists to identify mismatches and updated accordingly.
42
+
43
+ * All net new identifiers from the existing fingerprints should be merged into these lists.
44
+
45
+ * All fingerprint assertions should be enumerated, documented, and standardized where possible (`host.mac`, etc).
46
+
47
+ * Hardware identifiers should be enumerated, consolidated, and standardized.
@@ -0,0 +1,20 @@
1
+ 680xx
2
+ 880xx
3
+ Alpha
4
+ ARM
5
+ ARM64
6
+ ia64
7
+ iSeries
8
+ MIPS
9
+ MIPS64
10
+ MPC
11
+ PA
12
+ PowerPC
13
+ pSeries
14
+ Risc
15
+ s390
16
+ s390x
17
+ Sparc
18
+ System/6000
19
+ x86
20
+ x86_64
@@ -0,0 +1,52 @@
1
+ BBS
2
+ Bridge
3
+ Broadband router
4
+ Console server
5
+ CSU/DSU
6
+ Domain controller
7
+ DSLAM
8
+ Encryption accelerator
9
+ Fax server
10
+ File server
11
+ Firewall
12
+ Game console
13
+ General
14
+ Hub
15
+ IPS
16
+ KVM
17
+ Lights Out Management
18
+ Load balancer
19
+ Mainframe
20
+ Management
21
+ Monitoring
22
+ Multifunction Device
23
+ Multiplexer
24
+ NAC
25
+ Network management device
26
+ PBX
27
+ PDA
28
+ Point of sale
29
+ Power device
30
+ Print server
31
+ Printer
32
+ Remote access server
33
+ Router
34
+ Scanner
35
+ Server
36
+ Specialized
37
+ Storage
38
+ Switch
39
+ Tablet
40
+ Tape library
41
+ Telecom
42
+ Terminal server
43
+ UPS
44
+ Virtualization host
45
+ VoIP
46
+ VPN
47
+ WAP
48
+ Web cam
49
+ Web proxy
50
+ Web server
51
+ Workstation
52
+ X terminal
@@ -0,0 +1,160 @@
1
+ A/UX
2
+ Adaptive Security Appliance
3
+ Aficio
4
+ AirPort
5
+ AIX
6
+ AmigaOS
7
+ AMOS
8
+ AOS
9
+ AOS/VS
10
+ APC
11
+ Atari
12
+ AtheOS
13
+ AuspexOS
14
+ BeOS
15
+ BIG-IP
16
+ Brocade
17
+ BSD
18
+ BSDi
19
+ CacheOS
20
+ CatOS
21
+ CBOS
22
+ CentOS
23
+ Check Point
24
+ Clix
25
+ ComOS
26
+ ConnectUPS
27
+ Content Networking System
28
+ ConvexOS
29
+ Cyras
30
+ CyROS
31
+ DART
32
+ Data ONTAP
33
+ Dell Remote Access Controller
34
+ DG/UX
35
+ Digital UNIX
36
+ Domain/OS
37
+ DOS
38
+ Dynix
39
+ Embedded
40
+ ES
41
+ ExtremeWare
42
+ Firewall-1
43
+ Fortinet
44
+ FreeBSD
45
+ GAiA
46
+ GigaVUE HD
47
+ GigaVUE TA
48
+ HI-UX
49
+ HP-UX
50
+ Hurd
51
+ iLO
52
+ IM Series
53
+ Imagistics
54
+ Integrated Dell Remote Access Controller
55
+ IOS
56
+ IPS
57
+ IPSO
58
+ Irix
59
+ Ironware
60
+ JetDirect
61
+ Junos
62
+ KA9Q
63
+ LaserJet
64
+ Linux
65
+ lwIP
66
+ LynxOS
67
+ Mac OS
68
+ Mac OS X
69
+ Mach
70
+ Madge CrossFire
71
+ MAXserver
72
+ MedNet
73
+ Minix
74
+ MPE/iX
75
+ MT
76
+ MVS
77
+ NC Series
78
+ NetBSD
79
+ NetCache
80
+ Netopia
81
+ NetOS
82
+ NetStation
83
+ NetVanta
84
+ NetWare
85
+ NewsOS
86
+ Newton OS
87
+ Nexpose
88
+ NEXTSTEP
89
+ NmpSW
90
+ NX-OS
91
+ OpenBSD
92
+ OpenROUTE
93
+ OpenServer
94
+ OpenVMS
95
+ OS/2
96
+ OS/390
97
+ OS/400
98
+ OS-9
99
+ PacketShaper pSOS
100
+ PalmOS
101
+ Palo Alto
102
+ PAN-OS
103
+ PIX
104
+ Plan9
105
+ ProCurve
106
+ ProLiant
107
+ QNX
108
+ Raptor
109
+ Reliant UNIX
110
+ RISC OS
111
+ RouterOS
112
+ RS
113
+ RT
114
+ SAN-OS
115
+ SCO UNIX
116
+ ScreenOS
117
+ SHARP AR Series
118
+ SHARP MX Series
119
+ SINIX
120
+ Solaris
121
+ SpeedTouch
122
+ SPP-UX
123
+ SSL-VPN
124
+ StackTOS
125
+ SunOS
126
+ SVR4
127
+ Tahoe OS
128
+ Tandem NSK
129
+ Taos
130
+ ThreadX
131
+ TINIOS
132
+ TiOS
133
+ TOPS-20
134
+ Tru64 UNIX
135
+ Ubuntu
136
+ UCOS
137
+ UCS
138
+ Ultrasound Device
139
+ Ultrix
140
+ UnicOS
141
+ Unisys
142
+ UnixWare
143
+ UX/4800
144
+ VG200
145
+ VirtuOS
146
+ VM
147
+ VM/CMS
148
+ VM/ESA
149
+ VMS
150
+ VMware ESX/ESXi
151
+ VOS
152
+ VRP
153
+ VxWorks
154
+ WAAS
155
+ Wide Format Printer
156
+ Windows
157
+ Worldgroup
158
+ xMach
159
+ z/OS
160
+ ZyNOS