recog 3.1.1 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/Gemfile +6 -0
  4. data/Rakefile +7 -5
  5. data/lib/recog/db.rb +67 -68
  6. data/lib/recog/db_manager.rb +22 -21
  7. data/lib/recog/fingerprint/regexp_factory.rb +10 -13
  8. data/lib/recog/fingerprint/test.rb +9 -8
  9. data/lib/recog/fingerprint.rb +252 -262
  10. data/lib/recog/fingerprint_parse_error.rb +3 -1
  11. data/lib/recog/formatter.rb +41 -39
  12. data/lib/recog/match_reporter.rb +82 -83
  13. data/lib/recog/matcher.rb +37 -40
  14. data/lib/recog/matcher_factory.rb +7 -6
  15. data/lib/recog/nizer.rb +218 -224
  16. data/lib/recog/verifier.rb +30 -28
  17. data/lib/recog/verify_reporter.rb +69 -73
  18. data/lib/recog/version.rb +3 -1
  19. data/lib/recog.rb +2 -0
  20. data/recog/bin/recog_match +21 -20
  21. data/recog/xml/apache_modules.xml +2 -0
  22. data/recog/xml/dhcp_vendor_class.xml +1 -1
  23. data/recog/xml/favicons.xml +133 -1
  24. data/recog/xml/ftp_banners.xml +1 -1
  25. data/recog/xml/html_title.xml +140 -1
  26. data/recog/xml/http_cookies.xml +20 -2
  27. data/recog/xml/http_servers.xml +38 -17
  28. data/recog/xml/http_wwwauth.xml +17 -4
  29. data/recog/xml/mdns_device-info_txt.xml +49 -15
  30. data/recog/xml/sip_banners.xml +0 -2
  31. data/recog/xml/sip_user_agents.xml +1 -1
  32. data/recog/xml/snmp_sysdescr.xml +1 -2
  33. data/recog/xml/ssh_banners.xml +8 -0
  34. data/recog/xml/telnet_banners.xml +3 -2
  35. data/recog/xml/tls_jarm.xml +1 -1
  36. data/recog/xml/x11_banners.xml +1 -0
  37. data/recog/xml/x509_issuers.xml +1 -1
  38. data/recog/xml/x509_subjects.xml +0 -1
  39. data/recog.gemspec +14 -13
  40. data/spec/lib/recog/db_spec.rb +37 -36
  41. data/spec/lib/recog/fingerprint/regexp_factory_spec.rb +19 -20
  42. data/spec/lib/recog/fingerprint_spec.rb +44 -42
  43. data/spec/lib/recog/formatter_spec.rb +20 -18
  44. data/spec/lib/recog/match_reporter_spec.rb +35 -30
  45. data/spec/lib/recog/nizer_spec.rb +85 -101
  46. data/spec/lib/recog/verify_reporter_spec.rb +45 -44
  47. data/spec/spec_helper.rb +2 -1
  48. data.tar.gz.sig +1 -3
  49. metadata +3 -3
  50. metadata.gz.sig +0 -0
@@ -381,6 +381,7 @@
381
381
  <param pos="0" name="hw.family" value="MacBook Pro"/>
382
382
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2017, Four Thunderbolt 3 ports)"/>
383
383
  <param pos="0" name="hw.device" value="Laptop"/>
384
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_pro:-"/>
384
385
  </fingerprint>
385
386
 
386
387
  <fingerprint pattern="^model=MacBookPro14,1$">
@@ -394,6 +395,7 @@
394
395
  <param pos="0" name="hw.family" value="MacBook Pro"/>
395
396
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)"/>
396
397
  <param pos="0" name="hw.device" value="Laptop"/>
398
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_pro:-"/>
397
399
  </fingerprint>
398
400
 
399
401
  <fingerprint pattern="^model=MacBookPro13,3$">
@@ -433,6 +435,7 @@
433
435
  <param pos="0" name="hw.family" value="MacBook Pro"/>
434
436
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2016, Two Thunderbolt 3 ports)"/>
435
437
  <param pos="0" name="hw.device" value="Laptop"/>
