recog 2.3.22 → 2.3.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.github/workflows/verify.yml +1 -1
  4. data/.vscode/bin/monitor-recog-fingerprints.sh +54 -0
  5. data/.vscode/extensions.json +5 -0
  6. data/.vscode/settings.json +8 -0
  7. data/.vscode/tasks.json +77 -0
  8. data/CONTRIBUTING.md +2 -0
  9. data/bin/recog_verify +42 -7
  10. data/cpe-remap.yaml +20 -2
  11. data/features/data/schema_failure.xml +4 -0
  12. data/features/data/tests_with_failures.xml +6 -0
  13. data/features/support/hooks.rb +9 -0
  14. data/features/verify.feature +81 -17
  15. data/identifiers/hw_device.txt +2 -0
  16. data/identifiers/hw_product.txt +2 -0
  17. data/identifiers/os_device.txt +2 -0
  18. data/identifiers/os_family.txt +1 -0
  19. data/identifiers/os_product.txt +8 -1
  20. data/identifiers/service_product.txt +14 -0
  21. data/identifiers/vendor.txt +13 -1
  22. data/lib/recog/fingerprint.rb +21 -7
  23. data/lib/recog/fingerprint_parse_error.rb +10 -0
  24. data/lib/recog/verifier.rb +4 -4
  25. data/lib/recog/verify_reporter.rb +7 -6
  26. data/lib/recog/version.rb +1 -1
  27. data/requirements.txt +1 -1
  28. data/spec/data/external_example_fingerprint/hp_printer_ex_01.txt +1 -0
  29. data/spec/data/external_example_fingerprint/hp_printer_ex_02.txt +1 -0
  30. data/spec/data/external_example_fingerprint.xml +8 -0
  31. data/spec/data/external_example_illegal_path_fingerprint.xml +7 -0
  32. data/spec/lib/recog/db_spec.rb +84 -61
  33. data/spec/lib/recog/fingerprint_spec.rb +4 -4
  34. data/spec/lib/recog/verify_reporter_spec.rb +8 -8
  35. data/update_cpes.py +129 -36
  36. data/xml/apache_os.xml +61 -19
  37. data/xml/architecture.xml +15 -1
  38. data/xml/dhcp_vendor_class.xml +1 -1
  39. data/xml/dns_versionbind.xml +16 -13
  40. data/xml/favicons.xml +87 -5
  41. data/xml/fingerprints.xsd +9 -1
  42. data/xml/ftp_banners.xml +131 -141
  43. data/xml/h323_callresp.xml +2 -2
  44. data/xml/hp_pjl_id.xml +81 -81
  45. data/xml/html_title.xml +178 -9
  46. data/xml/http_cookies.xml +83 -27
  47. data/xml/http_servers.xml +409 -269
  48. data/xml/http_wwwauth.xml +70 -37
  49. data/xml/imap_banners.xml +2 -2
  50. data/xml/nntp_banners.xml +8 -5
  51. data/xml/ntp_banners.xml +33 -33
  52. data/xml/operating_system.xml +92 -77
  53. data/xml/pop_banners.xml +17 -17
  54. data/xml/sip_banners.xml +16 -5
  55. data/xml/sip_user_agents.xml +122 -27
  56. data/xml/smb_native_lm.xml +5 -5
  57. data/xml/smb_native_os.xml +25 -25
  58. data/xml/smtp_banners.xml +132 -131
  59. data/xml/smtp_help.xml +1 -1
  60. data/xml/snmp_sysdescr.xml +1227 -1227
  61. data/xml/snmp_sysobjid.xml +2 -2
  62. data/xml/ssh_banners.xml +9 -5
  63. data/xml/telnet_banners.xml +49 -0
  64. data/xml/tls_jarm.xml +22 -2
  65. data/xml/x11_banners.xml +3 -3
  66. data/xml/x509_issuers.xml +3 -2
  67. data/xml/x509_subjects.xml +3 -3
  68. metadata +19 -3
  69. data/lib/recog/verifier_factory.rb +0 -13
data/xml/http_servers.xml CHANGED
@@ -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"/>
@@ -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,9 +707,26 @@
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"/>
@@ -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"/>
@@ -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"/>
@@ -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"/>
@@ -1475,7 +1525,7 @@
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"/>
@@ -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"/>
@@ -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"/>
@@ -2089,7 +2162,7 @@
2089
2162
 
2090
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"/>
@@ -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"/>
@@ -2310,7 +2383,7 @@
2310
2383
 
2311
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,10 +2950,10 @@
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"/>
@@ -2947,8 +3020,8 @@
2947
3020
 
2948
3021
  <fingerprint pattern="^NET-DK[/ ](\d+\.\d+)$">
2949
3022
  <description>Web server found on ARRIS cable modems</description>
2950
- <example>NET-DK/1.0</example>
2951
- <example>NET-DK 1.1</example>
3023
+ <example service.version="1.0">NET-DK/1.0</example>
3024
+ <example service.version="1.1">NET-DK 1.1</example>
2952
3025
  <param pos="0" name="service.vendor" value="ARRIS"/>
