recog 2.3.21 → 3.0.1

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 (120) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +42 -16
  4. data/Rakefile +2 -9
  5. data/lib/recog/db.rb +2 -1
  6. data/lib/recog/db_manager.rb +1 -1
  7. data/lib/recog/fingerprint.rb +33 -6
  8. data/lib/recog/fingerprint_parse_error.rb +10 -0
  9. data/lib/recog/verifier.rb +9 -9
  10. data/lib/recog/verify_reporter.rb +17 -6
  11. data/lib/recog/version.rb +1 -1
  12. data/{bin → recog/bin}/recog_match +0 -1
  13. data/{xml → recog/xml}/apache_modules.xml +0 -0
  14. data/{xml → recog/xml}/apache_os.xml +98 -56
  15. data/{xml → recog/xml}/architecture.xml +15 -1
  16. data/recog/xml/dhcp_vendor_class.xml +206 -0
  17. data/{xml → recog/xml}/dns_versionbind.xml +16 -13
  18. data/{xml → recog/xml}/favicons.xml +297 -47
  19. data/{xml → recog/xml}/fingerprints.xsd +9 -1
  20. data/{xml → recog/xml}/ftp_banners.xml +160 -156
  21. data/{xml → recog/xml}/h323_callresp.xml +101 -101
  22. data/{xml → recog/xml}/hp_pjl_id.xml +84 -84
  23. data/{xml → recog/xml}/html_title.xml +727 -34
  24. data/{xml → recog/xml}/http_cookies.xml +160 -77
  25. data/{xml → recog/xml}/http_servers.xml +556 -283
  26. data/{xml → recog/xml}/http_wwwauth.xml +190 -75
  27. data/{xml → recog/xml}/imap_banners.xml +5 -5
  28. data/{xml → recog/xml}/ldap_searchresult.xml +0 -0
  29. data/{xml → recog/xml}/mdns_device-info_txt.xml +389 -26
  30. data/{xml → recog/xml}/mdns_workstation_txt.xml +0 -0
  31. data/{xml → recog/xml}/mysql_banners.xml +1 -1
  32. data/{xml → recog/xml}/mysql_error.xml +0 -0
  33. data/{xml → recog/xml}/nntp_banners.xml +11 -8
  34. data/{xml → recog/xml}/ntp_banners.xml +97 -97
  35. data/{xml → recog/xml}/operating_system.xml +95 -80
  36. data/{xml → recog/xml}/pop_banners.xml +23 -23
  37. data/{xml → recog/xml}/rsh_resp.xml +3 -3
  38. data/{xml → recog/xml}/rtsp_servers.xml +0 -0
  39. data/{xml → recog/xml}/sip_banners.xml +43 -5
  40. data/{xml → recog/xml}/sip_user_agents.xml +175 -27
  41. data/{xml → recog/xml}/smb_native_lm.xml +5 -5
  42. data/{xml → recog/xml}/smb_native_os.xml +25 -25
  43. data/{xml → recog/xml}/smtp_banners.xml +147 -146
  44. data/{xml → recog/xml}/smtp_debug.xml +0 -0
  45. data/{xml → recog/xml}/smtp_ehlo.xml +1 -1
  46. data/{xml → recog/xml}/smtp_expn.xml +0 -0
  47. data/{xml → recog/xml}/smtp_help.xml +11 -11
  48. data/{xml → recog/xml}/smtp_mailfrom.xml +0 -0
  49. data/{xml → recog/xml}/smtp_noop.xml +2 -2
  50. data/{xml → recog/xml}/smtp_quit.xml +0 -0
  51. data/{xml → recog/xml}/smtp_rcptto.xml +0 -0
  52. data/{xml → recog/xml}/smtp_rset.xml +0 -0
  53. data/{xml → recog/xml}/smtp_turn.xml +0 -0
  54. data/{xml → recog/xml}/smtp_vrfy.xml +0 -0
  55. data/{xml → recog/xml}/snmp_sysdescr.xml +1570 -1430
  56. data/{xml → recog/xml}/snmp_sysobjid.xml +38 -27
  57. data/{xml → recog/xml}/ssh_banners.xml +16 -10
  58. data/{xml → recog/xml}/telnet_banners.xml +238 -21
  59. data/{xml → recog/xml}/tls_jarm.xml +56 -6
  60. data/{xml → recog/xml}/x11_banners.xml +3 -3
  61. data/{xml → recog/xml}/x509_issuers.xml +49 -1
  62. data/{xml → recog/xml}/x509_subjects.xml +139 -38
  63. data/recog.gemspec +9 -5
  64. data/spec/data/external_example_fingerprint/hp_printer_ex_01.txt +1 -0
  65. data/spec/data/external_example_fingerprint/hp_printer_ex_02.txt +1 -0
  66. data/spec/data/external_example_fingerprint.xml +8 -0
  67. data/spec/data/external_example_illegal_path_fingerprint.xml +7 -0
  68. data/spec/lib/recog/db_spec.rb +84 -61
  69. data/spec/lib/recog/fingerprint_spec.rb +4 -4
  70. data/spec/lib/recog/verify_reporter_spec.rb +73 -4
  71. data/spec/spec_helper.rb +4 -0
  72. metadata +65 -134
  73. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -37
  74. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
  75. data/.github/ISSUE_TEMPLATE/fingerprint_request.md +0 -27
  76. data/.github/PULL_REQUEST_TEMPLATE +0 -24
  77. data/.github/SECURITY.md +0 -35
  78. data/.github/workflows/ci.yml +0 -26
  79. data/.gitignore +0 -23
  80. data/.rspec +0 -3
  81. data/.ruby-gemset +0 -1
  82. data/.ruby-version +0 -1
  83. data/.snyk +0 -10
  84. data/.travis.yml +0 -25
  85. data/CONTRIBUTING.md +0 -270
  86. data/bin/recog_cleanup +0 -16
  87. data/bin/recog_export +0 -81
  88. data/bin/recog_standardize +0 -148
  89. data/bin/recog_verify +0 -64
  90. data/cpe-remap.yaml +0 -343
  91. data/features/data/failing_banners_fingerprints.xml +0 -20
  92. data/features/data/matching_banners_fingerprints.xml +0 -23
  93. data/features/data/multiple_banners_fingerprints.xml +0 -32
  94. data/features/data/no_tests.xml +0 -3
  95. data/features/data/sample_banner.txt +0 -2
  96. data/features/data/successful_tests.xml +0 -18
  97. data/features/data/tests_with_failures.xml +0 -20
  98. data/features/data/tests_with_warnings.xml +0 -17
  99. data/features/match.feature +0 -36
  100. data/features/support/aruba.rb +0 -3
  101. data/features/support/env.rb +0 -6
  102. data/features/verify.feature +0 -48
  103. data/identifiers/README.md +0 -70
  104. data/identifiers/fields.txt +0 -104
  105. data/identifiers/hw_device.txt +0 -78
  106. data/identifiers/hw_family.txt +0 -113
  107. data/identifiers/hw_product.txt +0 -410
  108. data/identifiers/os_architecture.txt +0 -10
  109. data/identifiers/os_device.txt +0 -75
  110. data/identifiers/os_family.txt +0 -233
  111. data/identifiers/os_product.txt +0 -340
  112. data/identifiers/service_family.txt +0 -249
  113. data/identifiers/service_product.txt +0 -752
  114. data/identifiers/vendor.txt +0 -798
  115. data/lib/recog/verifier_factory.rb +0 -13
  116. data/misc/convert_mysql_err +0 -61
  117. data/misc/order.xsl +0 -17
  118. data/requirements.txt +0 -2
  119. data/spec/lib/fingerprint_self_test_spec.rb +0 -174
  120. data/update_cpes.py +0 -250
@@ -124,8 +124,8 @@
124
124
 
125
125
  <fingerprint pattern="^Stronghold/(\d\.\d) Apache/([012][\d.]*)\s*(.*)$">
126
126
  <description>Red Hat Stronghold Enterprise Apache</description>
127
- <example service.version="1.3.19" service.cpe23="cpe:/a:apache:http_server:1.3.19" service.component.cpe23="cpe:/a:redhat:stronghold:3.0">Stronghold/3.0 Apache/1.3.19 RedHat/3014c</example>
128
- <example service.version="1.3.22" service.cpe23="cpe:/a:apache:http_server:1.3.22" service.component.cpe23="cpe:/a:redhat:stronghold:4.0" apache.info="(Unix) mod_ssl/2.8.7 OpenSSL/0.9.6c mod_perl/1.26">Stronghold/4.0 Apache/1.3.22 (Unix) mod_ssl/2.8.7 OpenSSL/0.9.6c mod_perl/1.26</example>
127
+ <example service.version="1.3.19" service.cpe23="cpe:/a:apache:http_server:1.3.19" service.component.cpe23="cpe:/a:redhat:stronghold:3.0" service.component.version="3.0" apache.info="RedHat/3014c">Stronghold/3.0 Apache/1.3.19 RedHat/3014c</example>
128
+ <example service.version="1.3.22" service.cpe23="cpe:/a:apache:http_server:1.3.22" service.component.cpe23="cpe:/a:redhat:stronghold:4.0" apache.info="(Unix) mod_ssl/2.8.7 OpenSSL/0.9.6c mod_perl/1.26" service.component.version="4.0">Stronghold/4.0 Apache/1.3.22 (Unix) mod_ssl/2.8.7 OpenSSL/0.9.6c mod_perl/1.26</example>
129
129
  <param pos="0" name="service.vendor" value="Apache"/>
130
130
  <param pos="0" name="service.product" value="HTTPD"/>
131
131
  <param pos="0" name="service.family" value="Apache"/>
@@ -175,22 +175,22 @@
175
175
 
176
176
  <fingerprint pattern="(?i)^Apache(?:-AdvancedExtranetServer)?(?:/([012][\d.]*)\s*(.*))?$">
177
177
  <description>Apache</description>
178
- <example>Apache-AdvancedExtranetServer/2.0.44 (Mandrake Linux/11mdk) mod_perl/1.99_08 Perl/v5.8.0 mod_ssl/2.0.44 OpenSSL/0.9.7a PHP/4.3.1 mod_jk2/2.0.0</example>
179
- <example>Apache-AdvancedExtranetServer/2.0.47 (Mandrake Linux/6.12.92mdk) mod_perl/1.99_09 Perl/v5.8.1 mod_ssl/2.0.47 OpenSSL/0.9.7b PHP/4.3.2</example>
180
- <example>Apache-AdvancedExtranetServer/2.0.47 (Mandrake Linux/6.3.92mdk) mod_ssl/2.0.47 OpenSSL/0.9.7b PHP/4.3.2</example>
181
- <example>Apache-AdvancedExtranetServer/2.0.48 (Mandrake Linux/6.8.100mdk) mod_perl/1.99_11 Perl/v5.8.3 mod_ssl/2.0.48 OpenSSL/0.9.7c PHP/4.3.4</example>
182
- <example>Apache-AdvancedExtranetServer/2.0.48 (Mandrake Linux/6mdk) PHP/4.3.4</example>
183
- <example>Apache-AdvancedExtranetServer/2.0.53 (Mandrakelinux/PREFORK-9mdk) mod_ssl/2.0.53 OpenSSL/0.9.7e PHP/4.3.10 mod_perl/1.999.21 Perl/v5.8.6</example>
184
- <example>Apache/0.6.5</example>
185
- <example>Apache/1.1.3</example>
186
- <example>Apache/1.2.42 (PalmOS)</example>
187
- <example>Apache/1.3.28 (SolutionIP) mod_perl/1.28 mod_ssl/2.8.15 OpenSSL/0.9.7b</example>
188
- <example>Apache/1.3.28 (Unix)</example>
189
- <example>Apache/1.3.28 (Unix) mod_auth_pam/1.1.1</example>
190
- <example>Apache/2.2.3 (Red Hat)</example>
191
- <example>Apache/2.2.4 (Win32) PHP/5.2.2</example>
192
- <example>Apache/2.2.4 (Win32) PHP/5.2.3</example>
193
- <example>APACHE/1.3.9</example>
178
+ <example service.version="2.0.44" apache.info="(Mandrake Linux/11mdk) mod_perl/1.99_08 Perl/v5.8.0 mod_ssl/2.0.44 OpenSSL/0.9.7a PHP/4.3.1 mod_jk2/2.0.0">Apache-AdvancedExtranetServer/2.0.44 (Mandrake Linux/11mdk) mod_perl/1.99_08 Perl/v5.8.0 mod_ssl/2.0.44 OpenSSL/0.9.7a PHP/4.3.1 mod_jk2/2.0.0</example>
179
+ <example service.version="2.0.47" apache.info="(Mandrake Linux/6.12.92mdk) mod_perl/1.99_09 Perl/v5.8.1 mod_ssl/2.0.47 OpenSSL/0.9.7b PHP/4.3.2">Apache-AdvancedExtranetServer/2.0.47 (Mandrake Linux/6.12.92mdk) mod_perl/1.99_09 Perl/v5.8.1 mod_ssl/2.0.47 OpenSSL/0.9.7b PHP/4.3.2</example>
180
+ <example service.version="2.0.47" apache.info="(Mandrake Linux/6.3.92mdk) mod_ssl/2.0.47 OpenSSL/0.9.7b PHP/4.3.2">Apache-AdvancedExtranetServer/2.0.47 (Mandrake Linux/6.3.92mdk) mod_ssl/2.0.47 OpenSSL/0.9.7b PHP/4.3.2</example>
181
+ <example service.version="2.0.48" apache.info="(Mandrake Linux/6.8.100mdk) mod_perl/1.99_11 Perl/v5.8.3 mod_ssl/2.0.48 OpenSSL/0.9.7c PHP/4.3.4">Apache-AdvancedExtranetServer/2.0.48 (Mandrake Linux/6.8.100mdk) mod_perl/1.99_11 Perl/v5.8.3 mod_ssl/2.0.48 OpenSSL/0.9.7c PHP/4.3.4</example>
182
+ <example service.version="2.0.48" apache.info="(Mandrake Linux/6mdk) PHP/4.3.4">Apache-AdvancedExtranetServer/2.0.48 (Mandrake Linux/6mdk) PHP/4.3.4</example>
183
+ <example service.version="2.0.53" apache.info="(Mandrakelinux/PREFORK-9mdk) mod_ssl/2.0.53 OpenSSL/0.9.7e PHP/4.3.10 mod_perl/1.999.21 Perl/v5.8.6">Apache-AdvancedExtranetServer/2.0.53 (Mandrakelinux/PREFORK-9mdk) mod_ssl/2.0.53 OpenSSL/0.9.7e PHP/4.3.10 mod_perl/1.999.21 Perl/v5.8.6</example>
184
+ <example service.version="0.6.5">Apache/0.6.5</example>
185
+ <example service.version="1.1.3">Apache/1.1.3</example>
186
+ <example service.version="1.2.42" apache.info="(PalmOS)">Apache/1.2.42 (PalmOS)</example>
187
+ <example service.version="1.3.28" apache.info="(SolutionIP) mod_perl/1.28 mod_ssl/2.8.15 OpenSSL/0.9.7b">Apache/1.3.28 (SolutionIP) mod_perl/1.28 mod_ssl/2.8.15 OpenSSL/0.9.7b</example>
188
+ <example service.version="1.3.28" apache.info="(Unix)">Apache/1.3.28 (Unix)</example>
189
+ <example service.version="1.3.28" apache.info="(Unix) mod_auth_pam/1.1.1">Apache/1.3.28 (Unix) mod_auth_pam/1.1.1</example>
190
+ <example service.version="2.2.3" apache.info="(Red Hat)">Apache/2.2.3 (Red Hat)</example>
191
+ <example service.version="2.2.4" apache.info="(Win32) PHP/5.2.2">Apache/2.2.4 (Win32) PHP/5.2.2</example>
192
+ <example service.version="2.2.4" apache.info="(Win32) PHP/5.2.3">Apache/2.2.4 (Win32) PHP/5.2.3</example>
193
+ <example service.version="1.3.9">APACHE/1.3.9</example>
194
194
  <param pos="0" name="service.vendor" value="Apache"/>
195
195
  <param pos="0" name="service.product" value="HTTPD"/>
196
196
  <param pos="0" name="service.family" value="Apache"/>
@@ -199,7 +199,7 @@
199
199
  <param pos="2" name="apache.info"/>
200
200
  </fingerprint>
201
201
 
202
- <fingerprint pattern="(?i)^CouchDB/([\.\d]+) .*$">
202
+ <fingerprint pattern="(?i)^CouchDB/([\.\d]+)">
203
203
  <description>Apache CouchDB</description>
204
204
  <example service.version="2.1.1">CouchDB/2.1.1 (Erlang OTP/20)</example>
205
205
  <param pos="0" name="service.vendor" value="Apache"/>
@@ -252,7 +252,7 @@
252
252
 
253
253
  <fingerprint pattern="^Microsoft-IIS/([1234]\.0)$">
254
254
  <description>Microsoft IIS 1.0 - 4.0 runs on Windows NT 4.0</description>
255
- <example>Microsoft-IIS/4.0</example>
255
+ <example service.version="4.0">Microsoft-IIS/4.0</example>
256
256
  <param pos="0" name="service.vendor" value="Microsoft"/>
257
257
  <param pos="0" name="service.product" value="IIS"/>
258
258
  <param pos="0" name="service.family" value="IIS"/>
@@ -378,7 +378,7 @@
378
378
 
379
379
  <fingerprint pattern="^Microsoft-IIS/([\d\.]+)$">
380
380
  <description>Microsoft IIS new, unknown Windows version</description>
381
- <example>Microsoft-IIS/9.0</example>
381
+ <example service.version="9.0">Microsoft-IIS/9.0</example>
382
382
  <param pos="0" name="service.vendor" value="Microsoft"/>
383
383
  <param pos="0" name="service.product" value="IIS"/>
384
384
  <param pos="0" name="service.family" value="IIS"/>
@@ -399,7 +399,7 @@
399
399
 
400
400
  <fingerprint pattern="^MS .NET Remoting, MS .NET CLR (\d+\.\d+\.\d+\.\d+)$">
401
401
  <description>Microsoft .NET Remoting and Common Language Runtime (CLR)</description>
402
- <example>MS .NET Remoting, MS .NET CLR 2.0.50727.42</example>
402
+ <example service.component.version="2.0.50727.42">MS .NET Remoting, MS .NET CLR 2.0.50727.42</example>
403
403
  <param pos="0" name="service.vendor" value="Microsoft"/>
404
404
  <param pos="0" name="service.product" value=".NET Remoting"/>
405
405
  <param pos="0" name="service.family" value=".NET"/>
@@ -415,9 +415,9 @@
415
415
 
416
416
  <fingerprint pattern="^Microsoft-WinCE/(\d\.\d+)$">
417
417
  <description>Windows CE embedded devices, including HP iPAQ, Palm Treo, Motorola phones, and many more</description>
418
- <example os.version="4.10">Microsoft-WinCE/4.10</example>
419
- <example>Microsoft-WinCE/4.20</example>
420
- <example>Microsoft-WinCE/5.0</example>
418
+ <example os.version="4.10" service.version="4.10">Microsoft-WinCE/4.10</example>
419
+ <example service.version="4.20" os.version="4.20">Microsoft-WinCE/4.20</example>
420
+ <example service.version="5.0" os.version="5.0">Microsoft-WinCE/5.0</example>
421
421
  <param pos="0" name="service.vendor" value="Microsoft"/>
422
422
  <param pos="0" name="service.product" value="Windows CE Web Server"/>
423
423
  <param pos="0" name="service.family" value="Windows CE Web Server"/>
@@ -432,7 +432,7 @@
432
432
 
433
433
  <fingerprint pattern="^Microsoft-PWS/(\d\.\d+)$">
434
434
  <description>Microsoft Personal Web Server runs on Windows 9x, ME, etc.</description>
435
- <example>Microsoft-PWS/4.0</example>
435
+ <example service.version="4.0">Microsoft-PWS/4.0</example>
436
436
  <param pos="0" name="service.vendor" value="Microsoft"/>