438
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_pro:-"/>
436
439
  </fingerprint>
437
440
 
438
441
  <fingerprint pattern="^model=MacBookPro12,1$">
@@ -1357,6 +1360,7 @@
1357
1360
  <param pos="0" name="hw.family" value="iMac"/>
1358
1361
  <param pos="0" name="hw.product" value="iMac (Retina 4K, 21.5-inch, 2017)"/>
1359
1362
  <param pos="0" name="hw.device" value="Desktop"/>
1363
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:imac:-"/>
1360
1364
  </fingerprint>
1361
1365
 
1362
1366
  <fingerprint pattern="^model=iMac18,1$">
@@ -1396,6 +1400,7 @@
1396
1400
  <param pos="0" name="hw.family" value="iMac"/>
1397
1401
  <param pos="0" name="hw.product" value="iMac (Retina 4K, 21.5-inch, Late 2015)"/>
1398
1402
  <param pos="0" name="hw.device" value="Desktop"/>
1403
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:imac:-"/>
1399
1404
  </fingerprint>
1400
1405
 
1401
1406
  <fingerprint pattern="^model=iMac16,1$">
@@ -2096,6 +2101,7 @@
2096
2101
  <param pos="0" name="hw.family" value="iPhone"/>
2097
2102
  <param pos="0" name="hw.product" value="iPhone 13 Pro Max"/>
2098
2103
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2104
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_13_pro_max:-"/>
2099
2105
  </fingerprint>
2100
2106
 
2101
2107
  <fingerprint pattern="^model=(?:D63AP|iPhone14,2)$">
@@ -2110,6 +2116,7 @@
2110
2116
  <param pos="0" name="hw.family" value="iPhone"/>
2111
2117
  <param pos="0" name="hw.product" value="iPhone 13 Pro"/>
2112
2118
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2119
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_13_pro:-"/>
2113
2120
  </fingerprint>
2114
2121
 
2115
2122
  <fingerprint pattern="^model=(?:D16AP|iPhone14,4)$">
@@ -2124,6 +2131,7 @@
2124
2131
  <param pos="0" name="hw.family" value="iPhone"/>
2125
2132
  <param pos="0" name="hw.product" value="iPhone 13 mini"/>
2126
2133
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2134
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_13_mini:-"/>
2127
2135
  </fingerprint>
2128
2136
 
2129
2137
  <fingerprint pattern="^model=(?:D17AP|iPhone14,5)$">
@@ -2138,10 +2146,11 @@
2138
2146
  <param pos="0" name="hw.family" value="iPhone"/>
2139
2147
  <param pos="0" name="hw.product" value="iPhone 13"/>
2140
2148
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2149
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_13:-"/>
2141
2150
  </fingerprint>
2142
2151
 
2143
2152
  <fingerprint pattern="^model=(?:D79AP|iPhone12,8)$">
2144
- <description>iPhone SE (2020)</description>
2153
+ <description>iPhone SE (2nd generation)</description>
2145
2154
  <example>model=D79AP</example>
2146
2155
  <example>model=iPhone12,8</example>
2147
2156
  <param pos="0" name="os.vendor" value="Apple"/>
@@ -2150,12 +2159,13 @@
2150
2159
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2151
2160
  <param pos="0" name="hw.vendor" value="Apple"/>
2152
2161
  <param pos="0" name="hw.family" value="iPhone"/>
2153
- <param pos="0" name="hw.product" value="iPhone SE (2020)"/>
2162
+ <param pos="0" name="hw.product" value="iPhone SE (2nd generation)"/>
2154
2163
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2164
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_se_%282nd_generation%29:-"/>
2155
2165
  </fingerprint>
2156
2166
 
2157
2167
  <fingerprint pattern="^model=(?:D54pAP|iPhone13,4)$">
2158
- <description>iPhone 12 Pro Max 5G</description>
2168
+ <description>iPhone 12 Pro Max</description>
2159
2169
  <example>model=D54pAP</example>
2160
2170
  <example>model=iPhone13,4</example>
