recog 2.3.22 → 2.3.23

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