437
437
  <param pos="0" name="service.family" value="PWS"/>
438
438
  <param pos="0" name="service.product" value="PWS"/>
@@ -446,7 +446,7 @@
446
446
 
447
447
  <fingerprint pattern="^Microsoft-PWS-95/(\d\.\d+)$">
448
448
  <description>Microsoft Personal Web Server for Windows 95</description>
449
- <example>Microsoft-PWS-95/4.0</example>
449
+ <example service.version="4.0">Microsoft-PWS-95/4.0</example>
450
450
  <param pos="0" name="service.vendor" value="Microsoft"/>
451
451
  <param pos="0" name="service.family" value="PWS"/>
452
452
  <param pos="0" name="service.product" value="PWS"/>
@@ -469,8 +469,8 @@
469
469
 
470
470
  <fingerprint pattern="^Apache[ -]Coyote/(\d\.\d)$">
471
471
  <description>HTTP connector for Apache Tomcat to run as a standalone HTTP server - Coyote variant</description>
472
- <example>Apache-Coyote/1.1</example>
473
- <example>Apache Coyote/1.0</example>
472
+ <example service.component.version="1.1">Apache-Coyote/1.1</example>
473
+ <example service.component.version="1.0">Apache Coyote/1.0</example>
474
474
  <param pos="0" name="service.vendor" value="Apache"/>
475
475
  <param pos="0" name="service.product" value="Tomcat"/>
476
476
  <param pos="0" name="service.family" value="Tomcat"/>
@@ -568,10 +568,10 @@
568
568
 
569
569
  <fingerprint pattern="^Tomcat Web Server/(\d\.[\dA-Z.]+)(?: Final)?(?:\s\(([^\)]+)\))?$">
570
570
  <description>HTTP connector for Apache Tomcat to run as a standalone HTTP server</description>
571
- <example>Tomcat Web Server/3.2.2 (JSP 1.1; Servlet 2.2; Java 1.3.1; Windows 2000 5.0 x86; java.vendor=Sun Microsystems Inc.)</example>
572
- <example>Tomcat Web Server/3.2.2 (JSP 1.1; Servlet 2.2; Java 1.4.2_13; Windows 2003 5.2 x86; java.vendor=Sun Microsystems Inc.)</example>
573
- <example>Tomcat Web Server/3.1M1 (JSP 1.1; Servlet 2.2; Java 1.3.1; AIX 5.3 ppc; java.vendor=IBM Corporation)</example>
574
- <example>Tomcat Web Server/3.3.1 Final ( JSP 1.1; Servlet 2.2 )</example>
571
+ <example service.version="3.2.2" tomcat.info="JSP 1.1; Servlet 2.2; Java 1.3.1; Windows 2000 5.0 x86; java.vendor=Sun Microsystems Inc.">Tomcat Web Server/3.2.2 (JSP 1.1; Servlet 2.2; Java 1.3.1; Windows 2000 5.0 x86; java.vendor=Sun Microsystems Inc.)</example>
572
+ <example service.version="3.2.2" tomcat.info="JSP 1.1; Servlet 2.2; Java 1.4.2_13; Windows 2003 5.2 x86; java.vendor=Sun Microsystems Inc.">Tomcat Web Server/3.2.2 (JSP 1.1; Servlet 2.2; Java 1.4.2_13; Windows 2003 5.2 x86; java.vendor=Sun Microsystems Inc.)</example>
573
+ <example service.version="3.1M1" tomcat.info="JSP 1.1; Servlet 2.2; Java 1.3.1; AIX 5.3 ppc; java.vendor=IBM Corporation">Tomcat Web Server/3.1M1 (JSP 1.1; Servlet 2.2; Java 1.3.1; AIX 5.3 ppc; java.vendor=IBM Corporation)</example>
574
+ <example service.version="3.3.1" tomcat.info=" JSP 1.1; Servlet 2.2 ">Tomcat Web Server/3.3.1 Final ( JSP 1.1; Servlet 2.2 )</example>
575
575
  <param pos="0" name="service.vendor" value="Apache"/>
576
576
  <param pos="0" name="service.product" value="Tomcat"/>
577
577
  <param pos="0" name="service.family" value="Tomcat"/>
@@ -618,7 +618,7 @@
618
618
 
619
619
  <fingerprint pattern="^Oracle Application Server Containers for J2EE 10g \(([\d.]+)\)$">
620
620
  <description>Oracle Application Server Containers for J2EE 10g</description>
621
- <example>Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)</example>
621
+ <example service.version="9.0.4.0.0">Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)</example>
622
622
  <param pos="0" name="service.vendor" value="Oracle"/>
623
623
  <param pos="0" name="service.product" value="Oracle Application Server Containers"/>
624
624
  <param pos="0" name="service.family" value="Oracle"/>
@@ -635,7 +635,7 @@
635
635
 
636
636
  <fingerprint pattern="^Oracle Application Server/10g \(([\d.]+)\) Apache/([12][\d.]+)\s*(.*)$">
637
637
  <description>Oracle Application Server 10g with Apache info (powered by Apache)</description>
638
- <example>Oracle Application Server/10g (10.1.2) Apache/1.3.34 (Unix) mod_perl/1.29 mod_jk/1.2.14 OracleAS-Web-Cache-10g/10.1.2.0.2 (N;ecid=119642322340,0)</example>
638
+ <example service.version="1.3.34" apache.info="(Unix) mod_perl/1.29 mod_jk/1.2.14 OracleAS-Web-Cache-10g/10.1.2.0.2 (N;ecid=119642322340,0)" apache.variant.version="10.1.2">Oracle Application Server/10g (10.1.2) Apache/1.3.34 (Unix) mod_perl/1.29 mod_jk/1.2.14 OracleAS-Web-Cache-10g/10.1.2.0.2 (N;ecid=119642322340,0)</example>
639
639
  <param pos="0" name="service.vendor" value="Apache"/>
640
640
  <param pos="0" name="service.product" value="HTTPD"/>
641
641
  <param pos="0" name="service.family" value="Apache"/>
@@ -648,27 +648,32 @@
648
648
 
649
649
  <!-- TODO: this needs to be improved -->
650
650
 
651
- <fingerprint pattern="^Oracle-Application-Server-\d+[ig](?:[ /]([\d.]+) (?:\(.*\)|Oracle-HTTP-Server\s*(.*)))?$">
652
- <description>Oracle Application Server 10g (powered by Apache)</description>
653
- <example>Oracle-Application-Server-11g</example>
651
+ <fingerprint pattern="^Oracle-Application-Server-\d+[cgi](?:(?:[ /]([\d.]+))?\s*((?:Oracle-HTTP-Server|Oracle-Web-Cache-|OracleAS-Web-Cache-)?.{0,512})?(?:\s*\([TF]?[HSUGMN]?(?:;max-age=\d+(?:\+\d+)?)?(?:;age=\d+)?;ecid=[^)]+\))?)?$">
652
+ <description>Oracle Application Server</description>
654
653
  <example>Oracle-Application-Server-10g</example>
655
- <example>Oracle-Application-Server-10g/10.1.2.0.2 Oracle-HTTP-Server</example>
656
- <example>Oracle-Application-Server-10g/10.1.2.2.0 Oracle-HTTP-Server (Unix) mod_plsql/10.1.2.2.0 mod_ossl/10.1.2.0.0 mod_perl/1.29 OracleAS-Web-Cache-10g/10.1.2.0.2 (N;ecid=89116016562,0)</example>
657
- <example>Oracle-Application-Server-10g/10.1.2.2.0 Oracle-HTTP-Server OracleAS-Web-Cache-10g/10.1.2.2.0 (N;ecid=153541209221,0)</example>
658
- <example>Oracle-Application-Server-10g/9.0.4.1.0 Oracle-HTTP-Server</example>
659
- <param pos="0" name="service.vendor" value="Apache"/>
660
- <param pos="0" name="service.product" value="HTTPD"/>
661
- <param pos="0" name="service.family" value="Apache"/>
662
- <param pos="0" name="service.cpe23" value="cpe:/a:apache:http_server:-"/>
663
- <param pos="2" name="apache.info"/>
654
+ <example>Oracle-Application-Server-11g</example>
655
+ <example>Oracle-Application-Server-12c</example>
656
+ <example service.version="10.2.3.6.0">Oracle-Application-Server-11g/10.2.3.6.0</example>
657
+ <example service.version="10.1.2.0.2">Oracle-Application-Server-10g/10.1.2.0.2 Oracle-HTTP-Server</example>
658
+ <example service.version="10.1.2.2.0" apache.info="Oracle-HTTP-Server (Unix) mod_plsql/10.1.2.2.0 mod_ossl/10.1.2.0.0 mod_perl/1.29 OracleAS-Web-Cache-10g/10.1.2.0.2 (N;ecid=89116016562,0)">Oracle-Application-Server-10g/10.1.2.2.0 Oracle-HTTP-Server (Unix) mod_plsql/10.1.2.2.0 mod_ossl/10.1.2.0.0 mod_perl/1.29 OracleAS-Web-Cache-10g/10.1.2.0.2 (N;ecid=89116016562,0)</example>
659
+ <example service.version="10.1.2.2.0" apache.info="Oracle-HTTP-Server OracleAS-Web-Cache-10g/10.1.2.2.0 (N;ecid=153541209221,0)">Oracle-Application-Server-10g/10.1.2.2.0 Oracle-HTTP-Server OracleAS-Web-Cache-10g/10.1.2.2.0 (N;ecid=153541209221,0)</example>
660
+ <example service.version="9.0.4.1.0">Oracle-Application-Server-10g/9.0.4.1.0 Oracle-HTTP-Server</example>
661
+ <example apache.info="Oracle-Web-Cache-11g/11.1.1.3.0">Oracle-Application-Server-11g Oracle-Web-Cache-11g/11.1.1.3.0</example>
662
+ <example apache.info="OracleAS-Web-Cache-10g/9.0.4.0.0 (G;max-age=405077281+0;age=0)">Oracle-Application-Server-10g OracleAS-Web-Cache-10g/9.0.4.0.0 (G;max-age=405077281+0;age=0)</example>
663
+ <example apache.info="(N;ecid=7862868532763,0:1)">Oracle-Application-Server-11g (N;ecid=7862868532763,0:1)</example>
664
+ <example apache.info="Oracle-Web-Cache-11g/11.1.1.6.0 (G;max-age=0+0;age=0;ecid=9345078839670331,0:1)">Oracle-Application-Server-11g Oracle-Web-Cache-11g/11.1.1.6.0 (G;max-age=0+0;age=0;ecid=9345078839670331,0:1)</example>
665
+ <param pos="0" name="service.vendor" value="Oracle"/>
666
+ <param pos="0" name="service.product" value="Application Server"/>
664
667
  <param pos="0" name="apache.variant" value="Oracle"/>
665
- <param pos="1" name="apache.variant.version"/>
668
+ <param pos="1" name="service.version"/>
669
+ <param pos="0" name="service.cpe23" value="cpe:/a:oracle:application_server:{service.version}"/>
670
+ <param pos="2" name="apache.info"/>
666
671
  </fingerprint>
667
672
 
668
673
  <fingerprint pattern="^Oracle9iAS/([\d.]+) Oracle HTTP Server\s*(.*)$">
669
674
  <description>Oracle 9i Application Server</description>
670
- <example>Oracle9iAS/9.0.2.3.0 Oracle HTTP Server Oracle9iAS-Web-Cache/9.0.2.3.0 (N)</example>
671
- <example>Oracle9iAS/9.0.3.1 Oracle HTTP Server Oracle9iAS-Web-Cache/9.0.3.1.0 (N)</example>
675
+ <example apache.info="Oracle9iAS-Web-Cache/9.0.2.3.0 (N)" apache.variant.version="9.0.2.3.0">Oracle9iAS/9.0.2.3.0 Oracle HTTP Server Oracle9iAS-Web-Cache/9.0.2.3.0 (N)</example>
676
+ <example apache.info="Oracle9iAS-Web-Cache/9.0.3.1.0 (N)" apache.variant.version="9.0.3.1">Oracle9iAS/9.0.3.1 Oracle HTTP Server Oracle9iAS-Web-Cache/9.0.3.1.0 (N)</example>
672
677
  <param pos="0" name="service.vendor" value="Apache"/>
673
678
  <param pos="0" name="service.product" value="HTTPD"/>
674
679
  <param pos="0" name="service.family" value="Apache"/>
@@ -680,9 +685,9 @@
680
685
 
681
686
  <fingerprint pattern="^Oracle HTTP Server Powered by Apache/([12][\d.]*)\s*(.*)$">
682
687
  <description>Oracle HTTP Server (powered by Apache) - version string variant</description>
683
- <example>Oracle HTTP Server Powered by Apache/1.3.12 (Unix) ApacheJServ/1.1 mod_ssl/2.6.4 OpenSSL/0.9.5a</example>
684
- <example>Oracle HTTP Server Powered by Apache/1.3.19 (Unix) mod_plsql/3.0.9.8.3b PHP/4.3.10 mod_fastcgi/2.2.10 mod_perl/1.25 mod_oprocmgr/1.0</example>
685
- <example>Oracle HTTP Server Powered by Apache/1.3.19 (Win32) mod_ssl/2.8.1 OpenSSL/0.9.5a mod_fastcgi/2.2.10 mod_oprocmgr/1.0 mod_perl/1.25</example>
688
+ <example service.version="1.3.12" apache.info="(Unix) ApacheJServ/1.1 mod_ssl/2.6.4 OpenSSL/0.9.5a">Oracle HTTP Server Powered by Apache/1.3.12 (Unix) ApacheJServ/1.1 mod_ssl/2.6.4 OpenSSL/0.9.5a</example>
689
+ <example service.version="1.3.19" apache.info="(Unix) mod_plsql/3.0.9.8.3b PHP/4.3.10 mod_fastcgi/2.2.10 mod_perl/1.25 mod_oprocmgr/1.0">Oracle HTTP Server Powered by Apache/1.3.19 (Unix) mod_plsql/3.0.9.8.3b PHP/4.3.10 mod_fastcgi/2.2.10 mod_perl/1.25 mod_oprocmgr/1.0</example>
690
+ <example service.version="1.3.19" apache.info="(Win32) mod_ssl/2.8.1 OpenSSL/0.9.5a mod_fastcgi/2.2.10 mod_oprocmgr/1.0 mod_perl/1.25">Oracle HTTP Server Powered by Apache/1.3.19 (Win32) mod_ssl/2.8.1 OpenSSL/0.9.5a mod_fastcgi/2.2.10 mod_oprocmgr/1.0 mod_perl/1.25</example>
686
691
  <param pos="0" name="service.vendor" value="Apache"/>
687
692
  <param pos="0" name="service.product" value="HTTPD"/>
688
693
  <param pos="0" name="service.family" value="Apache"/>
@@ -702,16 +707,33 @@
702
707
  <param pos="0" name="apache.variant" value="Oracle"/>
703
708
  </fingerprint>
704
709
 
705
- <fingerprint pattern="^Oracle-Web-Cache-11g/([\d.]+) \(N;ecid=[^)]+\)$">
710
+ <fingerprint pattern="^Oracle-HTTP-Server(?:(?:-(?:\d{2}[cg]\/?)?([\d.]+)?(?:\/[\d.]+)?)?(?:.{0,512}\([TF]?[HSUGMN]?(?:;max-age=\d+(?:\+\d+)?)?(?:;age=\d+)?;ecid=[^)]+\))?)?$">
711
+ <description>Oracle HTTP Server</description>
712
+ <example>Oracle-HTTP-Server</example>
713
+ <example>Oracle-HTTP-Server-11g</example>
714
+ <example>Oracle-HTTP-Server-12c</example>
715
+ <example service.version="12.1.3.0.0">Oracle-HTTP-Server-12c/12.1.3.0.0</example>
716
+ <example service.version="12.2.1.4.0">Oracle-HTTP-Server-12.2.1.4.0/2.4.39</example>
717
+ <example>Oracle-HTTP-Server-11g Oracle-Web-Cache-11g/11.1.1.9.0 (H;max-age=214748356+0;age=61086;ecid=32073608106620,0:1)</example>
718
+ <param pos="0" name="service.vendor" value="Oracle"/>
719
+ <param pos="0" name="service.product" value="HTTP Server"/>
720
+ <param pos="1" name="service.version"/>
721
+ <param pos="0" name="service.cpe23" value="cpe:/a:oracle:http_server:{service.version}"/>
722
+ </fingerprint>
723
+
724
+ <fingerprint pattern="^Oracle-Web-Cache-11g/([\d.]+)(?:\s*\([TF]?[HSUGMN]?(?:;max-age=\d+(?:\+\d+)?)?(?:;age=\d+)?;ecid=[^)]+\))?$">
706
725
  <description>Oracle Web Cache</description>
707
- <example service.version="11.1.1.9.0">Oracle-Web-Cache-11g/11.1.1.9.0 (N;ecid=93620137613024,0:1)</example>
726
+ <example service.version="11.1.1.6.0">Oracle-Web-Cache-11g/11.1.1.6.0</example>
727
+ <example service.version="11.1.1.6.0">Oracle-Web-Cache-11g/11.1.1.6.0 (N;ecid=8590109479546459,0:1)</example>
728
+ <example service.version="11.1.1.6.0">Oracle-Web-Cache-11g/11.1.1.6.0 (G;max-age=0+0;age=0;ecid=86359748033185402,0:1:1)</example>
729
+ <example service.version="11.1.1.9.0">Oracle-Web-Cache-11g/11.1.1.9.0 (TH;max-age=60+30;age=55;ecid=23248098121,0)</example>
708
730
  <param pos="0" name="service.vendor" value="Oracle"/>
709
731
  <param pos="0" name="service.product" value="Web Cache"/>
710
732
  <param pos="1" name="service.version"/>
711
733
  <param pos="0" name="service.cpe23" value="cpe:/a:oracle:web_cache:{service.version}"/>
712
734
  </fingerprint>
713
735
 
714
- <fingerprint pattern="^OracleAS-Web-Cache-10g/([\d.]+).*">
736
+ <fingerprint pattern="^OracleAS-Web-Cache-10g/([\d.]+)">
715
737
  <description>Oracle Application Server Web Cache</description>
716
738
  <example service.version="10.1.2.3.0">OracleAS-Web-Cache-10g/10.1.2.3.0</example>
717
739
  <param pos="0" name="service.vendor" value="Oracle"/>
@@ -720,10 +742,36 @@
720
742
  <param pos="0" name="service.cpe23" value="cpe:/a:oracle:application_server_web_cache:{service.version}"/>
721
743
  </fingerprint>
722
744
 
745
+ <fingerprint pattern="^Oracle-iPlanet-Web-Server/([\d.]+)$">
746
+ <description>Oracle iPlanet Web Server (formerly known as Sun Java System Web Server, Sun ONE Web Server)</description>
747
+ <example service.version="7.0">Oracle-iPlanet-Web-Server/7.0</example>
748
+ <param pos="0" name="service.vendor" value="Oracle"/>
749
+ <param pos="0" name="service.product" value="iPlanet Web Server"/>
750
+ <param pos="1" name="service.version"/>
751
+ <param pos="0" name="service.cpe23" value="cpe:/a:oracle:iplanet_web_server:{service.version}"/>
752
+ </fingerprint>
753
+
754
+ <fingerprint pattern="^Oracle-ILOM-Web-Server/([\d.]+)$">
755
+ <description>Oracle(R) Integrated Lights Out Manager Web Server</description>
756
+ <example service.version="1.0">Oracle-ILOM-Web-Server/1.0</example>
757
+ <param pos="0" name="service.vendor" value="Oracle"/>
758
+ <param pos="0" name="service.product" value="ILOM"/>
759
+ <param pos="1" name="service.version"/>
760
+ <param pos="0" name="os.vendor" value="Oracle"/>
761
+ <param pos="0" name="os.family" value="ILOM"/>
762
+ <param pos="0" name="os.product" value="ILOM"/>
763
+ <param pos="0" name="os.device" value="Lights Out Management"/>
764
+ <param pos="0" name="os.cpe23" value="cpe:/o:oracle:integrated_lights_out_manager_firmware:-"/>
765
+ <param pos="0" name="hw.vendor" value="Oracle"/>
766
+ <param pos="0" name="hw.family" value="ILOM"/>
767
+ <param pos="0" name="hw.product" value="ILOM"/>
768
+ <param pos="0" name="hw.device" value="Lights Out Management"/>
769
+ </fingerprint>
770
+
723
771
  <fingerprint pattern="^HP Apache-based Web Server/([012][\d.]*)\s*\(Unix\)\s*(.*)$">