2161
2171
  <param pos="0" name="os.vendor" value="Apple"/>
@@ -2164,12 +2174,13 @@
2164
2174
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2165
2175
  <param pos="0" name="hw.vendor" value="Apple"/>
2166
2176
  <param pos="0" name="hw.family" value="iPhone"/>
2167
- <param pos="0" name="hw.product" value="iPhone 12 Pro Max 5G"/>
2177
+ <param pos="0" name="hw.product" value="iPhone 12 Pro Max"/>
2168
2178
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2179
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_12_pro_max:-"/>
2169
2180
  </fingerprint>
2170
2181
 
2171
2182
  <fingerprint pattern="^model=(?:D53pAP|iPhone13,3)$">
2172
- <description>iPhone 12 Pro 5G</description>
2183
+ <description>iPhone 12 Pro</description>
2173
2184
  <example>model=D53pAP</example>
2174
2185
  <example>model=iPhone13,3</example>
2175
2186
  <param pos="0" name="os.vendor" value="Apple"/>
@@ -2178,12 +2189,13 @@
2178
2189
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2179
2190
  <param pos="0" name="hw.vendor" value="Apple"/>
2180
2191
  <param pos="0" name="hw.family" value="iPhone"/>
2181
- <param pos="0" name="hw.product" value="iPhone 12 Pro 5G"/>
2192
+ <param pos="0" name="hw.product" value="iPhone 12 Pro"/>
2182
2193
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2194
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_12_pro:-"/>
2183
2195
  </fingerprint>
2184
2196
 
2185
2197
  <fingerprint pattern="^model=(?:D53gAP|iPhone13,2)$">
2186
- <description>iPhone 12 5G</description>
2198
+ <description>iPhone 12</description>
2187
2199
  <example>model=D53gAP</example>
2188
2200
  <example>model=iPhone13,2</example>
2189
2201
  <param pos="0" name="os.vendor" value="Apple"/>
@@ -2192,12 +2204,13 @@
2192
2204
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2193
2205
  <param pos="0" name="hw.vendor" value="Apple"/>
2194
2206
  <param pos="0" name="hw.family" value="iPhone"/>
2195
- <param pos="0" name="hw.product" value="iPhone 12 5G"/>
2207
+ <param pos="0" name="hw.product" value="iPhone 12"/>
2196
2208
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2209
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_12:-"/>
2197
2210
  </fingerprint>
2198
2211
 
2199
2212
  <fingerprint pattern="^model=(?:D52g?AP|Phone13,1)$">
2200
- <description>iPhone 12 Mini 5G</description>
2213
+ <description>iPhone 12 Mini</description>
2201
2214
  <example>model=D52gAP</example>
2202
2215
  <example>model=D52AP</example>
2203
2216
  <example>model=Phone13,1</example>
@@ -2207,8 +2220,9 @@
2207
2220
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2208
2221
  <param pos="0" name="hw.vendor" value="Apple"/>
2209
2222
  <param pos="0" name="hw.family" value="iPhone"/>
2210
- <param pos="0" name="hw.product" value="iPhone 12 Mini 5G"/>
2223
+ <param pos="0" name="hw.product" value="iPhone 12 Mini"/>
2211
2224
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2225
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_12_mini:-"/>
2212
2226
  </fingerprint>
2213
2227
 
2214
2228
  <fingerprint pattern="^model=(?:D431p?AP|iPhone12,5)$">
@@ -2224,6 +2238,7 @@
2224
2238
  <param pos="0" name="hw.family" value="iPhone"/>
2225
2239
  <param pos="0" name="hw.product" value="iPhone 11 Pro Max"/>
2226
2240
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2241
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_11_pro_max:-"/>
2227
2242
  </fingerprint>
2228
2243
 
2229
2244
  <fingerprint pattern="^model=(?:D421p?AP|iPhone12,3)$">
@@ -2239,6 +2254,7 @@
2239
2254
  <param pos="0" name="hw.family" value="iPhone"/>