2953
3026
  <param pos="0" name="service.product" value="Net-DK Web Server"/>
2954
3027
  <param pos="1" name="service.version"/>
@@ -3016,8 +3089,8 @@
3016
3089
 
3017
3090
  <fingerprint pattern="^GFE/((?:\d+\.)*\d+)$">
3018
3091
  <description>Google Front End for apps running on Google services.</description>
3019
- <example>GFE/1.3</example>
3020
- <example>GFE/1</example>
3092
+ <example service.version="1.3">GFE/1.3</example>
3093
+ <example service.version="1">GFE/1</example>
3021
3094
  <param pos="0" name="service.vendor" value="Google"/>
3022
3095
  <param pos="0" name="service.family" value="Google Web Server"/>
3023
3096
  <param pos="0" name="service.product" value="Google Front End"/>
@@ -3306,9 +3379,9 @@
3306
3379
 
3307
3380
  <fingerprint pattern="(?i)^Linux/(\S+) UPnP/[\d\.]+ miniupnpd/([\d\.]+)$">
3308
3381
  <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>
3382
+ <example service.version="1.0" os.version="Cross_compiled">Linux/Cross_compiled UPnP/1.0 miniupnpd/1.0</example>
3383
+ <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>
3384
+ <example service.version="1.0" os.version="2.4.21">Linux/2.4.21 UPnP/1.0 miniupnpd/1.0</example>
3312
3385
  <param pos="0" name="service.vendor" value="MiniUPnP Project"/>
3313
3386
  <param pos="0" name="service.product" value="MiniUPnPd"/>
3314
3387
  <param pos="2" name="service.version"/>
@@ -3326,11 +3399,32 @@
3326
3399
  <param pos="0" name="service.product" value="MiniUPnPd"/>
3327
3400
  <param pos="1" name="service.version"/>
3328
3401
  <param pos="0" name="service.cpe23" value="cpe:/a:miniupnp_project:miniupnpd:{service.version}"/>
3402
+ <param pos="0" name="os.vendor" value="Tomato"/>
3403
+ <param pos="0" name="os.family" value="Linux"/>
3404
+ <param pos="0" name="os.product" value="Tomato"/>
3405
+ <param pos="0" name="os.device" value="Router"/>
3406
+ </fingerprint>
3407
+
3408
+ <fingerprint pattern="^UPnP/Tomato ([\d\.]+)?[\w\s\.-]{1,30} UPnP/[\d\.]+ MiniUPnPd/([\d\.]+)$">
3409
+ <description>TomatoUSB UPnP Server</description>
3410
+ <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>
3411
+ <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>
3412
+ <example service.version="2.0">UPnP/Tomato MIPSR2-140 K26 UPnP/1.1 MiniUPnPd/2.0</example>
3413
+ <example service.version="2.0">UPnP/Tomato MIPSR2Toastman-RT K26 UPnP/1.1 MiniUPnPd/2.0</example>
3414
+ <param pos="0" name="service.vendor" value="MiniUPnP Project"/>
3415
+ <param pos="0" name="service.product" value="MiniUPnPd"/>
3416
+ <param pos="2" name="service.version"/>
3417
+ <param pos="0" name="service.cpe23" value="cpe:/a:miniupnp_project:miniupnpd:{service.version}"/>
3418
+ <param pos="0" name="os.vendor" value="TomatoUSB"/>
3419
+ <param pos="0" name="os.family" value="Linux"/>
3420
+ <param pos="0" name="os.product" value="TomatoUSB"/>
3421
+ <param pos="0" name="os.device" value="Router"/>
3422
+ <param pos="1" name="os.version"/>
3329
3423
  </fingerprint>
3330
3424
 
3331
3425
  <fingerprint pattern="(?i)^(RT-\w+) UPnP/\S+ MiniUPnPd/([\d.]+)$">
3332
3426
  <description>Asus WAP UPnP Server</description>
3333
- <example service.version="1.2">RT-G32 UPnP/1.0 MiniUPnPd/1.2</example>
3427
+ <example service.version="1.2" os.product="RT-G32">RT-G32 UPnP/1.0 MiniUPnPd/1.2</example>
3334
3428
  <param pos="0" name="service.vendor" value="MiniUPnP Project"/>
3335
3429
  <param pos="0" name="service.product" value="MiniUPnPd"/>
3336
3430
  <param pos="2" name="service.version"/>
@@ -3401,9 +3495,9 @@
3401
3495
 
3402
3496
  <fingerprint pattern="^[^/]+/(\S+) DLNADOC/\S+ UPnP/\S+ MiniDLNA/(\S+)$">
3403
3497
  <description>DLNADOC UPnP Server</description>
3404
- <example>Debian/4.0r8 DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0</example>
3405
- <example>FreeBSD/8.2-RELEASE-p4 DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0.24</example>
3406
- <example>Linux/2.6.36+ DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0</example>
3498
+ <example service.version="1.0" os.version="4.0r8">Debian/4.0r8 DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0</example>
3499
+ <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>
3500
+ <example service.version="1.0" os.version="2.6.36+">Linux/2.6.36+ DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0</example>
3407
3501
  <param pos="0" name="service.product" value="MiniDLNA"/>