724
772
  <description>Apache running on HP-UX</description>
725
- <example>HP Apache-based Web Server/1.3.26 (Unix) mod_ssl/2.8.9 OpenSSL/0.9.6c</example>
726
- <example>HP Apache-based Web Server/1.3.26 (Unix)</example>
773
+ <example service.version="1.3.26" apache.info="mod_ssl/2.8.9 OpenSSL/0.9.6c">HP Apache-based Web Server/1.3.26 (Unix) mod_ssl/2.8.9 OpenSSL/0.9.6c</example>
774
+ <example service.version="1.3.26">HP Apache-based Web Server/1.3.26 (Unix)</example>
727
775
  <param pos="0" name="service.vendor" value="Apache"/>
728
776
  <param pos="0" name="service.product" value="HTTPD"/>
729
777
  <param pos="0" name="service.family" value="Apache"/>
@@ -739,11 +787,11 @@
739
787
 
740
788
  <fingerprint pattern="^CompaqHTTPServer/([0-9.]*)(?: HP System Management Homepage(?:/.*)?)?$">
741
789
  <description>HP/Compaq HTTP Server</description>
742
- <example>CompaqHTTPServer/9.9 HP System Management Homepage/2.1.5.146</example>
743
- <example>CompaqHTTPServer/9.9 HP System Management Homepage/3.0.1.73 httpd/2.2.6+</example>
744
- <example>CompaqHTTPServer/9.9 HP System Management Homepage/6.0.0.96 httpd/2.2.6+</example>
745
- <example>CompaqHTTPServer/9.9 HP System Management Homepage</example>
746
- <example>CompaqHTTPServer/4.1</example>
790
+ <example service.version="9.9">CompaqHTTPServer/9.9 HP System Management Homepage/2.1.5.146</example>
791
+ <example service.version="9.9">CompaqHTTPServer/9.9 HP System Management Homepage/3.0.1.73 httpd/2.2.6+</example>
792
+ <example service.version="9.9">CompaqHTTPServer/9.9 HP System Management Homepage/6.0.0.96 httpd/2.2.6+</example>
793
+ <example service.version="9.9">CompaqHTTPServer/9.9 HP System Management Homepage</example>
794
+ <example service.version="4.1">CompaqHTTPServer/4.1</example>
747
795
  <param pos="0" name="service.vendor" value="HP"/>
748
796
  <param pos="0" name="service.product" value="HTTP"/>
749
797
  <param pos="0" name="service.family" value="Compaq HTTP Server"/>
@@ -857,9 +905,10 @@
857
905
  <description>Xiongmai Tech uc-httpd</description>
858
906
  <example service.version="1.0.0">uc-httpd 1.0.0</example>
859
907
  <example service.version="1.0.0">uc-httpd/1.0.0</example>
860
- <param pos="0" name="service.vendor" value="Xiongmai Tech"/>
908
+ <param pos="0" name="service.vendor" value="Xiongmai Technology"/>
861
909
  <param pos="0" name="service.product" value="uc-httpd"/>
862
910
  <param pos="1" name="service.version"/>
911
+ <param pos="0" name="service.cpe23" value="cpe:/a:xiongmaitech:uc-httpd:{service.version}"/>
863
912
  </fingerprint>
864
913
 
865
914
  <fingerprint pattern="^micro_httpd$">
@@ -958,7 +1007,7 @@
958
1007
 
959
1008
  <fingerprint pattern="(?i)^Linux UPnP/1.0 Sonos/([\d\.\-a-z]+) \(ANVIL\)$">
960
1009
  <description>Sonos Subwoofer Speaker</description>
961
- <example>Linux UPnP/1.0 Sonos/31.3-22220 (ANVIL)</example>
1010
+ <example hw.version="31.3-22220">Linux UPnP/1.0 Sonos/31.3-22220 (ANVIL)</example>
962
1011
  <param pos="0" name="hw.vendor" value="Sonos"/>
963
1012
  <param pos="0" name="hw.product" value="Sub"/>
964
1013
  <param pos="0" name="hw.device" value="Network Audio"/>
@@ -1025,7 +1074,7 @@
1025
1074
 
1026
1075
  <fingerprint pattern="^Helix Server Version ([0-9.]*) \(win32\) \(RealServer compatible\)$">
1027
1076
  <description>RealMedia Helix Server - Windows</description>
1028
- <example>Helix Server Version 9.0.4.960 (win32) (RealServer compatible)</example>
1077
+ <example service.version="9.0.4.960">Helix Server Version 9.0.4.960 (win32) (RealServer compatible)</example>
1029
1078
  <param pos="0" name="os.vendor" value="Microsoft"/>
1030
1079
  <param pos="0" name="os.family" value="Windows"/>
1031
1080
  <param pos="0" name="os.product" value="Windows"/>
@@ -1038,7 +1087,7 @@
1038
1087
 
1039
1088
  <fingerprint pattern="^Helix Server Version ([0-9.]*) \(linux-\S+\) \(RealServer compatible\)$">
1040
1089
  <description>RealMedia Helix Server - Linux</description>
1041
- <example>Helix Server Version 9.0.4.960 (linux-2.2-libc6-i586-server) (RealServer compatible)</example>
1090
+ <example service.version="9.0.4.960">Helix Server Version 9.0.4.960 (linux-2.2-libc6-i586-server) (RealServer compatible)</example>
1042
1091
  <param pos="0" name="os.family" value="Linux"/>
1043
1092
  <param pos="0" name="os.product" value="Linux"/>
1044
1093
  <param pos="0" name="service.vendor" value="RealMedia"/>
@@ -1064,7 +1113,7 @@
1064
1113
 
1065
1114
  <fingerprint pattern="^Cougar/([0-9.]*)$">
1066
1115
  <description>Windows Media Services (older versions)</description>
1067
- <example>Cougar/9.01.01.3841</example>
1116
+ <example service.version="9.01.01.3841">Cougar/9.01.01.3841</example>
1068
1117
  <param pos="0" name="os.vendor" value="Microsoft"/>
1069
1118
  <param pos="0" name="os.family" value="Windows"/>
1070
1119
  <param pos="0" name="os.product" value="Windows"/>
@@ -1077,7 +1126,7 @@
1077
1126
 
1078
1127
  <fingerprint pattern="^WMServer/([0-9.]*)$">
1079
1128
  <description>Windows Media Services (newer versions)</description>
1080
- <example>WMServer/9.1.1.3841</example>
1129
+ <example service.version="9.1.1.3841">WMServer/9.1.1.3841</example>
1081
1130
  <param pos="0" name="os.vendor" value="Microsoft"/>
1082
1131
  <param pos="0" name="os.family" value="Windows"/>
1083
1132
  <param pos="0" name="os.product" value="Windows"/>
@@ -1152,7 +1201,7 @@
1152
1201
 
1153
1202
  <fingerprint pattern="^MiniServ/([0-9.]*)$">
1154
1203
  <description>mini_httpd</description>
1155
- <example>MiniServ/0.01</example>
1204
+ <example service.version="0.01">MiniServ/0.01</example>
1156
1205
  <param pos="0" name="service.product" value="HTTP"/>
1157
1206
  <param pos="0" name="service.family" value="WebServer"/>
1158
1207
  <param pos="1" name="service.version"/>
@@ -1160,7 +1209,7 @@
1160
1209
 
1161
1210
  <fingerprint pattern="^IBM HTTP Server/(V\d+R\d+M\d+)$">
1162
1211
  <description>IBM HTTP server running on AS/400</description>
1163
- <example>IBM HTTP Server/V5R3M0</example>
1212
+ <example os.version="V5R3M0">IBM HTTP Server/V5R3M0</example>
1164
1213
  <param pos="0" name="service.vendor" value="IBM"/>
1165
1214
  <param pos="0" name="service.product" value="HTTP Server"/>
1166
1215
  <param pos="0" name="service.family" value="HTTP Server"/>
@@ -1175,16 +1224,16 @@
1175
1224
 
1176
1225
  <fingerprint pattern="^(?:IBM_HTTP_Server|IBM_HTTP_SERVER)/([\w.-]+)\s+Apache/([12][\d.]+)\s*(.*)$">
1177
1226
  <description>IBM HTTP Server</description>
1178
- <example>IBM_HTTP_SERVER/1.3.19.2 Apache/1.3.20 (Win32)</example>
1179
- <example>IBM_HTTP_SERVER/1.3.28.1-PK16139 Apache/1.3.28 (Unix)</example>
1180
- <example>IBM_HTTP_Server/1.3.12 Apache/1.3.12 (Unix)</example>
1181
- <example>IBM_HTTP_Server/2.0.42.2-PK25355 Apache/2.0.47 (Unix) DAV/2</example>
1182
- <example>IBM_HTTP_Server/2.0.47.1-PK01070 Apache/2.0.47 (Win32) PHP/5.0.4</example>
1183
- <example>IBM_HTTP_Server/2.0.47.1 Apache/2.0.47 (Unix) DAV/2 PHP/4.3.8</example>
1184
- <example>IBM_HTTP_Server/6.0 Apache/2.0.47 (Unix) DAV/2</example>
1185
- <example>IBM_HTTP_Server/6.0.2 Apache/2.0.47 (Unix)</example>
1186
- <example>IBM_HTTP_Server/6.0.2.19 Apache/2.0.47 (Unix)</example>
1187
- <example>IBM_HTTP_Server/6.1 Apache/2.0.47 (Win32) PHP/5.1.1</example>
1227
+ <example service.version="1.3.20" apache.info="(Win32)" apache.variant.version="1.3.19.2">IBM_HTTP_SERVER/1.3.19.2 Apache/1.3.20 (Win32)</example>
1228
+ <example service.version="1.3.28" apache.info="(Unix)" apache.variant.version="1.3.28.1-PK16139">IBM_HTTP_SERVER/1.3.28.1-PK16139 Apache/1.3.28 (Unix)</example>
1229
+ <example service.version="1.3.12" apache.info="(Unix)" apache.variant.version="1.3.12">IBM_HTTP_Server/1.3.12 Apache/1.3.12 (Unix)</example>
1230
+ <example service.version="2.0.47" apache.info="(Unix) DAV/2" apache.variant.version="2.0.42.2-PK25355">IBM_HTTP_Server/2.0.42.2-PK25355 Apache/2.0.47 (Unix) DAV/2</example>
1231
+ <example service.version="2.0.47" apache.info="(Win32) PHP/5.0.4" apache.variant.version="2.0.47.1-PK01070">IBM_HTTP_Server/2.0.47.1-PK01070 Apache/2.0.47 (Win32) PHP/5.0.4</example>
1232
+ <example service.version="2.0.47" apache.info="(Unix) DAV/2 PHP/4.3.8" apache.variant.version="2.0.47.1">IBM_HTTP_Server/2.0.47.1 Apache/2.0.47 (Unix) DAV/2 PHP/4.3.8</example>
1233
+ <example service.version="2.0.47" apache.info="(Unix) DAV/2" apache.variant.version="6.0">IBM_HTTP_Server/6.0 Apache/2.0.47 (Unix) DAV/2</example>
1234
+ <example service.version="2.0.47" apache.info="(Unix)" apache.variant.version="6.0.2">IBM_HTTP_Server/6.0.2 Apache/2.0.47 (Unix)</example>
1235
+ <example service.version="2.0.47" apache.info="(Unix)" apache.variant.version="6.0.2.19">IBM_HTTP_Server/6.0.2.19 Apache/2.0.47 (Unix)</example>
1236
+ <example service.version="2.0.47" apache.info="(Win32) PHP/5.1.1" apache.variant.version="6.1">IBM_HTTP_Server/6.1 Apache/2.0.47 (Win32) PHP/5.1.1</example>
1188
1237
  <param pos="0" name="service.vendor" value="Apache"/>
1189
1238
  <param pos="0" name="service.product" value="HTTPD"/>
1190
1239
  <param pos="0" name="service.family" value="Apache"/>
@@ -1197,8 +1246,8 @@
1197
1246
 
1198
1247
  <fingerprint pattern="(?i)^(?:IBM_HTTP_SERVER|IBM-HTTP-SERVER)/(\S+)(?: \(\S+\))?$">
1199
1248
  <description>IBM HTTP Server with hardly useful version info</description>
1200
- <example>IBM-HTTP-Server/1.0</example>
1201
- <example>IBM_HTTP_Server/7.0.0.9 (Unix)</example>
1249
+ <example apache.variant.version="1.0">IBM-HTTP-Server/1.0</example>
1250
+ <example apache.variant.version="7.0.0.9">IBM_HTTP_Server/7.0.0.9 (Unix)</example>
1202
1251
  <param pos="0" name="service.vendor" value="Apache"/>
1203
1252
  <param pos="0" name="service.product" value="HTTPD"/>
1204
1253
  <param pos="0" name="service.family" value="Apache"/>
@@ -1207,7 +1256,7 @@
1207
1256
  <param pos="1" name="apache.variant.version"/>
1208
1257
  </fingerprint>
1209
1258
 
1210
- <fingerprint pattern="(?i)^(?:IBM_HTTP_SERVER|IBM-HTTP-SERVER)$">
1259
+ <fingerprint pattern="(?i)^IBM_HTTP_SERVER|IBM-HTTP-SERVER$">
1211
1260
  <description>IBM HTTP Server with no version info</description>
1212
1261
  <example>IBM_HTTP_SERVER</example>
1213
1262
  <example>IBM_HTTP_Server</example>
@@ -1222,8 +1271,9 @@
1222
1271
  Netscape/Sun's Application Server
1223
1272
  -->
1224
1273
 
1225
- <fingerprint pattern="^Sun[ -]Java[ -]System[ /]Application[ -]Server( \d\.[\d_]+)?$">
1274
+ <fingerprint pattern="^Sun[ -]Java[ -]System[ /]Application[ -]Server(?:\s+(\d\.[\d_]+))?$">
1226
1275
  <description>Sun Java System Application Server (formerly iPlanet Application Server, Sun ONE Application Server)</description>
1276
+ <example service.version="9.1_02">Sun Java System Application Server 9.1_02</example>
1227
1277
  <example>Sun-Java-System/Application-Server</example>
1228
1278
  <param pos="0" name="service.vendor" value="Sun"/>
1229
1279
  <param pos="0" name="service.family" value="Java System Application Server"/>
@@ -1234,7 +1284,7 @@
1234
1284
 
1235
1285
  <fingerprint pattern="^Sun[ -]Java[ -]System[ /]Application[ -]Server Platform Edition (\d\.[\d_]+)?$">
1236
1286
  <description>Sun Java System Application Server Platform Edition(formerly iPlanet Application Server, Sun ONE Application Server)</description>
1237
- <example>Sun Java System Application Server Platform Edition 9.0</example>
1287
+ <example service.version="9.0">Sun Java System Application Server Platform Edition 9.0</example>
1238
1288
  <example service.version="9.0_01">Sun Java System Application Server Platform Edition 9.0_01</example>
1239
1289
  <param pos="0" name="service.vendor" value="Sun"/>
1240
1290
  <param pos="0" name="service.family" value="Java System Application Server"/>
@@ -1283,9 +1333,9 @@
1283
1333
 
1284
1334
  <fingerprint pattern="^Netscape-Enterprise/(\d+\.[\w\s.]+)$">
1285
1335
  <description>Netscape Enterprise Server (subsequently iPlanet Web Server, Sun ONE Web Server, presently Sun Java System Web Server)</description>
1286
- <example>Netscape-Enterprise/3.5.1</example>
1287
- <example>Netscape-Enterprise/3.6 SP3</example>
1288
- <example>Netscape-Enterprise/6.0</example>
1336
+ <example service.version="3.5.1">Netscape-Enterprise/3.5.1</example>
1337
+ <example service.version="3.6 SP3">Netscape-Enterprise/3.6 SP3</example>
1338
+ <example service.version="6.0">Netscape-Enterprise/6.0</example>
1289
1339
  <param pos="0" name="service.vendor" value="Sun"/>
1290
1340
  <param pos="0" name="service.family" value="Java System Web Server"/>
1291
1341
  <param pos="0" name="service.product" value="Java System Web Server"/>
@@ -1318,7 +1368,7 @@
1318
1368
 
1319
1369
  <fingerprint pattern="^iPlanet-Web-Proxy-Server/(.*)$">
1320
1370
  <description>iPlanet WebProxy Server (subsequently Sun ONE WebProxy Server, presently Sun Java System Web Proxy Server)</description>
1321
- <example>iPlanet-Web-Proxy-Server/3.6</example>
1371
+ <example service.version="3.6">iPlanet-Web-Proxy-Server/3.6</example>
1322
1372
  <example service.version="3.6-SP5">iPlanet-Web-Proxy-Server/3.6-SP5</example>
1323
1373
  <param pos="0" name="service.vendor" value="Sun"/>
1324
1374
  <param pos="0" name="service.family" value="Java System Web Proxy Server"/>
@@ -1339,8 +1389,8 @@
1339
1389
 
1340
1390
  <fingerprint pattern="^Sun-Java-System-Web-Proxy-Server/(\d\.[\d.]+)$">
1341
1391
  <description>Sun Java System Web Proxy Server (formerly iPlanet WebProxy Server, Sun ONE WebProxy Server)</description>
1342
- <example>Sun-Java-System-Web-Proxy-Server/4.0.2</example>
1343
- <example>Sun-Java-System-Web-Proxy-Server/4.0</example>
1392
+ <example service.version="4.0.2">Sun-Java-System-Web-Proxy-Server/4.0.2</example>
1393
+ <example service.version="4.0">Sun-Java-System-Web-Proxy-Server/4.0</example>
1344
1394
  <param pos="0" name="service.vendor" value="Sun"/>
1345
1395
  <param pos="0" name="service.family" value="Java System Web Proxy Server"/>
1346
1396
  <param pos="0" name="service.product" value="Java System Web Proxy Server"/>
@@ -1445,7 +1495,7 @@
1445
1495
  <param pos="0" name="service.cpe23" value="cpe:/a:squid-cache:squid:-"/>
1446
1496
  </fingerprint>
1447
1497
 
1448
- <fingerprint pattern="^thttpd/(\d\.[\w.]+)-MX\s*.*$">
1498
+ <fingerprint pattern="^thttpd/(\d\.[\w.]+)-MX\s*">
1449
1499
  <description>ACME thttpd with SSL support</description>
1450
1500
  <example service.version="2.19">thttpd/2.19-MX Jan 24 2006</example>
1451
1501
  <param pos="0" name="service.vendor" value="ACME"/>
@@ -1461,7 +1511,7 @@
1461
1511
  <example>thttpd</example>
1462
1512
  <example service.version="2.04">thttpd/2.04 10aug98</example>
1463
1513
  <example service.version="2.20b">thttpd/2.20b</example>
1464
- <example>thttpd/2.21b PHP/20030920</example>
1514
+ <example service.version="2.21b">thttpd/2.21b PHP/20030920</example>
1465
1515
  <example service.version="2.23beta1">thttpd/2.23beta1 26may2002</example>
1466
1516
  <param pos="0" name="service.vendor" value="ACME"/>
1467
1517
  <param pos="0" name="service.product" value="thttpd"/>
@@ -1470,12 +1520,12 @@
1470
1520
  <param pos="0" name="service.cpe23" value="cpe:/a:acme:thttpd:{service.version}"/>
1471
1521
  </fingerprint>
1472
1522
 
1473
- <fingerprint pattern="(?i)^lighttpd(?:/(\d[\d.]+))?.*$">
1523
+ <fingerprint pattern="(?i)^lighttpd(?:/(\d[\d.]+))?">
1474
1524
  <description>Lighttpd</description>