2240
2255
  <param pos="0" name="hw.product" value="iPhone 11 Pro"/>
2241
2256
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2257
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_11_pro:-"/>
2242
2258
  </fingerprint>
2243
2259
 
2244
2260
  <fingerprint pattern="^model=(?:N104AP|iPhone12,1)$">
@@ -2253,6 +2269,7 @@
2253
2269
  <param pos="0" name="hw.family" value="iPhone"/>
2254
2270
  <param pos="0" name="hw.product" value="iPhone 11"/>
2255
2271
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2272
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_11:-"/>
2256
2273
  </fingerprint>
2257
2274
 
2258
2275
  <fingerprint pattern="^model=(?:D331p?AP|iPhone11,[46])$">
@@ -2269,6 +2286,7 @@
2269
2286
  <param pos="0" name="hw.family" value="iPhone"/>
2270
2287
  <param pos="0" name="hw.product" value="iPhone XS Max"/>
2271
2288
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2289
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_xs_max:-"/>
2272
2290
  </fingerprint>
2273
2291
 
2274
2292
  <fingerprint pattern="^model=(?:D321AP|iPhone11,2)$">
@@ -2283,6 +2301,7 @@
2283
2301
  <param pos="0" name="hw.family" value="iPhone"/>
2284
2302
  <param pos="0" name="hw.product" value="iPhone XS"/>
2285
2303
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2304
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_xs:-"/>
2286
2305
  </fingerprint>
2287
2306
 
2288
2307
  <fingerprint pattern="^model=(?:N841AP|iPhone11,8)$">
@@ -2297,6 +2316,7 @@
2297
2316
  <param pos="0" name="hw.family" value="iPhone"/>
2298
2317
  <param pos="0" name="hw.product" value="iPhone XR"/>
2299
2318
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2319
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_xr:-"/>
2300
2320
  </fingerprint>
2301
2321
 
2302
2322
  <fingerprint pattern="^model=(?:D221?AP|iPhone10,[36])$">
@@ -2313,6 +2333,7 @@
2313
2333
  <param pos="0" name="hw.family" value="iPhone"/>
2314
2334
  <param pos="0" name="hw.product" value="iPhone X"/>
2315
2335
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2336
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_x:-"/>
2316
2337
  </fingerprint>
2317
2338
 
2318
2339
  <fingerprint pattern="^model=(?:D211?A?AP|iPhone10,[25])$">
@@ -2331,6 +2352,7 @@
2331
2352
  <param pos="0" name="hw.family" value="iPhone"/>
2332
2353
  <param pos="0" name="hw.product" value="iPhone 8 Plus"/>
2333
2354
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2355
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_8_plus:-"/>
2334
2356
  </fingerprint>
2335
2357
 
2336
2358
  <fingerprint pattern="^model=(?:D201?A?AP|iPhone10,[14])$">
@@ -2349,6 +2371,7 @@
2349
2371
  <param pos="0" name="hw.family" value="iPhone"/>
2350
2372
  <param pos="0" name="hw.product" value="iPhone 8"/>
2351
2373
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2374
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_8:-"/>
2352
2375
  </fingerprint>
2353
2376
 
2354
2377
  <fingerprint pattern="^model=(?:D111?AP|iPhone9,[24])$">
@@ -2365,6 +2388,7 @@
2365
2388
  <param pos="0" name="hw.family" value="iPhone"/>
2366
2389
  <param pos="0" name="hw.product" value="iPhone 7 Plus"/>
2367
2390
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2391
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_7_plus:-"/>
2368
2392
  </fingerprint>
2369
2393
 
2370
2394
  <fingerprint pattern="^model=(?:D101?AP$|iPhone9,3)">
@@ -2380,10 +2404,11 @@
2380
2404
  <param pos="0" name="hw.family" value="iPhone"/>
2381
2405
  <param pos="0" name="hw.product" value="iPhone 7"/>
2382
2406
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2407
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_7:-"/>
2383
2408
  </fingerprint>
2384
2409
 
2385
2410
  <fingerprint pattern="^model=N69u?AP$">