3408
3502
  <param pos="2" name="service.version"/>
3409
3503
  <param pos="0" name="os.vendor" value="Linux"/>
@@ -3437,10 +3531,10 @@
3437
3531
  <param pos="2" name="service.version"/>
3438
3532
  <param pos="0" name="service.cpe23" value="cpe:/a:miniupnp_project:miniupnpd:{service.version}"/>
3439
3533
  <param pos="0" name="os.family" value="Linux"/>
3440
- <param pos="0" name="os.vendor" value="Red Hat"/>
3441
- <param pos="0" name="os.product" value="Fedora Core Linux"/>
3534
+ <param pos="0" name="os.vendor" value="Fedora Project"/>
3535
+ <param pos="0" name="os.product" value="Fedora Core"/>
3442
3536
  <param pos="1" name="os.version"/>
3443
- <param pos="0" name="os.cpe23" value="cpe:/o:redhat:fedora_core:{os.version}"/>
3537
+ <param pos="0" name="os.cpe23" value="cpe:/o:fedoraproject:fedora_core:{os.version}"/>
3444
3538
  </fingerprint>
3445
3539
 
3446
3540
  <fingerprint pattern="(?i)^Ubuntu\/([\d\.]+) UPnP/\S+ MiniUPnPd/(\S+)$">
@@ -3669,7 +3763,7 @@
3669
3763
 
3670
3764
  <fingerprint pattern="(?i)^Linux Mips (\S+) UPnP/\S+ MiniUPnPd/(\S+)$">
3671
3765
  <description>Linux MIPS UPnP Server</description>
3672
- <example>Linux Mips 2.4.20 UPnP/1.0 MiniUPnPd/1.2</example>
3766
+ <example service.version="1.2" os.version="2.4.20">Linux Mips 2.4.20 UPnP/1.0 MiniUPnPd/1.2</example>
3673
3767
  <param pos="0" name="service.vendor" value="MiniUPnP Project"/>
3674
3768
  <param pos="0" name="service.product" value="MiniUPnPd"/>
3675
3769
  <param pos="2" name="service.version"/>
@@ -3695,8 +3789,8 @@
3695
3789
 
3696
3790
  <fingerprint pattern="^(\S{1,16}) \d+/Service Pack \d+, UPnP/[\d\.]+, TVersity Media Server$">
3697
3791
  <description>TVersity Media Server UPnP Server with Service Pack</description>
3698
- <example>5.2.3790 2/Service Pack 1, UPnP/1.0, TVersity Media Server</example>
3699
- <example>5.1.2600 2/Service Pack 3, UPnP/1.0, TVersity Media Server</example>
3792
+ <example service.version="5.2.3790">5.2.3790 2/Service Pack 1, UPnP/1.0, TVersity Media Server</example>
3793
+ <example service.version="5.1.2600">5.1.2600 2/Service Pack 3, UPnP/1.0, TVersity Media Server</example>
3700
3794
  <param pos="0" name="service.vendor" value="TVersity"/>
3701
3795
  <param pos="0" name="service.product" value="Media Server"/>
3702
3796
  <param pos="1" name="service.version"/>
@@ -3704,10 +3798,10 @@
3704
3798
 
3705
3799
  <fingerprint pattern="^(\S{1,16}) 2/, UPnP/\S+, TVersity Media Server$">
3706
3800
  <description>TVersity Media Server UPnP Server</description>
3707
- <example>6.2.8400 2/, UPnP/1.0, TVersity Media Server</example>
3708
- <example>6.2.9200 2/, UPnP/1.0, TVersity Media Server</example>
3709
- <example>6.0.6000 2/, UPnP/1.0, TVersity Media Server</example>
3710
- <example>6.1.7600 2/, UPnP/1.0, TVersity Media Server</example>
3801
+ <example service.version="6.2.8400">6.2.8400 2/, UPnP/1.0, TVersity Media Server</example>
3802
+ <example service.version="6.2.9200">6.2.9200 2/, UPnP/1.0, TVersity Media Server</example>
3803
+ <example service.version="6.0.6000">6.0.6000 2/, UPnP/1.0, TVersity Media Server</example>
3804
+ <example service.version="6.1.7600">6.1.7600 2/, UPnP/1.0, TVersity Media Server</example>
3711
3805
  <param pos="0" name="service.vendor" value="TVersity"/>
3712
3806
  <param pos="0" name="service.product" value="Media Server"/>
3713
3807
  <param pos="1" name="service.version"/>
@@ -3715,7 +3809,7 @@
3715
3809
 
3716
3810
  <fingerprint pattern="^LINUX/([\d\.]+) UPnP/[\d\.]+ BRCM400/([\d\.]+)$">
3717
3811
  <description>Belkin/Linksys BRCM400 Wireless Router UPnP Server</description>