1475
1525
  <example>lighttpd</example>
1476
1526
  <example>Lighttpd</example>
1477
1527
  <example service.version="1.4.16">lighttpd/1.4.16</example>
1478
- <example>lighttpd/1.3.7 (Mar 23 2007/16:00:15)</example>
1528
+ <example service.version="1.3.7">lighttpd/1.3.7 (Mar 23 2007/16:00:15)</example>
1479
1529
  <param pos="0" name="service.vendor" value="lighttpd"/>
1480
1530
  <param pos="0" name="service.product" value="lighttpd"/>
1481
1531
  <param pos="0" name="service.family" value="lighttpd"/>
@@ -1489,20 +1539,43 @@
1489
1539
  <param pos="0" name="service.product" value="nginx"/>
1490
1540
  <param pos="0" name="service.family" value="nginx"/>
1491
1541
  <param pos="0" name="service.vendor" value="nginx"/>
1492
- <param pos="0" name="service.cpe23" value="cpe:/a:nginx:nginx:-"/>
1542
+ <param pos="0" name="service.cpe23" value="cpe:/a:f5:nginx:-"/>
1493
1543
  </fingerprint>
1494
1544
 
1495
1545
  <fingerprint pattern="^nginx\/?([\d.]+)?">
1496
1546
  <description>nginx with version info and/or mods</description>
1497
1547
  <example service.version="0.8.53">nginx/0.8.53 + Phusion Passenger 3.0.0 (mod_rails/mod_rack)</example>
1498
- <example>nginx/0.8.53</example>
1548
+ <example service.version="0.8.53">nginx/0.8.53</example>
1499
1549
  <example>nginx + Phusion Passenger 5.1.11</example>
1500
1550
  <example>nginx + Phusion Passenger</example>
1501
1551
  <param pos="0" name="service.product" value="nginx"/>
1502
1552
  <param pos="0" name="service.family" value="nginx"/>
1503
1553
  <param pos="0" name="service.vendor" value="nginx"/>
1504
1554
  <param pos="1" name="service.version"/>
1505
- <param pos="0" name="service.cpe23" value="cpe:/a:nginx:nginx:{service.version}"/>
1555
+ <param pos="0" name="service.cpe23" value="cpe:/a:f5:nginx:{service.version}"/>
1556
+ </fingerprint>
1557
+
1558
+ <fingerprint pattern="^TeamSpeak Server ([\d.]+)$">
1559
+ <description>TeamSpeak HTTP server</description>
1560
+ <example service.version="3.13.6">TeamSpeak Server 3.13.6</example>
1561
+ <example service.version="3.13.3">TeamSpeak Server 3.13.3</example>
1562
+ <param pos="0" name="service.vendor" value="TeamSpeak"/>
1563
+ <param pos="0" name="service.product" value="TeamSpeak"/>
1564
+ <param pos="1" name="service.version"/>
1565
+ <param pos="0" name="service.cpe23" value="cpe:/a:teamspeak:teamspeak:{service.version}"/>
1566
+ </fingerprint>
1567
+
1568
+ <fingerprint pattern="^WebSocket\+\+/([\d.-]+(?:-dev)?)$">
1569
+ <description>WebSocket++ web server - https://github.com/zaphoyd/websocketpp</description>
1570
+ <example service.version="0.8.1">WebSocket++/0.8.1</example>
1571
+ <example service.version="0.8.2">WebSocket++/0.8.2</example>
1572
+ <example service.version="0.4.0">WebSocket++/0.4.0</example>
1573
+ <example service.version="0.8.0-dev">WebSocket++/0.8.0-dev</example>
1574
+ <example service.version="2011-09-25">WebSocket++/2011-09-25</example>
1575
+ <param pos="0" name="service.vendor" value="Zaphoyd Studios"/>
1576
+ <param pos="0" name="service.product" value="WebSocket++"/>
1577
+ <param pos="1" name="service.version"/>
1578
+ <param pos="0" name="service.cpe23" value="cpe:/a:zaphoyd:websocketpp:{service.version}"/>
1506
1579
  </fingerprint>
1507
1580
 
1508
1581
  <fingerprint pattern="^Lotus(?:-Domino)?(?:/|/0|/Release)?$">
@@ -1519,8 +1592,8 @@
1519
1592
 
1520
1593
  <fingerprint pattern="^Lotus(?:-Domino)?/(?:Release-?)?([4-7][\d.]+)\s*(?:.*)$">
1521
1594
  <description>IBM Lotus Notes/Domino with version info</description>
1522
- <example>Lotus-Domino/5.0.8</example>
1523
- <example>Lotus-Domino/Release-4.6.7(Intl)</example>
1595
+ <example service.version="5.0.8">Lotus-Domino/5.0.8</example>
1596
+ <example service.version="4.6.7">Lotus-Domino/Release-4.6.7(Intl)</example>
1524
1597
  <param pos="0" name="service.vendor" value="IBM"/>
1525
1598
  <param pos="0" name="service.product" value="Lotus Domino"/>
1526
1599
  <param pos="0" name="service.family" value="Lotus Domino"/>
@@ -1528,7 +1601,7 @@
1528
1601
  <param pos="0" name="service.cpe23" value="cpe:/a:ibm:lotus_domino:{service.version}"/>
1529
1602
  </fingerprint>
1530
1603
 
1531
- <fingerprint pattern="^WebLogic (?:WebLogic )?Server (\d+\.\d+(?:\s+SP\d+)?)\s+.*$">
1604
+ <fingerprint pattern="^WebLogic (?:WebLogic )?Server (\d+\.\d+(?:\s+SP\d+)?)\s+">
1532
1605
  <description>BEA WebLogic</description>
1533
1606
  <example service.version="8.1 SP3">WebLogic Server 8.1 SP3 Tue Jun 29 23:11:19 PDT 2004 404973</example>
1534
1607
  <example service.version="7.0 SP4">WebLogic Server 7.0 SP4 Tue Aug 12 11:22:26 PDT 2003</example>
@@ -1553,9 +1626,9 @@
1553
1626
 
1554
1627
  <fingerprint pattern="^Resin/(\S+)$">
1555
1628
  <description>Caucho Resin</description>
1556
- <example>Resin/2.1.13</example>
1557
- <example>Resin/3.0.23</example>
1558
- <example>Resin/2.1.s030827</example>
1629
+ <example service.version="2.1.13">Resin/2.1.13</example>
1630
+ <example service.version="3.0.23">Resin/3.0.23</example>
1631
+ <example service.version="2.1.s030827">Resin/2.1.s030827</example>
1559
1632
  <param pos="0" name="service.vendor" value="Caucho"/>
1560
1633
  <param pos="0" name="service.product" value="Resin"/>
1561
1634
  <param pos="0" name="service.family" value="Resin"/>
@@ -1565,9 +1638,9 @@
1565
1638
 
1566
1639
  <fingerprint pattern="^Ipswitch-IMail/(\d\.\d+)$">
1567
1640
  <description>Ipswitch IMail Server</description>
1568
- <example>Ipswitch-IMail/5.08</example>
1569
- <example>Ipswitch-IMail/7.07</example>
1570
- <example>Ipswitch-IMail/8.05</example>
1641
+ <example service.version="5.08">Ipswitch-IMail/5.08</example>
1642
+ <example service.version="7.07">Ipswitch-IMail/7.07</example>
1643
+ <example service.version="8.05">Ipswitch-IMail/8.05</example>
1571
1644
  <param pos="0" name="service.vendor" value="Ipswitch"/>
1572
1645
  <param pos="0" name="service.product" value="IMail Server"/>
1573
1646
  <param pos="0" name="service.family" value="IMail Server"/>
@@ -1623,7 +1696,7 @@
1623
1696
 
1624
1697
  <fingerprint pattern="^Abyss/(\d\.[\d.]+)-X2-Win32 AbyssLib/(?:\d\.[\d.]+)$">
1625
1698
  <description>Aprelium Technologies Abyss Web Server X2 (licensed professional edition) on Windows</description>
1626
- <example>Abyss/2.14.2-X2-Win32 AbyssLib/2.14</example>
1699
+ <example service.version="2.14.2">Abyss/2.14.2-X2-Win32 AbyssLib/2.14</example>
1627
1700
  <param pos="0" name="service.vendor" value="Aprelium Technologies"/>
1628
1701
  <param pos="0" name="service.product" value="Abyss Web Server X2"/>
1629
1702
  <param pos="0" name="service.family" value="Abyss Web Server"/>
@@ -1671,7 +1744,7 @@
1671
1744
 
1672
1745
  <fingerprint pattern="^NetWare-Enterprise-Web-Server/(\d+\.\d+)$">
1673
1746
  <description>NetWare Enterprise Web Server (runs on NetWare 5.1)</description>
1674
- <example service.version="5.1">NetWare-Enterprise-Web-Server/5.1</example>
1747
+ <example service.version="5.1" os.version="5.1">NetWare-Enterprise-Web-Server/5.1</example>
1675
1748
  <param pos="0" name="service.vendor" value="Novell"/>
1676
1749
  <param pos="0" name="service.product" value="NetWare Enterprise Web Server"/>
1677
1750
  <param pos="0" name="service.family" value="NetWare Enterprise Web Server"/>
@@ -1903,11 +1976,11 @@
1903
1976
  <fingerprint pattern="^NetCache appliance \(NetApp/+(\d+\.\d+[\w.]+)\)$">
1904
1977
  <description>NetCache appliance (product line formerly owned by Network Appliances, now owned by Blue Coat Systems).</description>
1905
1978
  <example service.version="5.3.1R3">NetCache appliance (NetApp/5.3.1R3)</example>
1906
- <example>NetCache appliance (NetApp/5.4R2D2)</example>
1907
- <example>NetCache appliance (NetApp/5.6.1D22)</example>
1908
- <example>NetCache appliance (NetApp/6.0.2P1)</example>
1909
- <example>NetCache appliance (NetApp/6.0.4)</example>
1910
- <example>NetCache appliance (NetApp/6.1RC2)</example>
1979
+ <example service.version="5.4R2D2">NetCache appliance (NetApp/5.4R2D2)</example>
1980
+ <example service.version="5.6.1D22">NetCache appliance (NetApp/5.6.1D22)</example>
1981
+ <example service.version="6.0.2P1">NetCache appliance (NetApp/6.0.2P1)</example>
1982
+ <example service.version="6.0.4">NetCache appliance (NetApp/6.0.4)</example>
1983
+ <example service.version="6.1RC2">NetCache appliance (NetApp/6.1RC2)</example>
1911
1984
  <param pos="0" name="service.vendor" value="Blue Coat"/>
1912
1985
  <param pos="0" name="service.family" value="NetCache"/>
1913
1986
  <param pos="0" name="service.product" value="NetCache"/>
@@ -1920,9 +1993,9 @@
1920
1993
 
1921
1994
  <fingerprint pattern="^NetApp/+(.*)$">
1922
1995
  <description>NetApp file servers</description>
1923
- <example>NetApp/7.3.4P1</example>
1924
- <example>NetApp/7.2.1.1</example>
1925
- <example>NetApp//8.1RC2</example>
1996
+ <example os.version="7.3.4P1">NetApp/7.3.4P1</example>
1997
+ <example os.version="7.2.1.1">NetApp/7.2.1.1</example>
1998
+ <example os.version="8.1RC2">NetApp//8.1RC2</example>
1926
1999
  <param pos="0" name="os.certainty" value="0.9"/>
1927
2000
  <param pos="0" name="os.vendor" value="NetApp"/>
1928
2001
  <param pos="0" name="os.family" value="Data ONTAP"/>
@@ -1945,7 +2018,7 @@
1945
2018
  <param pos="0" name="os.product" value="Appliance"/>
1946
2019
  </fingerprint>
1947
2020
 
1948
- <fingerprint pattern="^(?:BigIP|BIG-IP)$">
2021
+ <fingerprint pattern="^BigIP|BIG-IP$">
1949
2022
  <description>F5 BIG-IP</description>
1950
2023
  <param pos="0" name="service.vendor" value="F5"/>
1951
2024
  <param pos="0" name="service.product" value="BIG-IP LTM"/>
@@ -1973,8 +2046,8 @@
1973
2046
 
1974
2047
  <fingerprint pattern="^HP-Chai(?:Server|SOE)/(\d+\.\d+)$">
1975
2048
  <description>HP Printer running the Chai embedded web server</description>
1976
- <example>HP-ChaiServer/2.2</example>
1977
- <example>HP-ChaiSOE/1.0</example>
2049
+ <example service.version="2.2">HP-ChaiServer/2.2</example>
2050
+ <example service.version="1.0">HP-ChaiSOE/1.0</example>
1978
2051
  <param pos="0" name="service.vendor" value="HP"/>
1979
2052
  <param pos="0" name="service.product" value="JetDirect"/>
1980
2053
  <param pos="0" name="service.family" value="JetDirect"/>
@@ -2064,7 +2137,7 @@
2064
2137
  <param pos="0" name="hw.device" value="Multifunction Device"/>
2065
2138
  </fingerprint>
2066
2139
 
2067
- <fingerprint pattern=".*Linksys.*">
2140
+ <fingerprint pattern="Linksys">
2068
2141
  <description>Linksys Wireless Access Point</description>
2069
2142
  <param pos="0" name="os.vendor" value="Linksys"/>
2070
2143
  <param pos="0" name="os.device" value="WAP"/>
@@ -2087,9 +2160,9 @@
2087
2160
  <param pos="0" name="hw.vendor" value="Cisco"/>
2088
2161
  </fingerprint>
2089
2162
 
2090
- <fingerprint pattern="^cisco-IOS/([^\s]+) HTTP-server/.*$">
2163
+ <fingerprint pattern="^cisco-IOS/([^\s]+) HTTP-server/">
2091
2164
  <description>Cisco IOS with version information</description>
2092
- <example>cisco-IOS/12.1 HTTP-server/1.0(1)</example>
2165
+ <example os.version="12.1">cisco-IOS/12.1 HTTP-server/1.0(1)</example>
2093
2166
  <param pos="0" name="service.vendor" value="Cisco"/>
2094
2167
  <param pos="0" name="service.family" value="IOS"/>
2095
2168
  <param pos="0" name="service.product" value="IOS"/>
@@ -2104,7 +2177,7 @@
2104
2177
 
2105
2178
  <fingerprint pattern="^Cisco AWARE (.*)$">
2106
2179
  <description>Cisco ASA</description>
2107
- <example>Cisco AWARE 2.0</example>
2180
+ <example service.version="2.0">Cisco AWARE 2.0</example>
2108
2181
  <param pos="1" name="service.version"/>
2109
2182
  <param pos="0" name="service.vendor" value="Cisco"/>
2110
2183
  <param pos="0" name="service.product" value="HTTP"/>
@@ -2159,7 +2232,7 @@
2159
2232
  <param pos="0" name="os.cpe23" value="cpe:/o:microsoft:windows:-"/>
2160
2233
  </fingerprint>
2161
2234
 
2162
- <fingerprint pattern="^Agent-ListenServer-HttpSvr/.*$">
2235
+ <fingerprint pattern="^Agent-ListenServer-HttpSvr/">
2163
2236
  <description>McAfee ePolicy Orchestrator</description>
2164
2237
  <param pos="0" name="service.vendor" value="McAfee"/>
2165
2238
  <param pos="0" name="service.product" value="ePolicy Orchestrator"/>
@@ -2167,7 +2240,7 @@
2167
2240
  <param pos="0" name="service.cpe23" value="cpe:/a:mcafee:epolicy_orchestrator:-"/>
2168
2241
  </fingerprint>
2169
2242
 
2170
- <fingerprint pattern="^LANDesk Management Agent/.*$">
2243
+ <fingerprint pattern="^LANDesk Management Agent/">
2171
2244
  <description>LANDesk Management Agent</description>
2172
2245
  <param pos="0" name="service.vendor" value="LANDesk"/>
2173
2246
  <param pos="0" name="service.product" value="Management Agent"/>
@@ -2211,8 +2284,8 @@
2211
2284
 
2212
2285
  <fingerprint pattern="^(?:Raptor )?Simple, Secure Web Server ([\d.]+)$">
2213
2286
  <description>Symantec Raptor Firewall</description>
2214
- <example>Simple, Secure Web Server 1.1</example>
2215
- <example>Raptor Simple, Secure Web Server 1.0</example>
2287
+ <example os.version="1.1">Simple, Secure Web Server 1.1</example>
2288
+ <example os.version="1.0">Raptor Simple, Secure Web Server 1.0</example>
2216
2289
  <param pos="0" name="os.vendor" value="Symantec"/>
2217
2290
  <param pos="0" name="os.family" value="Raptor"/>
2218
2291
  <param pos="0" name="os.device" value="Firewall"/>
@@ -2308,9 +2381,9 @@
2308
2381
  <param pos="0" name="os.device" value="IP Camera"/>
2309
2382
  </fingerprint>
2310
2383
 
2311
- <fingerprint pattern="^ListManagerWeb/(\S+) .*$">
2384
+ <fingerprint pattern="^ListManagerWeb/(\S+)">
2312
2385
  <description>Lyris ListManager</description>
2313
- <example>ListManagerWeb/8.8a (based on Tcl-Webserver/3.4.2)</example>
2386
+ <example service.version="8.8a">ListManagerWeb/8.8a (based on Tcl-Webserver/3.4.2)</example>
2314
2387
  <param pos="0" name="service.vendor" value="Lyris"/>
2315
2388
  <param pos="0" name="service.product" value="ListManager"/>
2316
2389
  <param pos="1" name="service.version"/>
@@ -2318,7 +2391,7 @@
2318
2391
 
2319
2392
  <fingerprint pattern="^kHTTPd (\S+)" certainty="0.50">
2320
2393
  <description>TUX web server, an in-kernel Linux HTTP Accelerator</description>
2321
- <example>kHTTPd 0.1.6</example>
2394
+ <example service.version="0.1.6">kHTTPd 0.1.6</example>
2322
2395
  <param pos="0" name="service.product" value="TUX Web Server"/>
2323
2396
  <param pos="1" name="service.version"/>
2324
2397
  <param pos="0" name="os.vendor" value="Linux"/>
@@ -2329,8 +2402,8 @@
2329
2402
 
2330
2403
  <fingerprint pattern="^VNC Server (Enterprise|Personal) Edition/(?:E|P)([\d.]+) \(r([\d.]+)\)$">
2331
2404
  <description>RealVNC built-in webserver - Enterprise edition</description>
2332
- <example service.version="4.5.1" service.version.version="27892">VNC Server Enterprise Edition/E4.5.1 (r27892)</example>
2333
- <example service.edition="Personal">VNC Server Personal Edition/P4.5.3 (r39012)</example>
2405
+ <example service.version="4.5.1" service.version.version="27892" service.edition="Enterprise">VNC Server Enterprise Edition/E4.5.1 (r27892)</example>
2406
+ <example service.edition="Personal" service.version="4.5.3" service.version.version="39012">VNC Server Personal Edition/P4.5.3 (r39012)</example>
2334
2407
  <param pos="0" name="service.vendor" value="RealVNC Ltd."/>
2335
2408
  <param pos="0" name="service.product" value="RealVNC"/>
2336
2409
  <param pos="1" name="service.edition"/>
@@ -2369,7 +2442,7 @@
2369
2442
 
2370
2443
  <fingerprint pattern="^SecureTransport (\d+[\d\.]+) \(build: (\d+)\)$">
2371
2444
  <description>AxWay SecureTransport</description>
2372
- <example>SecureTransport 5.3.6 (build: 412)</example>
2445
+ <example service.version="5.3.6" securetransport.build="412">SecureTransport 5.3.6 (build: 412)</example>
2373
2446
  <param pos="0" name="service.vendor" value="Axway"/>
2374
2447
  <param pos="0" name="service.product" value="SecureTransport"/>
2375
2448
  <param pos="1" name="service.version"/>
@@ -2377,24 +2450,24 @@
2377
2450
  <param pos="2" name="securetransport.build"/>
2378
2451
  </fingerprint>
2379
2452
 