2386
- <description>iPhone SE</description>
2411
+ <description>iPhone SE (1st generation)</description>
2387
2412
  <example>model=N69AP</example>
2388
2413
  <example>model=N69uAP</example>
2389
2414
  <param pos="0" name="os.vendor" value="Apple"/>
@@ -2392,8 +2417,9 @@
2392
2417
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2393
2418
  <param pos="0" name="hw.vendor" value="Apple"/>
2394
2419
  <param pos="0" name="hw.family" value="iPhone"/>
2395
- <param pos="0" name="hw.product" value="iPhone SE"/>
2420
+ <param pos="0" name="hw.product" value="iPhone SE (1st generation)"/>
2396
2421
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2422
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_se_%281st_generation%29:-"/>
2397
2423
  </fingerprint>
2398
2424
 
2399
2425
  <fingerprint pattern="^model=N66m?AP$">
@@ -2408,6 +2434,7 @@
2408
2434
  <param pos="0" name="hw.family" value="iPhone"/>
2409
2435
  <param pos="0" name="hw.product" value="iPhone 6s Plus"/>
2410
2436
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2437
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_6s_plus:-"/>
2411
2438
  </fingerprint>
2412
2439
 
2413
2440
  <fingerprint pattern="^model=N71m?AP$">
@@ -2422,6 +2449,7 @@
2422
2449
  <param pos="0" name="hw.family" value="iPhone"/>
2423
2450
  <param pos="0" name="hw.product" value="iPhone 6s"/>
2424
2451
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2452
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_6s:-"/>
2425
2453
  </fingerprint>
2426
2454
 
2427
2455
  <fingerprint pattern="^model=N56AP$">
@@ -2435,6 +2463,7 @@
2435
2463
  <param pos="0" name="hw.family" value="iPhone"/>
2436
2464
  <param pos="0" name="hw.product" value="iPhone 6 Plus"/>
2437
2465
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2466
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_6_plus:-"/>
2438
2467
  </fingerprint>
2439
2468
 
2440
2469
  <fingerprint pattern="^model=N61AP$">
@@ -2448,6 +2477,7 @@
2448
2477
  <param pos="0" name="hw.family" value="iPhone"/>
2449
2478
  <param pos="0" name="hw.product" value="iPhone 6"/>
2450
2479
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2480
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_6:-"/>
2451
2481
  </fingerprint>
2452
2482
 
2453
2483
  <fingerprint pattern="^model=N5[13]AP$">
@@ -2462,6 +2492,7 @@
2462
2492
  <param pos="0" name="hw.family" value="iPhone"/>
2463
2493
  <param pos="0" name="hw.product" value="iPhone 5s"/>
2464
2494
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2495
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_5s:-"/>
2465
2496
  </fingerprint>
2466
2497
 
2467
2498
  <fingerprint pattern="^model=N4[89]AP$">
@@ -2476,6 +2507,7 @@
2476
2507
  <param pos="0" name="hw.family" value="iPhone"/>
2477
2508
  <param pos="0" name="hw.product" value="iPhone 5c"/>
2478
2509
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2510
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_5c:-"/>
2479
2511
  </fingerprint>
2480
2512
 
2481
2513
  <fingerprint pattern="^model=N4[12]AP$">
@@ -2520,6 +2552,7 @@
2520
2552
  <param pos="0" name="hw.family" value="iPhone"/>
2521
2553
  <param pos="0" name="hw.product" value="iPhone 4"/>
2522
2554
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2555
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_4:-"/>
2523
2556
  </fingerprint>
2524
2557
 
2525
2558
  <fingerprint pattern="^model=N88AP$">
@@ -2547,10 +2580,11 @@
2547
2580
  <param pos="0" name="hw.family" value="iPhone"/>
2548
2581
  <param pos="0" name="hw.product" value="iPhone 3G"/>
2549
2582
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2583
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_3g:-"/>
2550
2584
  </fingerprint>
2551
2585
 
2552
2586
  <fingerprint pattern="^model=M68AP$">