3718
- <example>LINUX/2.4 UPnP/1.0 BRCM400/1.0</example>
3812
+ <example service.version="1.0" os.version="2.4">LINUX/2.4 UPnP/1.0 BRCM400/1.0</example>
3719
3813
  <param pos="0" name="service.vendor" value="Linksys"/>
3720
3814
  <param pos="0" name="service.product" value="BRCM400"/>
3721
3815
  <param pos="2" name="service.version"/>
@@ -3727,8 +3821,8 @@
3727
3821
 
3728
3822
  <fingerprint pattern="^Linux-(\S+), UPnP/[\d\.]+, PMS/([\d\.]+)$">
3729
3823
  <description>PlayStation3 Media Server UPnP Server - linux</description>
3730
- <example>Linux-amd64-2.6.18-238.9.1.el5, UPnP/1.0, PMS/1.52.1</example>
3731
- <example>Linux-i386-2.6.33.2, UPnP/1.0, PMS/1.21.1</example>
3824
+ <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>
3825
+ <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>
3732
3826
  <param pos="0" name="service.vendor" value="Sony"/>
3733
3827
  <param pos="0" name="service.product" value="PMS"/>
3734
3828
  <param pos="2" name="service.version"/>
@@ -3740,8 +3834,8 @@
3740
3834
 
3741
3835
  <fingerprint pattern="^Windows_XP-(\S+), UPnP/[\d\.]+, PMS/([\d\.]+)$">
3742
3836
  <description>PlayStation3 Media Server UPnP Server - Windows XP</description>
3743
- <example>Windows_XP-amd64-5.2, UPnP/1.0, PMS/1.54.0</example>
3744
- <example>Windows_XP-x86-5.1, UPnP/1.0, PMS/1.20.400</example>
3837
+ <example service.version="1.54.0" os.version="amd64-5.2">Windows_XP-amd64-5.2, UPnP/1.0, PMS/1.54.0</example>
3838
+ <example service.version="1.20.400" os.version="x86-5.1">Windows_XP-x86-5.1, UPnP/1.0, PMS/1.20.400</example>
3745
3839
  <param pos="0" name="service.vendor" value="Sony"/>
3746
3840
  <param pos="0" name="service.product" value="PMS"/>
3747
3841
  <param pos="2" name="service.version"/>
@@ -3753,13 +3847,13 @@
3753
3847
 
3754
3848
  <fingerprint pattern="^Windows_7-x86-(\S+), UPnP/[\d\.]+, PMS/([\d\.]+)$">
3755
3849
  <description>PlayStation3 Media Server UPnP Server - Windows 7 x86</description>
3756
- <example service.version="1.20">Windows_7-x86-6.1, UPnP/1.0, PMS/1.20</example>
3757
- <example>Windows_7-x86-6.1, UPnP/1.0, PMS/1.22.0</example>
3758
- <example>Windows_7-x86-6.1, UPnP/1.0, PMS/1.20.412</example>
3759
- <example>Windows_7-x86-6.1, UPnP/1.0, PMS/1.71.0</example>
3760
- <example>Windows_7-x86-6.1, UPnP/1.0, PMS/1.20.409</example>
3761
- <example>Windows_7-x86-6.1, UPnP/1.0, PMS/1.72.0</example>
3762
- <example>Windows_7-x86-6.1, UPnP/1.0, PMS/1.10.51</example>
3850
+ <example service.version="1.20" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.20</example>
3851
+ <example service.version="1.22.0" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.22.0</example>
3852
+ <example service.version="1.20.412" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.20.412</example>
3853
+ <example service.version="1.71.0" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.71.0</example>
3854
+ <example service.version="1.20.409" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.20.409</example>
3855
+ <example service.version="1.72.0" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.72.0</example>
3856
+ <example service.version="1.10.51" os.version="6.1">Windows_7-x86-6.1, UPnP/1.0, PMS/1.10.51</example>
3763
3857
  <param pos="0" name="service.vendor" value="Sony"/>
3764
3858
  <param pos="0" name="service.product" value="PMS"/>
3765
3859
  <param pos="2" name="service.version"/>
@@ -3790,7 +3884,7 @@
3790
3884
 
3791
3885
  <fingerprint pattern="^Mac_OS_X-x86_64-(\S+), UPnP/[\d\.]+, PMS/([\d\.]+)$">
3792
3886
  <description>PlayStation3 Media Server UPnP Server - macOS x86_64</description>
3793
- <example>Mac_OS_X-x86_64-10.5.8, UPnP/1.0, PMS/1.20</example>
3887
+ <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>
3794
3888
  <param pos="0" name="service.vendor" value="Sony"/>
3795
3889
  <param pos="0" name="service.product" value="PMS"/>
3796
3890
  <param pos="2" name="service.version"/>
@@ -3855,8 +3949,8 @@
3855
3949
 
3856
3950
  <fingerprint pattern="Linux, STUNNEL/1.0, (DIR-8\d+\w*) Ver (\S+)$">
3857
3951
  <description>D-Link DIR-8XX Router</description>