2380
- <fingerprint pattern="(Agranat|Conexant|(?:Globespan)?Virata)-EmWeb/(.*)$">
2453
+ <fingerprint pattern="(Agranat|Conexant|(?:Globespan)?Virata)-EmWeb/(R[\d_]+)$">
2381
2454
  <description>EmWeb variants</description>
2382
- <example>Agranat-EmWeb/R4_01</example>
2383
- <example>Agranat-EmWeb/R5_1_2</example>
2384
- <example>Agranat-EmWeb/R5_2_4</example>
2385
- <example>Agranat-EmWeb/R5_2_6</example>
2386
- <example>Conexant-EmWeb/R6_1_0</example>
2387
- <example>ISOS/9.0 UPnP/1.0 Conexant-EmWeb/R6_1_0</example>
2388
- <example>Nucleus/4.3 UPnP/1.0 Virata-EmWeb/R6_2_0</example>
2389
- <example>Unknown/0.0 UPnP/1.0 Conexant-EmWeb/R6_1_0</example>
2390
- <example>Unknown/0.0 UPnP/1.0 GlobespanVirata-EmWeb/R6_1_0</example>
2391
- <example>Unknown/0.0 UPnP/1.0 Virata-EmWeb/R6_1_0</example>
2392
- <example>Virata-EmWeb/R5_3_0</example>
2393
- <example>Virata-EmWeb/R5_3_2</example>
2394
- <example>Virata-EmWeb/R6_0_1</example>
2395
- <example>Virata-EmWeb/R6_1_0</example>
2396
- <example>Virata-EmWeb/R6_2_0</example>
2397
- <example>Virata-EmWeb/R6_2_1</example>
2455
+ <example service.vendor="Agranat" service.version="R4_01">Agranat-EmWeb/R4_01</example>
2456
+ <example service.vendor="Agranat" service.version="R5_1_2">Agranat-EmWeb/R5_1_2</example>
2457
+ <example service.vendor="Agranat" service.version="R5_2_4">Agranat-EmWeb/R5_2_4</example>
2458
+ <example service.vendor="Agranat" service.version="R5_2_6">Agranat-EmWeb/R5_2_6</example>
2459
+ <example service.vendor="Conexant" service.version="R6_1_0">Conexant-EmWeb/R6_1_0</example>
2460
+ <example service.vendor="Conexant" service.version="R6_1_0">ISOS/9.0 UPnP/1.0 Conexant-EmWeb/R6_1_0</example>
2461
+ <example service.vendor="Virata" service.version="R6_2_0">Nucleus/4.3 UPnP/1.0 Virata-EmWeb/R6_2_0</example>
2462
+ <example service.vendor="Conexant" service.version="R6_1_0">Unknown/0.0 UPnP/1.0 Conexant-EmWeb/R6_1_0</example>
2463
+ <example service.vendor="GlobespanVirata" service.version="R6_1_0">Unknown/0.0 UPnP/1.0 GlobespanVirata-EmWeb/R6_1_0</example>
2464
+ <example service.vendor="Virata" service.version="R6_1_0">Unknown/0.0 UPnP/1.0 Virata-EmWeb/R6_1_0</example>
2465
+ <example service.vendor="Virata" service.version="R5_3_0">Virata-EmWeb/R5_3_0</example>
2466
+ <example service.vendor="Virata" service.version="R5_3_2">Virata-EmWeb/R5_3_2</example>
2467
+ <example service.vendor="Virata" service.version="R6_0_1">Virata-EmWeb/R6_0_1</example>
2468
+ <example service.vendor="Virata" service.version="R6_1_0">Virata-EmWeb/R6_1_0</example>
2469
+ <example service.vendor="Virata" service.version="R6_2_0">Virata-EmWeb/R6_2_0</example>
2470
+ <example service.vendor="Virata" service.version="R6_2_1">Virata-EmWeb/R6_2_1</example>
2398
2471
  <param pos="1" name="service.vendor"/>
2399
2472
  <param pos="0" name="service.family" value="EmWeb"/>
2400
2473
  <param pos="0" name="service.product" value="EmWeb"/>
@@ -2468,9 +2541,9 @@
2468
2541
  <fingerprint pattern="^SentinelProtectionServer/((?:\d+\.)*\d+)$">
2469
2542
  <description>Sentinel Protection Server - Embedded httpd in SafeNet's memory key dongles</description>
2470
2543
  <example service.version="7.1">SentinelProtectionServer/7.1</example>
2471
- <example>SentinelProtectionServer/7.3</example>
2472
- <example>SentinelProtectionServer/7.0</example>
2473
- <example>SentinelProtectionServer/7</example>
2544
+ <example service.version="7.3">SentinelProtectionServer/7.3</example>
2545
+ <example service.version="7.0">SentinelProtectionServer/7.0</example>
2546
+ <example service.version="7">SentinelProtectionServer/7</example>
2474
2547
  <param pos="0" name="service.vendor" value="SafeNet"/>
2475
2548
  <param pos="0" name="service.product" value="Sentinel Protection Server"/>
2476
2549
  <param pos="0" name="service.family" value="Sentinel"/>
@@ -2480,8 +2553,8 @@
2480
2553
  <fingerprint pattern="^SentinelKeysServer/((?:\d+\.)*\d+)$">
2481
2554
  <description>Sentinel Key Server - Embedded httpd in SafeNet's memory key dongles</description>
2482
2555
  <example service.version="1.3.1">SentinelKeysServer/1.3.1</example>
2483
- <example>SentinelKeysServer/1.0</example>
2484
- <example>SentinelKeysServer/1</example>
2556
+ <example service.version="1.0">SentinelKeysServer/1.0</example>
2557
+ <example service.version="1">SentinelKeysServer/1</example>
2485
2558
  <param pos="0" name="service.vendor" value="SafeNet"/>
2486
2559
  <param pos="0" name="service.product" value="Sentinel Keys Server"/>
2487
2560
  <param pos="0" name="service.family" value="Sentinel"/>
@@ -2490,8 +2563,8 @@
2490
2563
 
2491
2564
  <fingerprint pattern="^CherryPy/((?:\d+\.)*\d+)$">
2492
2565
  <description>Web server component of CherryPy web application framework.</description>
2493
- <example>CherryPy/3.1.2</example>
2494
- <example>CherryPy/3</example>
2566
+ <example service.version="3.1.2">CherryPy/3.1.2</example>
2567
+ <example service.version="3">CherryPy/3</example>
2495
2568
  <param pos="0" name="service.vendor" value="CherryPy"/>
2496
2569
  <param pos="0" name="service.product" value="CherryPy"/>
2497
2570
  <param pos="0" name="service.family" value="CherryPy"/>
@@ -2501,7 +2574,7 @@
2501
2574
 
2502
2575
  <fingerprint pattern="(?i)^TornadoServer/((?:\d+\.)*\d+)$">
2503
2576
  <description>Tornado Python web framework and asynchronous networking library.</description>
2504
- <example>TornadoServer/4.0.2</example>
2577
+ <example service.version="4.0.2">TornadoServer/4.0.2</example>
2505
2578
  <param pos="0" name="service.vendor" value="TornadoWeb"/>
2506
2579
  <param pos="0" name="service.product" value="Tornado"/>
2507
2580
  <param pos="0" name="service.family" value="Tornado"/>
@@ -2511,8 +2584,8 @@
2511
2584
 
2512
2585
  <fingerprint pattern="(?i)^SimpleHTTP/((?:\d+\.)*\d+)\s*Python/((?:\d+\.)*\d+)$">
2513
2586
  <description>SimpleHTTPRequestHandler Python class is a simple HTTP request handler.</description>
2514
- <example service.version="0.6">SimpleHTTP/0.6 Python/2.7.6</example>
2515
- <example python.version="3.4.0">SimpleHTTP/0.6 Python/3.4.0</example>
2587
+ <example service.version="0.6" python.version="2.7.6">SimpleHTTP/0.6 Python/2.7.6</example>
2588
+ <example python.version="3.4.0" service.version="0.6">SimpleHTTP/0.6 Python/3.4.0</example>
2516
2589
  <param pos="0" name="service.vendor" value="Python Software Foundation"/>
2517
2590
  <param pos="0" name="service.product" value="SimpleHTTP"/>
2518
2591
  <param pos="0" name="service.family" value="Python"/>
@@ -2522,8 +2595,8 @@
2522
2595
 
2523
2596
  <fingerprint pattern="^Python/(\d\.[\d.]+) aiohttp/(\d[\w.]+)$">
2524
2597
  <description>AIOHTTP Project AIOHTTP</description>
2525
- <example service.version="3.7.4.post0">Python/3.8 aiohttp/3.7.4.post0</example>
2526
- <example python.version="3.4">Python/3.4 aiohttp/1.0.5</example>
2598
+ <example service.version="3.7.4.post0" python.version="3.8">Python/3.8 aiohttp/3.7.4.post0</example>
2599
+ <example python.version="3.4" service.version="1.0.5">Python/3.4 aiohttp/1.0.5</example>
2527
2600
  <param pos="0" name="service.vendor" value="AIOHTTP Project"/>
2528
2601
  <param pos="0" name="service.product" value="AIOHTTP"/>
2529
2602
  <param pos="2" name="service.version"/>
@@ -2550,8 +2623,8 @@
2550
2623
 
2551
2624
  <fingerprint pattern="^HP Web Jetadmin/((?:\d+\.)*\d+)\s*(.*)$">
2552
2625
  <description>Apache variant for web access to HP printers.</description>
2553
- <example>HP Web Jetadmin/2.0.50 (Win32) mod_auth_sspi/1.0.1 mod_ssl/2.0.50 OpenSSL/0.9.6m</example>
2554
- <example>HP Web Jetadmin/2 (Win32) mod_auth_sspi/1.0.1 mod_ssl/2.0.50 OpenSSL/0.9.6m</example>
2626
+ <example service.version="2.0.50" apache.info="(Win32) mod_auth_sspi/1.0.1 mod_ssl/2.0.50 OpenSSL/0.9.6m">HP Web Jetadmin/2.0.50 (Win32) mod_auth_sspi/1.0.1 mod_ssl/2.0.50 OpenSSL/0.9.6m</example>
2627
+ <example service.version="2" apache.info="(Win32) mod_auth_sspi/1.0.1 mod_ssl/2.0.50 OpenSSL/0.9.6m">HP Web Jetadmin/2 (Win32) mod_auth_sspi/1.0.1 mod_ssl/2.0.50 OpenSSL/0.9.6m</example>
2555
2628
  <param pos="0" name="service.vendor" value="Apache"/>
2556
2629
  <param pos="0" name="service.product" value="HTTPD"/>
2557
2630
  <param pos="0" name="service.family" value="Apache"/>
@@ -2593,8 +2666,8 @@
2593
2666
 
2594
2667
  <fingerprint pattern="^ScreenConnect/([\d.]+)-(\d+)(?: Microsoft-HTTPAPI/2.0)?$">
2595
2668
  <description>ConnectWise Control formerly ScreenConnect</description>
2596
- <example service.version="6.3.13446.6374">ScreenConnect/6.3.13446.6374-4039728469 Microsoft-HTTPAPI/2.0</example>
2597
- <example service.version.version="3841999031">ScreenConnect/19.3.25270.7185-3841999031</example>
2669
+ <example service.version="6.3.13446.6374" service.version.version="4039728469">ScreenConnect/6.3.13446.6374-4039728469 Microsoft-HTTPAPI/2.0</example>
2670
+ <example service.version.version="3841999031" service.version="19.3.25270.7185">ScreenConnect/19.3.25270.7185-3841999031</example>
2598
2671
  <param pos="0" name="service.vendor" value="ConnectWise"/>
2599
2672
  <param pos="0" name="service.product" value="Control"/>
2600
2673
  <param pos="1" name="service.version"/>
@@ -2604,8 +2677,8 @@
2604
2677
 
2605
2678
  <fingerprint pattern="^Lotus Expeditor Web Container/((?:\d+\.)*\d+)$">
2606
2679
  <description>Expeditor is a framework used by IBM in many products in the Lotus brand, such as Sametime and Notes.</description>
2607
- <example>Lotus Expeditor Web Container/6.1</example>
2608
- <example>Lotus Expeditor Web Container/6</example>
2680
+ <example service.version="6.1">Lotus Expeditor Web Container/6.1</example>
2681
+ <example service.version="6">Lotus Expeditor Web Container/6</example>
2609
2682
  <param pos="0" name="service.vendor" value="IBM"/>
2610
2683
  <param pos="0" name="service.product" value="Lotus Expeditor Server"/>
2611
2684
  <param pos="0" name="service.family" value="Lotus Expeditor"/>
@@ -2630,7 +2703,7 @@
2630
2703
  <description>GoAhead-Webs - version</description>
2631
2704
  <example service.version="2.5.0">GoAhead-Webs/2.5.0 PeerSec-MatrixSSL/3.4.2-OPEN</example>
2632
2705
  <example service.version="2.5.0">Goahead/2.5.0 PeerSec-MatrixSSL/3.2.1-OPEN</example>
2633
- <example>GoAhead-Webs/2.5.0</example>
2706
+ <example service.version="2.5.0">GoAhead-Webs/2.5.0</example>
2634
2707
  <param pos="0" name="service.vendor" value="Oracle"/>
2635
2708
  <param pos="0" name="service.product" value="GoAhead Webserver"/>
2636
2709
  <param pos="0" name="service.family" value="GoAhead Webserver"/>
@@ -2643,8 +2716,8 @@
2643
2716
  <description>Mbedthis Appweb</description>
2644
2717
  <example service.version="2.4.0">Mbedthis-Appweb/2.4.0</example>
2645
2718
  <example service.version="2.4.0">Mbedthis-AppWeb/2.4.0</example>
2646
- <example>Mbedthis-Appweb/2.4.2</example>
2647
- <example>Mbedthis-Appweb/2</example>
2719
+ <example service.version="2.4.2">Mbedthis-Appweb/2.4.2</example>
2720
+ <example service.version="2">Mbedthis-Appweb/2</example>
2648
2721
  <param pos="0" name="service.vendor" value="Mbedthis Software"/>
2649
2722
  <param pos="0" name="service.product" value="Appweb"/>
2650
2723
  <param pos="0" name="service.family" value="Appweb"/>
@@ -2665,8 +2738,8 @@
2665
2738
 
2666
2739
  <fingerprint pattern="^Avaya CMBE/((?:\d+\.)*\d+)$">
2667
2740
  <description>Web server for Avaya Aura Communication Manager Branch, a SIP-based communications platform.</description>
2668
- <example>Avaya CMBE/2.0.0</example>
2669
- <example>Avaya CMBE/2</example>
2741
+ <example service.version="2.0.0">Avaya CMBE/2.0.0</example>
2742
+ <example service.version="2">Avaya CMBE/2</example>
2670
2743
  <param pos="0" name="service.vendor" value="Avaya"/>
2671
2744
  <param pos="0" name="service.product" value="Aura Communication Manager"/>
2672
2745
  <param pos="0" name="service.family" value="Aura"/>
@@ -2713,7 +2786,7 @@
2713
2786
 
2714
2787
  <fingerprint pattern="^TwistedWeb/([\d.rc]+)$">
2715
2788
  <description>Twisted Matrix Labs - TwistedWeb</description>
2716
- <example>TwistedWeb/2.5.0</example>
2789
+ <example service.version="2.5.0">TwistedWeb/2.5.0</example>
2717
2790
  <example service.version="16.4.0">TwistedWeb/16.4.0</example>
2718
2791
  <example service.version="16.5.0rc2">TwistedWeb/16.5.0rc2</example>
2719
2792
  <param pos="0" name="service.vendor" value="TwistedMatrix"/>
@@ -2725,8 +2798,8 @@
2725
2798
 
2726
2799
  <fingerprint pattern="^Twisted/([\d.]+) TwistedWeb/([\d.]+)$">
2727
2800
  <description>Twisted Matrix Labs - TwistedWeb - verbose variant</description>
2728
- <example service.version="13.0.0">Twisted/13.0.0 TwistedWeb/9.0.0</example>
2729
- <example service.version.version="9.0.0">Twisted/17.9.0 TwistedWeb/9.0.0</example>
2801
+ <example service.version="13.0.0" service.version.version="9.0.0">Twisted/13.0.0 TwistedWeb/9.0.0</example>
2802
+ <example service.version.version="9.0.0" service.version="17.9.0">Twisted/17.9.0 TwistedWeb/9.0.0</example>
2730
2803
  <param pos="0" name="service.vendor" value="TwistedMatrix"/>
2731
2804
  <param pos="0" name="service.product" value="Twisted Web"/>
2732
2805
  <param pos="0" name="service.family" value="Twisted Web"/>
@@ -2737,8 +2810,8 @@
2737
2810
 
2738
2811
  <fingerprint pattern="^mini_httpd/((?:\d+\.)*\d+) \S*$">
2739
2812
  <description>ACME mini_httpd with version and date</description>
2740
- <example>mini_httpd/1.14 23jun2000</example>
2741
- <example>mini_httpd/1 23jun2000</example>
2813
+ <example service.version="1.14">mini_httpd/1.14 23jun2000</example>
2814
+ <example service.version="1">mini_httpd/1 23jun2000</example>
2742
2815
  <param pos="0" name="service.vendor" value="ACME"/>
2743
2816
  <param pos="0" name="service.product" value="mini_httpd"/>
2744
2817
  <param pos="0" name="service.family" value="mini_httpd"/>
@@ -2749,7 +2822,7 @@
2749
2822
  <fingerprint pattern="^thin ((?:\d+\.)*\d+) codename .+$">
2750
2823
  <description>Marc-André Cournoyer's thin webserver</description>
2751
2824
  <example service.version="1.2.4">thin 1.2.4 codename Flaming Astroboy</example>
2752
- <example>thin 1 codename Flaming Astroboy</example>
2825
+ <example service.version="1">thin 1 codename Flaming Astroboy</example>
2753
2826
  <param pos="0" name="service.product" value="Thin"/>
2754
2827
  <param pos="0" name="service.family" value="Thin"/>
2755
2828
  <param pos="1" name="service.version"/>
@@ -2757,8 +2830,8 @@
2757
2830
 
2758
2831
  <fingerprint pattern="^Avocent DSView \d+/((?:\d+\.)*\d+)$">
2759
2832
  <description>Web server interface for controlling data centers.</description>
2760
- <example>Avocent DSView 3/3.7.0.71</example>
2761
- <example>Avocent DSView 3/3</example>
2833
+ <example service.version="3.7.0.71">Avocent DSView 3/3.7.0.71</example>
2834
+ <example service.version="3">Avocent DSView 3/3</example>
2762
2835
  <param pos="0" name="service.vendor" value="Avocent"/>
2763
2836
  <param pos="0" name="service.product" value="DSView"/>
2764
2837
  <param pos="0" name="service.family" value="DSView"/>
@@ -2769,7 +2842,7 @@
2769
2842
  <fingerprint pattern="^Mongrel ((?:\d+\.)*\d+)$">
2770
2843
  <description>Ruby-based web server and HTTP library.</description>
2771
2844
  <example service.version="1.1.5">Mongrel 1.1.5</example>
2772
- <example>Mongrel 1</example>
2845
+ <example service.version="1">Mongrel 1</example>
2773
2846
  <param pos="0" name="service.vendor" value="Zed Shaw"/>
2774
2847
  <param pos="0" name="service.product" value="Mongrel"/>
2775
2848
  <param pos="0" name="service.family" value="Mongrel"/>
@@ -2779,9 +2852,9 @@
2779
2852
 
2780
2853
  <fingerprint pattern="^Microplex emHTTPD/((?:\d+\.)*\d+)$">
2781
2854
  <description>Embedded web server used by Microplex.</description>
2782
- <example>Microplex emHTTPD/1.0</example>
2783
- <example>Microplex emHTTPD/1.1</example>
2784
- <example>Microplex emHTTPD/1</example>
2855
+ <example service.version="1.0">Microplex emHTTPD/1.0</example>
2856
+ <example service.version="1.1">Microplex emHTTPD/1.1</example>
2857
+ <example service.version="1">Microplex emHTTPD/1</example>
2785
2858
  <param pos="0" name="service.vendor" value="Microplex"/>