2553
- <description>iPhone</description>
2587
+ <description>iPhone (1st generation)</description>
2554
2588
  <example>model=M68AP</example>
2555
2589
  <param pos="0" name="os.vendor" value="Apple"/>
2556
2590
  <param pos="0" name="os.family" value="iOS"/>
@@ -2558,9 +2592,9 @@
2558
2592
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2559
2593
  <param pos="0" name="hw.vendor" value="Apple"/>
2560
2594
  <param pos="0" name="hw.family" value="iPhone"/>
2561
- <param pos="0" name="hw.product" value="iPhone"/>
2595
+ <param pos="0" name="hw.product" value="iPhone (1st generation)"/>
2562
2596
  <param pos="0" name="hw.device" value="Mobile Phone"/>
2563
- <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone:-"/>
2597
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_%281st_generation%29:-"/>
2564
2598
  </fingerprint>
2565
2599
 
2566
2600
  <!-- iPod -->
@@ -12,7 +12,6 @@
12
12
  <param pos="0" name="service.vendor" value="Cisco"/>
13
13
  <param pos="0" name="service.family" value="IOS"/>
14
14
  <param pos="0" name="service.product" value="IOS"/>
15
- <param pos="0" name="service.cpe23" value="cpe:/a:cisco:ios:-"/>
16
15
  <param pos="0" name="os.vendor" value="Cisco"/>
17
16
  <param pos="0" name="os.family" value="IOS"/>
18
17
  <param pos="0" name="os.product" value="IOS"/>
@@ -34,7 +33,6 @@
34
33
  <param pos="0" name="service.vendor" value="Cisco"/>
35
34
  <param pos="0" name="service.family" value="IOS"/>
36
35
  <param pos="0" name="service.product" value="IOS"/>
37
- <param pos="0" name="service.cpe23" value="cpe:/a:cisco:ios:-"/>
38
36
  <param pos="0" name="os.vendor" value="Cisco"/>
39
37
  <param pos="0" name="os.family" value="IOS"/>
40
38
  <param pos="0" name="os.product" value="IOS"/>
@@ -165,7 +165,7 @@
165
165
  <example>FRITZ!OS</example>
166
166
  <param pos="0" name="os.vendor" value="AVM"/>
167
167
  <param pos="0" name="os.product" value="FRITZ!OS"/>
168
- <param pos="0" name="os.cpe23" value="cpe:/o:avm:fritz\!os:-"/>
168
+ <param pos="0" name="os.cpe23" value="cpe:/o:avm:fritz%21os:-"/>
169
169
  <param pos="0" name="hw.vendor" value="AVM"/>
170
170
  </fingerprint>
171
171
 
@@ -1610,7 +1610,6 @@
1610
1610
  <param pos="0" name="os.product" value="Adaptive Security Appliance"/>
1611
1611
  <param pos="0" name="os.device" value="Firewall"/>
1612
1612
  <param pos="1" name="os.version"/>
1613
- <param pos="0" name="os.cpe23" value="cpe:/o:cisco:adaptive_security_appliance_software:{os.version}"/>
1614
1613
  <param pos="0" name="hw.vendor" value="Cisco"/>
1615
1614
  <param pos="0" name="hw.family" value="Adaptive Security Appliance"/>
1616
1615
  <param pos="0" name="hw.product" value="Adaptive Security Appliance"/>
@@ -3466,7 +3465,7 @@ Copyright (c) 1995-2005 by Cisco Systems
3466
3465
  <param pos="0" name="os.vendor" value="IBM"/>
3467
3466
  <param pos="0" name="os.family" value="z/OS"/>
3468
3467
  <param pos="0" name="os.product" value="z/OS"/>
3469
- <param pos="0" name="os.cpe23" value="cpe:/o:ibm:z\/os:-"/>
3468
+ <param pos="0" name="os.cpe23" value="cpe:/o:ibm:z%2fos:-"/>
3470
3469
  </fingerprint>
3471
3470
 
3472
3471
  <fingerprint pattern="^BladeCenter Management Module$">