3858
- <example hw.product="DIR-850L">Linux, STUNNEL/1.0, DIR-850L Ver 1.09</example>
3859
- <example os.version="2.00W">Linux, STUNNEL/1.0, DIR-820LW Ver 2.00W</example>
3952
+ <example hw.product="DIR-850L" os.version="1.09">Linux, STUNNEL/1.0, DIR-850L Ver 1.09</example>
3953
+ <example os.version="2.00W" hw.product="DIR-820LW">Linux, STUNNEL/1.0, DIR-820LW Ver 2.00W</example>
3860
3954
  <param pos="0" name="hw.vendor" value="D-Link"/>
3861
3955
  <param pos="1" name="hw.product"/>
3862
3956
  <param pos="0" name="hw.device" value="Router"/>
@@ -3867,9 +3961,9 @@
3867
3961
 
3868
3962
  <fingerprint pattern="Linux, WEBACCESS/1.0, (DIR-\d+\w*) Ver (\S+)$">
3869
3963
  <description>D-Link DIR-XXX Router - WEBACCESS variant</description>
3870
- <example hw.product="DIR-850L">Linux, WEBACCESS/1.0, DIR-850L Ver 1.09</example>
3871
- <example os.version="1.14WW">Linux, WEBACCESS/1.0, DIR-850L Ver 1.14WW</example>
3872
- <example os.version="1.04">Linux, WEBACCESS/1.0, DIR-645 Ver 1.04</example>
3964
+ <example hw.product="DIR-850L" os.version="1.09">Linux, WEBACCESS/1.0, DIR-850L Ver 1.09</example>
3965
+ <example os.version="1.14WW" hw.product="DIR-850L">Linux, WEBACCESS/1.0, DIR-850L Ver 1.14WW</example>
3966
+ <example os.version="1.04" hw.product="DIR-645">Linux, WEBACCESS/1.0, DIR-645 Ver 1.04</example>
3873
3967
  <param pos="0" name="hw.vendor" value="D-Link"/>
3874
3968
  <param pos="1" name="hw.product"/>
3875
3969
  <param pos="0" name="hw.device" value="Router"/>
@@ -3922,15 +4016,15 @@
3922
4016
 
3923
4017
  <fingerprint pattern="^ipos/([\d\.]+) UPnP/[\d\.]+ (TL-\w+)/(\S+)$">
3924
4018
  <description>TP-Link WAP UPnP Server</description>
3925
- <example>ipos/7.0 UPnP/1.0 TL-WR841N/6.0/7.0</example>
3926
- <example>ipos/7.0 UPnP/1.0 TL-WR841N/8.0</example>
3927
- <example>ipos/7.0 UPnP/1.0 TL-WR740N/4.0</example>
3928
- <example>ipos/7.0 UPnP/1.0 TL-WR940N/1.0</example>
3929
- <example>ipos/7.0 UPnP/1.0 TL-WR741N/4.0</example>
3930
- <example>ipos/7.0 UPnP/1.0 TL-WR740N/1.0</example>
3931
- <example>ipos/7.0 UPnP/1.0 TL-WR741N/1.0/2.0</example>
3932
- <example>ipos/7.0 UPnP/1.0 TL-WR740N/1.0/2.0</example>
3933
- <example>ipos/7.0 UPnP/1.0 TL-WR941N/2.0</example>
4019
+ <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>
4020
+ <example service.product="TL-WR841N" service.version="8.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR841N/8.0</example>
4021
+ <example service.product="TL-WR740N" service.version="4.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR740N/4.0</example>
4022
+ <example service.product="TL-WR940N" service.version="1.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR940N/1.0</example>
4023
+ <example service.product="TL-WR741N" service.version="4.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR741N/4.0</example>
4024
+ <example service.product="TL-WR740N" service.version="1.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR740N/1.0</example>
4025
+ <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>
4026
+ <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>
4027
+ <example service.product="TL-WR941N" service.version="2.0" os.version="7.0">ipos/7.0 UPnP/1.0 TL-WR941N/2.0</example>
3934
4028
  <param pos="0" name="service.vendor" value="TP-LINK"/>
3935
4029
  <param pos="2" name="service.product"/>
3936
4030
  <param pos="3" name="service.version"/>
@@ -3961,7 +4055,7 @@
3961
4055
 
3962
4056
  <fingerprint pattern="^Linux/(\S+\_eureka_1), UPnP/[\d\.]+, Portable SDK for UPnP devices/(\S+)$">
3963
4057
  <description>Siqura Video Encoder</description>
3964
- <example>Linux/2.6.37_eureka_1, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4058
+ <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>
3965
4059
  <param pos="0" name="hw.vendor" value="Siqura"/>
3966
4060
  <param pos="0" name="hw.device" value="Video Encoder"/>
3967
4061
  <param pos="0" name="os.vendor" value="Siqura"/>
@@ -3974,7 +4068,7 @@
3974
4068
 
3975
4069
  <fingerprint pattern="^Linux/(\S+\-Mozart-8G), UPnP/[\d\.]+, Portable SDK for UPnP devices/(\S+)$">
3976
4070
  <description>Steinsvik Orbit IP Camera (Truen TCAM Rebrand)</description>