2786
2859
  <param pos="0" name="service.product" value="emHTTPD"/>
2787
2860
  <param pos="0" name="service.family" value="emHTTPD"/>
@@ -2792,8 +2865,8 @@
2792
2865
 
2793
2866
  <fingerprint pattern="^UPS_Server/((?:\d+\.)*\d+)$">
2794
2867
  <description>An embedded web server used for UPS management; primarily by Eaton, but also by APC.</description>
2795
- <example>UPS_Server/1.0</example>
2796
- <example>UPS_Server/1</example>
2868
+ <example service.version="1.0">UPS_Server/1.0</example>
2869
+ <example service.version="1">UPS_Server/1</example>
2797
2870
  <param pos="0" name="service.vendor" value="Eaton"/>
2798
2871
  <param pos="0" name="service.product" value="ConnectUPS"/>
2799
2872
  <param pos="0" name="service.family" value="ConnectUPS"/>
@@ -2804,8 +2877,8 @@
2804
2877
 
2805
2878
  <fingerprint pattern="^JC-HTTPD/((?:\d+\.)*\d+)$">
2806
2879
  <description>An embedded web server, used notably by Oki and Kyocera in printers.</description>
2807
- <example>JC-HTTPD/1.11.14</example>
2808
- <example>JC-HTTPD/1</example>
2880
+ <example service.version="1.11.14">JC-HTTPD/1.11.14</example>
2881
+ <example service.version="1">JC-HTTPD/1</example>
2809
2882
  <param pos="0" name="service.product" value="JC-HTTPD"/>
2810
2883
  <param pos="0" name="service.family" value="JC-HTTPD"/>
2811
2884
  <param pos="1" name="service.version"/>
@@ -2814,7 +2887,7 @@
2814
2887
  <fingerprint pattern="^JC-SHTTPD/((?:\d+\.)*\d+)$">
2815
2888
  <description>An embedded web server.</description>
2816
2889
  <example service.version="1.17.20">JC-SHTTPD/1.17.20</example>
2817
- <example>JC-SHTTPD/1</example>
2890
+ <example service.version="1">JC-SHTTPD/1</example>
2818
2891
  <param pos="0" name="service.product" value="JC-SHTTPD"/>
2819
2892
  <param pos="0" name="service.family" value="JC-SHTTPD"/>
2820
2893
  <param pos="1" name="service.version"/>
@@ -2823,7 +2896,7 @@
2823
2896
  <fingerprint pattern="^Oracle XML DB/Oracle\S+ (?:Enterprise Edition )?Release ((?:\d+\.)*\d+) - Production$">
2824
2897
  <description>Web server providing web services for Oracle's XML DB - with version string</description>
2825
2898
  <example service.version="9.2.0.1.0">Oracle XML DB/Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production</example>
2826
- <example>Oracle XML DB/Oracle9i Enterprise Edition Release 9 - Production</example>
2899
+ <example service.version="9">Oracle XML DB/Oracle9i Enterprise Edition Release 9 - Production</example>
2827
2900
  <example service.version="9.2.0.1.0">Oracle XML DB/Oracle9i Release 9.2.0.1.0 - Production</example>
2828
2901
  <param pos="0" name="service.vendor" value="Oracle"/>
2829
2902
  <param pos="0" name="service.product" value="XML DB"/>
@@ -2863,8 +2936,8 @@
2863
2936
 
2864
2937
  <fingerprint pattern="^Ews/((?:\d+\.)*\d+)$">
2865
2938
  <description>IBM Network Printer Manager.</description>
2866
- <example>Ews/0.1</example>
2867
- <example>Ews/0</example>
2939
+ <example service.version="0.1">Ews/0.1</example>
2940
+ <example service.version="0">Ews/0</example>
2868
2941
  <param pos="0" name="service.vendor" value="IBM"/>
2869
2942
  <param pos="0" name="service.product" value="Network Printer Manager"/>
2870
2943
  <param pos="0" name="service.family" value="Network Printer Manager"/>
@@ -2877,17 +2950,17 @@
2877
2950
 
2878
2951
  <fingerprint pattern="^\$ProjectRevision:[\s\w:]* ([\d\.]+) \$$">
2879
2952
  <description>This banner is used to see if devices have Treck TCP/IP</description>
2880
- <example>$ProjectRevision: 4.0.2.38 $</example>
2881
- <example>$ProjectRevision: 4.2 $</example>
2882
- <example>$ProjectRevision: 6.0.1.5 $</example>
2883
- <example>$ProjectRevision: Last Checkpoint: 4.2.2.13 $</example>
2953
+ <example service.version="4.0.2.38">$ProjectRevision: 4.0.2.38 $</example>
2954
+ <example service.version="4.2">$ProjectRevision: 4.2 $</example>
2955
+ <example service.version="6.0.1.5">$ProjectRevision: 6.0.1.5 $</example>
2956
+ <example service.version="4.2.2.13">$ProjectRevision: Last Checkpoint: 4.2.2.13 $</example>
2884
2957
  <param pos="0" name="service.vendor" value="Treck"/>
2885
2958
  <param pos="0" name="service.product" value="TCP/IP"/>
2886
2959
  <param pos="1" name="service.version"/>
2887
2960
  <param pos="0" name="service.cpe23" value="cpe:/a:treck:tcp\/ip:{service.version}"/>
2888
2961
  </fingerprint>
2889
2962
 
2890
- <fingerprint pattern="^WEBrick/([\d\.]+) .*$">
2963
+ <fingerprint pattern="^WEBrick/([\d\.]+)">
2891
2964
  <description>WEBrick default setup</description>
2892
2965
  <example service.version="1.3.1">WEBrick/1.3.1 (Ruby/1.9.3/2013-02-22)</example>
2893
2966
  <param pos="0" name="service.vendor" value="Ruby-Lang"/>
@@ -2918,6 +2991,20 @@
2918
2991
  <param pos="0" name="service.cpe23" value="cpe:/a:boa:boa:{service.version}"/>
2919
2992
  </fingerprint>
2920
2993
 
2994
+ <fingerprint pattern="^Hydra/([\d.]+)(?: GnuTLS/([\d.]+))?$">
2995
+ <description>Hydra - high performance multi threaded HTTP web server</description>
2996
+ <example service.version="0.1.8">Hydra/0.1.8</example>
2997
+ <example service.version="0.1.8" service.component.version="2.12.23">Hydra/0.1.8 GnuTLS/2.12.23</example>
2998
+ <param pos="0" name="service.vendor" value="Hydra Project"/>
2999
+ <param pos="0" name="service.product" value="Hydra"/>
3000
+ <param pos="1" name="service.version"/>
3001
+ <param pos="0" name="service.cpe23" value="cpe:/a:hydra_project:hydra:{service.version}"/>
3002
+ <param pos="0" name="service.component.vendor" value="GNU"/>
3003
+ <param pos="0" name="service.component.product" value="GnuTLS"/>
3004
+ <param pos="2" name="service.component.version"/>
3005
+ <param pos="0" name="service.component.cpe23" value="cpe:/a:gnu:gnutls:{service.component.version}"/>
3006
+ </fingerprint>
3007
+
2921
3008
  <!-- HiSilicon is OEMd by a number of DVR manufacturers -->
2922
3009
 
2923
3010
  <fingerprint pattern="^Cross Web Server$">
@@ -2947,8 +3034,8 @@
2947
3034
 
2948
3035
  <fingerprint pattern="^NET-DK[/ ](\d+\.\d+)$">
2949
3036
  <description>Web server found on ARRIS cable modems</description>
2950
- <example>NET-DK/1.0</example>
2951
- <example>NET-DK 1.1</example>
3037
+ <example service.version="1.0">NET-DK/1.0</example>
3038
+ <example service.version="1.1">NET-DK 1.1</example>
2952
3039
  <param pos="0" name="service.vendor" value="ARRIS"/>
2953
3040
  <param pos="0" name="service.product" value="Net-DK Web Server"/>
2954
3041
  <param pos="1" name="service.version"/>
@@ -2965,9 +3052,10 @@
2965
3052
  <param pos="0" name="service.product" value="2wire"/>
2966
3053
  </fingerprint>
2967
3054
 
2968
- <fingerprint pattern="^(?:(?:\d{1,3}\.){3}\d{1,3}):\d{1,4}$">
3055
+ <fingerprint pattern="^(?:(?:\d{1,3}\.){3}\d{1,3}):\d{1,5}$">
2969
3056
  <description>A banner consisting of an IPv4 address and port -- assert nothing.</description>
2970
3057
  <example>192.168.0.4:9999</example>
3058
+ <example>192.168.0.5:65535</example>
2971
3059
  <param pos="0" name="hw.certainty" value="0.0"/>
2972
3060
  <param pos="0" name="os.certainty" value="0.0"/>
2973
3061
  <param pos="0" name="service.certainty" value="0.0"/>
@@ -3016,8 +3104,8 @@
3016
3104
 
3017
3105
  <fingerprint pattern="^GFE/((?:\d+\.)*\d+)$">
3018
3106
  <description>Google Front End for apps running on Google services.</description>
3019
- <example>GFE/1.3</example>
3020
- <example>GFE/1</example>
3107
+ <example service.version="1.3">GFE/1.3</example>
3108
+ <example service.version="1">GFE/1</example>
3021
3109
  <param pos="0" name="service.vendor" value="Google"/>
3022
3110
  <param pos="0" name="service.family" value="Google Web Server"/>
3023
3111
  <param pos="0" name="service.product" value="Google Front End"/>
@@ -3085,6 +3173,15 @@
3085
3173
  <param pos="0" name="service.cpe23" value="cpe:/a:cloudflare:load_balancing:-"/>
3086
3174
  </fingerprint>
3087
3175
 
3176
+ <fingerprint pattern="^Microsoft-Azure-Application-Gateway\/(v\d+)$">
3177
+ <description>Microsoft Azure Application Gateway</description>
3178
+ <example service.version="v2">Microsoft-Azure-Application-Gateway/v2</example>
3179
+ <param pos="0" name="service.vendor" value="Microsoft"/>
3180
+ <param pos="0" name="service.family" value="Azure"/>
3181
+ <param pos="0" name="service.product" value="Azure Application Gateway"/>
3182
+ <param pos="1" name="service.version"/>
3183
+ </fingerprint>
3184
+
3088
3185
  <fingerprint pattern="^gSOAP/([\d\.]+)$">
3089
3186
  <description>gSOAP</description>
3090
3187
  <example service.version="2.7">gSOAP/2.7</example>
@@ -3094,6 +3191,14 @@
3094
3191
  <param pos="0" name="service.cpe23" value="cpe:/a:genivia:gsoap:{service.version}"/>
3095
3192
  </fingerprint>
3096
3193
 
3194
+ <fingerprint pattern="^AliyunOSS$">
3195
+ <description>Alibaba Cloud Object Storage Service (OSS)</description>
3196
+ <example>AliyunOSS</example>
3197
+ <param pos="0" name="service.vendor" value="Alibaba"/>
3198
+ <param pos="0" name="service.family" value="Cloud"/>
3199
+ <param pos="0" name="service.product" value="Object Storage Service"/>
3200
+ </fingerprint>
3201
+
3097
3202
  <!-- Apple QuickTime streaming server -->
3098
3203
 
3099
3204
  <fingerprint pattern="^QTSS\/([\d\.]+) \(Build\/[\d\.]+; Platform\/MacOSX; Release\/Panther">
@@ -3148,7 +3253,7 @@
3148
3253
  <param pos="0" name="service.cpe23" value="cpe:/a:intel:active_management_technology:{service.version}"/>
3149
3254
  </fingerprint>
3150
3255
 
3151
- <fingerprint pattern="^(?:AMT|Intel\(R\) Active Management Technology)$">
3256
+ <fingerprint pattern="^AMT|Intel\(R\) Active Management Technology$">
3152
3257
  <description>Intel(R) Active Management Technology (AMT) without a version</description>
3153
3258
  <example>AMT</example>
3154
3259
  <example>Intel(R) Active Management Technology</example>
@@ -3306,9 +3411,9 @@
3306
3411
 
3307
3412
  <fingerprint pattern="(?i)^Linux/(\S+) UPnP/[\d\.]+ miniupnpd/([\d\.]+)$">
3308
3413
  <description>Linux MiniUPnPd UPnP Server</description>
3309
- <example service.version="1.0">Linux/Cross_compiled UPnP/1.0 miniupnpd/1.0</example>
3310
- <example>Linux/2.6.29.6-217.2.3.fc11.i686.PAE UPnP/1.0 miniupnpd/1.0</example>
3311
- <example>Linux/2.4.21 UPnP/1.0 miniupnpd/1.0</example>
3414
+ <example service.version="1.0" os.version="Cross_compiled">Linux/Cross_compiled UPnP/1.0 miniupnpd/1.0</example>
3415
+ <example service.version="1.0" os.version="2.6.29.6-217.2.3.fc11.i686.PAE">Linux/2.6.29.6-217.2.3.fc11.i686.PAE UPnP/1.0 miniupnpd/1.0</example>
3416
+ <example service.version="1.0" os.version="2.4.21">Linux/2.4.21 UPnP/1.0 miniupnpd/1.0</example>
3312
3417
  <param pos="0" name="service.vendor" value="MiniUPnP Project"/>
3313
3418
  <param pos="0" name="service.product" value="MiniUPnPd"/>
3314
3419
  <param pos="2" name="service.version"/>
@@ -3326,11 +3431,32 @@
3326
3431
  <param pos="0" name="service.product" value="MiniUPnPd"/>
3327
3432
  <param pos="1" name="service.version"/>
3328
3433
  <param pos="0" name="service.cpe23" value="cpe:/a:miniupnp_project:miniupnpd:{service.version}"/>
3434
+ <param pos="0" name="os.vendor" value="Tomato"/>
3435
+ <param pos="0" name="os.family" value="Linux"/>
3436
+ <param pos="0" name="os.product" value="Tomato"/>
3437
+ <param pos="0" name="os.device" value="Router"/>
3438
+ </fingerprint>
3439
+
3440
+ <fingerprint pattern="^UPnP/Tomato ([\d\.]+)?[\w\s\.-]{1,30} UPnP/[\d\.]+ MiniUPnPd/([\d\.]+)$">
3441
+ <description>TomatoUSB UPnP Server</description>
3442
+ <example os.version="1.28.9014" service.version="1.8">UPnP/Tomato 1.28.9014 MIPSR2-RAF-v1.3g K26 UPnP/1.1 MiniUPnPd/1.8</example>
3443
+ <example os.version="1.28.0000" service.version="1.9">UPnP/Tomato 1.28.0000 MIPSR2-132 K26 USB VPN UPnP/1.1 MiniUPnPd/1.9</example>
3444
+ <example service.version="2.0">UPnP/Tomato MIPSR2-140 K26 UPnP/1.1 MiniUPnPd/2.0</example>
3445
+ <example service.version="2.0">UPnP/Tomato MIPSR2Toastman-RT K26 UPnP/1.1 MiniUPnPd/2.0</example>
3446
+ <param pos="0" name="service.vendor" value="MiniUPnP Project"/>
3447
+ <param pos="0" name="service.product" value="MiniUPnPd"/>
3448
+ <param pos="2" name="service.version"/>
3449
+ <param pos="0" name="service.cpe23" value="cpe:/a:miniupnp_project:miniupnpd:{service.version}"/>
3450
+ <param pos="0" name="os.vendor" value="TomatoUSB"/>
3451
+ <param pos="0" name="os.family" value="Linux"/>
3452
+ <param pos="0" name="os.product" value="TomatoUSB"/>
3453
+ <param pos="0" name="os.device" value="Router"/>
3454
+ <param pos="1" name="os.version"/>
3329
3455
  </fingerprint>
3330
3456
 
3331
3457
  <fingerprint pattern="(?i)^(RT-\w+) UPnP/\S+ MiniUPnPd/([\d.]+)$">
3332
3458
  <description>Asus WAP UPnP Server</description>
3333
- <example service.version="1.2">RT-G32 UPnP/1.0 MiniUPnPd/1.2</example>
3459
+ <example service.version="1.2" os.product="RT-G32">RT-G32 UPnP/1.0 MiniUPnPd/1.2</example>
3334
3460
  <param pos="0" name="service.vendor" value="MiniUPnP Project"/>
3335
3461
  <param pos="0" name="service.product" value="MiniUPnPd"/>
3336
3462
  <param pos="2" name="service.version"/>
@@ -3340,6 +3466,19 @@
3340
3466
  <param pos="0" name="os.device" value="WAP"/>
3341
3467
  </fingerprint>
3342
3468
 
3469
+ <fingerprint pattern="(?i)^(AsusWRT)\/(\S+) UPnP/\S+ MiniUPnPd/([\d.]+)$">
3470
+ <description>AsusWRT Firmware</description>
3471
+ <example os.product="AsusWRT" os.version="3.0.0.4" service.version="1.9">AsusWRT/3.0.0.4 UPnP/1.1 MiniUPnPd/1.9</example>
3472
+ <param pos="0" name="service.vendor" value="MiniUPnP Project"/>
3473
+ <param pos="0" name="service.product" value="MiniUPnPd"/>
3474
+ <param pos="3" name="service.version"/>
3475
+ <param pos="0" name="service.cpe23" value="cpe:/a:miniupnp_project:miniupnpd:{service.version}"/>
3476
+ <param pos="0" name="os.vendor" value="Asus"/>
3477
+ <param pos="1" name="os.product"/>
3478
+ <param pos="2" name="os.version"/>
3479
+ <param pos="0" name="os.device" value="Router"/>
3480
+ </fingerprint>
3481
+
3343
3482
  <fingerprint pattern="(?i)^DrayTek/Vigor(\S+) UPnP/\S+ miniupnpd/([\d.]+)$">
3344
3483
  <description>DrayTek Vigor router UPnP Server</description>
3345
3484
  <example service.version="1.0" hw.model="2130">DrayTek/Vigor2130 UPnP/1.0 miniupnpd/1.0</example>
@@ -3388,9 +3527,9 @@
3388
3527
 
3389
3528
  <fingerprint pattern="^[^/]+/(\S+) DLNADOC/\S+ UPnP/\S+ MiniDLNA/(\S+)$">
3390
3529
  <description>DLNADOC UPnP Server</description>
3391
- <example>Debian/4.0r8 DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0</example>
3392
- <example>FreeBSD/8.2-RELEASE-p4 DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0.24</example>
3393
- <example>Linux/2.6.36+ DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0</example>
3530
+ <example service.version="1.0" os.version="4.0r8">Debian/4.0r8 DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0</example>
3531
+ <example service.version="1.0.24" os.version="8.2-RELEASE-p4">FreeBSD/8.2-RELEASE-p4 DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0.24</example>
3532
+ <example service.version="1.0" os.version="2.6.36+">Linux/2.6.36+ DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0</example>
3394
3533
  <param pos="0" name="service.product" value="MiniDLNA"/>
3395
3534
  <param pos="2" name="service.version"/>
3396
3535
  <param pos="0" name="os.vendor" value="Linux"/>
@@ -3424,10 +3563,10 @@
3424
3563
  <param pos="2" name="service.version"/>
3425
3564
  <param pos="0" name="service.cpe23" value="cpe:/a:miniupnp_project:miniupnpd:{service.version}"/>
3426
3565
  <param pos="0" name="os.family" value="Linux"/>
3427
- <param pos="0" name="os.vendor" value="Red Hat"/>
3428
- <param pos="0" name="os.product" value="Fedora Core Linux"/>
3566
+ <param pos="0" name="os.vendor" value="Fedora Project"/>
3567
+ <param pos="0" name="os.product" value="Fedora Core"/>
3429
3568
  <param pos="1" name="os.version"/>
3430
- <param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:{os.version}"/>
3569
+ <param pos="0" name="os.cpe23" value="cpe:/o:fedoraproject:fedora_core:{os.version}"/>
3431
3570
  </fingerprint>
3432
3571
 