@@ -1876,6 +1876,14 @@
1876
1876
  <param pos="0" name="os.cpe23" value="cpe:/o:microsoft:windows:-"/>
1877
1877
  </fingerprint>
1878
1878
 
1879
+ <fingerprint pattern="^MOVEit Transfer SFTP$">
1880
+ <description>Progress MOVEit Transfer (formerly MOVEit DMZ, MOVEit File Transfer)</description>
1881
+ <example>MOVEit Transfer SFTP</example>
1882
+ <param pos="0" name="service.vendor" value="Progress"/>
1883
+ <param pos="0" name="service.product" value="MOVEit Transfer"/>
1884
+ <param pos="0" name="service.cpe23" value="cpe:/a:progress:moveit_transfer:-"/>
1885
+ </fingerprint>
1886
+
1879
1887
  <fingerprint pattern="^paramiko_([\d\.]+)">
1880
1888
  <description>Paramiko</description>
1881
1889
  <example service.version="2.1.3">paramiko_2.1.3 501 command not implemented ERROR</example>
@@ -1068,8 +1068,8 @@
1068
1068
  <param pos="0" name="os.vendor" value="Moxa"/>
1069
1069
  <param pos="0" name="os.family" value="EDR"/>
1070
1070
  <param pos="0" name="os.device" value="Router"/>
1071
- <param pos="0" name="os.product" value="EDR G903 Firmware"/>
1072
- <param pos="0" name="os.cpe23" value="cpe:/o:moxa:edr_g903_firmware:-"/>
1071
+ <param pos="0" name="os.product" value="EDR-G903 Firmware"/>
1072
+ <param pos="0" name="os.cpe23" value="cpe:/o:moxa:edr-g903_firmware:-"/>
1073
1073
  </fingerprint>
1074
1074
 
1075
1075
  <fingerprint pattern="^EDR-G902 login:">
@@ -1097,6 +1097,7 @@
1097
1097
  <param pos="0" name="os.family" value="Linux"/>
1098
1098
  <param pos="0" name="os.product" value="Linux"/>
1099
1099
  <param pos="1" name="os.version"/>
1100
+ <param pos="0" name="os.cpe23" value="cpe:/o:redhat:linux:{os.version}"/>
1100
1101
  </fingerprint>
1101
1102
 
1102
1103
  <fingerprint pattern="(?m)^Red Hat Enterprise Linux ES release (.*) \(.*\).*Kernel (.*) on a[^ ]* ([^ ]*\d)" flags="REG_MULTILINE">
@@ -92,7 +92,7 @@
92
92
  <example>06d06d07d06d06d06c06d06d06d06d7991b0b1ad2cbf06082e3b1a9dcaaa8d</example>
93
93
  <param pos="0" name="hw.vendor" value="D-Link"/>
94
94
  <param pos="0" name="hw.product" value="DCS-825L"/>
95
- <param pos="0" name="hw.cpe23" value="cpe:/h:d-link:dcs-825l:-"/>
95
+ <param pos="0" name="hw.cpe23" value="cpe:/h:dlink:dcs-825l:-"/>
96
96
  </fingerprint>
97
97
 
98
98
  <fingerprint pattern="^0ed3dd16d25d00000042d43d000000e9435856b7ee99e87c06831602602f2d$">
@@ -183,6 +183,7 @@
183
183
  <param pos="0" name="service.product" value="SCO X server"/>
184
184
  <param pos="0" name="os.product" value="SCO UNIX"/>
185
185
  <param pos="0" name="os.family" value="SCO UNIX"/>
186
+ <param pos="0" name="os.cpe23" value="cpe:/o:sco:sco_unix:-"/>
186
187
  </fingerprint>
187
188
 
188
189
  <fingerprint pattern="^StarNet Communications Corp\.$">
@@ -216,7 +216,6 @@
216
216
  <param pos="0" name="os.vendor" value="Cisco"/>
217
217
  <param pos="0" name="os.family" value="Adaptive Security Appliance"/>
218
218
  <param pos="0" name="os.product" value="Adaptive Security Appliance"/>
