recog-intrigue 2.3.7

Sign up to get free protection for your applications and to get access to all the features.
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