3977
- <example>Linux/2.6.28.9-Mozart-8G, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4071
+ <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>
3978
4072
  <param pos="0" name="hw.vendor" value="Steinsvik"/>
3979
4073
  <param pos="0" name="hw.device" value="IP Camera"/>
3980
4074
  <param pos="0" name="hw.product" value="Orbit IP Camera"/>
@@ -3988,7 +4082,7 @@
3988
4082
 
3989
4083
  <fingerprint pattern="^Linux/(\S+\-ami), UPnP/[\d\.]+, Portable SDK for UPnP devices/(\S+)$">
3990
4084
  <description>AMI MegaRAC LOM UPnP</description>
3991
- <example>Linux/3.14.17-ami, UPnP/1.0, Portable SDK for UPnP devices/1.6.20</example>
4085
+ <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>
3992
4086
  <param pos="0" name="hw.device" value="Lights Out Management"/>
3993
4087
  <param pos="0" name="hw.vendor" value="AMI"/>
3994
4088
  <param pos="0" name="hw.family" value="MegaRAC"/>
@@ -4004,7 +4098,7 @@
4004
4098
 
4005
4099
  <fingerprint pattern="^Linux/(\S+\-axis[^,]+), UPnP/[\d\.]+, Portable SDK for UPnP devices/(\S+)$">
4006
4100
  <description>Axis Network Camera</description>
4007
- <example>Linux/4.9.94-axis5, UPnP/1.0, Portable SDK for UPnP devices/1.6.22</example>
4101
+ <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>
4008
4102
  <param pos="0" name="hw.vendor" value="AXIS"/>
4009
4103
  <param pos="0" name="hw.device" value="IP Camera"/>
4010
4104
  <param pos="0" name="os.vendor" value="AXIS"/>
@@ -4018,23 +4112,23 @@
4018
4112
 
4019
4113
  <fingerprint pattern="^Linux/(\S+), UPnP/[\d\.]+, Portable SDK for UPnP devices/(\S+)$">
4020
4114
  <description>Portable SDK for UPnP Server - Linux</description>
4021
- <example>Linux/2.4.20-46.7asp, UPnP/1.0, Portable SDK for UPnP devices/1.6.17</example>
4022
- <example>Linux/2.6.10-iop1-1, UPnP/1.0, Portable SDK for UPnP devices/1.4.1</example>
4023
- <example>Linux/2.6.12-5.1-brcmstb-dm800, UPnP/1.0, Portable SDK for UPnP devices/1.6.0</example>
4024
- <example>Linux/2.6.12.6-VENUS, UPnP/1.0, Portable SDK for UPnP devices/1.6.10</example>
4025
- <example>Linux/2.6.12.6-arm1-040, UPnP/1.0, Portable SDK for UPnP devices/1.6.5.2</example>
4026
- <example>Linux/2.6.13, UPnP/1.0, Portable SDK for UPnP devices/1.6.0</example>
4027
- <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>
4028
- <example>Linux/2.6.28, UPnP/1.0, Portable SDK for UPnP devices/1.6.10</example>
4029
- <example>Linux/2.6.28-11-server, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4030
- <example>Linux/2.6.28-17-generic, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4031
- <example>Linux/2.6.28.1-xxxx-std-ipv4-32, UPnP/1.0, Portable SDK for UPnP devices/1.4.3</example>
4032
- <example>Linux/2.6.32-220.7.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.14</example>
4033
- <example>Linux/2.6.32-24-generic, UPnP/1.0, Portable SDK for UPnP devices/1.6.6</example>
4034
- <example>Linux/2.6.32-279.1.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.13</example>
4035
- <example>Linux/2.6.32-279.11.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.14</example>
4036
- <example>Linux/2.6.32-279.14.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.14</example>
4037
- <example>Linux/2.6.32-279.14.1.el6.x86_64, UPnP/1.0, Portable SDK for UPnP devices/1.6.15</example>
4115
+ <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>
4116
+ <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>
4117
+ <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>
4118
+ <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>
4119
+ <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>
4120
+ <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>
4121
+ <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>
4122
+ <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>
4123
+ <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>
4124
+ <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>
4125
+ <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>
4126
+ <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>
4127
+ <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>
4128
+ <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>
4129
+ <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>
4130
+ <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>
4131
+ <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>
4038
4132
  <param pos="0" name="service.product" value="libupnp"/>
4039
4133
  <param pos="2" name="service.version"/>
4040
4134
  <param pos="0" name="os.vendor" value="Linux"/>
@@ -4045,8 +4139,8 @@
4045
4139
 
4046
4140
  <fingerprint pattern="^Linux/(\S+) UPnP/[\d\.]+ DLNADOC/[\d\.]+ Portable SDK for UPnP devices/(\S+)$">
4047
4141
  <description>DLNADOC Portable SDK for UPnP Server - Linux DNLADOC variant</description>