3433
3572
  <fingerprint pattern="(?i)^Ubuntu\/([\d\.]+) UPnP/\S+ MiniUPnPd/(\S+)$">
@@ -3656,7 +3795,7 @@
3656
3795
 
3657
3796
  <fingerprint pattern="(?i)^Linux Mips (\S+) UPnP/\S+ MiniUPnPd/(\S+)$">
3658
3797
  <description>Linux MIPS UPnP Server</description>
3659
- <example>Linux Mips 2.4.20 UPnP/1.0 MiniUPnPd/1.2</example>
3798
+ <example service.version="1.2" os.version="2.4.20">Linux Mips 2.4.20 UPnP/1.0 MiniUPnPd/1.2</example>
3660
3799
  <param pos="0" name="service.vendor" value="MiniUPnP Project"/>
3661
3800
  <param pos="0" name="service.product" value="MiniUPnPd"/>
3662
3801
  <param pos="2" name="service.version"/>
@@ -3682,8 +3821,8 @@
3682
3821
 
3683
3822
  <fingerprint pattern="^(\S{1,16}) \d+/Service Pack \d+, UPnP/[\d\.]+, TVersity Media Server$">
3684
3823
  <description>TVersity Media Server UPnP Server with Service Pack</description>
3685
- <example>5.2.3790 2/Service Pack 1, UPnP/1.0, TVersity Media Server</example>
3686
- <example>5.1.2600 2/Service Pack 3, UPnP/1.0, TVersity Media Server</example>
3824
+ <example service.version="5.2.3790">5.2.3790 2/Service Pack 1, UPnP/1.0, TVersity Media Server</example>
3825
+ <example service.version="5.1.2600">5.1.2600 2/Service Pack 3, UPnP/1.0, TVersity Media Server</example>
3687
3826
  <param pos="0" name="service.vendor" value="TVersity"/>
3688
3827
  <param pos="0" name="service.product" value="Media Server"/>
3689
3828
  <param pos="1" name="service.version"/>
@@ -3691,10 +3830,10 @@
3691
3830
 
3692
3831
  <fingerprint pattern="^(\S{1,16}) 2/, UPnP/\S+, TVersity Media Server$">
3693
3832
  <description>TVersity Media Server UPnP Server</description>
3694
- <example>6.2.8400 2/, UPnP/1.0, TVersity Media Server</example>
3695
- <example>6.2.9200 2/, UPnP/1.0, TVersity Media Server</example>
3696
- <example>6.0.6000 2/, UPnP/1.0, TVersity Media Server</example>
3697
- <example>6.1.7600 2/, UPnP/1.0, TVersity Media Server</example>
3833
+ <example service.version="6.2.8400">6.2.8400 2/, UPnP/1.0, TVersity Media Server</example>
3834
+ <example service.version="6.2.9200">6.2.9200 2/, UPnP/1.0, TVersity Media Server</example>
3835
+ <example service.version="6.0.6000">6.0.6000 2/, UPnP/1.0, TVersity Media Server</example>
3836
+ <example service.version="6.1.7600">6.1.7600 2/, UPnP/1.0, TVersity Media Server</example>
3698
3837
  <param pos="0" name="service.vendor" value="TVersity"/>
3699
3838
  <param pos="0" name="service.product" value="Media Server"/>
3700
3839
  <param pos="1" name="service.version"/>
@@ -3702,7 +3841,7 @@
3702
3841
 
3703
3842
  <fingerprint pattern="^LINUX/([\d\.]+) UPnP/[\d\.]+ BRCM400/([\d\.]+)$">
3704
3843
  <description>Belkin/Linksys BRCM400 Wireless Router UPnP Server</description>
3705
- <example>LINUX/2.4 UPnP/1.0 BRCM400/1.0</example>
3844
+ <example service.version="1.0" os.version="2.4">LINUX/2.4 UPnP/1.0 BRCM400/1.0</example>
3706
3845
  <param pos="0" name="service.vendor" value="Linksys"/>
3707
3846
  <param pos="0" name="service.product" value="BRCM400"/>
3708
3847
  <param pos="2" name="service.version"/>
@@ -3714,8 +3853,8 @@
3714
3853
 
3715
3854
  <fingerprint pattern="^Linux-(\S+), UPnP/[\d\.]+, PMS/([\d\.]+)$">
3716
3855
  <description>PlayStation3 Media Server UPnP Server - linux</description>
3717
- <example>Linux-amd64-2.6.18-238.9.1.el5, UPnP/1.0, PMS/1.52.1</example>
3718
- <example>Linux-i386-2.6.33.2, UPnP/1.0, PMS/1.21.1</example>
3856
+ <example service.version="1.52.1" os.version="amd64-2.6.18-238.9.1.el5">Linux-amd64-2.6.18-238.9.1.el5, UPnP/1.0, PMS/1.52.1</example>
3857
+ <example service.version="1.21.1" os.version="i386-2.6.33.2">Linux-i386-2.6.33.2, UPnP/1.0, PMS/1.21.1</example>
3719
3858
  <param pos="0" name="service.vendor" value="Sony"/>
3720
3859
  <param pos="0" name="service.product" value="PMS"/>
3721
3860
  <param pos="2" name="service.version"/>
@@ -3727,8 +3866,8 @@
3727
3866
 
3728
3867
  <fingerprint pattern="^Windows_XP-(\S+), UPnP/[\d\.]+, PMS/([\d\.]+)$">
3729
3868
  <description>PlayStation3 Media Server UPnP Server - Windows XP</description>
3730
- <example>Windows_XP-amd64-5.2, UPnP/1.0, PMS/1.54.0</example>
3731
- <example>Windows_XP-x86-5.1, UPnP/1.0, PMS/1.20.400</example>
3869
+ <example service.version="1.54.0" os.version="amd64-5.2">Windows_XP-amd64-5.2, UPnP/1.0, PMS/1.54.0</example>
3870
+ <example service.version="1.20.400" os.version="x86-5.1">Windows_XP-x86-5.1, UPnP/1.0, PMS/1.20.400</example>
3732
3871
  <param pos="0" name="service.vendor" value="Sony"/>
3733
3872
  <param pos="0" name="service.product" value="PMS"/>
3734
3873
  <param pos="2" name="service.version"/>
@@ -3740,13 +3879,13 @@
3740
3879
 
3741
3880
  <fingerprint pattern="^Windows_7-x86-(\S+), UPnP/[\d\.]+, PMS/([\d\.]+)$">
3742
3881
  <description>PlayStation3 Media Server UPnP Server - Windows 7 x86</description>
3743
- <example service.version="1.20">Windows_7-x86-6.1, UPnP/1.0, PMS/1.20</example>
3744
- <example>Windows_7-x86-6.1, UPnP/1.0, PMS/1.22.0</example>
3745
- <example>Windows_7-x86-6.1, UPnP/1.0, PMS/1.20.412</example>
3746
- <example>Windows_7-x86-6.1, UPnP/1.0, PMS/1.71.0</example>
3747
- <example>Windows_7-x86-6.1, UPnP/1.0, PMS/1.20.409</example>
3748
- <example>Windows_7-x86-6.1, UPnP/1.0, PMS/1.72.0</example>
3749
- <example>Windows_7-x86-6.1, UPnP/1.0, PMS/1.10.51</example>
3882
+ <example service.version="1.20" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.20</example>
3883
+ <example service.version="1.22.0" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.22.0</example>
3884
+ <example service.version="1.20.412" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.20.412</example>
3885
+ <example service.version="1.71.0" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.71.0</example>
3886
+ <example service.version="1.20.409" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.20.409</example>
3887
+ <example service.version="1.72.0" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.72.0</example>
3888
+ <example service.version="1.10.51" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.10.51</example>
3750
3889
  <param pos="0" name="service.vendor" value="Sony"/>
3751
3890
  <param pos="0" name="service.product" value="PMS"/>
3752
3891
  <param pos="2" name="service.version"/>
@@ -3777,7 +3916,7 @@
3777
3916
 
3778
3917
  <fingerprint pattern="^Mac_OS_X-x86_64-(\S+), UPnP/[\d\.]+, PMS/([\d\.]+)$">
3779
3918
  <description>PlayStation3 Media Server UPnP Server - macOS x86_64</description>
3780
- <example>Mac_OS_X-x86_64-10.5.8, UPnP/1.0, PMS/1.20</example>
3919
+ <example service.version="1.20" os.version="10.5.8">Mac_OS_X-x86_64-10.5.8, UPnP/1.0, PMS/1.20</example>
3781
3920
  <param pos="0" name="service.vendor" value="Sony"/>
3782
3921
  <param pos="0" name="service.product" value="PMS"/>
3783
3922
  <param pos="2" name="service.version"/>
@@ -3842,8 +3981,8 @@
3842
3981
 
3843
3982
  <fingerprint pattern="Linux, STUNNEL/1.0, (DIR-8\d+\w*) Ver (\S+)$">
3844
3983
  <description>D-Link DIR-8XX Router</description>
3845
- <example hw.product="DIR-850L">Linux, STUNNEL/1.0, DIR-850L Ver 1.09</example>
3846
- <example os.version="2.00W">Linux, STUNNEL/1.0, DIR-820LW Ver 2.00W</example>
3984
+ <example hw.product="DIR-850L" os.version="1.09">Linux, STUNNEL/1.0, DIR-850L Ver 1.09</example>
3985
+ <example os.version="2.00W" hw.product="DIR-820LW">Linux, STUNNEL/1.0, DIR-820LW Ver 2.00W</example>
3847
3986
  <param pos="0" name="hw.vendor" value="D-Link"/>
3848
3987
  <param pos="1" name="hw.product"/>
3849
3988
  <param pos="0" name="hw.device" value="Router"/>
@@ -3854,9 +3993,9 @@
3854
3993
 
3855
3994
  <fingerprint pattern="Linux, WEBACCESS/1.0, (DIR-\d+\w*) Ver (\S+)$">
3856
3995
  <description>D-Link DIR-XXX Router - WEBACCESS variant</description>
3857
- <example hw.product="DIR-850L">Linux, WEBACCESS/1.0, DIR-850L Ver 1.09</example>
3858
- <example os.version="1.14WW">Linux, WEBACCESS/1.0, DIR-850L Ver 1.14WW</example>
3859
- <example os.version="1.04">Linux, WEBACCESS/1.0, DIR-645 Ver 1.04</example>
3996
+ <example hw.product="DIR-850L" os.version="1.09">Linux, WEBACCESS/1.0, DIR-850L Ver 1.09</example>
3997
+ <example os.version="1.14WW" hw.product="DIR-850L">Linux, WEBACCESS/1.0, DIR-850L Ver 1.14WW</example>
3998
+ <example os.version="1.04" hw.product="DIR-645">Linux, WEBACCESS/1.0, DIR-645 Ver 1.04</example>
3860
3999
  <param pos="0" name="hw.vendor" value="D-Link"/>
3861
4000
  <param pos="1" name="hw.product"/>
3862
4001
  <param pos="0" name="hw.device" value="Router"/>
@@ -3909,15 +4048,15 @@
3909
4048
 
3910
4049
  <fingerprint pattern="^ipos/([\d\.]+) UPnP/[\d\.]+ (TL-\w+)/(\S+)$">
3911
4050
  <description>TP-Link WAP UPnP Server</description>
3912
- <example>ipos/7.0 UPnP/1.0 TL-WR841N/6.0/7.0</example>
3913
- <example>ipos/7.0 UPnP/1.0 TL-WR841N/8.0</example>
3914
- <example>ipos/7.0 UPnP/1.0 TL-WR740N/4.0</example>
3915
- <example>ipos/7.0 UPnP/1.0 TL-WR940N/1.0</example>
3916
- <example>ipos/7.0 UPnP/1.0 TL-WR741N/4.0</example>
3917
- <example>ipos/7.0 UPnP/1.0 TL-WR740N/1.0</example>
3918
- <example>ipos/7.0 UPnP/1.0 TL-WR741N/1.0/2.0</example>
3919
- <example>ipos/7.0 UPnP/1.0 TL-WR740N/1.0/2.0</example>
3920
- <example>ipos/7.0 UPnP/1.0 TL-WR941N/2.0</example>
4051
+ <example service.product="TL-WR841N" service.version="6.0/7.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR841N/6.0/7.0</example>
4052
+ <example service.product="TL-WR841N" service.version="8.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR841N/8.0</example>
4053
+ <example service.product="TL-WR740N" service.version="4.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR740N/4.0</example>
4054
+ <example service.product="TL-WR940N" service.version="1.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR940N/1.0</example>
4055
+ <example service.product="TL-WR741N" service.version="4.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR741N/4.0</example>
4056
+ <example service.product="TL-WR740N" service.version="1.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR740N/1.0</example>
4057
+ <example service.product="TL-WR741N" service.version="1.0/2.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR741N/1.0/2.0</example>
4058
+ <example service.product="TL-WR740N" service.version="1.0/2.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR740N/1.0/2.0</example>
4059
+ <example service.product="TL-WR941N" service.version="2.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR941N/2.0</example>
3921
4060
  <param pos="0" name="service.vendor" value="TP-LINK"/>
3922
4061
  <param pos="2" name="service.product"/>
3923
4062
  <param pos="3" name="service.version"/>
@@ -3937,9 +4076,18 @@
3937
4076
  <param pos="0" name="hw.device" value="Router"/>
3938
4077
  </fingerprint>
3939
4078
 
4079
+ <fingerprint pattern="^TP-LINK HTTPD/1.0$">
4080
+ <description>TP-Link httpd</description>
4081
+ <example>TP-LINK HTTPD/1.0</example>
4082
+ <param pos="0" name="service.vendor" value="TP-LINK"/>
4083
+ <param pos="0" name="os.vendor" value="TP-LINK"/>
4084
+ <param pos="0" name="hw.vendor" value="TP-LINK"/>
4085
+ <param pos="0" name="hw.device" value="Device"/>
4086
+ </fingerprint>
4087
+
3940
4088
  <fingerprint pattern="^Linux/(\S+\_eureka_1), UPnP/[\d\.]+, Portable SDK for UPnP devices/(\S+)$">
3941
4089
  <description>Siqura Video Encoder</description>
3942
- <example>Linux/2.6.37_eureka_1, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4090
+ <example os.version="2.6.37_eureka_1" service.version="1.6.6">Linux/2.6.37_eureka_1, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
3943
4091
  <param pos="0" name="hw.vendor" value="Siqura"/>
3944
4092
  <param pos="0" name="hw.device" value="Video Encoder"/>
3945
4093
  <param pos="0" name="os.vendor" value="Siqura"/>
@@ -3952,7 +4100,7 @@
3952
4100
 
3953
4101
  <fingerprint pattern="^Linux/(\S+\-Mozart-8G), UPnP/[\d\.]+, Portable SDK for UPnP devices/(\S+)$">
3954
4102
  <description>Steinsvik Orbit IP Camera (Truen TCAM Rebrand)</description>
3955
- <example>Linux/2.6.28.9-Mozart-8G, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4103
+ <example os.version="2.6.28.9-Mozart-8G" service.version="1.6.6">Linux/2.6.28.9-Mozart-8G, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
3956
4104
  <param pos="0" name="hw.vendor" value="Steinsvik"/>
3957
4105
  <param pos="0" name="hw.device" value="IP Camera"/>
3958
4106
  <param pos="0" name="hw.product" value="Orbit IP Camera"/>
@@ -3966,7 +4114,7 @@
3966
4114
 
3967
4115
  <fingerprint pattern="^Linux/(\S+\-ami), UPnP/[\d\.]+, Portable SDK for UPnP devices/(\S+)$">
3968
4116
  <description>AMI MegaRAC LOM UPnP</description>
3969
- <example>Linux/3.14.17-ami, UPnP/1.0, Portable SDK for UPnP devices/1.6.20</example>
4117
+ <example os.version="3.14.17-ami" service.version="1.6.20">Linux/3.14.17-ami, UPnP/1.0, Portable SDK for UPnP devices/1.6.20</example>
3970
4118
  <param pos="0" name="hw.device" value="Lights Out Management"/>
3971
4119
  <param pos="0" name="hw.vendor" value="AMI"/>
3972
4120
  <param pos="0" name="hw.family" value="MegaRAC"/>
@@ -3982,7 +4130,7 @@
3982
4130
 
3983
4131
  <fingerprint pattern="^Linux/(\S+\-axis[^,]+), UPnP/[\d\.]+, Portable SDK for UPnP devices/(\S+)$">
3984
4132
  <description>Axis Network Camera</description>
3985
- <example>Linux/4.9.94-axis5, UPnP/1.0, Portable SDK for UPnP devices/1.6.22</example>
4133
+ <example os.version="4.9.94-axis5" service.version="1.6.22">Linux/4.9.94-axis5, UPnP/1.0, Portable SDK for UPnP devices/1.6.22</example>
3986
4134
  <param pos="0" name="hw.vendor" value="AXIS"/>
3987
4135
  <param pos="0" name="hw.device" value="IP Camera"/>
3988
4136
  <param pos="0" name="os.vendor" value="AXIS"/>
@@ -3996,23 +4144,23 @@
3996
4144
 
3997
4145
  <fingerprint pattern="^Linux/(\S+), UPnP/[\d\.]+, Portable SDK for UPnP devices/(\S+)$">
3998
4146
  <description>Portable SDK for UPnP Server - Linux</description>
3999
- <example>Linux/2.4.20-46.7asp, UPnP/1.0, Portable SDK for UPnP devices/1.6.17</example>
4000
- <example>Linux/2.6.10-iop1-1, UPnP/1.0, Portable SDK for UPnP devices/1.4.1</example>
4001
- <example>Linux/2.6.12-5.1-brcmstb-dm800, UPnP/1.0, Portable SDK for UPnP devices/1.6.0</example>
4002
- <example>Linux/2.6.12.6-VENUS, UPnP/1.0, Portable SDK for UPnP devices/1.6.10</example>
4003
- <example>Linux/2.6.12.6-arm1-040, UPnP/1.0, Portable SDK for UPnP devices/1.6.5.2</example>
4004
- <example>Linux/2.6.13, UPnP/1.0, Portable SDK for UPnP devices/1.6.0</example>
4005
- <example>Linux/2.6.18_pro500-davinci_N03A_IPCAM_1.0-g5c649288-dirty, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4006
- <example>Linux/2.6.28, UPnP/1.0, Portable SDK for UPnP devices/1.6.10</example>
4007
- <example>Linux/2.6.28-11-server, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4008
- <example>Linux/2.6.28-17-generic, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4009
- <example>Linux/2.6.28.1-xxxx-std-ipv4-32, UPnP/1.0, Portable SDK for UPnP devices/1.4.3</example>
4010
- <example>Linux/2.6.32-220.7.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.14</example>
4011
- <example>Linux/2.6.32-24-generic, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4012
- <example>Linux/2.6.32-279.1.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.13</example>
4013
- <example>Linux/2.6.32-279.11.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.14</example>
4014
- <example>Linux/2.6.32-279.14.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.14</example>
4015
- <example>Linux/2.6.32-279.14.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.15</example>
4147
+ <example service.version="1.6.17" os.version="2.4.20-46.7asp">Linux/2.4.20-46.7asp, UPnP/1.0, Portable SDK for UPnP devices/1.6.17</example>
4148
+ <example service.version="1.4.1" os.version="2.6.10-iop1-1">Linux/2.6.10-iop1-1, UPnP/1.0, Portable SDK for UPnP devices/1.4.1</example>
4149
+ <example service.version="1.6.0" os.version="2.6.12-5.1-brcmstb-dm800">Linux/2.6.12-5.1-brcmstb-dm800, UPnP/1.0, Portable SDK for UPnP devices/1.6.0</example>
4150
+ <example service.version="1.6.10" os.version="2.6.12.6-VENUS">Linux/2.6.12.6-VENUS, UPnP/1.0, Portable SDK for UPnP devices/1.6.10</example>
4151
+ <example service.version="1.6.5.2" os.version="2.6.12.6-arm1-040">Linux/2.6.12.6-arm1-040, UPnP/1.0, Portable SDK for UPnP devices/1.6.5.2</example>
4152
+ <example service.version="1.6.0" os.version="2.6.13">Linux/2.6.13, UPnP/1.0, Portable SDK for UPnP devices/1.6.0</example>
4153
+ <example service.version="1.6.6" os.version="2.6.18_pro500-davinci_N03A_IPCAM_1.0-g5c649288-dirty">Linux/2.6.18_pro500-davinci_N03A_IPCAM_1.0-g5c649288-dirty, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4154
+ <example service.version="1.6.10" os.version="2.6.28">Linux/2.6.28, UPnP/1.0, Portable SDK for UPnP devices/1.6.10</example>
4155
+ <example service.version="1.6.6" os.version="2.6.28-11-server">Linux/2.6.28-11-server, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4156
+ <example service.version="1.6.6" os.version="2.6.28-17-generic">Linux/2.6.28-17-generic, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4157
+ <example service.version="1.4.3" os.version="2.6.28.1-xxxx-std-ipv4-32">Linux/2.6.28.1-xxxx-std-ipv4-32, UPnP/1.0, Portable SDK for UPnP devices/1.4.3</example>
4158
+ <example service.version="1.6.14" os.version="2.6.32-220.7.1.el6.x86_64">Linux/2.6.32-220.7.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.14</example>
4159
+ <example service.version="1.6.6" os.version="2.6.32-24-generic">Linux/2.6.32-24-generic, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4160
+ <example service.version="1.6.13" os.version="2.6.32-279.1.1.el6.x86_64">Linux/2.6.32-279.1.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.13</example>
4161
+ <example service.version="1.6.14" os.version="2.6.32-279.11.1.el6.x86_64">Linux/2.6.32-279.11.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.14</example>
4162
+ <example service.version="1.6.14" os.version="2.6.32-279.14.1.el6.x86_64">Linux/2.6.32-279.14.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.14</example>
4163
+ <example service.version="1.6.15" os.version="2.6.32-279.14.1.el6.x86_64">Linux/2.6.32-279.14.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.15</example>
4016
4164
  <param pos="0" name="service.product" value="libupnp"/>
