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/ftp_banners.xml CHANGED
@@ -78,7 +78,7 @@
78
78
 
79
79
  <fingerprint pattern="^([^ ]{1,512}) +FTP +Server \(Version ([^\(]+)\(PHNE_\d+\) [^\)]+\) ready.?$" flags="REG_ICASE">
80
80
  <description>FTP on HPUX with a PHNE (HP Networking patch) installed</description>
81
- <example>example.com FTP server (Version 1.1.214.4(PHNE_38458) Mon Feb 15 06:03:12 GMT 2010) ready.</example>
81
+ <example host.name="example.com" service.version="1.1.214.4">example.com FTP server (Version 1.1.214.4(PHNE_38458) Mon Feb 15 06:03:12 GMT 2010) ready.</example>
82
82
  <param pos="0" name="service.vendor" value="HP"/>
83
83
  <param pos="0" name="service.product" value="FTPD"/>
84
84
  <param pos="0" name="os.vendor" value="HP"/>
@@ -91,7 +91,7 @@
91
91
 
92
92
  <fingerprint pattern="^([^ ]{1,512}) +FTP +Server \(Revision \S+ Version wuftpd-([^\(]+)\(PHNE_\d+\) [^\)]+\) ready.?$" flags="REG_ICASE">
93
93
  <description>WU-FTPD on HPUX with a PHNE (HP Networking patch) installed</description>
94
- <example>example.com FTP server (Revision 1.1 Version wuftpd-2.6.1(PHNE_38578) Fri Sep 5 12:10:54 GMT 2008) ready.</example>
94
+ <example host.name="example.com" service.version="2.6.1">example.com FTP server (Revision 1.1 Version wuftpd-2.6.1(PHNE_38578) Fri Sep 5 12:10:54 GMT 2008) ready.</example>
95
95
  <param pos="0" name="service.vendor" value="Washington University"/>
96
96
  <param pos="0" name="service.product" value="WU-FTPD"/>
97
97
  <param pos="0" name="os.vendor" value="HP"/>
@@ -187,7 +187,7 @@ example.com FTP server (Version: Mac OS X Server) ready.</example>
187
187
 
188
188
  <fingerprint pattern="^ProFTPD (\d+\.[^\s]+) Server \(Debian\) \[(.+)\]$">
189
189
  <description>ProFTPD on Debian Linux</description>
190
- <example>ProFTPD 1.3.0rc2 Server (Debian) [host]</example>
190
+ <example service.version="1.3.0rc2" host.name="host">ProFTPD 1.3.0rc2 Server (Debian) [host]</example>
191
191
  <param pos="0" name="service.family" value="ProFTPD"/>
192
192
  <param pos="0" name="service.vendor" value="ProFTPD Project"/>
193
193
  <param pos="0" name="service.product" value="ProFTPD"/>
@@ -202,7 +202,7 @@ example.com FTP server (Version: Mac OS X Server) ready.</example>
202
202
 
203
203
  <fingerprint pattern="^ProFTPD (\d+\.[^\s]+) Server \(Linksys(W.+)\) \[(.+)\]$">
204
204
  <description>ProFTPD on a Linksys Wireless Access Point/Router</description>
205
- <example>ProFTPD 1.3.0rc2 Server (LinksysWRT350N) [host]</example>
205
+ <example service.version="1.3.0rc2" os.product="WRT350N" hw.product="WRT350N" host.name="host">ProFTPD 1.3.0rc2 Server (LinksysWRT350N) [host]</example>
206
206
  <param pos="0" name="service.family" value="ProFTPD"/>
207
207
  <param pos="0" name="service.vendor" value="ProFTPD Project"/>
208
208
  <param pos="0" name="service.product" value="ProFTPD"/>
@@ -211,6 +211,8 @@ example.com FTP server (Version: Mac OS X Server) ready.</example>
211
211
  <param pos="0" name="os.vendor" value="Linksys"/>
212
212
  <param pos="0" name="os.device" value="WAP"/>
213
213
  <param pos="2" name="os.product"/>
214
+ <param pos="0" name="hw.vendor" value="Linksys"/>
215
+ <param pos="2" name="hw.product"/>
214
216
  <param pos="3" name="host.name"/>
215
217
  </fingerprint>
216
218
 
@@ -241,24 +243,11 @@ example.com FTP server (Version: Mac OS X Server) ready.</example>
241
243
  <param pos="1" name="host.name"/>
242
244
  </fingerprint>
243
245
 
244
- <fingerprint pattern="^ProFTPD (\d+\.[^\s]+) Server \(Linksys(.*)\) \[(.+)\]$">
245
- <description>ProFTPD on a wired Linksys device</description>
246
- <param pos="0" name="service.family" value="ProFTPD"/>
247
- <param pos="0" name="service.vendor" value="ProFTPD Project"/>
248
- <param pos="0" name="service.product" value="ProFTPD"/>
249
- <param pos="1" name="service.version"/>
250
- <param pos="0" name="service.cpe23" value="cpe:/a:proftpd:proftpd:{service.version}"/>
251
- <param pos="0" name="os.vendor" value="Linksys"/>
252
- <param pos="0" name="os.device" value="Router"/>
253
- <param pos="2" name="os.product"/>
254
- <param pos="3" name="host.name"/>
255
- </fingerprint>
256
-
257
246
  <fingerprint pattern="^ProFTPD (\d+\.[^\s]+) Server \((.*)\) \[(.+)\]$">
258
247
  <description>ProFTPD with version info but no obvious OS info</description>
259
- <example service.version="1.2.10">ProFTPD 1.2.10 Server (Main FTP Server) [host]</example>
260
- <example proftpd.server.name="ProFTPD">ProFTPD 1.2.10 Server (ProFTPD) [host]</example>
261
- <example host.name="host">ProFTPD 1.2.10rc3 Server (ProFTPD Default Installation) [host]</example>
248
+ <example service.version="1.2.10" proftpd.server.name="Main FTP Server" host.name="host">ProFTPD 1.2.10 Server (Main FTP Server) [host]</example>
249
+ <example proftpd.server.name="ProFTPD" service.version="1.2.10" host.name="host">ProFTPD 1.2.10 Server (ProFTPD) [host]</example>
250
+ <example host.name="host" service.version="1.2.10rc3" proftpd.server.name="ProFTPD Default Installation">ProFTPD 1.2.10rc3 Server (ProFTPD Default Installation) [host]</example>
262
251
  <param pos="0" name="service.family" value="ProFTPD"/>
263
252
  <param pos="0" name="service.vendor" value="ProFTPD Project"/>
264
253
  <param pos="0" name="service.product" value="ProFTPD"/>
@@ -333,9 +322,9 @@ example.com FTP server (Version: Mac OS X Server) ready.</example>
333
322
 
334
323
  <fingerprint pattern="^ProFTPD (\d+\.[^\s]+) Server \((.*)\) \[[a-f\d.:\]]*$">
335
324
  <description>ProFTPD with version info - truncated</description>