4048
- <example>Linux/3.0.8 UPnP/1.0 DLNADOC/1.50 Portable SDK for UPnP devices/1.6.6</example>
4049
- <example>Linux/2.6.23.17_stm23_0125dorade00 UPnP/1.0 DLNADOC/1.50 Portable SDK for UPnP devices/1.4.6-5</example>
4142
+ <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>
4143
+ <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>
4050
4144
  <param pos="0" name="service.product" value="libupnp"/>
4051
4145
  <param pos="2" name="service.version"/>
4052
4146
  <param pos="0" name="os.vendor" value="Linux"/>
@@ -4057,8 +4151,8 @@
4057
4151
 
4058
4152
  <fingerprint pattern="^Linux/(\S+), UPnP/[\d\.]+, Intel SDK for UPnP devices ?/(\S+)$">
4059
4153
  <description>Intel SDK for UPnP Server with verbose banner</description>
4060
- <example>Linux/2.6.10_dev-malta-mips2_fp_le, UPnP/1.0, Intel SDK for UPnP devices /1.2</example>
4061
- <example>Linux/2.4.18_mvl30-ixdp425, UPnP/1.0, Intel SDK for UPnP devices/1.3.1</example>
4154
+ <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>
4155
+ <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>
4062
4156
  <param pos="0" name="service.product" value="libupnp"/>
4063
4157
  <param pos="2" name="service.version"/>
4064
4158
  <param pos="0" name="os.vendor" value="Linux"/>
@@ -4069,7 +4163,7 @@
4069
4163
 
4070
4164
  <fingerprint pattern="^Linux, UPnP/[\d\.]+, Intel SDK for UPnP devices ?/(\S+)$">
4071
4165
  <description>Intel SDK for UPnP Server</description>
4072
- <example>Linux, UPnP/1.0, Intel SDK for UPnP devices /1.2</example>
4166
+ <example service.version="1.2">Linux, UPnP/1.0, Intel SDK for UPnP devices /1.2</example>
4073
4167
  <param pos="0" name="service.product" value="libupnp"/>
4074
4168
  <param pos="1" name="service.version"/>
4075
4169
  </fingerprint>
@@ -4140,10 +4234,10 @@
4140
4234
 
4141
4235
  <fingerprint pattern="^UPnP/\S+, DLNADOC/\S+, Platinum/(\S+)$">
4142
4236
  <description>Xbox Media Center UPnP Server</description>
4143
- <example>UPnP/1.0, DLNADOC/1.50, Platinum/0.5.1</example>
4144
- <example>UPnP/1.0, DLNADOC/1.50, Platinum/0.6.6.0</example>
4145
- <example>UPnP/1.0, DLNADOC/1.50, Platinum/0.5.4.0</example>
4146
- <example>UPnP/1.0, DLNADOC/1.50, Platinum/0.5.3.0</example>
4237
+ <example service.version="0.5.1">UPnP/1.0, DLNADOC/1.50, Platinum/0.5.1</example>
4238
+ <example service.version="0.6.6.0">UPnP/1.0, DLNADOC/1.50, Platinum/0.6.6.0</example>
4239
+ <example service.version="0.5.4.0">UPnP/1.0, DLNADOC/1.50, Platinum/0.5.4.0</example>
4240
+ <example service.version="0.5.3.0">UPnP/1.0, DLNADOC/1.50, Platinum/0.5.3.0</example>
4147
4241
  <param pos="0" name="service.vendor" value="Microsoft"/>
4148
4242
  <param pos="0" name="service.product" value="XBMC"/>
4149
4243
  <param pos="1" name="service.version"/>
@@ -4372,6 +4466,15 @@
4372
4466
  <param pos="0" name="service.cpe23" value="cpe:/a:tinyproxy_project:tinyproxy:{service.version}"/>
4373
4467
  </fingerprint>
4374
4468
 
4469
+ <fingerprint pattern="^mitmproxy ([\d.]+)$">
4470
+ <description>mitmproxy interactive HTTPS proxy - https://github.com/mitmproxy/mitmproxy</description>
4471
+ <example service.version="7.0.4">mitmproxy 7.0.4</example>
4472
+ <param pos="0" name="service.vendor" value="mitmproxy"/>
4473
+ <param pos="0" name="service.product" value="mitmproxy"/>
4474
+ <param pos="1" name="service.version"/>
4475
+ <param pos="0" name="service.cpe23" value="cpe:/a:mitmproxy:mitmproxy:{service.version}"/>
4476
+ </fingerprint>
4477
+
4375
4478
  <fingerprint pattern="^Xfinity Broadband Router Server$">
4376
4479
  <description>Comcast Xfinity Broadband Router Server</description>
4377
4480
  <example>Xfinity Broadband Router Server</example>
@@ -4383,7 +4486,7 @@
4383
4486
  <fingerprint pattern="^IX Series IX21\d\d \(magellan-sec\) Software, Version ([^, ]+), (?:MAINTENANCE )?RELEASE SOFTWARE$">
4384
4487
  <description>NEC Univerge Router - enterprise class with VPN, UTM, etc</description>
4385
4488
  <example hw.version="10.2.20">IX Series IX2106 (magellan-sec) Software, Version 10.2.20, RELEASE SOFTWARE</example>