4017
4165
  <param pos="2" name="service.version"/>
4018
4166
  <param pos="0" name="os.vendor" value="Linux"/>
@@ -4023,8 +4171,8 @@
4023
4171
 
4024
4172
  <fingerprint pattern="^Linux/(\S+) UPnP/[\d\.]+ DLNADOC/[\d\.]+ Portable SDK for UPnP devices/(\S+)$">
4025
4173
  <description>DLNADOC Portable SDK for UPnP Server - Linux DNLADOC variant</description>
4026
- <example>Linux/3.0.8 UPnP/1.0 DLNADOC/1.50 Portable SDK for UPnP devices/1.6.6</example>
4027
- <example>Linux/2.6.23.17_stm23_0125dorade00 UPnP/1.0 DLNADOC/1.50 Portable SDK for UPnP devices/1.4.6-5</example>
4174
+ <example service.version="1.6.6" os.version="3.0.8">Linux/3.0.8 UPnP/1.0 DLNADOC/1.50 Portable SDK for UPnP devices/1.6.6</example>
4175
+ <example service.version="1.4.6-5" os.version="2.6.23.17_stm23_0125dorade00">Linux/2.6.23.17_stm23_0125dorade00 UPnP/1.0 DLNADOC/1.50 Portable SDK for UPnP devices/1.4.6-5</example>
4028
4176
  <param pos="0" name="service.product" value="libupnp"/>
4029
4177
  <param pos="2" name="service.version"/>
4030
4178
  <param pos="0" name="os.vendor" value="Linux"/>
@@ -4035,8 +4183,8 @@
4035
4183
 
4036
4184
  <fingerprint pattern="^Linux/(\S+), UPnP/[\d\.]+, Intel SDK for UPnP devices ?/(\S+)$">
4037
4185
  <description>Intel SDK for UPnP Server with verbose banner</description>
4038
- <example>Linux/2.6.10_dev-malta-mips2_fp_le, UPnP/1.0, Intel SDK for UPnP devices /1.2</example>
4039
- <example>Linux/2.4.18_mvl30-ixdp425, UPnP/1.0, Intel SDK for UPnP devices/1.3.1</example>
4186
+ <example service.version="1.2" os.version="2.6.10_dev-malta-mips2_fp_le">Linux/2.6.10_dev-malta-mips2_fp_le, UPnP/1.0, Intel SDK for UPnP devices /1.2</example>
4187
+ <example service.version="1.3.1" os.version="2.4.18_mvl30-ixdp425">Linux/2.4.18_mvl30-ixdp425, UPnP/1.0, Intel SDK for UPnP devices/1.3.1</example>
4040
4188
  <param pos="0" name="service.product" value="libupnp"/>
4041
4189
  <param pos="2" name="service.version"/>
4042
4190
  <param pos="0" name="os.vendor" value="Linux"/>
@@ -4047,7 +4195,7 @@
4047
4195
 
4048
4196
  <fingerprint pattern="^Linux, UPnP/[\d\.]+, Intel SDK for UPnP devices ?/(\S+)$">
4049
4197
  <description>Intel SDK for UPnP Server</description>
4050
- <example>Linux, UPnP/1.0, Intel SDK for UPnP devices /1.2</example>
4198
+ <example service.version="1.2">Linux, UPnP/1.0, Intel SDK for UPnP devices /1.2</example>
4051
4199
  <param pos="0" name="service.product" value="libupnp"/>
4052
4200
  <param pos="1" name="service.version"/>
4053
4201
  </fingerprint>
@@ -4090,6 +4238,7 @@
4090
4238
  <param pos="0" name="hw.product" value="Roku"/>
4091
4239
  <param pos="0" name="hw.device" value="Media Server"/>
4092
4240
  <param pos="1" name="hw.version"/>
4241
+ <param pos="0" name="hw.cpe23" value="cpe:/h:roku:roku:{hw.version}"/>
4093
4242
  </fingerprint>
4094
4243
 
4095
4244
  <fingerprint pattern="^Roku/(\S+) UPnP/\S+ Roku/\S+$">
@@ -4099,6 +4248,7 @@
4099
4248
  <param pos="0" name="hw.product" value="Roku"/>
4100
4249
  <param pos="0" name="hw.device" value="Media Server"/>
4101
4250
  <param pos="1" name="hw.version"/>
4251
+ <param pos="0" name="hw.cpe23" value="cpe:/h:roku:roku:{hw.version}"/>
4102
4252
  </fingerprint>
4103
4253
 
4104
4254
  <fingerprint pattern="^Roku UPnP/\S+ MiniUPnPd/([\d\.]+)$">
@@ -4107,6 +4257,7 @@
4107
4257
  <param pos="0" name="hw.vendor" value="Roku"/>
4108
4258
  <param pos="0" name="hw.product" value="Roku"/>
4109
4259
  <param pos="0" name="hw.device" value="Media Server"/>
4260
+ <param pos="0" name="hw.cpe23" value="cpe:/h:roku:roku:-"/>
4110
4261
  <param pos="0" name="service.vendor" value="MiniUPnP Project"/>
4111
4262
  <param pos="0" name="service.product" value="MiniUPnPd"/>
4112
4263
  <param pos="1" name="service.version"/>
@@ -4115,10 +4266,10 @@
4115
4266
 
4116
4267
  <fingerprint pattern="^UPnP/\S+, DLNADOC/\S+, Platinum/(\S+)$">
4117
4268
  <description>Xbox Media Center UPnP Server</description>
4118
- <example>UPnP/1.0, DLNADOC/1.50, Platinum/0.5.1</example>
4119
- <example>UPnP/1.0, DLNADOC/1.50, Platinum/0.6.6.0</example>
4120
- <example>UPnP/1.0, DLNADOC/1.50, Platinum/0.5.4.0</example>
4121
- <example>UPnP/1.0, DLNADOC/1.50, Platinum/0.5.3.0</example>
4269
+ <example service.version="0.5.1">UPnP/1.0, DLNADOC/1.50, Platinum/0.5.1</example>
4270
+ <example service.version="0.6.6.0">UPnP/1.0, DLNADOC/1.50, Platinum/0.6.6.0</example>
4271
+ <example service.version="0.5.4.0">UPnP/1.0, DLNADOC/1.50, Platinum/0.5.4.0</example>
4272
+ <example service.version="0.5.3.0">UPnP/1.0, DLNADOC/1.50, Platinum/0.5.3.0</example>
4122
4273
  <param pos="0" name="service.vendor" value="Microsoft"/>
4123
4274
  <param pos="0" name="service.product" value="XBMC"/>
4124
4275
  <param pos="1" name="service.version"/>
@@ -4347,6 +4498,15 @@
4347
4498
  <param pos="0" name="service.cpe23" value="cpe:/a:tinyproxy_project:tinyproxy:{service.version}"/>
4348
4499
  </fingerprint>
4349
4500
 
4501
+ <fingerprint pattern="^mitmproxy ([\d.]+)$">
4502
+ <description>mitmproxy interactive HTTPS proxy - https://github.com/mitmproxy/mitmproxy</description>
4503
+ <example service.version="7.0.4">mitmproxy 7.0.4</example>
4504
+ <param pos="0" name="service.vendor" value="mitmproxy"/>
4505
+ <param pos="0" name="service.product" value="mitmproxy"/>
4506
+ <param pos="1" name="service.version"/>
4507
+ <param pos="0" name="service.cpe23" value="cpe:/a:mitmproxy:mitmproxy:{service.version}"/>
4508
+ </fingerprint>
4509
+
4350
4510
  <fingerprint pattern="^Xfinity Broadband Router Server$">
4351
4511
  <description>Comcast Xfinity Broadband Router Server</description>
4352
4512
  <example>Xfinity Broadband Router Server</example>
@@ -4358,7 +4518,7 @@
4358
4518
  <fingerprint pattern="^IX Series IX21\d\d \(magellan-sec\) Software, Version ([^, ]+), (?:MAINTENANCE )?RELEASE SOFTWARE$">
4359
4519
  <description>NEC Univerge Router - enterprise class with VPN, UTM, etc</description>
4360
4520
  <example hw.version="10.2.20">IX Series IX2106 (magellan-sec) Software, Version 10.2.20, RELEASE SOFTWARE</example>
4361
- <example>IX Series IX2105 (magellan-sec) Software, Version 9.6.12A, MAINTENANCE RELEASE SOFTWARE</example>
4521
+ <example hw.version="9.6.12A">IX Series IX2105 (magellan-sec) Software, Version 9.6.12A, MAINTENANCE RELEASE SOFTWARE</example>
4362
4522
  <param pos="0" name="hw.vendor" value="NEC"/>
4363
4523
  <param pos="0" name="hw.product" value="Univerge"/>
4364
4524
  <param pos="1" name="hw.version"/>
@@ -4374,11 +4534,19 @@
4374
4534
  <param pos="0" name="service.cpe23" value="cpe:/a:caddyserver:caddy:-"/>
4375
4535
  </fingerprint>
4376
4536
 
4537
+ <fingerprint pattern="^fasthttp$">
4538
+ <description>FastHTTP - Fast HTTP package for Go</description>
4539
+ <example>fasthttp</example>
4540
+ <param pos="0" name="service.vendor" value="FastHTTP Project"/>
4541
+ <param pos="0" name="service.product" value="FastHTTP"/>
4542
+ <param pos="0" name="service.cpe23" value="cpe:/a:fasthttp_project:fasthttp:-"/>
4543
+ </fingerprint>
4544
+
4377
4545
  <fingerprint pattern="^MoxaHttp/(\d\.\d)$">
4378
4546
  <description>Moxa devices - service used on multiple families of devices</description>
4379
4547
  <example service.version="2.3">MoxaHttp/2.3</example>
4380
- <example>MoxaHttp/2.2</example>
4381
- <example>MoxaHttp/1.0</example>
4548
+ <example service.version="2.2">MoxaHttp/2.2</example>
4549
+ <example service.version="1.0">MoxaHttp/1.0</example>
4382
4550
  <param pos="0" name="service.vendor" value="Moxa"/>
4383
4551
  <param pos="0" name="service.product" value="httpd"/>
4384
4552
  <param pos="1" name="service.version"/>
@@ -4500,6 +4668,16 @@
4500
4668
  <param pos="0" name="service.cpe23" value="cpe:/a:cherokee-project:cherokee:{service.version}"/>
4501
4669
  </fingerprint>
4502
4670
 
4671
+ <fingerprint pattern="^WebServer \(SerenityOS\)$">
4672
+ <description>SerenityOS Web Server - https://github.com/SerenityOS/serenity</description>
4673
+ <example>WebServer (SerenityOS)</example>
4674
+ <param pos="0" name="service.vendor" value="SerenityOS"/>
4675
+ <param pos="0" name="service.product" value="WebServer"/>
4676
+ <param pos="0" name="os.vendor" value="SerenityOS"/>
4677
+ <param pos="0" name="os.product" value="Serenity"/>
4678
+ <param pos="0" name="os.cpe23" value="cpe:/o:serenityos:serenity:-"/>
4679
+ </fingerprint>
4680
+
4503
4681
  <!-- This is a version of ACME mini_httpd where the value 'mini_httpd' has been
4504
4682
  replaced with a UUID in the Server header AND body of the response. It
4505
4683
  is likely vendor or product specific.
@@ -4544,6 +4722,14 @@
4544
4722
  <param pos="0" name="hw.device" value="IP Camera"/>
4545
4723
  </fingerprint>
4546
4724
 
4725
+ <fingerprint pattern="UNMS (\d+\.\d+\.\d+)">
4726
+ <description>Ubiquiti UNMS</description>
4727
+ <example service.version="1.2.7">302 Found UNMS 1.2.7</example>
4728
+ <param pos="0" name="service.vendor" value="Ubiquiti"/>
4729
+ <param pos="0" name="service.product" value="UNMS"/>
4730
+ <param pos="1" name="service.version"/>
4731
+ </fingerprint>
4732
+
4547
4733
  <fingerprint pattern="^xxxxxxxx-xxxxx$">
4548
4734
  <description>Fortinet - device unknown</description>
4549
4735
  <example>xxxxxxxx-xxxxx</example>
@@ -4555,4 +4741,91 @@
4555
4741
  <param pos="0" name="hw.vendor" value="Fortinet"/>
4556
4742
  </fingerprint>
4557
4743
 
4744
+ <fingerprint pattern="^VBrick (\S+) Server$">
4745
+ <description>VBrick Encoding Server</description>
4746
+ <example service.product="VB6000">VBrick VB6000 Server</example>
4747
+ <param pos="0" name="service.vendor" value="VBrick"/>
4748
+ <param pos="1" name="service.product"/>
4749
+ <param pos="0" name="hw.product" value="{service.product}"/>
4750
+ <param pos="0" name="hw.vendor" value="{service.vendor}"/>
4751
+ <param pos="0" name="hw.device" value="Video Encoder"/>
4752
+ </fingerprint>
4753
+
4754
+ <fingerprint pattern="^kx-ns1000$">
4755
+ <description>Panasonic KX-NS1000 IP PBX</description>
4756
+ <example>kx-ns1000</example>
4757
+ <param pos="0" name="hw.product" value="KX-NS1000"/>
4758
+ <param pos="0" name="hw.vendor" value="Panasonic"/>
4759
+ <param pos="0" name="hw.device" value="VoIP Server"/>
4760
+ </fingerprint>
4761
+
4762
+ <fingerprint pattern="^Oce Express WebTools$">
4763
+ <description>Oce Printer</description>
4764
+ <example>Oce Express WebTools</example>
4765
+ <param pos="0" name="service.vendor" value="Oce"/>
4766
+ <param pos="0" name="service.product" value="Express WebTools"/>
4767
+ <param pos="0" name="hw.vendor" value="Oce"/>
4768
+ <param pos="0" name="hw.device" value="Printer"/>
4769
+ </fingerprint>
4770
+
4771
+ <fingerprint pattern="^Eltex (TAU-\d+[A-Z]*(?:\.IP)?)$">
4772
+ <description>Eltex TAU model VoIP gateway</description>
4773
+ <example hw.product="TAU-72">Eltex TAU-72</example>
4774
+ <example hw.product="TAU-1.IP">Eltex TAU-1.IP</example>
4775
+ <param pos="0" name="os.vendor" value="Eltex"/>
4776
+ <param pos="0" name="os.product" value="{hw.product} Firmware"/>
4777
+ <param pos="0" name="os.device" value="VoIP Gateway"/>
4778
+ <param pos="0" name="hw.vendor" value="Eltex"/>
4779
+ <param pos="1" name="hw.product"/>
4780
+ <param pos="0" name="hw.device" value="VoIP Gateway"/>
4781
+ </fingerprint>
4782
+
4783
+ <fingerprint pattern="^(SMG-?\d+[A-Z]?)$">
4784
+ <description>Eltex SMG model VoIP gateway</description>
4785
+ <example hw.product="SMG2">SMG2</example>
4786
+ <example hw.product="SMG1016M">SMG1016M</example>
4787
+ <example hw.product="SMG-1016M">SMG-1016M</example>
4788
+ <example hw.product="SMG3016">SMG3016</example>
4789
+ <param pos="0" name="os.vendor" value="Eltex"/>
4790
+ <param pos="0" name="os.product" value="{hw.product} Firmware"/>
4791
+ <param pos="0" name="os.device" value="VoIP Gateway"/>
4792
+ <param pos="0" name="hw.vendor" value="Eltex"/>
4793
+ <param pos="1" name="hw.product"/>
4794
+ <param pos="0" name="hw.device" value="VoIP Gateway"/>
4795
+ </fingerprint>
4796
+
4797
+ <fingerprint pattern="^WSO2 Carbon Server$">
4798
+ <description>WSO2 Carbon - service-oriented platform for WSO2 products</description>
4799
+ <example>WSO2 Carbon Server</example>
4800
+ <param pos="0" name="service.vendor" value="WSO2"/>
4801
+ <param pos="0" name="service.product" value="Carbon"/>
4802
+ <param pos="0" name="service.cpe23" value="cpe:/a:wso2:carbon:-"/>
4803
+ <param pos="0" name="service.component.vendor" value="Apache"/>
4804
+ <param pos="0" name="service.component.product" value="Tomcat"/>
4805
+ <param pos="0" name="service.component.family" value="Tomcat"/>
4806
+ <param pos="0" name="service.component.cpe23" value="cpe:/a:apache:tomcat:-"/>
4807
+ </fingerprint>
4808
+
4809
+ <fingerprint pattern="^ballerina(?:\/([\d.]+(?:-[a-zA-Z0-9.-]+)?))?$">
4810
+ <description>Ballerina - programming language HTTP module</description>
4811
+ <example>ballerina</example>
4812
+ <example service.version="0.991.0">ballerina/0.991.0</example>
4813
+ <example service.version="0.982.1-SNAPSHOT">ballerina/0.982.1-SNAPSHOT</example>
4814
+ <param pos="0" name="service.vendor" value="Ballerina"/>
4815
+ <param pos="0" name="service.product" value="Ballerina"/>
4816
+ <param pos="1" name="service.version"/>
4817
+ <param pos="0" name="service.cpe23" value="cpe:/a:ballerina:ballerina:{service.version}"/>
4818
+ </fingerprint>
4819
+
4820
+ <fingerprint pattern="^((?:Mini|ZTE) web server) ([\d.]+) ZTE corp \d{4}\.$">
4821
+ <description>Assorted ZTE CPE device web server</description>
4822
+ <example service.product="Mini web server" service.version="1.0">Mini web server 1.0 ZTE corp 2005.</example>
4823
+ <example service.product="ZTE web server" service.version="1.0">ZTE web server 1.0 ZTE corp 2015.</example>
4824
+ <param pos="0" name="service.vendor" value="ZTE"/>
4825
+ <param pos="1" name="service.product"/>
4826
+ <param pos="2" name="service.version"/>
4827
+ <param pos="0" name="service.certainty" value="0.5"/>
4828
+ <param pos="0" name="hw.vendor" value="ZTE"/>
4829
+ </fingerprint>
4830
+
4558
4831
  </fingerprints>