336
- <example service.version="1.3.2c">ProFTPD 1.3.2c Server (ProFTPD Default Installation) [</example>
337
- <example proftpd.server.name="svrname.hosting.com">ProFTPD 1.3.0 Server (svrname.hosting.com) [10.10.10.</example>
338
- <example>ProFTPD 1.3.3a Server (randomstring) [::ff</example>
325
+ <example service.version="1.3.2c" proftpd.server.name="ProFTPD Default Installation">ProFTPD 1.3.2c Server (ProFTPD Default Installation) [</example>
326
+ <example proftpd.server.name="svrname.hosting.com" service.version="1.3.0">ProFTPD 1.3.0 Server (svrname.hosting.com) [10.10.10.</example>
327
+ <example service.version="1.3.3a" proftpd.server.name="randomstring">ProFTPD 1.3.3a Server (randomstring) [::ff</example>
339
328
  <param pos="0" name="service.family" value="ProFTPD"/>
340
329
  <param pos="0" name="service.vendor" value="ProFTPD Project"/>
341
330
  <param pos="0" name="service.product" value="ProFTPD"/>
@@ -369,11 +358,11 @@ more stuff</example>
369
358
 
370
359
  <fingerprint pattern="^-{9,10}(?:.*)\s+Pure-FTPd\s+(.*)-{9,10}">
371
360
  <description>Pure-FTPd versions &gt;= 1.0.14 - Config data can be zero or more of: [privsep] [TLS]</description>
372
- <example>---------- Welcome to Pure-FTPd ----------</example>
373
- <example>--------- Bienvenido a Pure-FTPd [privsep] [TLS] ----------</example>
374
- <example>--------- Pure-FTPd [privsep] ----------</example>
375
- <example>--------- Welcome to Pure-FTPd [privsep] [TLS] ----------</example>
376
- <example>--------- Welcome to Pure-FTPd [privsep] [TLS] ----------&#13;
361
+ <example pureftpd.config="-">---------- Welcome to Pure-FTPd ----------</example>
362
+ <example pureftpd.config="[privsep] [TLS] -">--------- Bienvenido a Pure-FTPd [privsep] [TLS] ----------</example>
363
+ <example pureftpd.config="[privsep] -">--------- Pure-FTPd [privsep] ----------</example>
364
+ <example pureftpd.config="[privsep] [TLS] -">--------- Welcome to Pure-FTPd [privsep] [TLS] ----------</example>
365
+ <example pureftpd.config="[privsep] [TLS] -">--------- Welcome to Pure-FTPd [privsep] [TLS] ----------&#13;
377
366
  more text</example>
378
367
  <param pos="1" name="pureftpd.config"/>
379
368
  <param pos="0" name="service.vendor" value="PureFTPd"/>
@@ -462,7 +451,7 @@ more text</example>
462
451
 
463
452
  <fingerprint pattern="^\(vsFTPd (\d+\..+)\)(?: (.+))?$">
464
453
  <description>vsFTPd (Very Secure FTP Daemon)</description>
465
- <example service.version="1.1.3">(vsFTPd 1.1.3) host</example>
454
+ <example service.version="1.1.3" host.name="host">(vsFTPd 1.1.3) host</example>
466
455
  <example service.version="2.0.5">(vsFTPd 2.0.5)</example>
467
456
  <param pos="0" name="service.vendor" value="vsFTPd Project"/>
468
457
  <param pos="0" name="service.family" value="vsFTPd"/>
@@ -531,9 +520,9 @@ more text</example>
531
520
 
532
521
  <fingerprint pattern="^(\S{1,64}) Network Management Card AOS v(\d+\..+) FTP server ready\.$">
533
522
  <description>APC power/cooling device</description>
534
- <example service.version="3.3.4">AP7932 Network Management Card AOS v3.3.4 FTP server ready.</example>
535
- <example os.version="3.6.1">ACRC103 Network Management Card AOS v3.6.1 FTP server ready.</example>
536
- <example os.product="0G-9354-01">0G-9354-01 Network Management Card AOS v3.6.1 FTP server ready.</example>
523
+ <example service.version="3.3.4" os.product="AP7932" os.version="3.3.4">AP7932 Network Management Card AOS v3.3.4 FTP server ready.</example>
524
+ <example os.version="3.6.1" service.version="3.6.1" os.product="ACRC103">ACRC103 Network Management Card AOS v3.6.1 FTP server ready.</example>
525
+ <example os.product="0G-9354-01" service.version="3.6.1" os.version="3.6.1">0G-9354-01 Network Management Card AOS v3.6.1 FTP server ready.</example>
537
526
  <param pos="0" name="service.vendor" value="APC"/>
538
527
  <param pos="0" name="service.product" value="AOS"/>
539
528
  <param pos="0" name="service.family" value="AOS"/>
@@ -548,9 +537,9 @@ more text</example>
548
537
 
549
538
  <fingerprint pattern="^(\S{1,512}) FTP server \(EMC-SNAS: ([^\)]+)\)(?: \S+)?$">
550
539
  <description>EMC Celerra</description>
551
- <example service.version="5.6.47.11">foo2 FTP server (EMC-SNAS: 5.6.47.11)</example>
552
- <example service.version="5.6.50.203">foo2 FTP server (EMC-SNAS: 5.6.50.203) ready.</example>
553
- <example service.version="5.5.31.6">foo4 FTP server (EMC-SNAS: 5.5.31.6) r</example>
540
+ <example service.version="5.6.47.11" os.version="5.6.47.11" host.name="foo2">foo2 FTP server (EMC-SNAS: 5.6.47.11)</example>
541
+ <example service.version="5.6.50.203" os.version="5.6.50.203" host.name="foo2">foo2 FTP server (EMC-SNAS: 5.6.50.203) ready.</example>
542
+ <example service.version="5.5.31.6" os.version="5.5.31.6" host.name="foo4">foo4 FTP server (EMC-SNAS: 5.5.31.6) r</example>
554
543
  <param pos="0" name="service.vendor" value="EMC"/>
555
544
  <param pos="0" name="service.product" value="Celerra"/>
556
545
  <param pos="2" name="service.version"/>
@@ -611,13 +600,14 @@ more text</example>
611
600
 
612
601
  <fingerprint pattern="^---freeFTPd 1.0---warFTPd 1.65---$">
613
602
  <description>Nepenthes honeypot</description>
603
+ <example>---freeFTPd 1.0---warFTPd 1.65---</example>
614
604
  <param pos="0" name="service.family" value="Nepenthes"/>
615
605
  <param pos="0" name="service.product" value="Nepenthes"/>
616
606
  </fingerprint>
617
607
 
618
608
  <fingerprint pattern="^[^ ]{1,512} IBM FTP CS (V1R\d+) at ([^,]*),">
619
609
  <description>IBM z/OS FTP Service</description>
620
- <example>SFTPD1 IBM FTP CS V1R4 at x.y.z, 21:02:19 on 2007-12-15.</example>
610
+ <example os.version="V1R4" host.name="x.y.z">SFTPD1 IBM FTP CS V1R4 at x.y.z, 21:02:19 on 2007-12-15.</example>
621
611
  <param pos="0" name="service.vendor" value="IBM"/>
622
612
  <param pos="0" name="service.product" value="z/OS FTP Server"/>
623
613
  <param pos="0" name="os.vendor" value="IBM"/>
@@ -643,7 +633,7 @@ more text</example>
643
633
  <fingerprint pattern="^([^ ]{1,512}) NcFTPd Server \(licensed copy\) ready\.$">
644
634
  <description>NcFTPd Server
645
635
  http://www.ncftp.com/ncftpd/</description>
646
- <example>ftp.example.com NcFTPd Server (licensed copy) ready.</example>
636
+ <example host.name="ftp.example.com">ftp.example.com NcFTPd Server (licensed copy) ready.</example>
647
637
  <param pos="0" name="service.vendor" value="NcFTP Software"/>
648
638
  <param pos="0" name="service.product" value="NcFTPd Server"/>
649
639
  <param pos="1" name="host.name"/>
@@ -651,7 +641,7 @@ more text</example>
651
641
 
652
642
  <fingerprint pattern="^(\S{1,512}) DCS-2100 FTP server ready\.$">
653
643
  <description>D-Link DCS-2100 wireless internet camera</description>
654
- <example>hostname DCS-2100 FTP server ready.</example>
644
+ <example host.name="hostname">hostname DCS-2100 FTP server ready.</example>
655
645
  <param pos="0" name="os.vendor" value="D-Link"/>
656
646
  <param pos="0" name="os.product" value="DCS-2100"/>
657
647
  <param pos="0" name="os.device" value="IP Camera"/>
@@ -669,7 +659,7 @@ more text</example>
669
659
 
670
660
  <fingerprint pattern="^SUN StorEdge (\S+) RAID FTP server ready\.$">
671
661
  <description>Sun StorEdge disk array</description>
672
- <example>SUN StorEdge 3511 RAID FTP server ready.</example>
662
+ <example os.product="3511">SUN StorEdge 3511 RAID FTP server ready.</example>
673
663
  <param pos="0" name="os.vendor" value="Sun"/>
674
664
  <param pos="0" name="os.family" value="StorEdge"/>
675
665
  <param pos="1" name="os.product"/>
@@ -693,11 +683,11 @@ more text</example>
693
683
  <param pos="0" name="os.device" value="IP Camera"/>
694
684
  </fingerprint>
695
685
 
696
- <fingerprint pattern="(?i)^AXIS (\S+) (?:(?:Mk II )?Video) (?:Encoder|Encoder Blade|Module|Server|Decoder) (\S+)">
686
+ <fingerprint pattern="(?i)^AXIS (\S+) (?:(?:Mk II )?Video) (?:Encoder(?: Blade)?|Module|Server|Decoder) (\S+)">
697
687
  <description>Axis Video encoders/servers</description>
698
- <example hw.product="Q7406">AXIS Q7406 Video Encoder Blade 5.01 (Aug 01 2008) ready.</example>
699
- <example hw.product="241Q">AXIS 241Q Video Server 4.47.2 (Dec 11 2008) ready.</example>
700
- <example hw.version="5.07.2">AXIS P7701 Video Decoder 5.07.2 (Apr 20 2010) ready.</example>
688
+ <example hw.product="Q7406" hw.version="5.01">AXIS Q7406 Video Encoder Blade 5.01 (Aug 01 2008) ready.</example>
689
+ <example hw.product="241Q" hw.version="4.47.2">AXIS 241Q Video Server 4.47.2 (Dec 11 2008) ready.</example>
690
+ <example hw.version="5.07.2" hw.product="P7701">AXIS P7701 Video Decoder 5.07.2 (Apr 20 2010) ready.</example>
701
691
  <example hw.product="Q7401" hw.version="5.01">AXIS Q7401 Video Encoder 5.01 (Aug 01 2008) ready.</example>
702
692
  <example hw.product="Q7401" hw.version="5.50.2_cst_412205_1">AXIS Q7401 Video Encoder 5.50.2_cst_412205_1 (2013)</example>
703
693
  <example hw.product="Q7424-R" hw.version="5.51.3.1">AXIS Q7424-R Mk II Video Encoder 5.51.3.1 (2016) ready.</example>
@@ -731,9 +721,9 @@ more text</example>
731
721
 
732
722
  <fingerprint pattern="^AXIS (\S+) .*FTP Network Print Server V?([\d\.]+\S+) .* ready\.?$" flags="REG_ICASE">
733
723
  <description>Axis print servers</description>
734
- <example hw.product="5600+">AXIS 5600+ (rev 3) FTP Network Print Server V7.00 Sep 10 2004 ready.</example>
735
- <example hw.product="560">AXIS 560 FTP Network Print Server V6.00 Jul 7 1999 ready.</example>
736
- <example hw.version="6.30.beta2">AXIS 5470e FTP Network Print Server V6.30.beta2 Sep 25 2002 ready.</example>
724
+ <example hw.product="5600+" hw.version="7.00">AXIS 5600+ (rev 3) FTP Network Print Server V7.00 Sep 10 2004 ready.</example>
725
+ <example hw.product="560" hw.version="6.00">AXIS 560 FTP Network Print Server V6.00 Jul 7 1999 ready.</example>
726
+ <example hw.version="6.30.beta2" hw.product="5470e">AXIS 5470e FTP Network Print Server V6.30.beta2 Sep 25 2002 ready.</example>
737
727
  <param pos="0" name="hw.vendor" value="Axis"/>
738
728
  <param pos="0" name="hw.device" value="Print Server"/>
739
729
  <param pos="1" name="hw.product"/>
@@ -742,9 +732,9 @@ more text</example>
742
732
 
743
733
  <fingerprint pattern="^RICOH Aficio ((?:[MS]P )?\S+) FTP server \(([0-9\.a-zA-Z]+)\) ready.?$" flags="REG_ICASE">
744
734
  <description>Ricoh Aficio multifunction device</description>
745
- <example os.product="2045e">RICOH Aficio 2045e FTP server (4.12) ready.</example>
746
- <example os.version="8.63">RICOH Aficio SP 4210N FTP server (8.63) ready.</example>
747
- <example hw.product="MP C3000">RICOH Aficio MP C3000 FTP server (5.11) ready.</example>
735
+ <example os.product="2045e" hw.product="2045e" os.version="4.12">RICOH Aficio 2045e FTP server (4.12) ready.</example>
736
+ <example os.version="8.63" hw.product="SP 4210N" os.product="SP 4210N">RICOH Aficio SP 4210N FTP server (8.63) ready.</example>
737
+ <example hw.product="MP C3000" os.product="MP C3000" os.version="5.11">RICOH Aficio MP C3000 FTP server (5.11) ready.</example>
748
738
  <param pos="0" name="hw.vendor" value="Ricoh"/>
749
739
  <param pos="0" name="hw.family" value="Aficio"/>
750
740
  <param pos="0" name="hw.device" value="Multifunction Device"/>
@@ -758,14 +748,14 @@ more text</example>
758
748
 
759
749
  <fingerprint pattern="^NRG ((?:[MS]P )?\S+) FTP server \(([0-9\.a-zA-Z]+)\) ready.?$" flags="REG_ICASE">
760
750
  <description>Ricoh NRG multifunction device</description>
761
- <example>NRG MP C2800 FTP server (8.25) ready.</example>
762
- <example>NRG MP 3350 FTP server (7.05) ready.</example>
763
- <example>NRG MP C3500 FTP server (5.17) ready.</example>
764
- <example>NRG MP 171 FTP server (9.02.1) ready.</example>
765
- <example>NRG MP C2550 FTP server (8.25) ready.</example>
766
- <example>NRG MP C3500 FTP server (5.19) ready.</example>
767
- <example>NRG MP C4000 FTP server (8.30) ready.</example>
768
- <example>NRG MP C4500 FTP server (5.14) ready.</example>
751
+ <example os.product="MP C2800" os.version="8.25" hw.product="MP C2800">NRG MP C2800 FTP server (8.25) ready.</example>
752
+ <example os.product="MP 3350" os.version="7.05" hw.product="MP 3350">NRG MP 3350 FTP server (7.05) ready.</example>
753
+ <example os.product="MP C3500" os.version="5.17" hw.product="MP C3500">NRG MP C3500 FTP server (5.17) ready.</example>
754
+ <example os.product="MP 171" os.version="9.02.1" hw.product="MP 171">NRG MP 171 FTP server (9.02.1) ready.</example>
755
+ <example os.product="MP C2550" os.version="8.25" hw.product="MP C2550">NRG MP C2550 FTP server (8.25) ready.</example>
756
+ <example os.product="MP C3500" os.version="5.19" hw.product="MP C3500">NRG MP C3500 FTP server (5.19) ready.</example>
757
+ <example os.product="MP C4000" os.version="8.30" hw.product="MP C4000">NRG MP C4000 FTP server (8.30) ready.</example>
758
+ <example os.product="MP C4500" os.version="5.14" hw.product="MP C4500">NRG MP C4500 FTP server (5.14) ready.</example>
769
759
  <param pos="0" name="os.vendor" value="Ricoh"/>
770
760
  <param pos="0" name="os.device" value="Multifunction Device"/>
771
761
  <param pos="1" name="os.product"/>
@@ -792,8 +782,8 @@ more text</example>
792
782
 
793
783
  <fingerprint pattern="^Xerox Phaser (\S+)$" certainty="1.0">
794
784
  <description>Xerox Phaser Laser Printer</description>
795
- <example>Xerox Phaser 6130N</example>
796
- <example>Xerox Phaser 6180MFP-D</example>
785
+ <example os.product="6130N" hw.product="6130N">Xerox Phaser 6130N</example>
786
+ <example os.product="6180MFP-D" hw.product="6180MFP-D">Xerox Phaser 6180MFP-D</example>
797
787
  <param pos="0" name="os.vendor" value="Xerox"/>
798
788
  <param pos="0" name="os.family" value="Phaser"/>
799
789
  <param pos="0" name="os.device" value="Printer"/>
@@ -806,7 +796,7 @@ more text</example>
806
796
 
807
797
  <fingerprint pattern="^XEROX (\d+) Wide Format" certainty="1.0">
808
798
  <description>Xerox Wide Format Series of Printers</description>
809
- <example>XEROX 6204 Wide Format FTP server ready</example>
799
+ <example os.product="6204" hw.product="6204">XEROX 6204 Wide Format FTP server ready</example>
810
800
  <param pos="0" name="os.vendor" value="Xerox"/>
811
801
  <param pos="0" name="os.family" value="Wide Format"/>
812
802
  <param pos="0" name="os.device" value="Printer"/>
@@ -819,9 +809,9 @@ more text</example>
819
809
 
820
810
  <fingerprint pattern="^FUJI XEROX DocuPrint (.*)$" certainty="1.0">
821
811
  <description>FUJI XEROX DocuPrint Series of Printers</description>
822
- <example>FUJI XEROX DocuPrint 3055</example>
823
- <example>FUJI XEROX DocuPrint C1190 FS</example>
824
- <example>FUJI XEROX DocuPrint C2100</example>
812
+ <example os.product="3055">FUJI XEROX DocuPrint 3055</example>
813
+ <example os.product="C1190 FS">FUJI XEROX DocuPrint C1190 FS</example>
814
+ <example os.product="C2100">FUJI XEROX DocuPrint C2100</example>
825
815
  <param pos="0" name="os.vendor" value="FUJI XEROX"/>
826
816
  <param pos="0" name="os.family" value="DocuPrint"/>
827
817
  <param pos="0" name="os.device" value="Printer"/>
@@ -930,8 +920,8 @@ more text</example>
930
920
 
931
921
  <fingerprint pattern="^TASKalfa (\d+c?i) FTP server" certainty="1.0">
932
922
  <description>Taskalfa Series of Printers</description>
933
- <example>TASKalfa 300ci FTP server</example>
934
- <example>TASKalfa 520i FTP server</example>
923
+ <example os.product="300ci" hw.product="300ci">TASKalfa 300ci FTP server</example>
924
+ <example os.product="520i" hw.product="520i">TASKalfa 520i FTP server</example>
935
925
  <param pos="0" name="os.vendor" value="Kyocera"/>
936
926
  <param pos="0" name="os.family" value="TASKalfa"/>
937
927
  <param pos="0" name="os.device" value="Multifunction Device"/>
@@ -944,16 +934,16 @@ more text</example>
944
934
 
945
935
  <fingerprint pattern="^SAVIN (\S+) FTP server \((.*)\) ready.$" certainty="1.0">
946
936
  <description>SAVIN Printer FTP Server</description>
947
- <example os.product="4075">SAVIN 4075 FTP server (4.08) ready.</example>
948
- <example hw.product="9025">SAVIN 9025 FTP server (7.23) ready.</example>
949
- <example os.version="7.30">SAVIN 9050 FTP server (7.30) ready.</example>
950
- <example os.version="9.03">SAVIN 917 FTP server (9.03) ready.</example>
951
- <example>SAVIN 917 FTP server (9.05.2) ready.</example>
952
- <example>SAVIN C2525 FTP server (5.14) ready.</example>
953
- <example>SAVIN C3528 FTP server (4.08.3) ready.</example>
954
- <example>SAVIN C3528 FTP server (4.17) ready.</example>
955
- <example>SAVIN C6055 FTP server (7.16) ready.</example>
956
- <example>SAVIN C9145 FTP server (10.51) ready.</example>
937
+ <example os.product="4075" os.version="4.08" hw.product="4075">SAVIN 4075 FTP server (4.08) ready.</example>
938
+ <example hw.product="9025" os.product="9025" os.version="7.23">SAVIN 9025 FTP server (7.23) ready.</example>
939
+ <example os.version="7.30" os.product="9050" hw.product="9050">SAVIN 9050 FTP server (7.30) ready.</example>
940
+ <example os.version="9.03" os.product="917" hw.product="917">SAVIN 917 FTP server (9.03) ready.</example>
941
+ <example os.product="917" os.version="9.05.2" hw.product="917">SAVIN 917 FTP server (9.05.2) ready.</example>
942
+ <example os.product="C2525" os.version="5.14" hw.product="C2525">SAVIN C2525 FTP server (5.14) ready.</example>
943
+ <example os.product="C3528" os.version="4.08.3" hw.product="C3528">SAVIN C3528 FTP server (4.08.3) ready.</example>
944
+ <example os.product="C3528" os.version="4.17" hw.product="C3528">SAVIN C3528 FTP server (4.17) ready.</example>
945
+ <example os.product="C6055" os.version="7.16" hw.product="C6055">SAVIN C6055 FTP server (7.16) ready.</example>
946
+ <example os.product="C9145" os.version="10.51" hw.product="C9145">SAVIN C9145 FTP server (10.51) ready.</example>
957
947
  <param pos="0" name="os.vendor" value="Savin"/>
958
948
  <param pos="0" name="os.device" value="Printer"/>
959
949
  <param pos="1" name="os.product"/>
@@ -965,8 +955,8 @@ more text</example>
965
955
 
966
956
  <fingerprint pattern="^Oce (im\d+) Ver (\S+) FTP server\.$" certainty="1.0">
967
957
  <description>OCE IM series Printer</description>
968
- <example>Oce im4512 Ver 01.04.00.0c FTP server.</example>
969
- <example>Oce im3512 Ver 01.04.00.0c FTP server.</example>
958
+ <example os.product="im4512" os.version="01.04.00.0c">Oce im4512 Ver 01.04.00.0c FTP server.</example>
959
+ <example os.product="im3512" os.version="01.04.00.0c">Oce im3512 Ver 01.04.00.0c FTP server.</example>
970
960
  <param pos="0" name="os.vendor" value="Oce"/>
971
961
  <param pos="0" name="os.device" value="Multifunction Device"/>
972
962
  <param pos="0" name="os.family" value="IM Series"/>
@@ -976,7 +966,7 @@ more text</example>
976
966
 
977
967
  <fingerprint pattern="^Oce (Plotwave\d+) FTP Service \(Version (\S+)\)\.$" certainty="1.0">
978
968
  <description>OCE Printer</description>
979
- <example>Oce Plotwave300 FTP Service (Version 4.5.7).</example>
969
+ <example os.product="Plotwave300" os.version="4.5.7">Oce Plotwave300 FTP Service (Version 4.5.7).</example>
980
970
  <param pos="0" name="os.vendor" value="Oce"/>
981
971
  <param pos="0" name="os.device" value="Printer"/>
982
972
  <param pos="0" name="os.family" value="Plotwave Series"/>
@@ -1005,10 +995,10 @@ more text</example>
1005
995
 
1006
996
  <fingerprint pattern="^LXKE\S+ IBM Infoprint (\d+) FTP Server (\d+\.\d+\.\d+) ready.$" certainty="1.0">
1007
997
  <description>IBM Infoprint FTP</description>
1008
- <example>LXKE82124 IBM Infoprint 1332 FTP Server 55.10.21 ready.</example>
1009
- <example>LXKE8255D IBM Infoprint 1332 FTP Server 55.10.21 ready.</example>
1010
- <example>LXKE825A0 IBM Infoprint 1332 FTP Server 55.10.21 ready.</example>
1011
- <example>LXKE93276 IBM Infoprint 1332 FTP Server 55.10.19 ready.</example>
998
+ <example os.product="1332" os.version="55.10.21">LXKE82124 IBM Infoprint 1332 FTP Server 55.10.21 ready.</example>
999
+ <example os.product="1332" os.version="55.10.21">LXKE8255D IBM Infoprint 1332 FTP Server 55.10.21 ready.</example>
1000
+ <example os.product="1332" os.version="55.10.21">LXKE825A0 IBM Infoprint 1332 FTP Server 55.10.21 ready.</example>
1001
+ <example os.product="1332" os.version="55.10.19">LXKE93276 IBM Infoprint 1332 FTP Server 55.10.19 ready.</example>
1012
1002
  <param pos="0" name="os.vendor" value="Ricoh"/>
1013
1003
  <param pos="0" name="os.family" value="Infoprint"/>
1014
1004
  <param pos="0" name="os.device" value="Printer"/>
@@ -1020,9 +1010,9 @@ more text</example>
1020
1010
  <description>Gestetner Printer FTP</description>
1021
1011
  <example os.product="Gestetner MP5500/DSm755" os.version="5.11c">Gestetner MP5500/DSm755 FTP server (5.11c) ready.</example>
1022
1012
  <example os.product="Gestetner MP C4502" os.version="11.77">Gestetner MP C4502 FTP server (11.77) ready.</example>
1023
- <example>Gestetner MP 161/DSm416 FTP server (6.11) ready. </example>
1024
- <example>Gestetner 3502 FTP server (1.66.1) ready</example>
1025
- <example>Gestetner C7526dn FTP server (6.05.1) ready.</example>
1013
+ <example os.product="Gestetner MP 161/DSm416" os.version="6.11">Gestetner MP 161/DSm416 FTP server (6.11) ready. </example>
1014
+ <example os.product="Gestetner 3502" os.version="1.66.1">Gestetner 3502 FTP server (1.66.1) ready</example>
1015
+ <example os.product="Gestetner C7526dn" os.version="6.05.1">Gestetner C7526dn FTP server (6.05.1) ready.</example>
1026
1016
  <param pos="0" name="os.vendor" value="Ricoh"/>
1027
1017
  <param pos="0" name="os.device" value="Multifunction Device"/>
1028
1018
  <param pos="1" name="os.product"/>
@@ -1031,7 +1021,7 @@ more text</example>
1031
1021
 
1032
1022
  <fingerprint pattern="^(Gestetner \S+)$" certainty="1.0">
1033
1023
  <description>Gestetner Printer FTP - short banner</description>
1034
- <example>Gestetner MPC2500</example>
1024
+ <example os.product="Gestetner MPC2500">Gestetner MPC2500</example>
1035
1025
  <param pos="0" name="os.vendor" value="Ricoh"/>
1036
1026
  <param pos="0" name="os.device" value="Multifunction Device"/>
1037
1027
  <param pos="1" name="os.product"/>
@@ -1039,7 +1029,7 @@ more text</example>
1039
1029
 
1040
1030
  <fingerprint pattern="^EUFSALE MarkNet (\S+) FTP Server (\d+\.\d+\.\d+) ready.$" certainty="1.0">
1041
1031
  <description>Lexmark Marknet Printers FTP</description>
1042
- <example>EUFSALE MarkNet X2011e FTP Server 4.20.21 ready.</example>
1032
+ <example os.product="X2011e" os.version="4.20.21">EUFSALE MarkNet X2011e FTP Server 4.20.21 ready.</example>
1043
1033
  <param pos="0" name="os.vendor" value="Lexmark"/>
1044
1034
  <param pos="0" name="os.family" value="MarkNet"/>
1045
1035
  <param pos="0" name="os.device" value="Print Server"/>
@@ -1049,9 +1039,9 @@ more text</example>
1049
1039
 
1050
1040
  <fingerprint pattern="^ET(\S{1,12}) Source Technologies (ST-96\S+) FTP Server (\S+) ready\.?$">
1051
1041
  <description>Source Technologies ST9600 Series Secure Printer</description>
1052
- <example>ET0021B730F70E Source Technologies ST-9620 FTP Server NJ.APS.N254e ready.</example>
1053
- <example>ET0021B7549AF2 Source Technologies ST-9620 FTP Server NR.APS.N447b2 ready.</example>
1054
- <example>ET0021B7300F01 Source Technologies ST-9620 FTP Server NJ.APS.N254e ready.</example>
1042
+ <example host.mac="0021B730F70E" os.product="ST-9620" os.version="NJ.APS.N254e">ET0021B730F70E Source Technologies ST-9620 FTP Server NJ.APS.N254e ready.</example>
1043
+ <example host.mac="0021B7549AF2" os.product="ST-9620" os.version="NR.APS.N447b2">ET0021B7549AF2 Source Technologies ST-9620 FTP Server NR.APS.N447b2 ready.</example>
1044
+ <example host.mac="0021B7300F01" os.product="ST-9620" os.version="NJ.APS.N254e">ET0021B7300F01 Source Technologies ST-9620 FTP Server NJ.APS.N254e ready.</example>
1055
1045
  <param pos="0" name="os.vendor" value="Source Technologies"/>
1056
1046
  <param pos="0" name="os.family" value="ST9600 Series"/>
1057
1047
  <param pos="0" name="os.device" value="Printer"/>
@@ -1075,7 +1065,7 @@ more text</example>
1075
1065
 
1076
1066
  <fingerprint pattern="^ET(\S{1,12}) Lexmark Forms Printer (\d+) Ethernet FTP Server (\S+) ready\.$" certainty="1.0">
1077
1067
  <description>Lexmark Forms Printer</description>
1078
- <example os.product="2590">ET0020004F54EE Lexmark Forms Printer 2590 Ethernet FTP Server LCL.CU.P012c ready.</example>
1068
+ <example os.product="2590" host.mac="0020004F54EE" os.version="LCL.CU.P012c" hw.product="2590">ET0020004F54EE Lexmark Forms Printer 2590 Ethernet FTP Server LCL.CU.P012c ready.</example>
1079
1069
  <param pos="0" name="os.vendor" value="Lexmark"/>
1080
1070
  <param pos="0" name="os.family" value="Forms Printer"/>
1081
1071
  <param pos="0" name="os.device" value="Printer"/>
@@ -1090,8 +1080,8 @@ more text</example>
1090
1080
 
1091
1081
  <fingerprint pattern="^ET(\S{1,12}) TOSHIBA e-STUDIO500S FTP Server (\S+) ready\.$" certainty="1.0">
1092
1082
  <description>Toshiba e-STUDIO Printer with MAC address</description>
1093
- <example os.version="NC2.NPS.N221">ET0004001E9C00 TOSHIBA e-STUDIO500S FTP Server NC2.NPS.N221 ready.</example>
1094
- <example host.mac="00040089BE42">ET00040089BE42 TOSHIBA e-STUDIO500S FTP Server NC2.NPS.N211 ready.</example>
1083
+ <example os.version="NC2.NPS.N221" host.mac="0004001E9C00">ET0004001E9C00 TOSHIBA e-STUDIO500S FTP Server NC2.NPS.N221 ready.</example>
1084
+ <example host.mac="00040089BE42" os.version="NC2.NPS.N211">ET00040089BE42 TOSHIBA e-STUDIO500S FTP Server NC2.NPS.N211 ready.</example>
1095
1085
  <param pos="0" name="os.vendor" value="Toshiba"/>
1096
1086
  <param pos="0" name="os.device" value="Multifunction Device"/>
1097
1087
  <param pos="0" name="os.product" value="e-STUDIO"/>
@@ -1116,8 +1106,8 @@ more text</example>
1116
1106
 
1117
1107
  <fingerprint pattern="Lexmark Optra (\S+) FTP Server (\S+) ready\.$" certainty="1.0">
1118
1108
  <description>Lexmark Optra Printer</description>
1119
- <example os.product="T612">lex142785470853 Lexmark Optra T612 FTP Server 3.20.30 ready.</example>
1120
- <example os.version="3.20.20">oppr1.s02504.us Lexmark Optra T610 FTP Server 3.20.20 ready.</example>
1109
+ <example os.product="T612" os.version="3.20.30" hw.product="T612">lex142785470853 Lexmark Optra T612 FTP Server 3.20.30 ready.</example>
1110
+ <example os.version="3.20.20" os.product="T610" hw.product="T610">oppr1.s02504.us Lexmark Optra T610 FTP Server 3.20.20 ready.</example>
1121
1111
  <param pos="0" name="os.vendor" value="Lexmark"/>
1122
1112
  <param pos="0" name="os.family" value="Optra"/>
1123
1113
  <param pos="0" name="os.device" value="Printer"/>
@@ -1131,15 +1121,15 @@ more text</example>
1131
1121
 
1132
1122
  <fingerprint pattern="^SHARP (MX-\S+) Ver (\S+) FTP server\.$" certainty="1.0">
1133
1123
  <description>Sharp Printer/Copier/Scanne</description>
1134
- <example os.product="MX-6200N" os.version="01.02.00.0e">SHARP MX-6200N Ver 01.02.00.0e FTP server.</example>
1135
- <example>SHARP MX-M363N Ver 01.05.00.0k FTP server.</example>
1136
- <example>SHARP MX-M363N Ver 01.05.00.1k FTP server.</example>
1137
- <example>SHARP MX-5001N Ver 01.05.00.0n FTP server.</example>
1138
- <example>SHARP MX-5500N Ver 01.02.00.09 FTP server.</example>
1139
- <example>SHARP MX-M453N Ver 01.05.00.0k FTP server.</example>
1140
- <example>SHARP MX-M503N Ver 01.05.00.1k FTP server.</example>
1141
- <example>SHARP MX-M620U Ver 01.03.00 FTP server.</example>
1142
- <example>SHARP MX-M620U Ver 01.04.00.04 FTP server.</example>
1124
+ <example os.product="MX-6200N" os.version="01.02.00.0e" hw.product="MX-6200N">SHARP MX-6200N Ver 01.02.00.0e FTP server.</example>
1125
+ <example os.product="MX-M363N" os.version="01.05.00.0k" hw.product="MX-M363N">SHARP MX-M363N Ver 01.05.00.0k FTP server.</example>
1126
+ <example os.product="MX-M363N" os.version="01.05.00.1k" hw.product="MX-M363N">SHARP MX-M363N Ver 01.05.00.1k FTP server.</example>
1127
+ <example os.product="MX-5001N" os.version="01.05.00.0n" hw.product="MX-5001N">SHARP MX-5001N Ver 01.05.00.0n FTP server.</example>
1128
+ <example os.product="MX-5500N" os.version="01.02.00.09" hw.product="MX-5500N">SHARP MX-5500N Ver 01.02.00.09 FTP server.</example>
1129
+ <example os.product="MX-M453N" os.version="01.05.00.0k" hw.product="MX-M453N">SHARP MX-M453N Ver 01.05.00.0k FTP server.</example>
1130
+ <example os.product="MX-M503N" os.version="01.05.00.1k" hw.product="MX-M503N">SHARP MX-M503N Ver 01.05.00.1k FTP server.</example>
1131
+ <example os.product="MX-M620U" os.version="01.03.00" hw.product="MX-M620U">SHARP MX-M620U Ver 01.03.00 FTP server.</example>
1132
+ <example os.product="MX-M620U" os.version="01.04.00.04" hw.product="MX-M620U">SHARP MX-M620U Ver 01.04.00.04 FTP server.</example>
1143
1133
  <param pos="0" name="os.vendor" value="Sharp"/>
1144
1134
  <param pos="0" name="os.device" value="Printer"/>
1145
1135
  <param pos="0" name="os.family" value="MX Series"/>
@@ -1153,9 +1143,9 @@ more text</example>
1153
1143
 
1154
1144
  <fingerprint pattern="^(FS-\S+MFP\S*?) FTP server\.?$" certainty="1.0">
1155
1145
  <description>Kyocera Printer with version string</description>
1156
- <example os.product="FS-C2126MFP">FS-C2126MFP FTP server</example>
1157
- <example hw.product="FS-C2026MFP+">FS-C2026MFP+ FTP server</example>
1158
- <example hw.product="FS-1128MFP">FS-1128MFP FTP server</example>
1146
+ <example os.product="FS-C2126MFP" hw.product="FS-C2126MFP">FS-C2126MFP FTP server</example>
1147
+ <example hw.product="FS-C2026MFP+" os.product="FS-C2026MFP+">FS-C2026MFP+ FTP server</example>
1148
+ <example hw.product="FS-1128MFP" os.product="FS-1128MFP">FS-1128MFP FTP server</example>
1159
1149
  <param pos="0" name="os.vendor" value="Kyocera"/>
1160
1150
  <param pos="0" name="os.device" value="Multifunction Device"/>
1161
1151
  <param pos="1" name="os.product"/>
@@ -1166,8 +1156,8 @@ more text</example>
1166
1156
 
1167
1157
  <fingerprint pattern="^(FS-\S+(?:DN|D|N)) FTP server\.?$" certainty="1.0">
1168
1158
  <description>Kyocera Printer</description>
1169
- <example os.product="FS-1370DN">FS-1370DN FTP server</example>
1170
- <example hw.product="FS-C5015N">FS-C5015N FTP server.</example>
1159
+ <example os.product="FS-1370DN" hw.product="FS-1370DN">FS-1370DN FTP server</example>
1160
+ <example hw.product="FS-C5015N" os.product="FS-C5015N">FS-C5015N FTP server.</example>
1171
1161
  <param pos="0" name="os.vendor" value="Kyocera"/>
1172
1162
  <param pos="0" name="os.device" value="Printer"/>
1173
1163
  <param pos="0" name="os.family" value="FS"/>
@@ -1180,16 +1170,16 @@ more text</example>
1180
1170
 
1181
1171
  <fingerprint pattern="^(ESI-\S+) Version (\S+) ready\.$" certainty="1.0">
1182
1172
  <description>Extended Systems ExtendNet Print Server</description>
1183
- <example os.product="ESI-2941B">ESI-2941B Version 6.34 ready.</example>
1184
- <example os.version="6.03">ESI-2941A Version 6.03 ready.</example>
1185
- <example hw.product="ESI-2933A">ESI-2933A Version 6.40 ready.</example>
1186
- <example>ESI-2831 Version 2.1 ready.</example>
1187
- <example>ESI-2833A Version 6.3 ready.</example>
1188
- <example>ESI-2900A Version 6.31 ready.</example>
1189
- <example>ESI-2841B Version 3.01 ready.</example>
1190
- <example>ESI-2841C Version 5.09e ready.</example>
1191
- <example>ESI-2933A Version 6.40a.05 ready.</example>
1192
- <example>ESI-2999A Version 6.30a.07 ready.</example>
1173
+ <example os.product="ESI-2941B" os.version="6.34" hw.product="ESI-2941B">ESI-2941B Version 6.34 ready.</example>
1174
+ <example os.version="6.03" os.product="ESI-2941A" hw.product="ESI-2941A">ESI-2941A Version 6.03 ready.</example>
1175
+ <example hw.product="ESI-2933A" os.product="ESI-2933A" os.version="6.40">ESI-2933A Version 6.40 ready.</example>
1176
+ <example os.product="ESI-2831" os.version="2.1" hw.product="ESI-2831">ESI-2831 Version 2.1 ready.</example>
1177
+ <example os.product="ESI-2833A" os.version="6.3" hw.product="ESI-2833A">ESI-2833A Version 6.3 ready.</example>
1178
+ <example os.product="ESI-2900A" os.version="6.31" hw.product="ESI-2900A">ESI-2900A Version 6.31 ready.</example>
1179
+ <example os.product="ESI-2841B" os.version="3.01" hw.product="ESI-2841B">ESI-2841B Version 3.01 ready.</example>
1180
+ <example os.product="ESI-2841C" os.version="5.09e" hw.product="ESI-2841C">ESI-2841C Version 5.09e ready.</example>
1181
+ <example os.product="ESI-2933A" os.version="6.40a.05" hw.product="ESI-2933A">ESI-2933A Version 6.40a.05 ready.</example>
1182
+ <example os.product="ESI-2999A" os.version="6.30a.07" hw.product="ESI-2999A">ESI-2999A Version 6.30a.07 ready.</example>
1193
1183
  <param pos="0" name="os.vendor" value="Sybase"/>
1194
1184
  <param pos="0" name="os.family" value="Extended Systems ExtendNet"/>
1195
1185
  <param pos="0" name="os.device" value="Print Server"/>
@@ -1203,7 +1193,7 @@ more text</example>
1203
1193
  <fingerprint pattern="^SATO SATO PRINTER Ver (\S+) FTP server\.$" certainty="1.0">
1204
1194
  <description>SATO Printer</description>
1205
1195
  <example os.version="A1.2.3">SATO SATO PRINTER Ver A1.2.3 FTP server.</example>
1206
- <example>SATO SATO PRINTER Ver A2.3.0 FTP server.</example>
1196
+ <example os.version="A2.3.0">SATO SATO PRINTER Ver A2.3.0 FTP server.</example>
1207
1197
  <param pos="0" name="os.vendor" value="SATO"/>
1208
1198
  <param pos="0" name="os.device" value="Printer"/>
1209
1199
  <param pos="1" name="os.version"/>
@@ -1213,11 +1203,11 @@ more text</example>
1213
1203
 
1214
1204
  <fingerprint pattern="^Printer FTP (\d+\.\d+\.\d+) ready at (\w{3} \d{2} \d{2}:\d{2}:\d{2})$" certainty="1.0">
1215
1205
  <description>AMTDatasouth Fastmark M5</description>
1216
- <example os.version="4.8.7">Printer FTP 4.8.7 ready at Apr 30 20:13:23</example>
1217
- <example system.time="Aug 31 16:43:22">Printer FTP 4.8.7 ready at Aug 31 16:43:22</example>
1218
- <example>Printer FTP 4.8.7 ready at Feb 28 11:27:46</example>
1219
- <example>Printer FTP 4.8.7 ready at Jan 31 00:40:04</example>
1220
- <example>Printer FTP 4.8.7 ready at Mar 31 06:28:25</example>
1206
+ <example os.version="4.8.7" system.time="Apr 30 20:13:23">Printer FTP 4.8.7 ready at Apr 30 20:13:23</example>
1207
+ <example system.time="Aug 31 16:43:22" os.version="4.8.7">Printer FTP 4.8.7 ready at Aug 31 16:43:22</example>
1208
+ <example os.version="4.8.7" system.time="Feb 28 11:27:46">Printer FTP 4.8.7 ready at Feb 28 11:27:46</example>
1209
+ <example os.version="4.8.7" system.time="Jan 31 00:40:04">Printer FTP 4.8.7 ready at Jan 31 00:40:04</example>
1210
+ <example os.version="4.8.7" system.time="Mar 31 06:28:25">Printer FTP 4.8.7 ready at Mar 31 06:28:25</example>
1221
1211
  <param pos="0" name="os.vendor" value="AMTDatasouth"/>
1222
1212
  <param pos="0" name="os.product" value="Fastmark M5"/>
1223
1213
  <param pos="0" name="os.device" value="Printer"/>
@@ -1243,7 +1233,7 @@ more text</example>
1243
1233
 
1244
1234
  <fingerprint pattern="^SHARP (AR-\S+) Ver (\S+) FTP server">
1245
1235
  <description>Sharp AR Series multifunction device</description>
1246
- <example os.product="AR-M450">SHARP AR-M450 Ver 01.05.00.0k FTP server.</example>
1236
+ <example os.product="AR-M450" os.version="01.05.00.0k" hw.product="AR-M450">SHARP AR-M450 Ver 01.05.00.0k FTP server.</example>
1247
1237
  <param pos="0" name="os.vendor" value="Sharp"/>
1248
1238
  <param pos="0" name="os.device" value="Multifunction Device"/>
1249
1239
  <param pos="0" name="os.family" value="AR Series"/>
@@ -1271,13 +1261,13 @@ more text</example>
1271
1261
  <fingerprint pattern="^(KM\S+) FTP server \(KM FTPD version (\d*(?:\.\d*))\) ready\.?$">
1272
1262
  <description>Konica Minolta FTP Server</description>
1273
1263
  <example os.product="KM23BC97" service.version="1.00">KM23BC97 FTP server (KM FTPD version 1.00) ready.</example>
1274
- <example>KM23BF0A FTP server (KM FTPD version 1.00) ready.</example>
1275
- <example>KM23CBDB FTP server (KM FTPD version 1.00) ready.</example>
1276
- <example>KM23E608 FTP server (KM FTPD version 1.00) ready.</example>
1277
- <example>KM23E8A2 FTP server (KM FTPD version 1.00) ready.</example>
1278
- <example>KM25015E FTP server (KM FTPD version 1.00) ready.</example>
1279
- <example>KM250E38 FTP server (KM FTPD version 1.00) ready.</example>
1280
- <example>KM251A4C FTP server (KM FTPD version 1.00) ready.</example>
1264
+ <example os.product="KM23BF0A" service.version="1.00">KM23BF0A FTP server (KM FTPD version 1.00) ready.</example>
1265
+ <example os.product="KM23CBDB" service.version="1.00">KM23CBDB FTP server (KM FTPD version 1.00) ready.</example>
1266
+ <example os.product="KM23E608" service.version="1.00">KM23E608 FTP server (KM FTPD version 1.00) ready.</example>
1267
+ <example os.product="KM23E8A2" service.version="1.00">KM23E8A2 FTP server (KM FTPD version 1.00) ready.</example>
1268
+ <example os.product="KM25015E" service.version="1.00">KM25015E FTP server (KM FTPD version 1.00) ready.</example>
1269
+ <example os.product="KM250E38" service.version="1.00">KM250E38 FTP server (KM FTPD version 1.00) ready.</example>
1270
+ <example os.product="KM251A4C" service.version="1.00">KM251A4C FTP server (KM FTPD version 1.00) ready.</example>
1281
1271
  <param pos="0" name="os.device" value="Printer"/>
1282
1272
  <param pos="0" name="os.vendor" value="Konica Minolta"/>
1283
1273
  <param pos="1" name="os.product"/>
@@ -1288,9 +1278,9 @@ more text</example>
1288
1278
 
1289
1279
  <fingerprint pattern="^(ZBR-\d+) Version (\S+) ready\.?$">
1290
1280
  <description>ZebraNet Print Server FTP</description>
1291
- <example os.product="ZBR-46686">ZBR-46686 Version 7.02 ready.</example>
1292
- <example os.version="V56.17.5Z">ZBR-79071 Version V56.17.5Z ready.</example>
1293
- <example os.version="7.02">ZBR-46687 Version 7.02 ready.</example>
1281
+ <example os.product="ZBR-46686" os.version="7.02" hw.product="ZBR-46686">ZBR-46686 Version 7.02 ready.</example>
1282
+ <example os.version="V56.17.5Z" os.product="ZBR-79071" hw.product="ZBR-79071">ZBR-79071 Version V56.17.5Z ready.</example>
1283
+ <example os.version="7.02" os.product="ZBR-46687" hw.product="ZBR-46687">ZBR-46687 Version 7.02 ready.</example>
1294
1284
  <param pos="0" name="os.vendor" value="ZebraNet"/>
1295
1285
  <param pos="0" name="os.device" value="Print Server"/>
1296
1286
  <param pos="1" name="os.product"/>
@@ -1641,8 +1631,8 @@ more text</example>
1641
1631
 
1642
1632
  <fingerprint pattern="^TiMOS-[CB]-([\S]+) cpm\/[\w]+ ALCATEL (SR [\S]+) Copyright .{1,4}$">
1643
1633
  <description>ALCATEL Service Router running TiMOS</description>
1644
- <example os.version="13.0.R9">TiMOS-C-13.0.R9 cpm/hops64 ALCATEL SR 7750 Copyright (</example>
1645
- <example hw.product="SR 7750">TiMOS-C-9.0.R8 cpm/hops ALCATEL SR 7750 Copyright (c) </example>
1634
+ <example os.version="13.0.R9" hw.product="SR 7750">TiMOS-C-13.0.R9 cpm/hops64 ALCATEL SR 7750 Copyright (</example>
1635
+ <example hw.product="SR 7750" os.version="9.0.R8">TiMOS-C-9.0.R8 cpm/hops ALCATEL SR 7750 Copyright (c) </example>
1646
1636
  <param pos="0" name="os.vendor" value="ALCATEL"/>
1647
1637
  <param pos="1" name="os.version"/>
1648
1638
  <param pos="0" name="hw.vendor" value="ALCATEL"/>
@@ -1774,7 +1764,7 @@ more text</example>
1774
1764
 
1775
1765
  <fingerprint pattern="^Welcome to Honeywell Printer (PM\d+)\S+?$">
1776
1766
  <description>Honeywell Thermal Label Printer (Previously Intermec)</description>
1777
- <example hw.product="Thermal Label Printer PM43">Welcome to Honeywell Printer PM43c</example>
1767
+ <example hw.product="Thermal Label Printer PM43" hw.model="PM43">Welcome to Honeywell Printer PM43c</example>
1778
1768
  <param pos="0" name="hw.vendor" value="Honeywell"/>
1779
1769
  <param pos="1" name="hw.model"/>
1780
1770
  <param pos="0" name="hw.product" value="Thermal Label Printer {hw.model}"/>
@@ -1786,8 +1776,8 @@ more text</example>
1786
1776
 
1787
1777
  <fingerprint pattern="^SurgeFTP ([\S]+) \(Version ([a-f\d.]+)\)$">
1788
1778
  <description>NetWin SurgeFTP</description>
1789
- <example service.version="2.3a12">SurgeFTP 192.168.0.0 (Version 2.3a12)</example>
1790
- <example host.name="foo.bar.baz">SurgeFTP foo.bar.baz (Version 2.2f9)</example>
1779
+ <example service.version="2.3a12" host.name="192.168.0.0">SurgeFTP 192.168.0.0 (Version 2.3a12)</example>
1780
+ <example host.name="foo.bar.baz" service.version="2.2f9">SurgeFTP foo.bar.baz (Version 2.2f9)</example>
1791
1781
  <param pos="0" name="service.vendor" value="NetWin"/>
1792
1782
  <param pos="0" name="service.product" value="SurgeFTP"/>
1793
1783
  <param pos="2" name="service.version"/>