4386
- <example>IX Series IX2105 (magellan-sec) Software, Version 9.6.12A, MAINTENANCE RELEASE SOFTWARE</example>
4489
+ <example hw.version="9.6.12A">IX Series IX2105 (magellan-sec) Software, Version 9.6.12A, MAINTENANCE RELEASE SOFTWARE</example>
4387
4490
  <param pos="0" name="hw.vendor" value="NEC"/>
4388
4491
  <param pos="0" name="hw.product" value="Univerge"/>
4389
4492
  <param pos="1" name="hw.version"/>
@@ -4402,8 +4505,8 @@
4402
4505
  <fingerprint pattern="^MoxaHttp/(\d\.\d)$">
4403
4506
  <description>Moxa devices - service used on multiple families of devices</description>
4404
4507
  <example service.version="2.3">MoxaHttp/2.3</example>
4405
- <example>MoxaHttp/2.2</example>
4406
- <example>MoxaHttp/1.0</example>
4508
+ <example service.version="2.2">MoxaHttp/2.2</example>
4509
+ <example service.version="1.0">MoxaHttp/1.0</example>
4407
4510
  <param pos="0" name="service.vendor" value="Moxa"/>
4408
4511
  <param pos="0" name="service.product" value="httpd"/>
4409
4512
  <param pos="1" name="service.version"/>
@@ -4525,6 +4628,16 @@
4525
4628
  <param pos="0" name="service.cpe23" value="cpe:/a:cherokee-project:cherokee:{service.version}"/>
4526
4629
  </fingerprint>
4527
4630
 
4631
+ <fingerprint pattern="^WebServer \(SerenityOS\)$">
4632
+ <description>SerenityOS Web Server - https://github.com/SerenityOS/serenity</description>
4633
+ <example>WebServer (SerenityOS)</example>
4634
+ <param pos="0" name="service.vendor" value="SerenityOS"/>
4635
+ <param pos="0" name="service.product" value="WebServer"/>
4636
+ <param pos="0" name="os.vendor" value="SerenityOS"/>
4637
+ <param pos="0" name="os.product" value="Serenity"/>
4638
+ <param pos="0" name="os.cpe23" value="cpe:/o:serenityos:serenity:-"/>
4639
+ </fingerprint>
4640
+
4528
4641
  <!-- This is a version of ACME mini_httpd where the value 'mini_httpd' has been
4529
4642
  replaced with a UUID in the Server header AND body of the response. It
4530
4643
  is likely vendor or product specific.
@@ -4571,7 +4684,7 @@
4571
4684
 
4572
4685
  <fingerprint pattern="UNMS (\d+\.\d+\.\d+)">
4573
4686
  <description>Ubiquiti UNMS</description>
4574
- <example>302 Found UNMS 1.2.7</example>
4687
+ <example service.version="1.2.7">302 Found UNMS 1.2.7</example>
4575
4688
  <param pos="0" name="service.vendor" value="Ubiquiti"/>
4576
4689
  <param pos="0" name="service.product" value="UNMS"/>
4577
4690
  <param pos="1" name="service.version"/>
@@ -4615,4 +4728,31 @@
4615
4728
  <param pos="0" name="hw.device" value="Printer"/>
4616
4729
  </fingerprint>
4617
4730
 
4731
+ <fingerprint pattern="^Eltex (TAU-\d+[A-Z]*(?:\.IP)?)$">
4732
+ <description>Eltex TAU model VoIP gateway</description>
4733
+ <example hw.product="TAU-72">Eltex TAU-72</example>
4734
+ <example hw.product="TAU-1.IP">Eltex TAU-1.IP</example>
4735
+ <param pos="0" name="os.vendor" value="Eltex"/>
4736
+ <param pos="0" name="os.product" value="{hw.product} Firmware"/>
4737
+ <param pos="0" name="os.device" value="VoIP Gateway"/>
4738
+ <param pos="0" name="hw.vendor" value="Eltex"/>
4739
+ <param pos="1" name="hw.product"/>
4740
+ <param pos="0" name="hw.device" value="VoIP Gateway"/>
4741
+ </fingerprint>
4742
+
4743
+ <fingerprint pattern="^(SMG-?\d+[A-Z]?)$">
4744
+ <description>Eltex SMG model VoIP gateway</description>
4745
+ <example hw.product="SMG2">SMG2</example>
4746
+ <example hw.product="SMG1016M">SMG1016M</example>
4747
+ <example hw.product="SMG-1016M">SMG-1016M</example>
4748
+ <example hw.product="SMG3016">SMG3016</example>
4749
+ <param pos="0" name="os.vendor" value="Eltex"/>
4750
+ <param pos="0" name="os.product" value="{hw.product} Firmware"/>
4751
+ <param pos="0" name="os.device" value="VoIP Gateway"/>
4752
+ <param pos="0" name="hw.vendor" value="Eltex"/>
4753
+ <param pos="1" name="hw.product"/>
4754
+ <param pos="0" name="hw.device" value="VoIP Gateway"/>
4755
+ </fingerprint>
4756
+
4757
+
4618
4758
  </fingerprints>