219
- <param pos="0" name="os.cpe23" value="cpe:/o:cisco:adaptive_security_appliance_software:-"/>
220
219
  <param pos="0" name="hw.vendor" value="Cisco"/>
221
220
  <param pos="0" name="hw.family" value="Adaptive Security Appliance"/>
222
221
  <param pos="0" name="hw.product" value="Adaptive Security Appliance"/>
@@ -383,6 +382,7 @@
383
382
  <param pos="0" name="os.family" value="Linux"/>
384
383
  <param pos="0" name="os.product" value="FreshTomato"/>
385
384
  <param pos="0" name="os.device" value="Router"/>
385
+ <param pos="0" name="os.cpe23" value="cpe:/o:freshtomato:freshtomato:-"/>
386
386
  </fingerprint>
387
387
 
388
388
  <fingerprint pattern="(?i)^SERIALNUMBER=(\d+),CN=(\S+),OU=ST-VS,O=Bosch Sicherheitssysteme GmbH,L=Grasbrunn,C=DE">
@@ -398,7 +398,6 @@
398
398
  <param pos="0" name="os.vendor" value="Cisco"/>
399
399
  <param pos="0" name="os.family" value="Adaptive Security Appliance"/>
400
400
  <param pos="0" name="os.product" value="Adaptive Security Appliance"/>
401
- <param pos="0" name="os.cpe23" value="cpe:/o:cisco:adaptive_security_appliance_software:-"/>
402
401
  <param pos="0" name="hw.vendor" value="Cisco"/>
403
402
  <param pos="0" name="hw.family" value="Adaptive Security Appliance"/>
404
403
  <param pos="0" name="hw.product" value="Adaptive Security Appliance"/>
data/recog.gemspec CHANGED
@@ -1,33 +1,34 @@
1
- # -*- encoding: utf-8 -*-
2
- $LOAD_PATH.push File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
3
4
  require 'recog/version'
4
5
 
5
6
  Gem::Specification.new do |s|
6
7
  s.name = 'recog'
7
8
  s.version = Recog::VERSION
8
- s.required_ruby_version = '>= 2.1'
9
- s.authors = [
10
- 'Rapid7 Research'
9
+ s.required_ruby_version = '>= 2.5'
10
+ s.authors = [
11
+ 'Rapid7 Research'
11
12
  ]
12
- s.email = [
13
- 'research@rapid7.com'
13
+ s.email = [
14
+ 'research@rapid7.com'
14
15
  ]
15
- s.homepage = "https://www.github.com/rapid7/recog-ruby"
16
- s.summary = %q{Network service fingerprint database, classes, and utilities}
17
- s.description = %q{
16
+ s.homepage = 'https://www.github.com/rapid7/recog-ruby'
17
+ s.summary = 'Network service fingerprint database, classes, and utilities'
18
+ s.description = '
18
19
  Recog is a framework for identifying products, services, operating systems, and hardware by matching
19
20
  fingerprints against data returned from various network probes. Recog makes it simply to extract useful
20
21
  information from web server banners, snmp system description fields, and a whole lot more.
21
- }.gsub(/\s+/, ' ').strip
22
+ '.gsub(/\s+/, ' ').strip
22
23
 
23
24
  s.bindir = 'recog/bin'
24
- s.files = %w(Gemfile Rakefile COPYING LICENSE README.md recog.gemspec .yardopts) +
25
+ s.files = %w[Gemfile Rakefile COPYING LICENSE README.md recog.gemspec .yardopts] +
25
26
  Dir.glob('lib/**/*.rb') +
26
27
  Dir.glob('spec/**/*') +
27
28
  Dir.glob('recog/xml/*') +
28
29
  Dir.glob('recog/bin/recog_match')
29
30
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
30
- s.executables = s.files.grep(%r{^recog/bin/}).map{ |f| File.basename(f) }
31
+ s.executables = s.files.grep(%r{^recog/bin/}).map { |f| File.basename(f) }
31
32
  s.require_paths = ['lib']
32
33
 
33
34
  # ---- Dependencies ----