diff --git a/Cargo.toml b/Cargo.toml index 94d698c..2700feb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,9 +1,9 @@ [package] name = "nrev" -version = "0.4.0" -edition = "2021" -authors = ["shellrow "] -description = "Simple and Fast Network Revealer/Mapper." +version = "0.5.0" +edition = "2024" +authors = ["shellrow "] +description = "Cross-platform Network Mapper" repository = "https://github.com/shellrow/nrev" homepage = "https://github.com/shellrow/nrev" documentation = "https://github.com/shellrow/nrev" @@ -14,34 +14,41 @@ license = "MIT" [dependencies] anyhow = { version = "1" } +tracing = { version = "0.1" } +tracing-subscriber = { version = "0.3", features = ["time", "chrono"] } serde = { version = "1", features = ["derive"] } serde_json = "1" -netdev = { version = "0.34", features = ["serde"] } -nex = { version = "0.19.1", features = ["serde"] } +bytes = "1" +netdev = { version = "0.37", features = ["serde"] } +nex = { version = "0.23", features = ["serde"] } futures = {version = "0.3", features = ["executor", "thread-pool"]} rustls = { version = "0.23", default-features = false, features = ["ring", "std"] } rustls-native-certs = "0.7" rustls-pemfile = "2.1" rustls-pki-types = "1.8" -tokio = { version = "1" } -tokio-rustls = { version = "0.26", default-features = false, features = ["ring"]} -hickory-resolver = { version = "0.24" } +x509-parser = "0.17" +tokio = { version = "1", features = ["macros", "rt-multi-thread", "time", "net", "io-util", "sync"] } +tokio-rustls = { version = "0.26", default-features = false, features = ["ring"] } +hickory-proto = "0.25" +hickory-resolver = { version = "0.25" } chrono = { version = "0.4", features = ["serde"] } -uuid = { version = "1.16", features = ["v4","v5","fast-rng","macro-diagnostics"] } -bincode = "1.3" -phf = { version = "0.11", features = ["macros"] } +uuid = { version = "1.3", features = ["v4","v5","fast-rng","macro-diagnostics"] } rand = "0.8" -clap = { version = "4.5", features = ["cargo"] } -indicatif = "0.17" -inquire = "0.7" +clap = { version = "4.5", features = ["derive", "cargo"] } +indicatif = { version = "0.18" } +tracing-indicatif = "0.3" +inquire = "0.6" ipnet = "2.11" -num_cpus = "1.16" +num_cpus = "1.17" termtree = "0.5" - -[target.'cfg(windows)'.dependencies] -winreg = "0.55" - -# The profile that 'cargo dist' will build with -[profile.dist] -inherits = "release" -lto = "thin" +ndb-oui = { version = "0.3", features = ["bundled"] } +ndb-tcp-service = { version = "0.3", features = ["bundled"] } +ndb-udp-service = { version = "0.3", features = ["bundled"] } +home = "0.5" +base64 = "0.22" +regex = "1.11" +fastrand = "2.3" +quinn = "0.11" +h3 = "0.0.8" +h3-quinn = "0.0.10" +http = "1.3" diff --git a/LICENSE b/LICENSE index ff072bd..81c348e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 shellrow +Copyright (c) 2025 shellrow Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index a7b918b..723407d 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ [crates-url]: https://crates.io/crates/nrev # nrev [![Crates.io][crates-badge]][crates-url] -Simple and Fast Network Revealer/Mapper. Written in Rust. -Designed to be used in network mapping, probe, and security tests. +Cross-platform Network Mapper. +Designed to be used in network scan, mapping and probes. ## Features - Port Scan @@ -12,7 +12,6 @@ Designed to be used in network mapping, probe, and security tests. - Traceroute - Neighbor Discovery - Subdomain scan -- Show Network Interfaces ## Supported platforms - Linux @@ -47,64 +46,60 @@ cargo binstall nrev ``` ## Basic Usage -### Default Port Scan -To scan the default 1000 ports on a target, simply specify the target +### Port Scan Example +To scan the default 1000 ports on a target, simply specify the target (-s for service detection, -o for OS detection) ``` -nrev --target scanme.nmap.org +nrev port yourcorpone.com -s -o +nrev port 192.168.1.10 -s -o ``` -Sub-commands and Options +### Sub-commands and Options ``` -Usage: nrev [OPTIONS] [COMMAND] +Usage: nrev [OPTIONS] Commands: - port Scan port. nrev port --help for more information - host Scan host in specified network or host-list. nrev host --help for more information - ping Ping to specified host. nrev ping --help for more information - trace Traceroute to specified host. nrev trace --help for more information - subdomain Find subdomains. nrev subdomain --help for more information - nei Resolve IP address to MAC address - interfaces Show network interfaces - interface Show default network interface - check Check dependencies (Windows only) - help Print this message or the help of the given subcommand(s) + port Scan ports on the target(s) (TCP/QUIC) + host Discover alive hosts (ICMP/UDP/TCP etc.) + ping Simple ping (ICMP/UDP/TCP) + trace Traceroute (UDP) + nei Neighbor discovery (ARP/NDP) + domain Subdomain enumeration + interface Show network interface(s) + help Print this message or the help of the given subcommand(s) Options: - -t, --target Specify the target host. IP address or Hostname - -i, --interface Specify the network interface - --noping Disable initial ping - -F, --full Scan all ports (1-65535) - -j, --json Displays results in JSON format. - -o, --save Save scan result in JSON format - Example: -o result.json - -h, --help Print help - -V, --version Print version + --log-level Global log level [default: info] [possible values: error, warn, info, debug, trace] + --log-file Log to file (in addition to stdout) + --log-file-path Log file path (default: ~/.nrev/logs/nrev.log) + --quiet Suppress all log output (only errors are shown) + -o, --output Save output to file (JSON format) + --no-stdout Suppress stdout console output (only save to file if -o is set) + -h, --help Print help + -V, --version Print version ``` +See `nrev -h` for more detail. + ## Examples ### Port scan -Scan default 1000 ports +Scan default 1000 ports and enable service and OS detection for open ports ``` -nrev port scanme.nmap.org +nrev port yourcorpone.com -s -o ``` Specify the ports ``` -nrev port scanme.nmap.org --ports 22,80,443,5000,8080 +nrev port yourcorpone.com --ports 22,80,443,5000,8080 ``` Specify the range ``` -nrev port scanme.nmap.org --range 20-100 -``` - -Scan well-known ports -``` -nrev port scanme.nmap.org --wellknown +nrev port yourcorpone.com --ports 20-100 ``` #### Settings -By default, nrev determines the waiting time until packet reception (before concluding the scan task) based on the results of the initial PING. -The initial PING is executed in the order of ICMP Ping, UDP Ping, TCP Ping (on port 80), and if successful, proceeds to the next scan task. +By default, nrev determines the connection timeout or waiting time until packet reception (before concluding the scan task) based on the results of the initial PING. +The initial PING is executed in the order of ICMP Ping, UDP Ping, TCP Ping, and if successful, proceeds to the next scan task. If all PING attempts fail, nrev exits before executing the scan. This step can be skipped by setting the `--noping` flag. For other settings, please refer to `nrev port -h` for details. @@ -113,45 +108,46 @@ ICMP Host scan ``` nrev host 192.168.1.0/24 ``` + ``` -nrev host +nrev host /path/to/list/hostlist.txt ``` TCP Host scan ``` -nrev host 192.168.1.0/24 -P TCP --port 80 +nrev host 192.168.1.0/24 --proto tcp --ports 80 ``` ### Ping Default ICMP Ping ``` -nrev ping 1.1.1.1 +nrev ping 1.1.1.1 -c 4 ``` UDP Ping ``` -nrev ping 1.1.1.1 -P UDP +nrev ping 1.1.1.1 --proto udp ``` TCP Ping ``` -nrev ping 1.1.1.1:443 -P TCP +nrev ping 1.1.1.1 --proto tcp --port 80 ``` ### Traceroute -TCP Ping +UDP Trace ``` nrev trace 8.8.8.8 ``` You can specify the interval in milliseconds for faster trace. ``` -nrev trace 8.8.8.8 --rate 500 +nrev trace 8.8.8.8 --interval-ms 500 ``` ### Subdomain scan ``` -nrev subdomain google.com +nrev subdomain yourcorpone.com --wordlist /path/to/wordlist/top-1000.txt ``` ### Neighbor (ARP/NDP) @@ -161,7 +157,7 @@ nrev nei 192.168.1.1 ### Specify the network interface ``` -nrev -i tun0 port 10.10.11.14 +nrev port 10.10.11.14 --interface tun0 ``` ## Privileges @@ -227,4 +223,4 @@ sudo chmod-bpf install - Place the Packet.lib file from the [Npcap SDK](https://npcap.com/#download) or WinPcap Developers pack in a directory named lib at the root of this repository. - You can use any of the locations listed in the %LIB% or $Env:LIB environment variables. - For the 64-bit toolchain, the Packet.lib is located in /Lib/x64/Packet.lib. - - For the 32-bit toolchain, the Packet.lib is located in /Lib/Packet.lib. + - For the 32-bit toolchain, the Packet.lib is located in /Lib/Packet.lib. \ No newline at end of file diff --git a/resources/ndb-default-ports.bin b/resources/ndb-default-ports.bin deleted file mode 100644 index 8320bed..0000000 Binary files a/resources/ndb-default-ports.bin and /dev/null differ diff --git a/resources/ndb-http-ports.bin b/resources/ndb-http-ports.bin deleted file mode 100644 index c42e547..0000000 Binary files a/resources/ndb-http-ports.bin and /dev/null differ diff --git a/resources/ndb-https-ports.bin b/resources/ndb-https-ports.bin deleted file mode 100644 index 6c2267e..0000000 Binary files a/resources/ndb-https-ports.bin and /dev/null differ diff --git a/resources/ndb-os-family-fingerprint.bin b/resources/ndb-os-family-fingerprint.bin deleted file mode 100644 index d658722..0000000 Binary files a/resources/ndb-os-family-fingerprint.bin and /dev/null differ diff --git a/resources/ndb-os-family.bin b/resources/ndb-os-family.bin deleted file mode 100644 index 65ad8ec..0000000 Binary files a/resources/ndb-os-family.bin and /dev/null differ diff --git a/resources/ndb-os-ttl.bin b/resources/ndb-os-ttl.bin deleted file mode 100644 index c6a23fb..0000000 Binary files a/resources/ndb-os-ttl.bin and /dev/null differ diff --git a/resources/ndb-oui-vm.bin b/resources/ndb-oui-vm.bin deleted file mode 100644 index 60f84e4..0000000 Binary files a/resources/ndb-oui-vm.bin and /dev/null differ diff --git a/resources/ndb-oui.bin b/resources/ndb-oui.bin deleted file mode 100644 index d9538d0..0000000 Binary files a/resources/ndb-oui.bin and /dev/null differ diff --git a/resources/ndb-subdomain.bin b/resources/ndb-subdomain.bin deleted file mode 100644 index 5bba888..0000000 Binary files a/resources/ndb-subdomain.bin and /dev/null differ diff --git a/resources/ndb-tcp-service.bin b/resources/ndb-tcp-service.bin deleted file mode 100644 index 99e21f5..0000000 Binary files a/resources/ndb-tcp-service.bin and /dev/null differ diff --git a/resources/ndb-wellknown-ports.bin b/resources/ndb-wellknown-ports.bin deleted file mode 100644 index ad9bba8..0000000 Binary files a/resources/ndb-wellknown-ports.bin and /dev/null differ diff --git a/resources/nrev-default-ports.json b/resources/nrev-default-ports.json new file mode 100644 index 0000000..e86190d --- /dev/null +++ b/resources/nrev-default-ports.json @@ -0,0 +1,1002 @@ +[ + 1, + 3, + 4, + 6, + 7, + 9, + 13, + 17, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 30, + 32, + 33, + 37, + 42, + 43, + 49, + 53, + 70, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 88, + 89, + 90, + 99, + 100, + 106, + 109, + 110, + 111, + 113, + 119, + 125, + 135, + 139, + 143, + 144, + 146, + 161, + 163, + 179, + 199, + 211, + 212, + 222, + 254, + 255, + 256, + 259, + 264, + 280, + 301, + 306, + 311, + 340, + 366, + 389, + 406, + 407, + 416, + 417, + 425, + 427, + 443, + 444, + 445, + 458, + 464, + 465, + 481, + 497, + 500, + 512, + 513, + 514, + 515, + 524, + 541, + 543, + 544, + 545, + 548, + 554, + 555, + 563, + 587, + 593, + 616, + 617, + 625, + 631, + 636, + 646, + 648, + 666, + 667, + 668, + 683, + 687, + 691, + 700, + 705, + 711, + 714, + 720, + 722, + 726, + 749, + 765, + 777, + 783, + 787, + 800, + 801, + 808, + 843, + 873, + 880, + 888, + 898, + 900, + 901, + 902, + 903, + 911, + 912, + 981, + 987, + 990, + 992, + 993, + 995, + 999, + 1000, + 1001, + 1002, + 1007, + 1009, + 1010, + 1011, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1102, + 1104, + 1105, + 1106, + 1107, + 1108, + 1110, + 1111, + 1112, + 1113, + 1114, + 1117, + 1119, + 1121, + 1122, + 1123, + 1124, + 1126, + 1130, + 1131, + 1132, + 1137, + 1138, + 1141, + 1145, + 1147, + 1148, + 1149, + 1151, + 1152, + 1154, + 1163, + 1164, + 1165, + 1166, + 1169, + 1174, + 1175, + 1183, + 1185, + 1186, + 1187, + 1192, + 1194, + 1198, + 1199, + 1201, + 1213, + 1216, + 1217, + 1218, + 1233, + 1234, + 1236, + 1244, + 1247, + 1248, + 1259, + 1271, + 1272, + 1277, + 1287, + 1296, + 1300, + 1301, + 1309, + 1310, + 1311, + 1322, + 1328, + 1334, + 1352, + 1417, + 1433, + 1434, + 1443, + 1455, + 1461, + 1494, + 1500, + 1501, + 1503, + 1521, + 1524, + 1533, + 1556, + 1580, + 1583, + 1594, + 1600, + 1641, + 1658, + 1666, + 1687, + 1688, + 1700, + 1717, + 1718, + 1719, + 1720, + 1721, + 1723, + 1755, + 1761, + 1782, + 1783, + 1801, + 1805, + 1812, + 1839, + 1840, + 1862, + 1863, + 1864, + 1875, + 1900, + 1914, + 1935, + 1947, + 1971, + 1972, + 1974, + 1984, + 1998, + 1999, + 2000, + 2001, + 2002, + 2003, + 2004, + 2005, + 2006, + 2007, + 2008, + 2009, + 2010, + 2013, + 2020, + 2021, + 2022, + 2030, + 2033, + 2034, + 2035, + 2038, + 2040, + 2041, + 2042, + 2043, + 2045, + 2046, + 2047, + 2048, + 2049, + 2065, + 2068, + 2099, + 2100, + 2103, + 2105, + 2106, + 2107, + 2111, + 2119, + 2121, + 2126, + 2135, + 2144, + 2160, + 2161, + 2170, + 2179, + 2190, + 2191, + 2196, + 2200, + 2222, + 2251, + 2260, + 2288, + 2301, + 2323, + 2366, + 2381, + 2382, + 2383, + 2393, + 2394, + 2399, + 2401, + 2492, + 2500, + 2522, + 2525, + 2557, + 2601, + 2602, + 2604, + 2605, + 2607, + 2608, + 2638, + 2701, + 2702, + 2710, + 2717, + 2718, + 2725, + 2800, + 2809, + 2811, + 2869, + 2875, + 2909, + 2910, + 2920, + 2967, + 2968, + 2998, + 3000, + 3001, + 3003, + 3005, + 3006, + 3007, + 3011, + 3013, + 3017, + 3030, + 3031, + 3052, + 3071, + 3077, + 3128, + 3168, + 3211, + 3221, + 3260, + 3261, + 3268, + 3269, + 3283, + 3300, + 3301, + 3306, + 3322, + 3323, + 3324, + 3325, + 3333, + 3351, + 3367, + 3369, + 3370, + 3371, + 3372, + 3389, + 3390, + 3404, + 3476, + 3493, + 3517, + 3527, + 3546, + 3551, + 3580, + 3659, + 3689, + 3690, + 3703, + 3737, + 3766, + 3784, + 3800, + 3801, + 3809, + 3814, + 3826, + 3827, + 3828, + 3851, + 3869, + 3871, + 3878, + 3880, + 3889, + 3905, + 3914, + 3918, + 3920, + 3945, + 3971, + 3986, + 3995, + 3998, + 4000, + 4001, + 4002, + 4003, + 4004, + 4005, + 4006, + 4045, + 4111, + 4125, + 4126, + 4129, + 4224, + 4242, + 4279, + 4321, + 4343, + 4443, + 4444, + 4445, + 4446, + 4449, + 4550, + 4567, + 4662, + 4848, + 4899, + 4900, + 4998, + 5000, + 5001, + 5002, + 5003, + 5004, + 5009, + 5030, + 5033, + 5050, + 5051, + 5054, + 5060, + 5061, + 5080, + 5087, + 5100, + 5101, + 5102, + 5120, + 5190, + 5200, + 5214, + 5221, + 5222, + 5225, + 5226, + 5269, + 5280, + 5298, + 5357, + 5405, + 5414, + 5431, + 5432, + 5440, + 5500, + 5510, + 5544, + 5550, + 5555, + 5560, + 5566, + 5631, + 5633, + 5666, + 5678, + 5679, + 5718, + 5730, + 5800, + 5801, + 5802, + 5810, + 5811, + 5815, + 5822, + 5825, + 5850, + 5859, + 5862, + 5877, + 5900, + 5901, + 5902, + 5903, + 5904, + 5906, + 5907, + 5910, + 5911, + 5915, + 5922, + 5925, + 5950, + 5952, + 5959, + 5960, + 5961, + 5962, + 5963, + 5987, + 5988, + 5989, + 5998, + 5999, + 6000, + 6001, + 6002, + 6003, + 6004, + 6005, + 6006, + 6007, + 6009, + 6025, + 6059, + 6100, + 6101, + 6106, + 6112, + 6123, + 6129, + 6156, + 6346, + 6389, + 6502, + 6510, + 6543, + 6547, + 6565, + 6566, + 6567, + 6580, + 6646, + 6666, + 6667, + 6668, + 6669, + 6689, + 6692, + 6699, + 6779, + 6788, + 6789, + 6792, + 6839, + 6881, + 6901, + 6969, + 7000, + 7001, + 7002, + 7004, + 7007, + 7019, + 7025, + 7070, + 7100, + 7103, + 7106, + 7200, + 7201, + 7402, + 7435, + 7443, + 7496, + 7512, + 7625, + 7627, + 7676, + 7741, + 7777, + 7778, + 7800, + 7844, + 7845, + 7911, + 7920, + 7921, + 7937, + 7938, + 7999, + 8000, + 8001, + 8002, + 8007, + 8008, + 8009, + 8010, + 8011, + 8021, + 8022, + 8031, + 8042, + 8045, + 8080, + 8081, + 8082, + 8083, + 8084, + 8085, + 8086, + 8087, + 8088, + 8089, + 8090, + 8093, + 8099, + 8100, + 8180, + 8181, + 8192, + 8193, + 8194, + 8200, + 8222, + 8254, + 8290, + 8291, + 8292, + 8300, + 8333, + 8383, + 8400, + 8402, + 8443, + 8500, + 8600, + 8649, + 8651, + 8652, + 8654, + 8701, + 8800, + 8873, + 8888, + 8899, + 8994, + 9000, + 9001, + 9002, + 9003, + 9009, + 9010, + 9011, + 9040, + 9050, + 9071, + 9080, + 9081, + 9090, + 9091, + 9099, + 9100, + 9101, + 9102, + 9103, + 9110, + 9111, + 9200, + 9207, + 9220, + 9290, + 9415, + 9418, + 9485, + 9500, + 9502, + 9503, + 9535, + 9575, + 9593, + 9594, + 9595, + 9618, + 9666, + 9876, + 9877, + 9878, + 9898, + 9900, + 9917, + 9929, + 9943, + 9944, + 9968, + 9998, + 9999, + 10000, + 10001, + 10002, + 10003, + 10004, + 10009, + 10010, + 10012, + 10024, + 10025, + 10082, + 10180, + 10215, + 10243, + 10566, + 10616, + 10617, + 10621, + 10626, + 10628, + 10629, + 10778, + 11110, + 11111, + 11967, + 12000, + 12174, + 12265, + 12345, + 13456, + 13722, + 13782, + 13783, + 14000, + 14238, + 14441, + 14442, + 15000, + 15002, + 15003, + 15004, + 15660, + 15742, + 16000, + 16001, + 16012, + 16016, + 16018, + 16080, + 16113, + 16992, + 16993, + 17877, + 17988, + 18040, + 18101, + 18988, + 19101, + 19283, + 19315, + 19350, + 19780, + 19801, + 19842, + 20000, + 20005, + 20031, + 20221, + 20222, + 20828, + 21571, + 22939, + 23502, + 24444, + 24800, + 25734, + 25735, + 26214, + 27000, + 27352, + 27353, + 27355, + 27356, + 27715, + 28201, + 30000, + 30718, + 30951, + 31038, + 31337, + 32768, + 32769, + 32770, + 32771, + 32772, + 32773, + 32774, + 32775, + 32776, + 32777, + 32778, + 32779, + 32780, + 32781, + 32782, + 32783, + 32784, + 33354, + 33899, + 34571, + 34572, + 38292, + 40193, + 40911, + 42510, + 44176, + 44442, + 44443, + 44501, + 45100, + 48080, + 49152, + 49153, + 49154, + 49155, + 49156, + 49157, + 49158, + 49159, + 49160, + 49161, + 49163, + 49165, + 49167, + 49175, + 49176, + 49400, + 49999, + 50000, + 50001, + 50002, + 50003, + 50006, + 50051, + 50052, + 50300, + 50389, + 50500, + 50636, + 50800, + 51103, + 51493, + 51820, + 52673, + 52822, + 52848, + 52869, + 54045, + 54328, + 55055, + 55056, + 55555, + 55600, + 56737, + 56738, + 57797, + 58080, + 60020, + 60443, + 61532, + 61900, + 62078, + 63331, + 64623, + 64680, + 65000, + 65129 +] \ No newline at end of file diff --git a/resources/nrev-os-class-ttl.json b/resources/nrev-os-class-ttl.json new file mode 100644 index 0000000..69c7fd8 --- /dev/null +++ b/resources/nrev-os-class-ttl.json @@ -0,0 +1,17 @@ +[ + { + "os_class": "UnixLike", + "os_description": "Unix-like: Linux / BSD / Darwin", + "initial_ttl": 64 + }, + { + "os_class": "Windows", + "os_description": "Microsoft Windows family", + "initial_ttl": 128 + }, + { + "os_class": "UnixLike", + "os_description": "NetworkOS or Unix-like", + "initial_ttl": 255 + } +] diff --git a/resources/nrev-os-db.json b/resources/nrev-os-db.json new file mode 100644 index 0000000..5f5efe6 --- /dev/null +++ b/resources/nrev-os-db.json @@ -0,0 +1,72429 @@ +{ + "meta": { + "name": "OS Database", + "version": "1.0" + }, + "signatures": [ + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:2n:helios" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:2wire:bt2700hg-v" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:2wire:1701hg" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:2wire:1701hg", + "cpe:/h:2wire:2700hg", + "cpe:/h:2wire:2700hg-b", + "cpe:/h:2wire:2701hg-b", + "cpe:/h:2wire:rg2701hg", + "cpe:/h:2wire:3800hgv-b" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:2wire:2700hg-b" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:2wire:2701hg" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:2wire:2701hg-b" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:2wire:2701hg-b" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:2wire:2701hg-g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:2wire:1000sw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:officeconnect_812" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:3com:3016" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:3com:officeconnect_3cr858-91" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:3com:3924" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:huawei:vrp:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:huawei:vrp:3.10" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:3com:4500g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:3com:5500-ei" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:3com:5500-ei" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:huawei:vrp:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/h:3com:baseline_switch_2226-sfp_plus" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:3com:baseline_switch_2250-sfp_plus" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 256 + ] + }, + "cpe": [ + "cpe:/h:3com:baseline_switch_2924-sfp", + "cpe:/h:cisco:esw-520" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_3300" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_3300" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_3300_xm" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_3300_xm" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_3300_xm", + "cpe:/h:3com:superstack_3_switch_4200", + "cpe:/h:3com:superstack_3_switch_4200_se" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_3812" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_3870" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_4200", + "cpe:/h:3com:superstack_3_switch_4200t" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_4400" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_4400_se" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_4400_se" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_4500" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_3_switch_4500" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_ii_3300" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_ii_3900-36" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:superstack_switch_4200" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:3com:switch_4200" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:3com:switch_4200g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:3com:7760" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:3com:officeconnect_3crwdr100a-72" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/h:3com:officeconnect_3crwe554g72t" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/h:3com:officeconnect_3crwer100-75" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:3com:officeconnect_3crwer100-75" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:3m:ct-30" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:a-tec:ms347s", + "cpe:/h:mapower:kc31n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:aastra:aip6500" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:aastra:57i" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:aastra:6731i", + "cpe:/h:apple:airport_express" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:aastra:6739i" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:aastra:a510" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:aceex:br41" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:actiontec:gt701" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/h:actiontec:mi424wr-gen3i", + "cpe:/o:linux:linux_kernel" + ] + }, + { + "signature": { + "order_key": "MSS,MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4500 + ] + }, + "cpe": [ + "cpe:/h:actiontec:r3010uw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/h:adaptec:snap_server_100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/h:adaptec:snap_server_100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 1400 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3500 + ] + }, + "cpe": [ + "cpe:/o:adtran:aos:10" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:adtran:aos:18.02.01.00.e" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3500 + ] + }, + "cpe": [ + "cpe:/h:adtran:netvanta_3430", + "cpe:/h:adtran:netvanta_1224r" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 3500 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:adtran:total_access_5000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:adtran:total_access_624" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:adtran:total_access_904" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13636 + ] + }, + "cpe": [ + "cpe:/h:adtran:424rg" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:advanced_illumination:dcs-100e" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:aerohive:hiveos:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:aerohive:hiveos:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:aerohive:hiveos:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:aerohive:hiveos:6.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:aerohive:hiveos:7.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:aethra:starvoice_1042" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:aethra:vega_x3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/h:agfa:drystar_5500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:airlive:wt-2000r", + "cpe:/h:dlink:di-524", + "cpe:/h:dlink:di-604", + "cpe:/h:smc:smc7004vbr", + "cpe:/h:zyxel:prestige_320w" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1448 + ] + }, + "cpe": [ + "cpe:/h:airmagnet:smartedge", + "cpe:/h:foscam:fi8904w", + "cpe:/h:foscam:f18910w", + "cpe:/h:foscam:f18918w", + "cpe:/h:instar:in-3010", + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:airvana:c1-600-rt", + "cpe:/o:linux:linux_kernel:2.6.21" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:alcatel:speedtouch_510" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:alcatel:omnistack_6024", + "cpe:/h:enterasys:vh-2402s2", + "cpe:/h:dell:1815dn", + "cpe:/h:samsung:scx-6x22" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:alcatel:4035" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:alcatel-lucent:omnipcx", + "cpe:/o:linux:linux_kernel:2.4.17" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:alcatel-lucent:gd3", + "cpe:/o:linux:linux_kernel:2.6.23" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:alcatel-lucent:omniswitch_6000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:alcatel-lucent:omniswitch_6000", + "cpe:/h:quantum:dxi8500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:alcatel-lucent:omniswitch_6850" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:alcatel-lucent:omniswitch_6850" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:alcatel-lucent:sr_os:9.0.r9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:allen-bradley:micrologix_1100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:advaoptical:fsp_150cc-825" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/o:alliedtelesis:alliedware:54291-05" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesis:at-8000s", + "cpe:/h:dell:powerconnect_2824", + "cpe:/h:dell:powerconnect_3448", + "cpe:/h:dell:powerconnect_5316m", + "cpe:/h:dell:powerconnect_5324", + "cpe:/h:linksys:sfe2000p", + "cpe:/h:linksys:srw2024", + "cpe:/h:linksys:srw2048", + "cpe:/h:linksys:srw224g4", + "cpe:/h:tp-link:tl-sl3428" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesis:at-9000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,EOL", + "set_key": "{EOL,MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesyn:at-ar300l", + "cpe:/o:alliedtelesyn:alliedware" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesyn:at-ar410", + "cpe:/o:alliedtelesyn:alliedware" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesyn:at-ar750s", + "cpe:/o:alliedtelesyn:alliedware" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesyn:at-8326gb" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesyn:at-8350gb" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesyn:at-9006" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesyn:at-9448ts" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesyn:at-gs950" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesyn:at-gs950", + "cpe:/h:dlink:des-3226l", + "cpe:/h:dlink:dsl-2750u" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesyn:rapier_24i" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesyn:rapier_g6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:allnet:2210", + "cpe:/h:cisco:mds_9124", + "cpe:/h:cisco:mds_9216i", + "cpe:/o:cisco:san_os:3", + "cpe:/h:nortel:ip_phone_1535" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17280 + ] + }, + "cpe": [ + "cpe:/h:allworx:9212" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 1500 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:xerox:phaser_6250n", + "cpe:/h:xerox:phaser_6350dt", + "cpe:/h:xerox:phaser_8560mfp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:ambit:u10c018", + "cpe:/h:cisco:epc3925" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 7300 + ] + }, + "cpe": [ + "cpe:/o:amiga:amigaos:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 7300 + ] + }, + "cpe": [ + "cpe:/o:amiga:amigaos:3.9" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4104 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:2.7.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:2.7.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1600 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:3.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:3.5.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:3.7.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:3.x" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:3.3.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1600 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:3.0.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4992 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:3.3.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1600 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 5392 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/h:apc:smart-ups_rt_5000va", + "cpe:/h:apc:smart-ups_x_1000va", + "cpe:/o:apc:aos:5.1.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5352 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:6.5.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:6.8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:apc:aos:7.0.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 21720 + ] + }, + "cpe": [ + "cpe:/o:apc:aos" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 21900 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/h:apc:silicon_dp320e" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:apple:a_ux:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:apple:a_ux:3.1.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:apple_tv:5" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/a:apple:apple_tv:5.2.1", + "cpe:/a:apple:apple_tv:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:apple:airport_extreme" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:apple:airport_express" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:apple:airport_express" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:apple:airport_extreme", + "cpe:/h:apple:time_capsule:7.7.2", + "cpe:/o:netbsd:netbsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:apple:airport_extreme" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:apple:airport_extreme" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:apple:airport_extreme" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:apple:airport_extreme" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP,MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:apple:airport_extreme" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP,MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:apple:airport_extreme" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:10" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:11", + "cpe:/o:apple:iphone_os:12", + "cpe:/o:apple:iphone_os:13", + "cpe:/o:apple:mac_os_x:10.13", + "cpe:/o:apple:mac_os_x:10.14", + "cpe:/o:apple:mac_os_x:10.15" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:13.7" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:14" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:14" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:14", + "cpe:/o:apple:iphone_os:15", + "cpe:/o:apple:tvos:14", + "cpe:/o:apple:tvos:16" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:14.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:14.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:14.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:14.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": null + }, + "cpe": [ + "cpe:/o:apple:iphone_os:15" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:15", + "cpe:/o:apple:iphone_os:16" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:15.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:15.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:15.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:15.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:15.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:15.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:15.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:15.7" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:16.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4.3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4.3.3", + "cpe:/o:apple:iphone_os:4.3.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4.3.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4", + "cpe:/o:apple:iphone_os:4", + "cpe:/o:apple:mac_os_x:10.7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4", + "cpe:/o:apple:iphone_os:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4.3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL,MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4.3.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:4", + "cpe:/o:apple:iphone_os:4", + "cpe:/o:apple:mac_os_x:10.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:5.0", + "cpe:/o:apple:iphone_os:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:5.0.1", + "cpe:/o:apple:iphone_os:5.0.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:5.0.1", + "cpe:/o:apple:iphone_os:5.0.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:5.1.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:5", + "cpe:/o:apple:iphone_os:5", + "cpe:/o:apple:iphone_os:6", + "cpe:/o:apple:iphone_os:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:5", + "cpe:/o:apple:mac_os_x:10.8", + "cpe:/o:apple:mac_os_x:10.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:6.1.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:6.0.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:6.1.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:6.1.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:7.1.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:8.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:8", + "cpe:/o:apple:iphone_os:9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:8", + "cpe:/o:apple:iphone_os:9", + "cpe:/o:apple:mac_os_x:10.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:9" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:9.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:9.3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:1.1.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:1.1.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:1", + "cpe:/o:apple:iphone_os:1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:2.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 18824 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:2.1" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:2.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:2.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:2.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:2", + "cpe:/o:apple:iphone_os:2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:2.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:2.2.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:2.1", + "cpe:/o:apple:iphone_os:2.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:3", + "cpe:/o:apple:iphone_os:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:3", + "cpe:/o:apple:iphone_os:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:3", + "cpe:/o:apple:iphone_os:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:3.0.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:3.1.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:3", + "cpe:/o:apple:iphone_os:4.2.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:iphone_os" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.2.8" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.3.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.3.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.3.9" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.3.9" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.3.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.3", + "cpe:/o:apple:mac_os_x:10.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x_server:10.3.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL,MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5", + "cpe:/o:apple:mac_os_x:10.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL,MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5", + "cpe:/o:apple:mac_os_x:10.6", + "cpe:/o:apple:iphone_os:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5", + "cpe:/o:apple:mac_os_x:10.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL,MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5", + "cpe:/o:apple:mac_os_x:10.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x_server:10.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x_server:10.5.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL,MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7", + "cpe:/o:apple:mac_os_x:10.8", + "cpe:/o:apple:mac_os_x:10.9", + "cpe:/o:apple:mac_os_x:10.10", + "cpe:/o:apple:mac_os_x:10.11", + "cpe:/o:apple:mac_os_x:10.12", + "cpe:/o:apple:iphone_os:4", + "cpe:/a:apple:apple_tv:4", + "cpe:/o:apple:iphone_os:4", + "cpe:/o:apple:iphone_os:5", + "cpe:/o:apple:iphone_os:6", + "cpe:/o:apple:iphone_os:7", + "cpe:/o:apple:iphone_os:8", + "cpe:/o:apple:iphone_os:9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL,MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7", + "cpe:/o:apple:iphone_os:4.3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.2" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.2", + "cpe:/o:apple:iphone_os:4", + "cpe:/o:apple:iphone_os:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.4", + "cpe:/o:apple:iphone_os:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL,MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.7", + "cpe:/o:apple:iphone_os:4", + "cpe:/o:apple:iphone_os:4", + "cpe:/o:apple:iphone_os:5" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os:8" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os:9" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 0, + 32768 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os:9.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.12.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.12.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.13.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.14" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.14" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.14", + "cpe:/o:apple:mac_os_x:10.15", + "cpe:/o:apple:mac_os_x:11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.15" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.15" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.15" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.15", + "cpe:/o:apple:mac_os_x:11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:11", + "cpe:/o:apple:mac_os_x:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:11", + "cpe:/o:apple:mac_os_x:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:11", + "cpe:/o:apple:mac_os_x:12", + "cpe:/o:apple:mac_os_x:13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:12" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:12", + "cpe:/o:apple:mac_os_x:13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:12", + "cpe:/o:apple:iphone_os:14", + "cpe:/o:apple:iphone_os:15", + "cpe:/o:apple:iphone_os:16" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:apple:airport_express", + "cpe:/o:apple:netbsd:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:apple:netbsd:4.99" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:apple:airport_extreme", + "cpe:/o:apple:netbsd:4.99", + "cpe:/o:apple:netbsd:4.99", + "cpe:/o:qnx:rtos:6.5.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:apple:netbsd" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:apple:netbsd", + "cpe:/o:netbsd:netbsd:7.99" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.10", + "cpe:/o:apple:mac_os_x:10.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.10", + "cpe:/o:apple:mac_os_x:10.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.10", + "cpe:/o:apple:mac_os_x:10.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.10.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.10", + "cpe:/o:apple:mac_os_x:10.11", + "cpe:/o:apple:iphone_os:9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.10", + "cpe:/o:apple:mac_os_x:10.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.10.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.11", + "cpe:/o:apple:mac_os_x:10.12", + "cpe:/o:apple:iphone_os:10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.11.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.8", + "cpe:/o:apple:iphone_os:5.0.1", + "cpe:/o:apple:iphone_os:5.0.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.8", + "cpe:/o:apple:mac_os_x:10.9", + "cpe:/o:apple:iphone_os:5", + "cpe:/o:apple:iphone_os:5", + "cpe:/o:apple:iphone_os:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.8", + "cpe:/o:apple:mac_os_x:10.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.8.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:mac_os_x:10.9.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:tvos:13.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:apple:watchos:6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/o:apple:watchos:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:arcanoae:arcaos:5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [ + "cpe:/h:arcadyan:arv4528kw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [ + "cpe:/h:arcadyan:arv4528kw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [ + "cpe:/h:arcadyan:arv4528kw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [ + "cpe:/h:arcadyan:arv4528kw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 40960 + ] + }, + "cpe": [ + "cpe:/h:arcadyan:arv7519rw22" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:arcadyan:arv8539pw22" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 40960 + ] + }, + "cpe": [ + "cpe:/h:arcadyan:vgv8539jw22" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [ + "cpe:/h:arcadyan:vgv8539jw22" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [ + "cpe:/h:arcadyan:vgv8539jw22" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/h:arcadyan:vgv953akw22" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1446 + ] + }, + "cpe": [ + "cpe:/h:areca:arc-1212", + "cpe:/h:areca:arc-1222", + "cpe:/h:siemens:hipath_3500" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:argosy:hd363n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:arris:tm502b", + "cpe:/h:arris:tm602b" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:arris:tg862" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:arubanetworks:arubaos:3.3.2.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:arubanetworks:arubaos:3.3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:arubanetworks:arubaos:3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4992 + ] + }, + "cpe": [ + "cpe:/o:arubanetworks:arubaos:6.4.0.2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4992 + ] + }, + "cpe": [ + "cpe:/o:arubanetworks:arubaos:6.4.2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:arubanetworks:arubaos:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4992 + ] + }, + "cpe": [ + "cpe:/o:arubanetworks:arubaos:6.4.2.6" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4992 + ] + }, + "cpe": [ + "cpe:/o:arubanetworks:arubaos:6.4.4.8" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4992 + ] + }, + "cpe": [ + "cpe:/o:arubanetworks:arubaos:6.5.4.17" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:arubanetworks:arubaos_switch:16.10" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:arubanetworks:instant_on_1930", + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:arubanetworks:instant_on_1930", + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:arubanetworks:iap-105" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:arubanetworks:iap-93" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4992 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:asus:rt-ac66u", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.12" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.4.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:asus:rx4031", + "cpe:/h:trendnet:tw100-s4w1ca" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/h:asus:4g-n12" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:asus:rt-53n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:asus:rt-n11_ez", + "cpe:/h:dlink:di-524", + "cpe:/h:levelone:fbr-1415tx" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/h:asus:rt-n66u", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5336 + ] + }, + "cpe": [ + "cpe:/h:asus:wl-500g" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:asus:wl-500gp" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5100 + ] + }, + "cpe": [ + "cpe:/h:att:netgate_sg8100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:atari:unix:svr4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1300 + ] + }, + "cpe": [ + "cpe:/h:atcom:at-320" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:audiocodes:mediapack_118", + "cpe:/h:audiocodes:mediant_1000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2270dw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:audiocontrol:d3400" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:avaya:4526gtx" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:avaya:p580" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:avaya:p880" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,EOL", + "set_key": "{EOL,MSS}", + "win_bucket": [ + 20160 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4369 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4369 + ] + }, + "cpe": [ + "cpe:/h:avaya:office_ip403" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4369 + ] + }, + "cpe": [ + "cpe:/h:avaya:office_ip500" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4369 + ] + }, + "cpe": [ + "cpe:/h:avaya:office_ip500" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:avm:fritz%21box_fon_7170" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:avm:fritz%21box_fon_wlan_7050", + "cpe:/h:linksys:wag200g", + "cpe:/h:netgear:dg834gt" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:avm:fritz%21box_fon_wlan_7170" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:avm:fritz%21box_fon_wlan_7240" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:avm:fritzos:6.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:avm:fritzos:6.03" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:avm:fritzos:6.01" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:avm:fritzos:6.51" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5680 + ] + }, + "cpe": [ + "cpe:/h:avocent:autoview_3100", + "cpe:/h:avocent:autoview_3200", + "cpe:/h:avocent:dsr2020", + "cpe:/h:avocent:dsr8020" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5632 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5680 + ] + }, + "cpe": [ + "cpe:/h:avocent:dsr2035" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5632 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:avocent:acs5016", + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,EOL", + "set_key": "{EOL,MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 256 + ] + }, + "cpe": [ + "cpe:/h:axis:5550" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17424 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:axis:205_network_camera", + "cpe:/h:buffalo:terastation", + "cpe:/h:linksys:wap54g", + "cpe:/h:sony:snc-rz50n" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:axis:206_network_camera" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:axis:207w_network_camera" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16352 + ] + }, + "cpe": [ + "cpe:/h:axis:2100_network_camera" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16352 + ] + }, + "cpe": [ + "cpe:/h:axis:2100_network_camera" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16352 + ] + }, + "cpe": [ + "cpe:/h:axis:2120_network_camera" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5392 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/o:barrelfish:barrelfish" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 512 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:xerox:docuprint_n32" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:baynetworks:baystack_450" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:baynetworks:baystack_450" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32120 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:belkin:f5d7230-4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:belkin:f5d7230-4", + "cpe:/h:smc:smc7008abr" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:belkin:f5d8233" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:belkin:f7d2301", + "cpe:/h:philips:cia6720nb" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:belkin:n300", + "cpe:/o:linux:linux_kernel:2.6.30" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:belkin:n600_db" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,NOP", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:belllabs:plan_9:4th_edition" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:belllabs:plan_9" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:billion:7474vgo-m", + "cpe:/h:zoom:x6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:billion:7404vgp-m" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:billion:wrt610n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:bintec:rs232bw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:bintec:r3400" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:bintec:r1200" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 21720 + ] + }, + "cpe": [ + "cpe:/h:blackboard:at3000" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:bluecoat:packetshaper" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:3.2.4.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:4.2.3.26" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:4.2.2.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:5.1.4.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:5.1.3.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:5.5.1.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:5.5.3.1" + ] + }, + { + "signature": { + "order_key": "MSS,WS,SACK,TS,EOL,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:6" + ] + }, + { + "signature": { + "order_key": "MSS,WS,SACK,TS,EOL,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:6.3.2.201" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,WS,EOL,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:6.5.3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,WS,EOL,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:bluecoat:sgos:6.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/h:bluearc:titan_2100" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:bluebird:superdos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:bluebird:superdos" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,EOL", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 1664 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:bose:soundtouch_20" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:bowers_%26_wilkins:zeppelin_air", + "cpe:/h:denon:avr-1912", + "cpe:/h:denon:avr-1920", + "cpe:/h:marantz:nr1602", + "cpe:/h:pioneer:vsx-921" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8112 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:brocade:icx_6610" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:brocade:turboiron_24x" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:brocade:fabric_os:4.4.0", + "cpe:/o:linux:linux_kernel:2.4.19" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:brocade:fabric_os:7.4.1", + "cpe:/o:linux:linux_kernel:2.6.14" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:brother:nc-130h" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 128 + ] + }, + "cpe": [ + "cpe:/h:brother:nc-2100p" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:nc-3100h" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:nc-3100h" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:dcp-540cn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:dcp-540cn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:dcp-7065dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8388 + ] + }, + "cpe": [ + "cpe:/h:brother:dcp-7070dw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:dcp-8045d" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:dcp-8065d" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:brother:dcp-l2540dn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-1270n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-1870n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2070n", + "cpe:/h:brother:mfc-425cn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2070n", + "cpe:/h:brother:mfc-5460cn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2070n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2070n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2070n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2070n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2070n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2070n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2070n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2070n" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:brother:hl-2070n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2070n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2250dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2270dw" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2270dw" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2280dw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-2700cn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-3170cdw" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-495cw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-5070n" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:brother:hl-5070n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-5170dn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-5170dn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-5170dn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-5170dn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-5170dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-5250dn", + "cpe:/h:brother:dcp-8065d" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-5250dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 9464 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-5250dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8376 + ] + }, + "cpe": [ + "cpe:/h:brother:hl-5380dn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-420cn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-420cn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-5840cn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-5860cn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-640cw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-7820n", + "cpe:/h:brother:mfc-9420n" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:brother:mfc-7820n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-7820n" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:brother:mfc-7820n" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:brother:mfc-7820n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-7820n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-7820n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,TS,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8208 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-8480dn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-9420cn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-9970cdw" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-j415w" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-j615w", + "cpe:/h:brother:mfc-9325cw", + "cpe:/h:brother:hl-5370dw" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-j625dw" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8316 + ] + }, + "cpe": [ + "cpe:/h:brother:mfc-j6510dw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:bsd:bsd:2.11" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/o:bsd:bsd:4.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:bsd:bsd:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:bsdi:bsd_os:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14704 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14704 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 19248 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12096 + ] + }, + "cpe": [ + "cpe:/h:buffalo:ls-ql" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12096 + ] + }, + "cpe": [ + "cpe:/h:buffalo:ls-wxl" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14696 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 19248 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14704 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 19248 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 60000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 21440 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,WS,TS,EOL", + "set_key": "{EOL,MSS,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:cabletron:els100-24txm" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:cabletron:els100-24txm", + "cpe:/h:icom:ic-7800" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32736 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:caldera:open_unix:7.1.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:calix:c7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/h:cameo:soho-is104a", + "cpe:/h:linksys:wap11", + "cpe:/h:smc:smcwbr14-g", + "cpe:/h:smc:smc2804wbr" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:canon:clc4040" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [ + "cpe:/h:canon:imageclass_d1320" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:canon:imageclass_lbp6300dn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:canon:imageclass_lbp6300dn" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 31000 + ] + }, + "cpe": [ + "cpe:/h:canon:imageclass_mf212w" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_1024" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_2020", + "cpe:/h:kyocera:fs-4000dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_2270", + "cpe:/h:canon:imagerunner_4570", + "cpe:/h:canon:imagerunner_6570", + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_2520" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_2525", + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_3300", + "cpe:/h:motorola:surfboard_sbg900" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_advance_4235", + "cpe:/h:canon:imagerunner_advance_6275", + "cpe:/h:canon:imagerunner_advance_6255", + "cpe:/h:canon:imagerunner_advance_c2220" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_advance_c3320i", + "cpe:/h:canon:imagerunner_advance_c3325" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_advance_c5051" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_c2380", + "cpe:/h:canon:imagerunner_c2880i", + "cpe:/h:xerox:phaser_8860mfp" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_c3100", + "cpe:/h:canon:imagerunner_c6800" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_c3200", + "cpe:/h:polycom:soundstation_ip_4000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:canon:imagerunner_c5185", + "cpe:/h:mercusys:ac12g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [ + "cpe:/h:canon:mf1238" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [ + "cpe:/h:canon:mf632cdw" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [ + "cpe:/h:canon:mf733cdw" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [ + "cpe:/h:canon:pixma_mg2920" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [ + "cpe:/h:canon:pixma_mg5200" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [ + "cpe:/h:canon:pixma_mp495", + "cpe:/h:canon:pixma_mg6150" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 63488 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:canon:pixma_mx850" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11520 + ] + }, + "cpe": [ + "cpe:/h:canon:pixma_tr4520", + "cpe:/h:canon:pixma_t6250", + "cpe:/h:canon:pixma_g6000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:canon:80d" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:canon:vb-c300" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cayman_systems:gatorbox_cs" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,NOP,EOL", + "set_key": "{EOL,MSS,NOP}", + "win_bucket": [ + 14336 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 14000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 6714 + ] + }, + "cpe": [ + "cpe:/h:checkpoint:sbox-200" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:checkpoint:zonealarm_z100g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:checkpoint:ipso:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:checkpoint:ipso:4.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:cisco:acns:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:cisco:acns:5.5.5.4" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5512 + ] + }, + "cpe": [ + "cpe:/o:cisco:aireos:8.0.140.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5528 + ] + }, + "cpe": [ + "cpe:/o:cisco:aireos:8.2", + "cpe:/o:linux:linux_kernel:2.6.21" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5512 + ] + }, + "cpe": [ + "cpe:/o:cisco:aireos" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5512 + ] + }, + "cpe": [ + "cpe:/o:cisco:aireos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:cisco:asa:7.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:cisco:asa:8.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:cisco:asa:8.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:cisco:asa:9.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:cisco:ironport_c170", + "cpe:/o:cisco:asyncos:7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:cisco:ironport_c650", + "cpe:/o:cisco:asyncos:7.0.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:cisco:asyncos:8.0.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:cisco:asyncos:8.1.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:cisco:asyncos:9" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_ws-c5000", + "cpe:/o:cisco:catos:4.5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2948g", + "cpe:/o:cisco:catos:6.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2820", + "cpe:/o:cisco:catos:5.37" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:cisco:catos:6.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_ws-c6509", + "cpe:/o:cisco:catos:6.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_4003", + "cpe:/h:cisco:catalyst_4006", + "cpe:/o:cisco:catos:7", + "cpe:/h:cisco:catalyst_2948g", + "cpe:/h:cisco:catalyst_6509", + "cpe:/o:cisco:catos:8" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_ws-c6506", + "cpe:/o:cisco:catos:7.6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:cisco:catos:8.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_ws-c4506", + "cpe:/o:cisco:catos:8.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:cisco:epc3208" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:cisco:epc3208" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:cisco:epc3212", + "cpe:/h:cisco:epc3208" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:cisco:epc3212", + "cpe:/h:sciatl:webstar_epx2203" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:cisco:epc3925" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:cisco:ips_4270" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:cisco:mars_50:4.2.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:micro_webserver_200", + "cpe:/h:hp:wp110", + "cpe:/h:tektronix:tds3034b", + "cpe:/o:tektronix:os_350", + "cpe:/h:tektronix:xp350", + "cpe:/o:tektronix:os_350", + "cpe:/h:xerox:document_centre_405" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 40960 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:cisco:isb7150" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:vpn_3000_concentrator:4.1.7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:vpn_3000_concentrator:4.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:vpn_3030_concentrator" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:vpn_3030_concentrator:4.7.2.f" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5512 + ] + }, + "cpe": [ + "cpe:/h:cisco:4402_wireless_lan_controller" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5512 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5512 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5512 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:1700_router" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:1700_router" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:cisco:asr_9010_router" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:cisco:catalyst_1900" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_1900" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_1900" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_1912" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:cisco:css_11501" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:cisco:mds_9000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 18564, + 19992, + 22848, + 25704, + 27132 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_5000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:cisco:sf300", + "cpe:/h:cisco:sg300" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:cisco:sf300", + "cpe:/h:cisco:sg300" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cisco:sg_300-10", + "cpe:/h:dell:powerconnect_2748", + "cpe:/h:linksys:slm2024", + "cpe:/h:linksys:slm2048", + "cpe:/h:linksys:slm224p", + "cpe:/h:netgear:fs728tp", + "cpe:/h:netgear:prosafe_gs724tp" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:cisco:sg_500" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cisco:sg_300" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/h:cisco:sg200" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cisco:sg200" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cisco:sg250" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:cisco:sg300" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:cisco:sg300" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1536 + ] + }, + "cpe": [ + "cpe:/h:cisco:slm2008", + "cpe:/h:hp:procurve_1800" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1536 + ] + }, + "cpe": [ + "cpe:/h:cisco:slm2008" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:cisco:srw2008-k9" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:cisco:ata_188_voip_gateway" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/a:cisco:unified_communications_manager:7.1.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_call_manager" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 1024 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_conference_station_7935", + "cpe:/h:cisco:unified_ip_conference_station_7936" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_conference_station_7936" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_conference_station_7936g" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5776 + ] + }, + "cpe": [ + "cpe:/h:cisco:cp_8945" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:cisco:cp_8945" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:cisco:cp-dx80", + "cpe:/o:google:android" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7911", + "cpe:/h:cisco:unified_ip_phone_7941", + "cpe:/h:cisco:unified_ip_phone_7961", + "cpe:/h:cisco:unified_ip_phone_7970" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7910" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7911" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7912" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7912" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7912g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7941" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7941", + "cpe:/h:cisco:unified_ip_phone_7961", + "cpe:/h:cisco:unified_ip_phone_7965g", + "cpe:/h:cisco:unified_ip_phone_7975", + "cpe:/h:cisco:unified_ip_phone" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7942g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7942g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7945" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7945g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7961g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7961g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7971g-ge" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7975g" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_8945" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7970g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:cisco:spa303_3-line_ip_phone_with_2-port_switch" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:spa303_3-line_ip_phone_with_2-port_switch", + "cpe:/h:nortel:ethernet_routing_switch_5520", + "cpe:/h:sun:storagetek_6140" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:small_business_ip_phone:spa505g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_6921" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7905g", + "cpe:/h:cisco:unified_ip_phone_7960" + ] + }, + { + "signature": { + "order_key": "MSS,EOL", + "set_key": "{EOL,MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7924g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/h:cisco:unified_ip_phone_7960" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:asr_1002_router", + "cpe:/o:cisco:ios_xe:2" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios_xr:3" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios_xr:4.1.1" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios_xr:5.1.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [ + "cpe:/h:cisco:2500_router", + "cpe:/o:cisco:ios:11.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:2600_router", + "cpe:/o:cisco:ios:11.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4288 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2900xl", + "cpe:/o:cisco:ios:11.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4288 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2900xl", + "cpe:/o:cisco:ios:11.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2600", + "cpe:/o:cisco:ios:11", + "cpe:/h:cisco:catalyst_2900", + "cpe:/h:cisco:catalyst_3500_xl", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,NOP,TS,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:10000_router", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:router_1700", + "cpe:/o:cisco:ios:12.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:c1812", + "cpe:/h:cisco:c3640", + "cpe:/h:cisco:c3700", + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:1841_integrated_services_router", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:1841_integrated_services_router", + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:2500_router", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:2509_router", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:2514_router", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4288 + ] + }, + "cpe": [ + "cpe:/h:cisco:2600_router", + "cpe:/o:cisco:ios:12.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:2600_router", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:cisco:2611_router", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:2620_router", + "cpe:/h:cisco:3620_router", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:2620_router", + "cpe:/o:cisco:ios:12.0" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:cisco:2800_router", + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.x", + "cpe:/o:cisco:ios:15.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:2811_router", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:6506_router", + "cpe:/h:cisco:7206vxr_router", + "cpe:/o:cisco:ios:12", + "cpe:/h:cisco:catalyst_2900", + "cpe:/h:cisco:catalyst_3650", + "cpe:/h:cisco:catalyst_3750", + "cpe:/o:cisco:ios:12", + "cpe:/h:cisco:ubr925", + "cpe:/h:cisco:ubr7111", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:router_2500", + "cpe:/h:cisco:router_4500", + "cpe:/o:cisco:ios:12", + "cpe:/h:cisco:catalyst_500", + "cpe:/h:cisco:catalyst_2000", + "cpe:/h:cisco:catalyst_3000", + "cpe:/h:cisco:catalyst_4000", + "cpe:/h:cisco:catalyst_5000", + "cpe:/h:cisco:catalyst_6506", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:cisco:5300_router", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:5300_router", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:cisco:6506_router", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS,TS,EOL,EOL", + "set_key": "{EOL,MSS,TS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,NOP,TS,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:7206vxr_router", + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:7600_router", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:800_router", + "cpe:/h:cisco:1801_router", + "cpe:/h:cisco:2000_router", + "cpe:/h:cisco:3800_router", + "cpe:/h:cisco:4000_router", + "cpe:/h:cisco:7000_router", + "cpe:/o:cisco:ios:12", + "cpe:/h:cisco:aironet_ap1100", + "cpe:/h:cisco:aironet_ap1242g", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:806_router", + "cpe:/h:cisco:1712_router", + "cpe:/h:cisco:1721_router", + "cpe:/h:cisco:2600_router", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:820_router", + "cpe:/h:cisco:1721_router", + "cpe:/h:cisco:1750_router", + "cpe:/h:cisco:1751_router", + "cpe:/h:cisco:2514_router", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:836_router", + "cpe:/h:cisco:890_router", + "cpe:/h:cisco:1751_router", + "cpe:/h:cisco:2800_router", + "cpe:/o:cisco:ios:12", + "cpe:/h:cisco:1841_router", + "cpe:/h:cisco:2900_router", + "cpe:/o:cisco:ios:15" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:860_router", + "cpe:/h:cisco:870_router", + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:870_router", + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:870_router", + "cpe:/o:cisco:ios:12", + "cpe:/h:cisco:2960_switch", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:870_router", + "cpe:/h:cisco:2821_router", + "cpe:/h:cisco:6506_router", + "cpe:/h:cisco:7206vxr_router", + "cpe:/o:cisco:ios:12", + "cpe:/o:cisco:ios:15" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:877_router", + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:2610xm_router", + "cpe:/o:cisco:ios:12.4", + "cpe:/h:cisco:aironet_ap1200", + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:1811_router", + "cpe:/h:cisco:2800_router", + "cpe:/o:cisco:ios:12.4", + "cpe:/h:cisco:vg_224", + "cpe:/o:cisco:ios:12.4", + "cpe:/h:cisco:aironet_ap1240ag", + "cpe:/h:cisco:aironet_ap1250", + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:831_router", + "cpe:/o:cisco:ios:12.3", + "cpe:/h:cisco:aironet_ap350", + "cpe:/h:cisco:aironet_ap1200", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:3620_router", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:860_router", + "cpe:/h:cisco:880_router", + "cpe:/o:cisco:ios:12.4", + "cpe:/h:cisco:880_router", + "cpe:/o:cisco:ios:15.0" + ] + }, + { + "signature": { + "order_key": "TS,EOL,EOL,MSS,SACK,NOP,NOP,WS,NOP,TS,EOL,EOL,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65340, + 65535 + ] + }, + "cpe": [ + "cpe:/h:cisco:870_router", + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12", + "cpe:/o:cisco:ios_xe:15", + "cpe:/o:cisco:ios_xe:16" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_ws-c2924-xl", + "cpe:/h:cisco:catalyst_2500", + "cpe:/o:cisco:ios:12.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2900xl", + "cpe:/o:cisco:ios:12.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_ws-c2924m-xl", + "cpe:/h:cisco:catalyst_2950", + "cpe:/h:cisco:catalyst_3500xl", + "cpe:/o:cisco:ios:12.0" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,EOL,NOP,NOP", + "set_key": "{EOL,MSS,NOP}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,EOL,EOL,EOL,MSS,EOL,EOL,EOL,NOP,MSS,EOL,EOL,NOP,EOL,MSS,EOL,EOL,NOP,NOP,MSS,EOL,NOP,EOL,EOL,MSS,NOP,EOL,EOL,EOL,MSS,NOP,EOL,EOL,NOP,MSS,NOP,EOL,NOP,EOL,MSS,NOP,NOP,EOL,EOL", + "set_key": "{EOL,MSS,NOP}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,EOL,EOL,EOL,MSS,EOL,EOL,NOP,EOL", + "set_key": "{EOL,MSS,NOP}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,EOL,EOL,NOP,MSS,EOL,EOL,NOP,EOL", + "set_key": "{EOL,MSS,NOP}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/h:cisco:catalyst_2960", + "cpe:/h:cisco:catalyst_3000", + "cpe:/h:cisco:catalyst_4510r", + "cpe:/h:cisco:catalyst_6000", + "cpe:/h:cisco:catalyst_6500", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/h:cisco:catalyst_2960", + "cpe:/h:cisco:catalyst_3550", + "cpe:/h:cisco:catalyst_3560", + "cpe:/h:cisco:catalyst_3750", + "cpe:/h:cisco:catalyst_4500", + "cpe:/o:cisco:ios:12", + "cpe:/o:cisco:ios:15", + "cpe:/o:cisco:asa:9" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/h:cisco:catalyst_2960", + "cpe:/h:cisco:catalyst_3550", + "cpe:/h:cisco:catalyst_3560", + "cpe:/h:cisco:catalyst_3750", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2960", + "cpe:/h:cisco:catalyst_3650" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:cisco:catalyst_3500xl", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_3550", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:3550_switch", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_3560", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_3560g", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_3750", + "cpe:/h:cisco:catalyst_6500", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_3750", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_6509:e", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_3750", + "cpe:/o:cisco:ios:12.2", + "cpe:/h:cisco:880_router", + "cpe:/o:cisco:ios:15.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2960", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_3560", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_1900", + "cpe:/h:cisco:catalyst_2820", + "cpe:/h:cisco:catalyst_2960", + "cpe:/h:cisco:catalyst_3560", + "cpe:/h:cisco:catalyst_4500", + "cpe:/h:cisco:catalyst_6513", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2900xl", + "cpe:/h:cisco:catalyst_3500xl", + "cpe:/o:cisco:ios:12.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2912", + "cpe:/o:cisco:ios:12.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2912", + "cpe:/o:cisco:ios:12.0" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,EOL,EOL,EOL,MSS,EOL,EOL,NOP,EOL", + "set_key": "{EOL,MSS,NOP}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/o:cisco:ios:12.1" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2950", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2960", + "cpe:/h:cisco:catalyst_3600", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,NOP,TS,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2960", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,NOP,TS,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2960", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2960", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2960", + "cpe:/h:cisco:catalyst_3550", + "cpe:/h:cisco:catalyst_3560", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2960", + "cpe:/h:cisco:catalyst_3560", + "cpe:/h:cisco:catalyst_6500", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2900", + "cpe:/h:cisco:catalyst_3500_xl" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS,TS,EOL,EOL", + "set_key": "{EOL,MSS,TS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_3550", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_3550", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_3560", + "cpe:/h:cisco:catalyst_6500", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_6509", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_6509:e", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_8510msr", + "cpe:/o:cisco:ios:12.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_blade_switch_3020", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_express_500", + "cpe:/h:cisco:catalyst_express_520", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_express_500", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:aironet_ap1131ag", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:aironet_ap1131ag", + "cpe:/o:cisco:ios:12.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:12.4", + "cpe:/h:cisco:aironet_1141n", + "cpe:/h:cisco:aironet_3602i", + "cpe:/o:cisco:ios:12.4", + "cpe:/o:cisco:ios:15.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:aironet_ap1200", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:aironet_ap1200", + "cpe:/o:cisco:ios:12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:aironet_ap1231g", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:aironet_ap1240ag", + "cpe:/o:cisco:ios:12.4", + "cpe:/h:cisco:router_2600", + "cpe:/h:cisco:router_2800", + "cpe:/o:cisco:ios:12.4", + "cpe:/h:cisco:catalyst_3560", + "cpe:/o:cisco:ios:12.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:aironet_ap1250", + "cpe:/o:cisco:ios:12.4", + "cpe:/o:cisco:ios_xe" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:aironet_ap350", + "cpe:/h:cisco:aironet_ap1100", + "cpe:/h:cisco:aironet_ap1200", + "cpe:/o:cisco:ios:12.3", + "cpe:/h:cisco:catalyst_2600", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:as5350", + "cpe:/h:cisco:aironet_ap1230", + "cpe:/h:cisco:aironet_ap1240", + "cpe:/h:cisco:aironet_ap1200", + "cpe:/o:cisco:ios:12.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:15.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,NOP,WS,EOL,EOL,EOL,SACK,MSS,SACK,NOP,NOP,WS,EOL,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:cisco:1921_integrated_services_router", + "cpe:/o:cisco:ios:15.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_2811", + "cpe:/o:cisco:ios:15.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:15.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,NOP,TS,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:15.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_7200", + "cpe:/o:cisco:ios:15" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:catalyst_7200", + "cpe:/o:cisco:ios:15.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/h:cisco:860_router", + "cpe:/o:cisco:ios:15.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,NOP,TS,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:15" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:15" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:15.5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:15.9" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:15.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:15.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios:15.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4128 + ] + }, + "cpe": [ + "cpe:/o:cisco:ios_xe:16.11" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:cisco:mds_9509", + "cpe:/o:cisco:nx_os:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 17204 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_5010", + "cpe:/o:cisco:nx_os:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 40480, + 41492, + 42504, + 43516, + 44528 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_7000", + "cpe:/o:cisco:nx_os:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 17204, + 18216 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_7000", + "cpe:/o:cisco:nx_os:4.2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 24288, + 25300, + 26312, + 27324, + 28336 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_7000", + "cpe:/o:cisco:nx_os:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 18216, + 20240, + 22264, + 23276, + 24288 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_7010", + "cpe:/o:cisco:nx_os:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 17204 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_7010", + "cpe:/o:cisco:nx_os:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 41492, + 43516, + 44528, + 45540, + 46552 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 24560 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_5548", + "cpe:/o:cisco:nx_os:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_5548p", + "cpe:/o:cisco:nx_os:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_7000", + "cpe:/o:cisco:nx_os:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 18564, + 19992, + 22848, + 25704, + 27132 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_7010", + "cpe:/o:cisco:nx_os:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 42840, + 44268, + 45696, + 47124, + 48552 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_7010", + "cpe:/o:cisco:nx_os:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 17192, + 18420, + 19648, + 20876, + 22104 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:5", + "cpe:/o:cisco:nx_os:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 41412 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 48552, + 49980, + 52836, + 55692, + 58548 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 18420 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 18420 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:6.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 24560 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:6.2.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_7000", + "cpe:/o:cisco:nx_os:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:6.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 18420 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:6.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 18420 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 18420 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 17192 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 60172 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:9.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 18420 + ] + }, + "cpe": [ + "cpe:/o:cisco:nx_os:9.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 37444, + 38456, + 39468, + 40480, + 41492 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_v1000", + "cpe:/o:cisco:nx_os" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 30360, + 32384, + 33396, + 34408, + 35420 + ] + }, + "cpe": [ + "cpe:/o:cisco:nexus_v1000", + "cpe:/o:cisco:nx_os" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:cisco:pix_os:6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:cisco:pix_os:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5656 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 8190 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 8190 + ] + }, + "cpe": [ + "cpe:/o:citrix:netscaler:13.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8190 + ] + }, + "cpe": [ + "cpe:/o:citrix:netscaler:9.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8190 + ] + }, + "cpe": [ + "cpe:/o:citrix:netscaler" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8190 + ] + }, + "cpe": [ + "cpe:/o:citrix:netscaler" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8190 + ] + }, + "cpe": [ + "cpe:/o:citrix:netscaler" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8190 + ] + }, + "cpe": [ + "cpe:/o:citrix:netscaler" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 8190 + ] + }, + "cpe": [ + "cpe:/o:citrix:netscaler" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8190 + ] + }, + "cpe": [ + "cpe:/o:citrix:netscaler" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65228 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:compaq:tru64:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:compaq:tru64:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:compaq:tru64:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:compaq:tru64:5.1", + "cpe:/o:hp:openvms:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:compaq:tru64:5.1", + "cpe:/o:hp:openvms:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 62780 + ] + }, + "cpe": [ + "cpe:/o:compaq:tru64:5", + "cpe:/o:hp:openvms:8" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 30725 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/h:comtrend:5361" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:comtrend:ct-800" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:comtrend:ct536" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:conceptronic:chd3net" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12444 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:coyote_point:e250gx" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/h:coyote_point:e350si" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,TS,EOL,EOL", + "set_key": "{EOL,MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:cray:unicos:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/o:crestron:2_series" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:crestron:2_series" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:crestron:mpc-m5", + "cpe:/h:wago_kontakttechnik:750-852" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:hp:storageworks_msl4048" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:cyanogenmod:cyanogenmod:11", + "cpe:/o:google:android:4.4.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:cyanogenmod:cyanogenmod:12", + "cpe:/o:google:android:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:cyanogenmod:cyanogenmod:12", + "cpe:/o:google:android:5.0.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:cymphonix:ex550" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:dlink:di-808hv" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:dlink:dir-100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dlink:dsl-2540b" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5776 + ] + }, + "cpe": [ + "cpe:/h:dlink:dsl-2640b" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:dlink:dsl-2890al" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:dlink:dsl-500" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:dlink:dsl-500g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1500 + ] + }, + "cpe": [ + "cpe:/h:dlink:dsl-504" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:dlink:dsl2-300g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:dlink:dfl-200" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:dlink:dfl-700" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/h:dlink:dp-300u", + "cpe:/h:dlink:dp-g310", + "cpe:/h:hamlet:hps01uu" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dlink:dpr-1260", + "cpe:/h:dlink:dgl-4300", + "cpe:/h:dlink:dgl-4500", + "cpe:/h:dlink:dir-615", + "cpe:/h:dlink:dir-625", + "cpe:/h:dlink:dir-628", + "cpe:/h:dlink:dir-655", + "cpe:/h:dlink:dir-855" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17904 + ] + }, + "cpe": [ + "cpe:/h:dlink:dns-321" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 9216 + ] + }, + "cpe": [ + "cpe:/h:dlink:des-1210", + "cpe:/h:dlink:dgs-1210", + "cpe:/h:dlink:dgs-1500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:des-3010f", + "cpe:/h:dlink:dgs-3010g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:des-3010g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:des-3010f", + "cpe:/h:dlink:dgs-3010g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:des-3028p" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:des-3200" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:des-3326" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:des-3526" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:des-3526" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:des-3526" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:des-3550" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dlink:des-7210" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 9216 + ] + }, + "cpe": [ + "cpe:/h:dlink:dgs-1210" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 9216 + ] + }, + "cpe": [ + "cpe:/h:dlink:dgs-1210" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 9216 + ] + }, + "cpe": [ + "cpe:/h:dlink:dgs-1210" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:dgs-1510" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:dgs-3024" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:dgs-3450" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dlink:dgs-3610" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:dxs-3326gsr" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:dxs-3600" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:dvg-4022s" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:dlink:dph-150s" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:dlink:di-524" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:dlink:di-524" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:di-524" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:dlink:di-604" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5808 + ] + }, + "cpe": [ + "cpe:/h:dlink:di-604" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:di-604" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:dlink:di-824vup" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4644 + ] + }, + "cpe": [ + "cpe:/h:dlink:dir-300" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:dir-612" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:dir-615" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:dlink:dir-615", + "cpe:/h:encore:3g", + "cpe:/h:engenius:esr-9752" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:dlink:dir-835" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dlink:dsr-1000n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dlink:dwl-900ap" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:dwl-9000ap%2b", + "cpe:/h:planet:wap-1966", + "cpe:/h:usrobotics:usr5450" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:dlink:dwl-g710" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dlink:dwl-g810" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:dlink:dcs-2103" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:dlink:dcs-3220" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 14000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:data_general:dg%2fux:4.11mu06" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1500 + ] + }, + "cpe": [ + "cpe:/h:daysequerra:m4.2si" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1536 + ] + }, + "cpe": [ + "cpe:/h:dec:decserver716", + "cpe:/o:dec:dnas:3.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:dec:digital_unix:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:dec:digital_unix:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:dec:digital_unix:5.x" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:dec:digital_unix:5", + "cpe:/o:dec:openvms:7.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3000 + ] + }, + "cpe": [ + "cpe:/o:dec:openvms:5.5" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:dec:openvms:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:dec:openvms:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:dec:openvms:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:dec:openvms:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:dec:osf_1:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:dec:osf_1:5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:dec:rsx_11m_plus:4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:dec:rsx_11m_plus:4.6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:dec:rsx_11m_plus:4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:dec:rsx_11m_plus:5.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4061 + ] + }, + "cpe": [ + "cpe:/o:dec:rsx-11m-plus" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/o:dec:tops_20:7.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 1460 + ] + }, + "cpe": [ + "cpe:/o:dec:tops_20" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:dec:ultrix:4.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:dec:ultrix:4.5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:dec:ultrix:4.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/h:dell:1320c" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dell:1600n" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:dell:1720dn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:dell:1720dn", + "cpe:/h:lexmark:e250dn", + "cpe:/h:lexmark:e352dn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dell:1815dn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dell:2330dn" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:dell:2335dn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:dell:2350dn", + "cpe:/h:ibm:infoprint_1832" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/h:dell:3000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/h:dell:3100cn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/h:dell:3100cn", + "cpe:/h:dell:3110cn", + "cpe:/h:dell:3115cn", + "cpe:/h:xerox:phaser_6180dn" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/h:dell:3110cn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:dell:5210n", + "cpe:/h:lexmark:c530", + "cpe:/h:lexmark:t640", + "cpe:/h:lexmark:t642", + "cpe:/h:lexmark:t644" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:dell:h625cdw", + "cpe:/h:dell:c2665dnf" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:3.38", + "cpe:/h:dell:remote_access_card:4" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dell:poweredge_2650" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:6" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:4" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dell:remote_access_card:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64408 + ] + }, + "cpe": [ + "cpe:/h:dell:dr4100" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64408 + ] + }, + "cpe": [ + "cpe:/h:dell:dr4100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:dell:equallogic_ps3000", + "cpe:/h:dell:equallogic_ps4000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:dell:equallogic_ps4000x" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dell:powervault_124t" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/h:dell:powervault_132t" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/h:dell:powervault_705n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dell:powervault_md3000i", + "cpe:/h:tp-link:tl-wr340gd" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,WS,TS,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:dell:tl2000", + "cpe:/h:ibm:ts3200" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_2708" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_2724" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_3024" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_3248" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_3324" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 256 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_3348" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_5316m" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_5324" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_5324" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_5424" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_5524" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_6200" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_6248", + "cpe:/h:enterasys:bg3124", + "cpe:/h:enterasys:d2g124" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_8024f" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:dell:powerconnect_8024f" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:dell:x1052p" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:dell:equallogic_peerstorage_ps100e", + "cpe:/o:dell:netbsd:1.6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:dell:equallogic", + "cpe:/o:dell:netbsd:1.6.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:dell:network_operating_system:6", + "cpe:/o:linux:linux_kernel:3.6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:denon:avr-2113" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:denon:avr-3808ci" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:denon:avr-3808ci" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:denon:avr-3808ci" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:denon:avr-1912", + "cpe:/h:denon:avr-2312", + "cpe:/h:yamaha:rx-S600" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:denver_electronics:ac-5000w" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 31000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:digi:connect_me" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8316 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 9457 + ] + }, + "cpe": [ + "cpe:/h:digi:connectport_ts1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:digi:wr31" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:digi:net_os:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:digi:net_os:7" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/h:dish:hopper" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/h:dish:hopper" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2816 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:dragonflybsd:dragonfly_bsd:1.10.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:dragonflybsd:dragonfly_bsd:1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:dragonflybsd:dragonfly_bsd:2.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:dragonflybsd:dragonfly_bsd:2.3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:dragonflybsd:dragonfly_bsd:2.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:dragonflybsd:dragonfly_bsd:2", + "cpe:/o:dragonflybsd:dragonfly_bsd:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:dragonflybsd:dragonfly_bsd:4.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:dragonflybsd:dragonfly_bsd:4.9" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5592 + ] + }, + "cpe": [ + "cpe:/h:draytek:vigor_2960" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4200 + ] + }, + "cpe": [ + "cpe:/h:draytek:vigor_2930n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1430 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 15896 + ] + }, + "cpe": [ + "cpe:/h:drobo:b800i" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:drobo:5n", + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:eaton:powerware_9170" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 18980 + ] + }, + "cpe": [ + "cpe:/o:ecoscentric:ecos:2.0", + "cpe:/h:arris:sb6183" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:ecoscentric:ecos:2.0", + "cpe:/h:hp:procurve_switch_1810g", + "cpe:/h:netgear:gs110tp" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 18980 + ] + }, + "cpe": [ + "cpe:/o:ecoscentric:ecos:2.0", + "cpe:/h:arris:sb6183" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:ecoscentric:ecos:2.0", + "cpe:/h:cisco:epc3925", + "cpe:/h:cisco:dpc2320", + "cpe:/h:motorola:sb5101e", + "cpe:/h:scientific_atlanta:epc2203" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:ecoscentric:ecos:2.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:ecoscentric:ecos:2.0", + "cpe:/h:netgear:cg814wg", + "cpe:/h:thomson:twg870u", + "cpe:/h:ubee:dvw3201b", + "cpe:/h:cisco:dpc3825" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:ecoscentric:ecos:2.0", + "cpe:/h:netgear:cg814wg" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:ecoscentric:ecos:3.0", + "cpe:/h:hp:procurve_switch_1810g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:ecoscentric:ecos:3.0", + "cpe:/h:hp:procurve_1810g", + "cpe:/h:zyxel:gs1910" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:ecoscentric:ecos", + "cpe:/h:netgear:gs108t", + "cpe:/h:netgear:gs748tv3" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:ecoscentric:ecos", + "cpe:/h:netgear:gs108t" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:efficientnetworks:5930" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:efficientnetworks:speedstream_4100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:efficientnetworks:speedstream_5100" + ] + }, + { + "signature": { + "order_key": "WS,NOP", + "set_key": "{NOP,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5392 + ] + }, + "cpe": [ + "cpe:/o:elfiq:eos:3.5.2" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:elk:elk-m1exp" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:elk:elk-m1exp" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/h:elsagdatamat:sas-200" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:emc:celerra_ns350" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:emc:vnx_oe_for_file:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:emc:vnx_oe_for_file:7.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 511 + ] + }, + "cpe": [ + "cpe:/h:enerdis:enerium_200", + "cpe:/h:mitsubishi:xd1000", + "cpe:/h:lantronix:uds200" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:engenius:esr-9250" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 127 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:enterasys:xp-8000" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:enterasys:c3_c3g124", + "cpe:/h:netgear:gsm7328sv2", + "cpe:/h:dell:powerconnect_6248" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:enterasys:b5" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,EOL,SACK,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:enterasys:k6", + "cpe:/h:enterasys:s4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:enterasys:matrix_c1", + "cpe:/h:hp:laserjet_3600" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:enterasys:matrix_e1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:enterasys:matrix_e1", + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:enterasys:matrix_n7" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:enterasys:securestack_c2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:enterasys:ap3620" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8208 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:epson:ub-e02" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:epson:aculaser_c1100n" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:epson:artisan_810" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:epson:stylus_pro_400" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:epson:stylus_pro_4900" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:epson:tm-t88v_m244a" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:epson:wf-2660" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:epson:xp-630" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:esi:esi-100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ethzurich:bluebottle" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 46720 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:expresslogic:threadx:4", + "cpe:/h:trendnet:tew-432brp" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:expresslogic:threadx:4", + "cpe:/h:airnet:awr014g", + "cpe:/h:dlink:di-524", + "cpe:/h:dlink:di-604", + "cpe:/h:dlink:di-624", + "cpe:/h:dlink:wbr-2310", + "cpe:/h:trendnet:tew-432brp", + "cpe:/h:trendnet:tew-452brp" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/o:expresslogic:threadx:g3.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/o:expresslogic:threadx" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:extremenetworks:extremeware:7" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:extremenetworks:extremeware:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:extremenetworks:extremexos:12.5.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:extremenetworks:extremexos:12.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:extremenetworks:extremexos:15" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:extremenetworks:extremexos:15.3", + "cpe:/o:extremenetworks:extremexos:12.5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:extremenetworks:extremexos:15" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:extremenetworks:extremexos:15.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:extremenetworks:extremexos:15", + "cpe:/o:extremenetworks:extremexos:16" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16900 + ] + }, + "cpe": [ + "cpe:/o:f5:bsd_os:4.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 18292 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 18292 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 18292 + ] + }, + "cpe": [ + "cpe:/o:f5:tmos:11.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:f5:tmos:11.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:f5:tmos:11.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:f5:tmos:11.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:f5:tmos:9.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:fatek:fbs-cbeh" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:firebrick:fb2700" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:firebrick:fb2700" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:firebrick:fb2700" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:force10:ftos:1.0" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/o:force10:sftos:2.5.1.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/o:force10:sftos:2.5.2.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:fortinet:fortigate_100d" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:fortinet:fortigate_100d" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:fortinet:fortigate_1500d" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:fortinet:fortigate_200b" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/h:fortinet:fortiswitch-124b-poe" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:fortinet:fortios:5.0.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:fortinet:fortios:6", + "cpe:/o:fortinet:fortios:7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 42966 + ] + }, + "cpe": [ + "cpe:/o:fortinet:fortios:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:foundrynet:fastiron_400" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65000 + ] + }, + "cpe": [ + "cpe:/h:foundrynet:netiron_mlx-16" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:foundrynet:networks_fes2402", + "cpe:/h:foundrynet:serveriron_4g", + "cpe:/h:foundrynet:serveriron_gt_egx2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:foundrynet:serveriron" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65000 + ] + }, + "cpe": [ + "cpe:/o:foundrynet:ironware:2.2.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65000 + ] + }, + "cpe": [ + "cpe:/o:foundrynet:ironware:2.2.1lt157" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65000 + ] + }, + "cpe": [ + "cpe:/o:foundrynet:ironware:2", + "cpe:/o:foundrynet:ironware:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:foundrynet:ironware:3", + "cpe:/o:foundrynet:ironware:4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65000 + ] + }, + "cpe": [ + "cpe:/o:foundrynet:ironware:3.8.0" + ] + }, + { + "signature": { + "order_key": "MSS,MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65000 + ] + }, + "cpe": [ + "cpe:/o:foundrynet:ironware:5", + "cpe:/o:brocade:ironware:6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:foundrynet:ironware:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/a:nas4free:nas4free", + "cpe:/o:freebsd:freebsd:10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:10.2", + "cpe:/h:sony:playstation_4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/a:nas4free:nas4free", + "cpe:/o:freebsd:freebsd:10.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11", + "cpe:/o:freebsd:freebsd:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65228 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.0", + "cpe:/a:nas4free:nas4free" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/a:xigmanas:xigmanas", + "cpe:/o:freebsd:freebsd:11.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/a:nas4free:nas4free", + "cpe:/o:freebsd:freebsd:11.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/a:xigmanas:xigmanas", + "cpe:/o:freebsd:freebsd:11.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:12.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:12.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:12", + "cpe:/o:freebsd:freebsd:13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:12", + "cpe:/o:freebsd:freebsd:13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:12.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:12.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:12", + "cpe:/o:freebsd:freebsd:13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/a:xigmanas:xigmanas", + "cpe:/o:freebsd:freebsd:12.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:12.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:12.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:13.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:13.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:13.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:13.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:13.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:13.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:13.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:13.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:3.5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.10" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4", + "cpe:/o:freebsd:freebsd:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.11" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.3", + "cpe:/o:ibm:aix:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.6.2" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5.2.1:rc2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5.2.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5.4" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5.5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:5.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.2:rc1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.2" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL,MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0:beta2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0:beta4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0:rc1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,NOP", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS,MSS,NOP,WS,SACK,TS,MSS,NOP,WS,SACK,TS,MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7", + "cpe:/o:freebsd:freebsd:8", + "cpe:/o:freebsd:freebsd:9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7", + "cpe:/o:freebsd:freebsd:8", + "cpe:/o:freebsd:freebsd:9", + "cpe:/o:freebsd:freebsd:10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS,MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7", + "cpe:/o:freebsd:freebsd:8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8", + "cpe:/o:freebsd:freebsd:9", + "cpe:/o:freebsd:freebsd:10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9", + "cpe:/o:freebsd:freebsd:10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.1", + "cpe:/o:freebsd:freebsd:10.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/a:nas4free:nas4free", + "cpe:/o:freebsd:freebsd:9.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/a:nas4free:nas4free", + "cpe:/o:freebsd:freebsd:9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9.1", + "cpe:/a:nas4free:nas4free" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/a:nas4free:nas4free", + "cpe:/o:freebsd:freebsd:9.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:9", + "cpe:/o:freebsd:freebsd:10.3", + "cpe:/a:nas4free:nas4free" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:freecom:sslbbh" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.671", + "cpe:/o:freebsd:freebsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.686", + "cpe:/o:freebsd:freebsd:6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.686", + "cpe:/o:freebsd:freebsd:6.2", + "cpe:/o:vmware:esx:3", + "cpe:/o:vmware:esx:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.686b", + "cpe:/o:freebsd:freebsd:6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.69", + "cpe:/o:freebsd:freebsd:6.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.69.1", + "cpe:/o:freebsd:freebsd:6.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.62.2", + "cpe:/o:freebsd:freebsd:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.69rc2", + "cpe:/o:freebsd:freebsd:6.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.7", + "cpe:/o:freebsd:freebsd:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.7", + "cpe:/o:freebsd:freebsd:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.7", + "cpe:/o:freebsd:freebsd:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.7", + "cpe:/o:freebsd:freebsd:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:0.7.2", + "cpe:/o:freebsd:freebsd:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas:9.10", + "cpe:/o:freebsd:freebsd:10.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas", + "cpe:/o:freebsd:freebsd:6.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freenas:freenas", + "cpe:/o:freebsd:freebsd:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:fronius:datalogger_web" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 31000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 31000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 27360 + ] + }, + "cpe": [ + "cpe:/h:fs:s5850" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:fujixerox:apeosport_iv_c2275" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:fujixerox:document_centre_706_cp" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/h:fujixerox:docuprint_c525_a" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:fujixerox:docuprint_cm205" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:fujianruijie:star-s2800" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:fujitsu:bs2000_osd" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:fujitsu:reliantunix" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,EOL,SACK,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:funkwerk:bintec_r3000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:funkwerk:artem_wi3040" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:galaxymetalgear:3507lr-sa" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:garmin:virb_elite" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:geist:watchdog_1250" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:gemtek:p360", + "cpe:/h:siemens:gigaset_se515dsl" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,NOP,NOP", + "set_key": "{MSS,NOP}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:george_robotics:micropython:1.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/h:geovision:ebd4700", + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:globespanvirate:gs8100", + "cpe:/h:huawei:mt880", + "cpe:/h:solwise:sar_100" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32120 + ] + }, + "cpe": [ + "cpe:/o:gnu:hurd" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:gnu:hurd" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android_tv:11", + "cpe:/o:linux:linux_kernel:4.19" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:google:android:1.1", + "cpe:/o:linux:linux_kernel:2.6.25", + "cpe:/o:google:android:1.1" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:google:android:1.5", + "cpe:/o:linux:linux_kernel:2.6.27", + "cpe:/o:google:android:1.5" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:google:android:1", + "cpe:/o:linux:linux_kernel:2.6.27", + "cpe:/o:google:android:1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:google:android:10", + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:google:android:10", + "cpe:/o:linux:linux_kernel:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:google:android:10", + "cpe:/o:linux:linux_kernel:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:10", + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:10", + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:10", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:11", + "cpe:/o:linux:linux_kernel:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:12", + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5392 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.0.1", + "cpe:/o:google:android:2.0.1", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.1", + "cpe:/o:linux:linux_kernel:2.6.29", + "cpe:/o:google:android:2.1:rev1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.1", + "cpe:/o:linux:linux_kernel:2.6.29", + "cpe:/o:google:android:2.1:rev1" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.2", + "cpe:/o:google:android:2.2", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.2", + "cpe:/o:google:android:2.2", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.2", + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/o:google:android:2.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.2", + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/o:google:android:2.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:2", + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/o:google:android:2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:google:android:2", + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:google:android:2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:google:android:2", + "cpe:/o:google:android:2", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.3.4", + "cpe:/o:google:android:2.3.4", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.3.5", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.3.5", + "cpe:/o:google:android:2", + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:2", + "cpe:/o:google:android:2", + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.3.6", + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.3.7", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:google:android:2.3.7", + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:google:android:2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:google:android:3", + "cpe:/o:linux:linux_kernel:2.6.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.0", + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.0.4", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.0.4", + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.0.4", + "cpe:/o:linux:linux_kernel:3.0.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.1.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.1", + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13032 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.1.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.1.1", + "cpe:/h:cisco:cp-dx650" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.2.1", + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.2.2", + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.2.2", + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.2.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13032 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12280 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.4.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 60660 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.4.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:google:android:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:google:android:4" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:4", + "cpe:/o:google:android:5", + "cpe:/o:google:android:6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13032 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.2.2", + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13480 + ] + }, + "cpe": [ + "cpe:/o:google:android:4.4", + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:google:android:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:5.0", + "cpe:/h:sony:x75ch" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:5", + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:5", + "cpe:/o:google:android:6", + "cpe:/o:google:android:7", + "cpe:/o:google:android:8", + "cpe:/o:google:android:10", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:5", + "cpe:/o:google:android:6", + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:5.0.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:5.0.1", + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:5.0.1", + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:google:android:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:google:android:5.1.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:6", + "cpe:/o:google:android:9", + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:6", + "cpe:/o:google:android:7", + "cpe:/o:google:android:9", + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:6.0.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:6.0.1", + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:7.0", + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:google:android:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:google:android:7.1.2", + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:7.1.2", + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:google:android:8.0", + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:8", + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:8", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:google:android:9", + "cpe:/o:linux:linux_kernel:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:9", + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:9", + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:9", + "cpe:/o:linux:linux_kernel:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android:9", + "cpe:/o:linux:linux_kernel:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:google:android" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS", + "set_key": "{NOP,TS}", + "win_bucket": [ + 21344 + ] + }, + "cpe": [ + "cpe:/o:google:android" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:google:android", + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,WS,EOL,EOL,EOL", + "set_key": "{EOL,MSS,SACK,WS}", + "win_bucket": [ + 16060 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 29184 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:gopro:hero3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:gopro:wifi-bacpac" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4464 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1446 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1446 + ] + }, + "cpe": [ + "cpe:/h:grandstream:budgetone_100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1446 + ] + }, + "cpe": [ + "cpe:/h:grandstream:budgetone_100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:grandstream:gxp1105" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:grandstream:gxp1400" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:grandstream:gxp1405", + "cpe:/h:hp:laserjet_2430" + ] + }, + { + "signature": { + "order_key": "MSS,MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:grandstream:gxp2000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:grandstream:gxp2020" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:grandstream:gxv3000" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:grandstream:gxv3275" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:greenhills:rtos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:h3c:e126a", + "cpe:/h:h3c:s3100-8t-si", + "cpe:/o:h3c:comware:3.10" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:h3c:comware:5.20" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:haiku:haiku:r1:alpha_3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:haiku:haiku:r1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:haiku:haiku:r1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/h:hawking:pn7127p" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/h:hawking:ps12u", + "cpe:/h:repotech:rp-1805b-v2", + "cpe:/h:trendnet:te100_p2u1p" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65500 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2520 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2520 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:hid:edgeplus_solo_es400" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1500 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1500 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:hirschmann:l2e" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:hirschmann:mach" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hirschmann:rs2-16m" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:hirschmann:rs20", + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:hitron:bwg-35302" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:hitron:cve-30360", + "cpe:/o:linux:linux_kernel" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,NOP,EOL", + "set_key": "{EOL,MSS,NOP}", + "win_bucket": [ + 7168 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:hp:comware:7.1" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:hp:jetdirect_170x", + "cpe:/h:hp:inkjet_3000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:2101nw" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:jetdirect_175x", + "cpe:/h:hp:9100c_digital_sender" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:hp:jetdirect_2591a" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:jetdirect_635n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_1320" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:designjet_500", + "cpe:/h:hp:laserjet_8100", + "cpe:/h:hp:laserjet_4050n" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:hp:designjet_650c" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:hp:deskjet_6940" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:hp:envy_4500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:jetdirect_j8013e" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:sony:snc-rz30n" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_1017" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_1022n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_1200" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_1320nw", + "cpe:/h:hp:laserjet_1300n", + "cpe:/h:hp:laserjet_3550" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_1320" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2200dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2200dtn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2200dtn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2300n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2420" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2420" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2420n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2600n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2600n" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2600n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2600n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 3036 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2600n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2605dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2840" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_3600" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_3600n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_3800", + "cpe:/h:hp:laserjet_4250", + "cpe:/h:hp:laserjet_4345", + "cpe:/h:hp:laserjet_9040" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_4000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_4014" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_4050" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_4100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_4100n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_4100n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_4200" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:hp:laserjet_4250" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_4250" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_4250" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_4250" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_4300" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_4350" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_5500dtn", + "cpe:/h:hp:laserjet_5550" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_5550" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_5m" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_5m" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_8000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_cm6040" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_cm6040" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_cp1025nw", + "cpe:/h:hp:laserjet_1102w", + "cpe:/h:hp:laserjet_m1212nf", + "cpe:/h:hp:laserjet_m1217nfw", + "cpe:/h:hp:laserjet_p1120w", + "cpe:/h:hp:laserjet_p1606dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_cp1515n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_cp1518ni" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_cp2025dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_cp2025dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_cp3505", + "cpe:/h:hp:laserjet_4350" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_cp5520" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_m1522nf" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 9478 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 9415 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_m176n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8208 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_m375nw" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 9422 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_m375nw" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 9380 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_m425dn", + "cpe:/h:hp:laserjet_m2727nf" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_cp4525", + "cpe:/h:hp:laserjet_m451dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_m476dw" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_m525" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_m605" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_p1102w" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_p1606dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_p1606dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_p1606dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_p1606dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_p2015" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_p2035n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_p2055dn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_p2055x" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_p3005" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_p3010" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_p3015" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_pro_200_m275nw" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 3036 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_pro_p1102w" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:m281fdn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:hp:officejet_j4680" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:hp:officejet_j6480" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:officejet_pro_8500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:hp:officejet_pro_8500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:hp:officejet_pro_8500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:hp:p4014" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8640 + ] + }, + "cpe": [ + "cpe:/h:hp:photosmart_5520" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:hp:photosmart_8400" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:hp:photosmart_8750" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:hp:photosmart_c390", + "cpe:/h:hp:photosmart_c4780", + "cpe:/h:hp:officejet_6500", + "cpe:/h:hp:officejet_7000", + "cpe:/h:hp:officejet_8500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:hp:photosmart_c4380" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:hp:photosmart_c4380" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:laserjet_2420", + "cpe:/h:ibm:df-4000", + "cpe:/h:kaiomy:al-2014pw", + "cpe:/h:planet:ade-4110", + "cpe:/h:siemens:c-110" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:hp:msm765zl" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/a:hp:onboard_administrator:2.04" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/a:hp:onboard_administrator" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/a:hp:onboard_administrator:4.01" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:hp:procurve_7102dl" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:e1200", + "cpe:/h:sonicwall:soho3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,WS,NOP,NOP,NOP", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:hp:storageworks_msl4048" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:hp:storageworks_msl4048" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 7240 + ] + }, + "cpe": [ + "cpe:/h:hp:storageworks_p2000_g3_msa_fc%2fiscsi_dual_combo_controller_lff_array_system" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:hp:p2000_g3" + ] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:hp:1905" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:hp:1905" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2424m" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:switch_2530", + "cpe:/h:hp:switch_2920", + "cpe:/h:hp:switch_5406zl" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:2920", + "cpe:/h:hp:3800" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_4000m" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_4108gl" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:hp:5406zl" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:brocade_1600" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:switch_e3500yl", + "cpe:/h:hp:procurve_switch_5406zl" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:hp:gbe2c" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:hp:gbe2c" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_1810g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_2425" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2510" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2520", + "cpe:/h:hp:procurve_switch_3500yl", + "cpe:/h:hp:procurve_switch_5400zl", + "cpe:/h:hp:procurve_switch_5412zl" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2524" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2524" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2524" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2524", + "cpe:/h:hp:jetdirect_175x", + "cpe:/h:symmetricon:nts-150" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2610" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2650" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2650" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2650", + "cpe:/h:konicaminolta:bizhub_c450" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2910al" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2910al" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_2910al" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_3500yl" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:utstarcom:f1000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_3500yl", + "cpe:/h:hp:procurve_switch_5412zl", + "cpe:/h:hp:procurve_switch_8212zl" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_4000m" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_5406zl" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_5412zl" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_switch_e2910al" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:hp:msm410" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:hp:procurve_msm422" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:09.00" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:10.20" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:10.20" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:10.20" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.00" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.00" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.00" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.00" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.00" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.23" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.23" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS,MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.23" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.31" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.31" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.31" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.31" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.31" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.31" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.31" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.31" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:hp:hp-ux:11.31" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:3", + "cpe:/o:hp:ilo:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13032 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13032 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:3", + "cpe:/o:hay_systems:hsl_2.75g_femtocell" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:4", + "cpe:/o:hp:ilo:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13032 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:4", + "cpe:/o:hp:ilo:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13230 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13032 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 13032 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 13032 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo:5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo", + "cpe:/o:hp:ilo:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:hp:ilo" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 24576 + ] + }, + "cpe": [ + "cpe:/o:hp:mpe_ix:7.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:hp:nonstop_os:h06.19" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:hp:nonstop_os" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:hp:nonstop_os" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:hp:nonstop_os" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS,MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/a:hp:onboard_administrator:4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:6" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 3000 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:7", + "cpe:/o:hp:openvms:8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:7.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:8.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 62780 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:8.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:8.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 62780 + ] + }, + "cpe": [ + "cpe:/o:hp:openvms:8.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:hp:tru64:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:hp:tru64:5.1a" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 62780 + ] + }, + "cpe": [ + "cpe:/o:hp:tru64:5.1b" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:hp:tru64:5.1b" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:2", + "cpe:/o:zyxel:zynos:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1536 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:huawei:hg8240" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:huawei:mt-800", + "cpe:/h:tenda:ted8620r", + "cpe:/h:zoom:x5", + "cpe:/h:zte:zxdsl_831" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:huawei:mt880" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:huawei:mt882" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:huawei:smartax_mt800u-t", + "cpe:/h:nexstor:nexsan_ataboy2x", + "cpe:/h:zyxel:es-4024a", + "cpe:/o:zyxel:zynos:3", + "cpe:/h:zyxel:prestige_650hw", + "cpe:/h:zyxel:prestige_660hw", + "cpe:/o:zyxel:zynos:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4500 + ] + }, + "cpe": [ + "cpe:/h:huawei:smartax_mt880" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:huawei:secospace_usg6680" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:huawei:ar_28" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:huawei:ma5200" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/h:huawei:cloudengine_ce6800" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:huawei:quidway_s5600" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:huawei:ap6050dn", + "cpe:/h:huawei:s57205" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:huawei:vrp:3.10" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:huawei:s2326", + "cpe:/o:huawei:vrp:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:huawei:s9300", + "cpe:/o:huawei:vrp:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:huawei:vrp:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:huawei:vrp:5.160" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 61440 + ] + }, + "cpe": [ + "cpe:/o:huawei:vrp:8.100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:huawei:vrp" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3216 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3216 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 28672 + ] + }, + "cpe": [ + "cpe:/o:ibm:4690_operating_system" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:4.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:4.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16060 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:4.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 15972 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:4.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16060 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 15928 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 15928 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL", + "set_key": "{EOL,MSS}", + "win_bucket": [ + 15642 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:4.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:4.3.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16060 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:4.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17537 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16560 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5", + "cpe:/o:ibm:aix:6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5", + "cpe:/o:ibm:aix:6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5", + "cpe:/o:ibm:aix:6", + "cpe:/o:ibm:aix:7" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:5.3:sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:6.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:6.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:6.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:7.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:7.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:aix:7.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:ibm:6400" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1448 + ] + }, + "cpe": [ + "cpe:/h:ibm:infoprint_1140" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:ibm:infoprint_1754" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:ibm:websphere_datapower_xi50" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:ibm:websphere_datapower_xs40" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:ibm:dcs9900", + "cpe:/h:fujitsu:externus_dx80" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:ibm:ts3200", + "cpe:/h:hp:storageworks_msl2024" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:ibm:ds4700" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 17920 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:ibm:8275-826" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 40000 + ] + }, + "cpe": [ + "cpe:/o:ibm:i:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:i:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:i:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:i:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:i:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:i:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:i:7.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:i:7.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:i:7.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 40960 + ] + }, + "cpe": [ + "cpe:/o:ibm:i:7.80" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:i5os:v5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 62500 + ] + }, + "cpe": [ + "cpe:/o:ibm:i5os:v5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:i5os:v5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:i5os:v5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 64384 + ] + }, + "cpe": [ + "cpe:/o:ibm:i5os:v5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192, + 64000 + ] + }, + "cpe": [ + "cpe:/o:ibm:i5os:v5", + "cpe:/o:ibm:i:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:i5os:v5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 28672 + ] + }, + "cpe": [ + "cpe:/o:ibm:os2:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 28672 + ] + }, + "cpe": [ + "cpe:/o:ibm:os2:3" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:ibm:os2:4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 28672 + ] + }, + "cpe": [ + "cpe:/o:ibm:os2:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:ibm:os2:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:ibm:os2:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:ibm:os2:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_390:v2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_390" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v4r2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v4r3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v4r3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64000 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v4r3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v4r5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v4r5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v5r1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v5r1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v5r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v5r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1436 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v5r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v5r3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v5r3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:os_400:v5r3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:1.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:1.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:1.12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:1.13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:1.4.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:1.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:1.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:1.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:1.8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:1.8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:1.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:2.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos:2.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:zos" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:ibm:z_vm:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:z_vm:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:ibm:z_vm" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5712 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:novatel:mifi_2200_3g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 2047 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 14000 + ] + }, + "cpe": [ + "cpe:/h:ihome:isp5wwc" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 7168 + ] + }, + "cpe": [ + "cpe:/h:ikea:tradfri" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:illumos:openindiana" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:illumos:openindiana" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:illumos:openindiana" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:illumos:openindiana", + "cpe:/o:illumos:omnios" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:imperva:securesphere" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:imperva:securesphere" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:infoblox:trinzic" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 15768 + ] + }, + "cpe": [ + "cpe:/o:infrant:raidiator:3.00" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5392 + ] + }, + "cpe": [ + "cpe:/o:infrant:raidiator:4.1.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:intel:express_460t" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:intel:express_510t" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 12672 + ] + }, + "cpe": [ + "cpe:/h:interbell:ib-305" + ] + }, + { + "signature": { + "order_key": "MSS,MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:interpeak:ipcom" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:intertex:ix66-edflc" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:iomega:ix4-200d", + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/o:ipadownersassociation:ipad_os" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.15", + "cpe:/o:linux:linux_kernel:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:iptime:pro_54g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 14000 + ] + }, + "cpe": [ + "cpe:/h:irobot:roomba_980" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 14000 + ] + }, + "cpe": [ + "cpe:/h:irobot:roomba_980" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:ironport:asyncos:4.7.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:ironport:asyncos:6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:ironport:asyncos:6.5.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:ironport:asyncos:6.5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:ironport:asyncos:7.5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:isilon:onefs" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:ixsystems:truenas:12", + "cpe:/o:ixsystems:truenas:13", + "cpe:/o:freebsd:freebsd:12", + "cpe:/o:freebsd:freebsd:13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26960 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32806 + ] + }, + "cpe": [ + "cpe:/o:joyent:smartos" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32806 + ] + }, + "cpe": [ + "cpe:/o:joyent:smartos" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32806 + ] + }, + "cpe": [ + "cpe:/o:joyent:smartos" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32806 + ] + }, + "cpe": [ + "cpe:/o:joyent:smartos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:jtekt:toyopuc_pc10" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:juniper:networks_ssg_20" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:juniper:srx100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:juniper:j4350" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:juniper:m7i" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:juniper:m7i" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:juniper:m7i" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:juniper:networks_erx-700" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:juniper:mag2600" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:juniper:sa4000", + "cpe:/o:juniper:ive_os:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:10", + "cpe:/o:juniper:junos:12" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:11.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32120 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:12.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:12.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:12.3r5.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:13.3r8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:13.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32120 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:19.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:20.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:5.4.4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:7.3r6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:7.4r3.4", + "cpe:/o:juniper:junos:8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:7.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:8", + "cpe:/o:juniper:junos:9", + "cpe:/o:juniper:junos:10", + "cpe:/o:juniper:junos:11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:8.5b2.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:9.5r3.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:9", + "cpe:/o:juniper:junos:12", + "cpe:/o:juniper:junos:14" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:9.2r1.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos:9.4r2.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:juniper:junos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/o:ka9q:ka9q" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 127 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5360 + ] + }, + "cpe": [ + "cpe:/h:kartina:sig_220" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:kcorp:klg-575" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:keyence:cv-x150f", + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:keyence:sr-1000" + ] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 46720 + ] + }, + "cpe": [ + "cpe:/h:kodak:esp_5210" + ] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 46720 + ] + }, + "cpe": [ + "cpe:/h:kodak:esp_5210", + "cpe:/h:kodak:esp_7250", + "cpe:/h:kodak:esp_9200", + "cpe:/h:kodak:hero_3.1" + ] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 46720 + ] + }, + "cpe": [ + "cpe:/h:kodak:esp_5250" + ] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 46720 + ] + }, + "cpe": [ + "cpe:/h:kodak:esp_5250" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,TS,NOP,NOP", + "set_key": "{EOL,MSS,NOP,TS}", + "win_bucket": [ + 46720 + ] + }, + "cpe": [ + "cpe:/h:kodak:esp_c310" + ] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 46720 + ] + }, + "cpe": [ + "cpe:/h:kodak:esp_c310" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:konicaminolta:1600f" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:konicaminolta:7035" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:konicaminolta:bizhub_250" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:konicaminolta:bizhub_250" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:konicaminolta:bizhub_c252" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:konicaminolta:bizhub_c253" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:konicaminolta:bizhub_c450" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1 + ] + }, + "cpe": [ + "cpe:/h:konicaminolta:c203" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 1 + ] + }, + "cpe": [ + "cpe:/h:konicaminolta:c350" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS", + "set_key": "{EOL,MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:konicaminolta:color_mf24-2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:konicaminolta:di2510f" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1 + ] + }, + "cpe": [ + "cpe:/h:konicaminolta:magicolor_2430", + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:koukaam:netio-230a", + "cpe:/h:zyxel:sp-220e" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos:3.8" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/o:kw-software:proconos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:kyocera:cs_255" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:kyocera:cs-2560" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:kyocera:ecosys_m2030dn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:kyocera:ep_470dn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:kyocera:fs-1118mfp" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:kyocera:fs-1750" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 256 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 23360 + ] + }, + "cpe": [ + "cpe:/h:kyocera:fs2000d" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:lacrosse:wa-1030u" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/h:lancom:l-305agn", + "cpe:/o:lancom:lcos:8", + "cpe:/h:lancom:1722_voip", + "cpe:/h:lancom:wlc-4006" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/o:lancom:lcos:10.30" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/o:lancom:lcos:6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/o:lancom:lcos:6", + "cpe:/o:lancom:lcos:7" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:lancom:lcos:7.70" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/o:lancom:lcos:8.00" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/o:lancom:lcos:9.20" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/o:lancom:lcos" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS", + "set_key": "{EOL,MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:lanier:pro_8100s" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:lanier:ls232c", + "cpe:/o:netbsd:netbsd:1", + "cpe:/h:nrg:dsc428", + "cpe:/h:panasonic:bb-hcm331", + "cpe:/h:panasonic:bb-hcm381", + "cpe:/h:panasonic:bcl-30a", + "cpe:/h:panasonic:bl-c1ce", + "cpe:/h:panasonic:bl-c10ce", + "cpe:/h:ricoh:aficio_2020", + "cpe:/h:ricoh:nrg_mp_161", + "cpe:/h:savin:8055" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 511 + ] + }, + "cpe": [ + "cpe:/h:lantronix:uds-1100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5440 + ] + }, + "cpe": [ + "cpe:/h:lantronix:xport_ar" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:lantronix:ets4p" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3584 + ] + }, + "cpe": [ + "cpe:/h:lantronix:mps1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3584 + ] + }, + "cpe": [ + "cpe:/h:lantronix:mss100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 511 + ] + }, + "cpe": [ + "cpe:/h:lantronix:uds1100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 511 + ] + }, + "cpe": [ + "cpe:/h:lantronix:xport" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 511 + ] + }, + "cpe": [ + "cpe:/h:lantronix:xport" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 511 + ] + }, + "cpe": [ + "cpe:/h:lantronix:xport" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2047 + ] + }, + "cpe": [ + "cpe:/h:lantronix:xport" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 511 + ] + }, + "cpe": [ + "cpe:/h:lantronix:xport-03" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 511 + ] + }, + "cpe": [ + "cpe:/h:lantronix:xport-03" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3584 + ] + }, + "cpe": [ + "cpe:/h:lantronix:msslite" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 511 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:lantronix:ets32pr", + "cpe:/h:lantronix:lrs16" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:lantronix:evolution_os:5.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 511 + ] + }, + "cpe": [ + "cpe:/o:lantronix:evolution_os" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 127 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 31000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,EOL", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:lenel:lnl-2200" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,EOL", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 13140 + ] + }, + "cpe": [ + "cpe:/h:lenel:lnl-2220" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,EOL", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:lenel:lnl-3300" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,EOL", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 13140 + ] + }, + "cpe": [ + "cpe:/h:lenel:lnl-3300" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:leolink:leo-6400dl" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/h:levelone:fps-1032" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 2096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:lexmark:c500" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2096 + ] + }, + "cpe": [ + "cpe:/h:lexmark:c524" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:lexmark:c534dn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:lexmark:cs310dn", + "cpe:/h:lexmark:ms410dn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:lexmark:cs410dn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:lexmark:cs410dn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2880 + ] + }, + "cpe": [ + "cpe:/h:lexmark:e250dn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:lexmark:e450dn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:lexmark:ms811" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:lexmark:mx611dhe" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:lexmark:optra_m410", + "cpe:/h:lexmark:optra_t610", + "cpe:/h:lexmark:optra_t612", + "cpe:/h:lexmark:optra_t622" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1010 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65532 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1448 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1572 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:lexmark:t640" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:lexmark:t654", + "cpe:/h:lexmark:x656de" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:lexmark:x4530", + "cpe:/h:lexmark:x4650", + "cpe:/h:lexmark:4800", + "cpe:/h:lexmark:x9575" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:lexmark:x4850", + "cpe:/h:lexmark:x6570" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:lexmark:x546dtn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:lexmark:x646e", + "cpe:/h:lexmark:c770", + "cpe:/h:lexmark:c935" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:lexmark:x6650" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:lexmark:z2400" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:lg:webos:7.2" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:linksys:wet54g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:linksys:wrv200" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1, + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:linksys:befsr41" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:linksys:befsr81" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:linksys:rv042" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32416 + ] + }, + "cpe": [ + "cpe:/h:linksys:rvs4000" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:linksys:wrt54gx2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:linksys:nas200" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:alliedtelesyn:at-8000s" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/h:linksys:srw2008mp" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/h:linksys:srw2024" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/h:linksys:srw2024" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:linksys:pap2t" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:linksys:spa3102_voice_gateway_with_router:-", + "cpe:/o:linksys:spa3102_voice_gateway_with_router_firmware" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:linksys:spa901_1-line_ip_phone", + "cpe:/h:linksys:spa921_1-line_ip_phone_with_1-port_ethernet", + "cpe:/h:linksys:spa941_4-line_ip_phone_with_1-port_ethernet" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:linksys:spa921_1-line_ip_phone_with_1-port_ethernet" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:linksys:spa942_4-line_ip_phone_with_2-port_switch" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:linksys:spa942_4-line_ip_phone_with_2-port_switch", + "cpe:/h:linksys:spa962_6-line_ip_phone_with_2-port_switch", + "cpe:/h:linksys:spa9000", + "cpe:/h:linksys:spa3102_voice_gateway_with_router:-", + "cpe:/o:linksys:spa3102_voice_gateway_with_router_firmware", + "cpe:/h:sipura:spa2102_phone_adapter_with_router:-", + "cpe:/o:sipura:spa2102_phone_adapter_with_router_firmware" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:linksys:am300" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:linksys:befsr41", + "cpe:/h:linksys:wrk54g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:linksys:befw11s4" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:linksys:befw11s4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:linksys:wag200g" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:linksys:wap54g" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:linksys:wap54g" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:linksys:wet54gs5", + "cpe:/h:tranzeo:tr-cpq-19f", + "cpe:/h:xerox:workcentre_pro_265" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 24576 + ] + }, + "cpe": [ + "cpe:/h:linksys:wga54g" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:linksys:wrt100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:linksys:wrt54g_v8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:linksys:wrt54g2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3072 + ] + }, + "cpe": [ + "cpe:/h:linksys:wrt54gc", + "cpe:/h:trendnet:tew-431brp" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 0, + 5792 + ] + }, + "cpe": [ + "cpe:/h:linksys:wrt610nv3" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:linksys:wrv54g" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:linksys:wvc54g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 4096 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:1.0.9" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32736 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.0.34", + "cpe:/h:cobalt:qube_2700" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16352 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.0.33" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32736 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.0.33" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32736 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32736 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.0.36" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16352 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16352 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.0.38" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 16352 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.0.39" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.0.39" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.1.24" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.1.24", + "cpe:/h:philips:hdr112", + "cpe:/h:sony:svr-2000" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 30660 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.2.13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32120 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.2.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32120 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16060 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.2.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.2.14", + "cpe:/h:netgear:wg602v1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5808 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.37" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.35.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.37" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.21", + "cpe:/a:checkpoint:secureplatform_ngx:r65" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.21", + "cpe:/a:checkpoint:secureplatform_ngx:r65" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4", + "cpe:/a:checkpoint:vpn-1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.34" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5808 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.18", + "cpe:/h:iss:proventia_gx3002" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.18", + "cpe:/h:iss:proventia_gx3002c" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5632 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5432 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.31", + "cpe:/h:securecomputing:sg550" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.18" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.19" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.20" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.21" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.21" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.22" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.27" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.33" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.33" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.17" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.17" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.35" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.35.4" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.18", + "cpe:/h:toshiba:magnia_sg10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4", + "cpe:/h:shoretel:8800" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 3888 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.18", + "cpe:/h:macsense:homepad" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.30" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.20" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4422 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5808 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4", + "cpe:/h:idirect:protocol_processor" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.22", + "cpe:/h:synology:ds106j", + "cpe:/h:linksys:nslu2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4", + "cpe:/h:belkin:f5d7633", + "cpe:/h:inventel:livebox", + "cpe:/h:telekom:sinus_1054", + "cpe:/h:usr:sureconnect_9105", + "cpe:/h:zte:zxdsl_831" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4", + "cpe:/h:draytek:vigor3300", + "cpe:/h:dlink:dir-100", + "cpe:/h:netgear:kwrgr614", + "cpe:/h:netgear:rt614", + "cpe:/h:netgear:wg602" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.17", + "cpe:/h:dlink:dsl-g624t", + "cpe:/h:netgear:dg834bv3", + "cpe:/h:netgear:dg834bv3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.18", + "cpe:/h:dlink:dwl-g700ap" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.35s" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.34" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.36" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5592 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5560 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.17" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.35.4" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.30" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.30" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5392 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.33.7" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1448 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4.20", + "cpe:/h:foscam:fi8908w" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.21", + "cpe:/h:dlink:dir-300_nru" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.34" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.20", + "cpe:/h:huawei:hg850a" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18", + "cpe:/h:motorola:surfboard_sb6120", + "cpe:/h:motorola:surfboard_sb6141" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.39" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13332 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.25.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS,MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18", + "cpe:/o:checkpoint:gaia_os" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18", + "cpe:/a:checkpoint:vpn-1_firewall-1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:cisco:sa520" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:2.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:fortinet:fortianalyzer-400b" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.11" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:asus:rt-n10", + "cpe:/h:axis:211_network_camera" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18", + "cpe:/o:citrix:xenserver:5.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/o:citrix:xenserver:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.34" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.39", + "cpe:/h:excito:b3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/h:excito:bubba_two" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.11" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.11" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.11" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.11" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.12" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 11904 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.12" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.14" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.14.7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.15" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.15" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.16" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.16" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.17" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.17" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.17" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 1432 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,EOL", + "set_key": "{EOL,MSS,NOP,WS}", + "win_bucket": [ + 64904 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17924 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17924 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.19" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 3072 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4592 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.20" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.20.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5744 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.23" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.23" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.23" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24472 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.23" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.23" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.23" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.23" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.23" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS,MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.23" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5472 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4912 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 6714 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2096 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.25" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16232 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.25" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.25" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 11844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14296 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5664 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4992 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS,SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS,SACK,TS,MSS,NOP,WS,SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.28" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 6714 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.28" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5720 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.28" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.28" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.28" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.28" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.28" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65228 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.29" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.29" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.29" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.29" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.30" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.30" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.30" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.30" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.30" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.30" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.30" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31", + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5472 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5392 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5672 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1448 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65495 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17898 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.33" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.33" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.33" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.34" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.34" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.34" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.34" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.34" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5592 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS,MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4992 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5776 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 10344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.36" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14400 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14196 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.39" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.39" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.39" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.39" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.39" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.39" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.39" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.39" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.5" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.6" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5608 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5776 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5632 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS,MSS,NOP,NOP,TS,NOP,WS,MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5696 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.16" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:kemp:loadmaster_2500" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22", + "cpe:/h:directv:hr34" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dish:vip_722k", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:infomir:mag-250" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:lg:ls570s" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.12" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS,SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.27" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26", + "cpe:/h:logitech:squeezebox_touch" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.21", + "cpe:/h:nokia:n800" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.23", + "cpe:/h:star_track:srt2014hd" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1448 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.17", + "cpe:/h:zyxel:stb-1001h" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:cisco:uc320" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:cisco:uc320w" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:lg:ipecs_300" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 6714 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.28", + "cpe:/h:nokia:n900" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:dell:remote_access_card:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:dell:idrac6_firmware" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:supermicro:aoc-simso+", + "cpe:/h:epson:artisan_837" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24", + "cpe:/o:supermicro:intelligent_platform_management_firmware" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/h:cisco:rv320" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5392 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/o:mikrotik:routeros:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5712 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.35", + "cpe:/o:mikrotik:routeros:5.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/a:symantec:web_gateway:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5392 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.10", + "cpe:/h:hikvision:ds-7600" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.15", + "cpe:/h:meinberg:lantime_m600" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.21" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8856 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.12", + "cpe:/h:dlink:dns-323" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17904 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.12", + "cpe:/h:dlink:dns-323" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18", + "cpe:/h:drobo:5d" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 11844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31", + "cpe:/h:iomega:storcenter_ix2-200" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31", + "cpe:/h:lacie:5big_network_2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:lacie:d2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:lg:n4b2nd4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5696 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.12" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 18328 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5712 + ] + }, + "cpe": [ + "cpe:/h:galaxymetalgear:4500mgb", + "cpe:/h:icy_box:ib-nas4220", + "cpe:/h:mrt:giganas", + "cpe:/o:linux:linux_kernel:2.6.15" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 15768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.17", + "cpe:/o:netgear:raidiator:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:netgear:readynas_3200" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 11844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:promise:smartstor_ns2300", + "cpe:/h:synology:ds207" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 11844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/o:linux:linux_kernel:3", + "cpe:/a:synology:diskstation_manager:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/a:synology:diskstation_manager:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/a:synology:diskstation:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/a:synology:diskstation_manager:4.1", + "cpe:/h:synology:ds212j" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:synology:vs240hd" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.17.14" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.11", + "cpe:/a:avaya:communication_manager" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:igel:ud3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 30720 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:wyse:s50" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:lantronix:slc_8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:digium:d70" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:asus:rt-n16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22", + "cpe:/h:asus:rt-n16" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:asus:rt-n66u" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:avm:fritz%21box_fon_wlan_7170", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:avm:fritz%21box_fon_wlan_7170", + "cpe:/o:linux:linux_kernel:2.6.13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.23", + "cpe:/h:ceedtec:cd-730" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.21", + "cpe:/h:cisco:ap541n", + "cpe:/h:avaya:ers_5510" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:cisco:rv042" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:cisco:srp_521w" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:cisco:srp_527" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.15", + "cpe:/h:cisco:wap4410n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.21", + "cpe:/h:dlink:dir-300" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.33", + "cpe:/h:dlink:dir-600", + "cpe:/h:dlink:dir-645" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.30", + "cpe:/h:dlink:dir-818lw" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:dlink:dir-865l" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.23" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.34" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.11", + "cpe:/h:gennet:oxygen_router" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.34", + "cpe:/h:huawei:echolife" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.21", + "cpe:/h:huawei:hg8245t", + "cpe:/h:sagemcom:fast_4350" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:io-data:wn-g300r" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.17", + "cpe:/h:zyxel:nwa570n" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.36", + "cpe:/h:netgear:wndap660" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.26" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:starbridge_networks:1531" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:ubnt:airmax_nanostation_m5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6", + "cpe:/h:ubnt:airmax_nanostation" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/h:ubnt:airmax_nanostation" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5392 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32", + "cpe:/h:ubnt:nanostation_loco_m2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.36" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18", + "cpe:/h:logitech:alert_750i" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38", + "cpe:/a:ubnt:unifi_video" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14400 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.3", + "cpe:/o:eric_bishop:gargoyle:1.5.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13090 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14280 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13332 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14360 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14360 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14040 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26847 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS,MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 27636 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.11" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.11" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.12" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.12" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28920 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26847 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26847 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28800 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.13", + "cpe:/o:linux:linux_kernel:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.13", + "cpe:/o:linux:linux_kernel:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28308 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.16" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.16" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 42340 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.19" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14440 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32708 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 11792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12132 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5240 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 7240 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.5" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 11896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.6.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13740 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 7240 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14400 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17898 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5240 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14360 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.14", + "cpe:/h:philips:hue_bridge_2.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.x" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.4", + "cpe:/o:google:android:4.2.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.4", + "cpe:/o:google:android:4.4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 256 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14360 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/h:hardkernel:odroid-u2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/h:pandaboard:pandaboard" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13636 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2", + "cpe:/a:synology:diskstation_manager:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13636 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10", + "cpe:/a:synology:diskstation_manager:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10", + "cpe:/a:synology:diskstation_manager:6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2", + "cpe:/o:tintri:tintri_os:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/h:cisco:cp-8841" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.14" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18", + "cpe:/o:linux:linux_kernel:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26847 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4", + "cpe:/o:linux:linux_kernel:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28560 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28800 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.12" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26844 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 62643 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64676 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65280 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26847 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.15" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4", + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.19" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64768 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.19" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.19" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 42340 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.19" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.19" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26847 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28560 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28560 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24560 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 27480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26847 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28560 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4", + "cpe:/o:google:android:10", + "cpe:/o:google:android:11", + "cpe:/o:google:android:12" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 22960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5", + "cpe:/o:linux:linux_kernel:6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64800 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64296 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 65495 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.11" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64296 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 62636 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 63204 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.13" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.14" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64296 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64296 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.15" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 63280 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.17" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 62832 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26847 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 62643 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64308 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 62083 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.8" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65483 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64296 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43690 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:5.11" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:6.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/h:compal:cg6640" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/h:free:freebox:v5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5152 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.25" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 11584 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/h:olivetti:65c-9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/h:cisco:rv320" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32736 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/h:bomara:tracker_2740" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/h:hp:p2000_msa" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 11792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/a:synology:diskstation_manager:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/a:synology:diskstation_manager:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/a:synology:diskstation_manager:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/a:synology:diskstation_manager:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/h:asus:rt-ac66u" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/h:huawei:hg8245a" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/h:linksys:ea3500" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/h:linksys:wrtu54g-tm" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/o:ubnt:airos" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel", + "cpe:/h:zyxel:keenetic_4g_ii" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14732 + ] + }, + "cpe": [ + "cpe:/h:logilink:gigabit" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:lorex:nv408" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5744 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:2" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/o:lucent:comos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5744 + ] + }, + "cpe": [ + "cpe:/h:luxul:xbr-2300" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1500 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:1.1.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8096 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:1.3.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8096 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:1.4.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:1.4.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:1.4.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5744 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5744 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5744 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip:2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:maipu:mypower_mp3840" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 27492 + ] + }, + "cpe": [ + "cpe:/o:mellanox:onyx" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 24576 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 24576 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 24576 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:metrix:scopix_iii" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 2800 + ] + }, + "cpe": [ + "cpe:/h:micronet:sp2267" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:micronet:sp916ne" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:microsoft:mn-700" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1450 + ] + }, + "cpe": [ + "cpe:/o:microsoft:ms-dos" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_mobile:2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_mobile:5", + "cpe:/o:microsoft:windows_mobile:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_mobile:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_mobile:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_mobile:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_mobile:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_mobile:6" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64000 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10", + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10", + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10", + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10", + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10", + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10", + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_11" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17420 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000:::advanced_server" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4:advanced_server" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000", + "cpe:/o:microsoft:windows_server_2003::sp1" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000:::professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4:professional" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16770 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp3", + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 63888 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8736 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4:server" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16560 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4:server" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4:server", + "cpe:/o:microsoft:windows_xp::sp3:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::-" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::-" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::-", + "cpe:/o:microsoft:windows_2000::sp1", + "cpe:/o:microsoft:windows_2000::sp2", + "cpe:/o:microsoft:windows_2000::sp3", + "cpe:/o:microsoft:windows_2000::sp4", + "cpe:/o:microsoft:windows_xp::-", + "cpe:/o:microsoft:windows_xp::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::-", + "cpe:/o:microsoft:windows_2000::sp2", + "cpe:/o:microsoft:windows_2000::sp4", + "cpe:/o:microsoft:windows_xp::-", + "cpe:/o:microsoft:windows_xp::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 0, + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16996 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp2", + "cpe:/o:microsoft:windows_2000::sp3", + "cpe:/o:microsoft:windows_2000::sp4", + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3", + "cpe:/o:microsoft:windows_server_2003::-", + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp3", + "cpe:/o:microsoft:windows_2000::sp4", + "cpe:/o:microsoft:windows_xp::sp1", + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520, + 64000 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16872 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 25200 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 46407 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16800 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16392 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17640 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 46407 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 62500 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 25200 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 25200 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16560 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16560 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16800 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16560 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4", + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 0, + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4", + "cpe:/o:microsoft:windows_xp::sp1:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4", + "cpe:/o:microsoft:windows_xp::sp1a" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17640 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4", + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4", + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32120 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003:::enterprise" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2:enterprise" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003:r2:sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003:r2:sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003:r2:sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003:r2:sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003:r2:sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::r2_sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::r2_sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003:r2:sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::-" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::-", + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 20000, + 64240, + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK,MSS,NOP,WS,EOL,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003", + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64123 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,EOL,NOP,NOP,TS", + "set_key": "{EOL,MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17329 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2:x64" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64380 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2:sp1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2", + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,MSS,NOP,WS,SACK,TS,MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192, + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::beta3", + "cpe:/o:microsoft:windows_server_2008" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64000 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2", + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2", + "cpe:/o:microsoft:windows_8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2", + "cpe:/o:microsoft:windows_8.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2:sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2:sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2:sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2:sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2:sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2:sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2:sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2:sp1" + ] + }, + { + "signature": { + "order_key": "MSS,MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2", + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2:sp1", + "cpe:/o:microsoft:windows_8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192, + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp1" + ] + }, + { + "signature": { + "order_key": "NOP,WS,SACK,TS", + "set_key": "{NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp1", + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192, + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008::sp2", + "cpe:/o:microsoft:windows_10", + "cpe:/h:microsoft:xbox_one" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2008:r2", + "cpe:/o:microsoft:windows_7", + "cpe:/o:microsoft:windows_vista", + "cpe:/o:microsoft:windows_8.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012", + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:-", + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "NOP,WS,SACK,TS", + "set_key": "{NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64000 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 51878 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2012:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS,MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64000 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2016", + "cpe:/o:microsoft:windows_server_2019" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2019" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2019" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2019" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2019" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2019" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2019" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2019" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2019" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2019" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2022" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2022" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2022" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2022" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_server_2022" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows:3.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows:3.11" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows:3.11" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows:3.11" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows:3.11", + "cpe:/o:microsoft:windows_nt:3.51" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows:3.11", + "cpe:/o:microsoft:windows_nt:3.51", + "cpe:/o:microsoft:windows_95" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7", + "cpe:/o:microsoft:windows_8.1:r1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7", + "cpe:/o:microsoft:windows_server_2008" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7", + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7", + "cpe:/o:microsoft:windows_server_2008:r2", + "cpe:/o:microsoft:windows_8.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::-:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::-:professional", + "cpe:/o:microsoft:windows_8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1", + "cpe:/o:microsoft:windows_7::-" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::-", + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::-", + "cpe:/o:microsoft:windows_7::sp1", + "cpe:/o:microsoft:windows_2008" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::-", + "cpe:/o:microsoft:windows_7::sp1", + "cpe:/o:microsoft:windows_server_2008", + "cpe:/o:microsoft:windows_embedded_compact_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7", + "cpe:/o:microsoft:windows_server_2008:r2", + "cpe:/o:microsoft:windows_8.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1", + "cpe:/o:microsoft:windows_server_2008::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1", + "cpe:/o:microsoft:windows_server_2008::sp2", + "cpe:/o:microsoft:windows_server_2008:r2:sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::-:ultimate" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::-:ultimate" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::-:ultimate" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::-:ultimate" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7:::ultimate", + "cpe:/o:microsoft:windows_2012", + "cpe:/o:microsoft:windows_8.1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64000 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8.1:r1", + "cpe:/o:microsoft:windows_7", + "cpe:/o:microsoft:windows_server_2008:r2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8.1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8.1:r1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8.1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_8.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_95" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_95" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_95" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_95" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65136 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_95" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 8820 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8736 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 8820 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 30492 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 8820 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 9324 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 58944 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_98" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 33396 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_me" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_me" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:3.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:3.51:sp5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8280 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0:-" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0:sp3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0:sp5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt::sp6a", + "cpe:/o:microsoft:windows_nt:4.0:sp5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0:sp6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8280 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0:sp6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0:sp6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0:sp6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0:sp6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0:sp6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt::sp6a", + "cpe:/o:microsoft:windows_nt:4.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt::sp6a", + "cpe:/o:microsoft:windows_nt:4.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt::sp6a" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt::sp6a" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0:sp7" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt:4.0:sp6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt::sp6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt::sp6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt::sp6a", + "cpe:/o:microsoft:windows_nt" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_nt::sp6a" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33408 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce", + "cpe:/h:arca:cm18" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32975 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32850, + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce:5.0.1400", + "cpe:/h:btvision:btvision%2b_box" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce:5.0.1400", + "cpe:/h:cisco:isb2230" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce:5.0", + "cpe:/h:motorola:vip1200" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce:5.0", + "cpe:/h:motorola:vip1216" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:motorola:windows_ce:5.0", + "cpe:/h:motorola:vip1216e" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce:4.20", + "cpe:/h:intermec:ck31" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce:4.20" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce", + "cpe:/h:datalogic:kyman" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33408 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 9100 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce", + "cpe:/h:phoenix_contact:ilc_350_pn" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce:4.20", + "cpe:/h:symbol:mc9060-g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33312 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista:::business" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista:::enterprise" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192, + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp1:home_premium" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp1:home_premium", + "cpe:/o:microsoft:windows_7", + "cpe:/o:microsoft:windows_server_2008" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista", + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista", + "cpe:/o:microsoft:windows_7::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista", + "cpe:/o:microsoft:windows_server_2008", + "cpe:/o:microsoft:windows_7:::ultimate" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::-", + "cpe:/o:microsoft:windows_vista::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::-", + "cpe:/o:microsoft:windows_vista::sp1", + "cpe:/o:microsoft:windows_server_2008::sp1", + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192, + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp1", + "cpe:/o:microsoft:windows_vista::sp2", + "cpe:/o:microsoft:windows_server_2008::sp2", + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp2", + "cpe:/o:microsoft:windows_7::-:ultimate", + "cpe:/o:microsoft:windows_7::sp1:ultimate" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp2", + "cpe:/o:microsoft:windows_7::sp1", + "cpe:/o:microsoft:windows_server_2008" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS", + "set_key": "{EOL,MSS,SACK,TS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp2", + "cpe:/o:microsoft:windows_7::sp1", + "cpe:/o:microsoft:windows_7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_vista", + "cpe:/o:microsoft:windows_7::sp1", + "cpe:/o:microsoft:windows_8.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_2000::sp6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65340 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_server_2003::-" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 25200 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp:::embedded" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3:home" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp1:home" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:home" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp:::professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17472 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp:::professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64860 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp1:professional" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp1:professional" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp1:professional" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp1:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,TS,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64860 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32120 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:professional", + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3:professional" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::-" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::-", + "cpe:/o:microsoft:windows_xp::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26280 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64260, + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 5840 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 63888 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64860 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 25200 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,EOL,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65280 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 64260 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64260 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65280 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17368 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65340 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 60000, + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2:media_center" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8760, + 51100, + 65520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,MSS,NOP,WS,NOP,NOP,SACK,MSS,NOP,WS,NOP,NOP,SACK,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3:embedded", + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp", + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_server_2003::-" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_server_2003::sp1", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp2", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp", + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,EOL,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 9220, + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32120 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 25200 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK,MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65340 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 47916 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 33396 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 60984 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13068 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64380 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17381 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64000 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16560 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65000 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64380 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 30492 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK,MSS,EOL,NOP,WS,EOL,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16416 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 60480 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240, + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65340, + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 8000 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17680 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17576 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64380 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24576 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64512 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 10607 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp", + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3", + "cpe:/o:microsoft:windows_7", + "cpe:/o:microsoft:windows_server_2012" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3", + "cpe:/o:microsoft:windows_server_2003" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3", + "cpe:/o:microsoft:windows_server_2003::sp2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3", + "cpe:/o:microsoft:windows_server_2003", + "cpe:/o:microsoft:windows_vista::sp1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17550 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp", + "cpe:/h:fujifilm:drypix" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_xp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/h:microsoft:xbox_360_kernel" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:microware:os_9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:microware:os_9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:2.9.46" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5712 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:3.17" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13980 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:3.19" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5712 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:3.30" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:5.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5712 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:5.16" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 5 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:5.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:5.25", + "cpe:/o:linux:linux_kernel:2.6.35" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.0" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.15" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.19" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.30" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.32.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13636 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.33" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.33" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14060 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.33" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.34" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.34" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13302 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.35" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14280 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6", + "cpe:/o:linux:linux_kernel:3.3.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14080 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.37", + "cpe:/o:linux:linux_kernel:3.3.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13980 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14060 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14280 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14400 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.48", + "cpe:/o:linux:linux_kernel:3.3.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16152 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.48", + "cpe:/o:linux:linux_kernel:3.3.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:6.7" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64932 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:7.1", + "cpe:/o:linux:linux_kernel:5.6.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65280 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:7.1", + "cpe:/o:linux:linux_kernel:5.6.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:7.2", + "cpe:/o:linux:linux_kernel:5.6.3" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:mikrotik:routeros:7", + "cpe:/o:linux:linux_kernel:5.6.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5712 + ] + }, + "cpe": [ + "cpe:/h:mikrotik:rb750g", + "cpe:/o:mikrotik:routeros" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1500 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/o:minix:minix:2.0.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/o:minix:minix:2.0.4" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:minix:minix:2.0.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/o:minix:minix:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/o:minix:minix:3.2.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:motorola:ptp_600" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:motorola:2210-02" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:motorola:mb7621", + "cpe:/h:arris:sb6183" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:motorola:surfboard_5101" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:motorola:surfboard_sb4200" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:motorola:surfboard_sb5100i" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:motorola:surfboard_sb5100i" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:motorola:surfboard_sb5101" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:motorola:surfboard_sb5101" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2816 + ] + }, + "cpe": [ + "cpe:/h:motorola:qip2500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 19712 + ] + }, + "cpe": [ + "cpe:/h:motorola:qip2500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 19712 + ] + }, + "cpe": [ + "cpe:/h:motorola:qip2500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 18304 + ] + }, + "cpe": [ + "cpe:/h:motorola:qip2500-3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 19712 + ] + }, + "cpe": [ + "cpe:/h:motorola:qip2500-3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 18824 + ] + }, + "cpe": [ + "cpe:/h:motorola:qip2708" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 18824 + ] + }, + "cpe": [ + "cpe:/h:motorola:qip6416-2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 18824 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 18824 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:motorola:vip1232", + "cpe:/h:telekom:mr_303" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 18824 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:motorola:rfs4000", + "cpe:/o:linux:linux_kernel:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:motorola:svg1202" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:motorola:sl4010e" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:motorola:ap-51xx" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:motorola:rfs_6000" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 1 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 1 + ] + }, + "cpe": [ + "cpe:/h:motorola:rfs6000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:motorola:surfboard_sbg900", + "cpe:/h:smc:smc8014" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:motorola:v_88:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:motorola:wing:5.7.1", + "cpe:/o:linux:linux_kernel:2.6.28" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 7200 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,EOL", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 10220 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:nashuatec:aficio_mp_c3000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:nec:sv8100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:nec:univerge_sv8300" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,WS,TS,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4608 + ] + }, + "cpe": [ + "cpe:/h:nest:protect", + "cpe:/h:nest:connect" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:6.3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:6", + "cpe:/o:netapp:data_ontap:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8400 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:7.3.5p1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8280 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:7.3.7" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:8.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:8.0.1rc1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:8.1.2p4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:8.1.2rc1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:8.1rc3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:8.3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:9.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:9.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap:9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:netapp:data_ontap" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:netapp:fas2000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:netasq:u70" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:2.1.0_stable", + "cpe:/h:ricoh:c720s", + "cpe:/h:ricoh:1107ex", + "cpe:/h:ricoh:aficio_mp_2550", + "cpe:/h:ricoh:aficio_mp_7001" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:3", + "cpe:/o:netbsd:netbsd:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:3.1.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:4.0:beta2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:4.99.49" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:5.1.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:5.1.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:5.1.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:6.1.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:9.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:9.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:netbsd:netbsd:9.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,NOP,EOL", + "set_key": "{EOL,MSS,NOP}", + "win_bucket": [ + 0 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:netcomm:v300" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:netgear:cm500" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:netgear:dm602" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:netgear:r7500", + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 1024 + ] + }, + "cpe": [ + "cpe:/h:netgear:rt311" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:netgear:wgn824_v2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:netgear:wgt624" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3072 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3072 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,TS,WS,EOL,EOL,EOL", + "set_key": "{EOL,MSS,TS,WS}", + "win_bucket": [ + 23360 + ] + }, + "cpe": [ + "cpe:/h:netgear:eva700" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:netgear:eva8000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:netgear:eva9100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:netgear:neotv550", + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:netgear:ps105" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:netgear:prosafe_utm9s" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 27272 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3", + "cpe:/o:linux:linux_kernel:4" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:netgear:fs728ts" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:netgear:fs752ts" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.18.24" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 9216 + ] + }, + "cpe": [ + "cpe:/h:netgear:gs110emx", + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/h:netgear:gs348t", + "cpe:/o:linux:linux_kernel:3.6.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:netgear:gsm7224", + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/h:netgear:prosafe_gs724t" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 2896 + ] + }, + "cpe": [ + "cpe:/h:netgear:gs724t", + "cpe:/h:ubnt:edgeswitch", + "cpe:/o:linux:linux_kernel:3.6.5" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:netgear:dg834gb" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4404 + ] + }, + "cpe": [ + "cpe:/h:netgear:prosafe_wg302_v2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:netgear:r6400", + "cpe:/o:linux:linux_kernel:2.6.36" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:netgear:wgr614v7" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:netgear:wgr614v7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:netgear:wnr834bv2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 15768 + ] + }, + "cpe": [ + "cpe:/o:netgear:raidiator:4.1.12" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:netgear:raidiator:4.2.21", + "cpe:/o:linux:linux_kernel:2.6.37" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:netgear:raidiator:4.2.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:netgear:raidiator:4.2.28" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:netgear:raidiator:4.2.24" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/o:netgear:raidiator:4.2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:netgear:raidiator:4.1.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5756 + ] + }, + "cpe": [ + "cpe:/o:netgear:raidiator:4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4320 + ] + }, + "cpe": [ + "cpe:/h:netgem:n7700" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:netopia:2247" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:netopia:3366" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:netopia:3386" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:netopia:3387wg-ent" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/o:netopia:soc_os:7", + "cpe:/o:netopia:soc_os:7" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/o:netopia:soc_os:7" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:networksystems:borderguard_1000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4369 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:neuf:trio_3c" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:neuf:trio_3d" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:nexenta:nexenta" + ] + }, + { + "signature": { + "order_key": "MSS,TS,WS,EOL,EOL,EOL", + "set_key": "{EOL,MSS,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:nexsan:e18" + ] + }, + { + "signature": { + "order_key": "MSS,TS,WS,EOL,EOL,EOL", + "set_key": "{EOL,MSS,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:next:nextstep:3.3", + "cpe:/o:next:openstep:4.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:next:openstep:4.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:next:openstep" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8096 + ] + }, + "cpe": [ + "cpe:/h:nibe:f1155", + "cpe:/h:nibe:vvm310", + "cpe:/a:lwip_project:lwip:1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:nintendo:3ds" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,NOP,SACK,MSS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:nintendo:3ds" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/h:nintendo:ds" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:nintendo:wii" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:nintendo:wii" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:nintendo:wii" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:nokia:ipso:4.1build19" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:nokia:ipso:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:nokia:ipso:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:nokia:symbian_os:9.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:nokia:symbian_os:9", + "cpe:/o:nokia:symbian_os:10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:nokia:symbian_os:9.3" + ] + }, + { + "signature": { + "order_key": "MSS,TS,WS,SACK,EOL", + "set_key": "{EOL,MSS,SACK,TS,WS}", + "win_bucket": [ + 48180 + ] + }, + "cpe": [ + "cpe:/o:nokia:symbian_os:9.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 48180 + ] + }, + "cpe": [ + "cpe:/o:nokia:symbian_os:9.3" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,TS,SACK", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 27512 + ] + }, + "cpe": [ + "cpe:/o:nokia:symbian_os" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65228 + ] + }, + "cpe": [ + "cpe:/o:nokia:symbian_os" + ] + }, + { + "signature": { + "order_key": "MSS,TS,WS,SACK,EOL", + "set_key": "{EOL,MSS,SACK,TS,WS}", + "win_bucket": [ + 48180 + ] + }, + "cpe": [ + "cpe:/o:nokia:symbian_os" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:nokia:symbian_os" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:nokia:symbian_os" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 48180 + ] + }, + "cpe": [ + "cpe:/h:nokia:n81", + "cpe:/o:nokia:symbian_os" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:nortel:cs1000m", + "cpe:/h:xerox:phaser_8560dt" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:nortel:ethernet_routing_switch_5530" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/h:nortel:nvr1750d" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:nortel:ethernet_routing_switch_4550t-pwr" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:nortel:ethernet_routing_switch_470-24t-pwr" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:nortel:ethernet_routing_switch_5510" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:nortel:ethernet_routing_switch_8010", + "cpe:/h:nortel:ethernet_routing_switch_8606" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:novatel:mifi_2200_3g" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 31000 + ] + }, + "cpe": [ + "cpe:/h:novatel:mifi_4620l" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8191 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2000 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 6143 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 6143 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 6143 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:nrg:c7521n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:nrg:mp_2500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:nrg:mp_c4500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:ntt:rv-230ne" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:ntt:rv-230ne" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3216 + ] + }, + "cpe": [ + "cpe:/o:ethernut:nut_os:4.3.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:obihai:obi110" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5000 + ] + }, + "cpe": [ + "cpe:/h:oki:b4545" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:oki:b711" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:oki:b930" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:oki:c5510" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:oki:c801" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:oki:es8473" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:oki:mc342" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 31000 + ] + }, + "cpe": [ + "cpe:/h:olympus:stylus_sh-2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:omron:cj2m" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:omron:cj2m" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1036 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 7300 + ] + }, + "cpe": [ + "cpe:/h:omron:itnc-eis01", + "cpe:/o:qnx:rtos:4.25" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6144 + ] + }, + "cpe": [ + "cpe:/h:omron:ne1a" + ] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:ontime:rtos:3" + ] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:ontime:rtos" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:oneaccess:1641" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:oneaccess:one20" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:oneaccess:one20" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:openbox:s10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:2.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:2.8", + "cpe:/h:onstor:bobcat_2220" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:3.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:3.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:3.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:3", + "cpe:/o:openbsd:openbsd:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:3", + "cpe:/o:openbsd:openbsd:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:3.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:3.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:3", + "cpe:/o:openbsd:openbsd:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:3", + "cpe:/o:openbsd:openbsd:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.6", + "cpe:/h:genua:genugate" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.0" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.3" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.3" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.4" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4", + "cpe:/o:openbsd:openbsd:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:4", + "cpe:/o:openbsd:openbsd:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5", + "cpe:/o:openbsd:openbsd:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.9" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:5.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:6.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:7.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:openbsd:openbsd:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 18980 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:oracle:jrockit" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:oracle:solaris:10" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64074 + ] + }, + "cpe": [ + "cpe:/o:oracle:solaris:10" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:oracle:solaris:11" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:oracle:solaris:11" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:oracle:solaris:11.1" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:oracle:solaris:11.1" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:oracle:solaris:11.2", + "cpe:/o:illumos:openindiana" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:oracle:solaris:11.3" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64074 + ] + }, + "cpe": [ + "cpe:/o:oracle:solaris:11.4" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64223 + ] + }, + "cpe": [ + "cpe:/o:oracle:solaris:11.4" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:oracle:solaris:11" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/a:oracle:vm_virtualbox", + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:oracle:virtualbox", + "cpe:/a:danny_gasparovski:slirp" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/a:oracle:vm_virtualbox", + "cpe:/a:danny_gasparovski:slirp" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:oracle:vm_server:3.4.2", + "cpe:/o:linux:linux_kernel:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:orange:livebox" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:orange:livebox", + "cpe:/h:sagem:f%40ast_334", + "cpe:/h:sagem:f%40ast_3304" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16800 + ] + }, + "cpe": [ + "cpe:/h:osram:lightify" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:osram:lightify" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16800 + ] + }, + "cpe": [ + "cpe:/h:osram:lightify" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 1400 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/h:packet8:bpa430" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1456 + ] + }, + "cpe": [ + "cpe:/h:packeteer:packetshaper_7500" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 1460 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3000 + ] + }, + "cpe": [ + "cpe:/h:packetfront:drg_ease_drg601-access" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:paloalto:pa-500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:panasonic:pt-vz575" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:panasonic:db-3510", + "cpe:/h:panasonic:db-3520" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:panasonic:dp-8045" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:panasonic:uf-8200" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:panasonic:bb-hcm511a", + "cpe:/h:panasonic:bl-c140" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:panasonic:bl-c140" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:panasonic:bl-c140" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:panasonic:bl-c210" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:panasonic:bl-c210a" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:panasonic:kx-hcm270", + "cpe:/h:spectrum24_4131" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:panasonic:wv-ns202a" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:panasonic:wv-sp300", + "cpe:/h:panasonic:wv-sf330" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 511 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:patton:smartware:4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:patton:smartware:4.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:patton:smartware:5.6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1500 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:pc-bsd:pc_bsd:1.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:pc-bsd:pc_bsd:9.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:peplink:balance_380" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:peplink:pepwave_surf_ap_200" + ] + }, + { + "signature": { + "order_key": "WS,NOP,MSS,TS,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:perfectone:ip-301" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:pharlap:ets:13" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:pheenet:wap-854gp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/h:philips:hue_bridge", + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1072 + ] + }, + "cpe": [ + "cpe:/h:philips:hue_bridge", + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1072 + ] + }, + "cpe": [ + "cpe:/h:philips:hue_bridge", + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1072 + ] + }, + "cpe": [ + "cpe:/h:philips:hue_bridge", + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1072 + ] + }, + "cpe": [ + "cpe:/h:philips:hue_bridge", + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [ + "cpe:/h:philips:hue_bridge", + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [ + "cpe:/h:philips:hue_bridge", + "cpe:/a:lwip_project:lwip:1.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [ + "cpe:/h:philips:hue_bridge", + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 11680 + ] + }, + "cpe": [ + "cpe:/h:phoenix_contact:ilc_171_eth_2tx" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:pioneer:vsx-31" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:pirelli:dp-10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:pirelli:av4202n" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:pirelli:drg_a226m" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:pirelli:prg_av4202n" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5440 + ] + }, + "cpe": [ + "cpe:/h:planet:ata-150s" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:planet:vip-550pt" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:planet:wap-1950" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "WS,NOP,MSS,TS,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/o:planet:microc_os_ii" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,MSS,TS,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 0, + 12672 + ] + }, + "cpe": [ + "cpe:/h:polycom:soundpoint_ip_301" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:polycom:soundpoint_ip_301" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:polycom:soundpoint_ip_331" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:polycom:soundpoint_ip_430" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 23360 + ] + }, + "cpe": [ + "cpe:/h:polycom:viewstation_4000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 23360 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 23360 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 23360 + ] + }, + "cpe": [ + "cpe:/h:polycom:vs4000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 23360 + ] + }, + "cpe": [ + "cpe:/h:polycom:vsfx4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:polycom:vsx_7000a" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:polycom:vsx_8000" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:polycom:psos:1.0.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 12672 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,MSS,TS,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12672 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/o:precisesoftwaretechnologies:mqx" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 860 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/a:qemu:qemu" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/a:qemu:qemu" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.x" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/h:qnap:ts-109", + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17904 + ] + }, + "cpe": [ + "cpe:/h:qnap:ts-209", + "cpe:/o:qnap:qts:4", + "cpe:/o:linux:linux_kernel:2.6.12" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 12066 + ] + }, + "cpe": [ + "cpe:/o:qnap:qts:4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32120 + ] + }, + "cpe": [ + "cpe:/o:qnap:qts:4.2.0", + "cpe:/o:linux:linux_kernel:3.16" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:qnap:qts:4.3", + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 28238 + ] + }, + "cpe": [ + "cpe:/o:qnap:qts:4.5", + "cpe:/o:linux:linux_kernel:4.14" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:qnap:qts:5.0", + "cpe:/o:linux:linux_kernel:5.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:qnap:qts:5.0", + "cpe:/o:linux:linux_kernel:5.10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:qnap:qts:5.0", + "cpe:/o:linux:linux_kernel:5.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26844 + ] + }, + "cpe": [ + "cpe:/o:qnap:qts:5.0", + "cpe:/o:linux:linux_kernel:5.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17904 + ] + }, + "cpe": [ + "cpe:/o:qnap:qts", + "cpe:/o:linux:linux_kernel:2.6.12" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 7300 + ] + }, + "cpe": [ + "cpe:/o:qnx:rtos:4.25" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:qnx:rtos:4.25" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:qnx:rtos:6.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:qnx:rtos:6.2.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:qnx:rtos:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:qnx:rtos:7.0.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:qnx:rtos" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:qnx:rtos" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:qtech:qsw-2900" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:qualisys:oqus_300" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1152 + ] + }, + "cpe": [ + "cpe:/o:quarterdeck:desqview_x:2.10" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/o:radware:apsolute_os:10" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/o:radware:apsolute_os:10.31" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:raritan:dominion_kx-ii" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:raritan:dominion_sx32", + "cpe:/h:ricoh:is200e" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:rca:dcm425c" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:reactos:reactos:0.3.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:linksys:wet54g" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:redback:smartedge_os:11.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:redback:smartedge_os:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:redback:smartedge_os" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:revo:blik_wi-fi" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 512 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 8190 + ] + }, + "cpe": [ + "cpe:/h:wiznet:w5200" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 14000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:ricoh:aficio_1022" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:ricoh:aficio_2035e", + "cpe:/h:ricoh:aficio_1060" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:ricoh:aficio_3045", + "cpe:/h:ricoh:aficio_3245c", + "cpe:/h:savin:8025e" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:ricoh:aficio_bp20n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:ricoh:aficio_mp_c2550" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:ricoh:aficio_mp_c4501" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:ricoh:aficio_mp_c6000", + "cpe:/h:ricoh:aficio_mp_gx3050n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:ricoh:aficio_sp_4100n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:ricoh:aficio_sp_4100n" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:ricoh:aficio_sp_c210sf" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:ricoh:aficio_sp_c240sf" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:ricoh:aficio_sp_c311n", + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:ricoh:aficio_sp_c420dn" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64766 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:ricoh:mp_c5503" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:ricoh:mp_w6700" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 48000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 48000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 48000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:rigol_technologies:dsg3060" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP,MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP,MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP,MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP,MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:blackberry:blackberry_os:10.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:blackberry:blackberry_os:10.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:rim:blackberry:10" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:rim:blackberry:10.3" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:rim:blackberry:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:rim:tablet_os:2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP,MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP,MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP,MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:rim:blackberry_playbook_tablet", + "cpe:/o:rim:blackberry_playbook_os:2.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:rim:tablet_os:2.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:riscosltd:risc_os:4.39" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:riscosltd:risc_os:5.23" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:riscosltd:risc_os:6.20" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:riverbed:steelhead_200" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:riverbed:rios" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:riverbed:rios" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:roberts:stream_202" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 255 + ] + }, + "cpe": [ + "cpe:/h:rockwellautomation:1761-net-eni" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 255 + ] + }, + "cpe": [ + "cpe:/h:rockwellautomation:1761-net-eni" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:rockwellautomation:1769-l23e-qb1" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:roku:soundbridge_m1500" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:roku:soundbridge_m1001" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:roku:soundbridge_m500", + "cpe:/h:roku:soundbridge_m1000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 2760, + 5840 + ] + }, + "cpe": [ + "cpe:/h:rsa:securid" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:ruckus:7363" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:ruckus:zd1050" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:ruckus:zoneflex_r710", + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:ruggedcom:ros:3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:ruijie:n18010", + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:ruijie:n18010", + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5824 + ] + }, + "cpe": [ + "cpe:/h:sagem:b-box_3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/h:sagemcom:home_hub_3000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:samsung:bada:1.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 57344 + ] + }, + "cpe": [ + "cpe:/o:samsung:bada:2.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:samsung:le32b651" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:samsung:clp-310n", + "cpe:/h:samsung:clx-3175rw", + "cpe:/h:xerox:phaser_6110" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:samsung:clp-315w" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:samsung:clp-320n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:samsung:clp-610nd" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:samsung:clx-3185", + "cpe:/h:samsung:clx-6220fx", + "cpe:/h:samsung:ml-1865w", + "cpe:/h:samsung:ml-2580n", + "cpe:/h:samsung:ml-3312nd", + "cpe:/h:xerox:phaser_3300" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:samsung:clp-770nd" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:samsung:clx-3160fn" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:samsung:clx-3185fw" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:samsung:clx-6220", + "cpe:/h:samsung:scx-5835", + "cpe:/h:xerox:phaser_3635mfp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:samsung:m2020w" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:samsung:m2825" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:samsung:ml-1865w" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:samsung:scx-3405fw", + "cpe:/h:samsung:clx-3305fw" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:samsung:officeserv_7100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380, + 13140 + ] + }, + "cpe": [ + "cpe:/h:samsung:officeserv_7200", + "cpe:/h:harris:flexstar_hdx-fm" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:samsung:smt-i5220" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:samsung:symbian_os:9.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 128 + ] + }, + "cpe": [ + "cpe:/h:sanyo:plc-xu88" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:satel:ethm-2" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:schneiderelectric:tsx_ety" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1976 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:schweitzerengineering:sel-2701" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65228 + ] + }, + "cpe": [ + "cpe:/h:scientificatlanta:webstar_dpc2100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:scientificatlanta:webstar_dpc2100r2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 0, + 17376 + ] + }, + "cpe": [ + "cpe:/h:scientificatlanta:webstar_epc2203" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:sco:openserver:5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 24820 + ] + }, + "cpe": [ + "cpe:/o:sco:openserver:5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:sco:openserver:5.0.5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 33580 + ] + }, + "cpe": [ + "cpe:/o:sco:openserver:5.0.7" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/o:sco:openserver:5.0.7" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 24820 + ] + }, + "cpe": [ + "cpe:/o:sco:openserver:5.0.7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 24820 + ] + }, + "cpe": [ + "cpe:/o:sco:openserver:6.0", + "cpe:/o:sco:unixware:7.1.4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 24820 + ] + }, + "cpe": [ + "cpe:/o:sco:sco_unix:3.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:sco:sco_unix:3.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 24820 + ] + }, + "cpe": [ + "cpe:/o:sco:sco_unix:3.2v5.0.7" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:sco:unixware:2.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 24820 + ] + }, + "cpe": [ + "cpe:/o:sco:unixware:7.1.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 24820 + ] + }, + "cpe": [ + "cpe:/o:sco:unixware:7.1.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 24820 + ] + }, + "cpe": [ + "cpe:/o:sco:unixware:8.0.0" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 15904 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,EOL", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 10246 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:securecomputing:secureos:6.1.1.05" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/o:securecomputing:secureos:6.1.2.0.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:securecomputing:secureos:7.0.0.04" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:securecomputing:secureos:7.0.0.04" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 21888 + ] + }, + "cpe": [ + "cpe:/h:seh:intercon_ic105" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:seiko:ns-2232" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:senao:nl-2611cb3_plus" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:sensatronics:e4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:sensatronics:em1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:sequent:dynix" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 61320 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:4.0.5f" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 61320 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:4.0.5h" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 60816 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 60816 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:5.3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49152 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 60816 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 60816 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 60816 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6.5.15m" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK,MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 60816 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 60816 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6.5.30" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 60816 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6.5.6m" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49152 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 49152 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49152 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49152 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49152 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49152 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49152 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49152 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49152 + ] + }, + "cpe": [ + "cpe:/o:sgi:irix:6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3072 + ] + }, + "cpe": [ + "cpe:/h:sharp:ar-c260m", + "cpe:/h:sharp:ar-m351n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:sharp:ar-m236" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:sharp:ar-m237" + ] + }, + { + "signature": { + "order_key": "MSS,WS,NOP,MSS,TS,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 0, + 12672 + ] + }, + "cpe": [ + "cpe:/h:shenzhen_kinoway:k-3288w", + "cpe:/h:portech:mv-374" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:shoretel:voice_switch_220t1a" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:siemens:c2-010-i" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:siemens:speedstream_4200", + "cpe:/h:siemens:gigaset_se567" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:siemens:speedstream_4200" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:siemens:hipath_3000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3584 + ] + }, + "cpe": [ + "cpe:/h:siemens:aem100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:microsoft:windows_ce" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:siemens:simatic_300" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:siemens:simatic_300" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:siemens:simatic_tdc" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:siemens:sps" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 24820 + ] + }, + "cpe": [ + "cpe:/h:siemens:hipath_4000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:siemens:hipath_optipoint_400" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:siemens:optipoint_410", + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [ + "cpe:/h:siemens:gigaset_se551" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [ + "cpe:/h:siemens:gigaset_se551" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 72 + ] + }, + "cpe": [ + "cpe:/h:siemens:w748", + "cpe:/h:siemens:w788" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 7300 + ] + }, + "cpe": [ + "cpe:/o:siemens:sinix" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 24576 + ] + }, + "cpe": [ + "cpe:/o:siemens:sinix" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:silicondust:hdhr3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:silicondust:hdhr" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:silicondust:hdhr" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:silicondust:hdhr" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,NOP,SACK,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/o:silverpeak:ecos:9.0" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:sipura:spa1001_voice_gateway_with_router:-", + "cpe:/o:sipura:spa1001_voice_gateway_with_router_firmware", + "cpe:/h:sipura:spa3000_voice_gateway_with_router:-", + "cpe:/o:sipura:spa3000_voice_gateway_with_router_firmware" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:sipura:spa3000_voice_gateway_with_router:-", + "cpe:/o:sipura:spa3000_voice_gateway_with_router_firmware" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:sipura:spa3000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:sitecom:wl-174", + "cpe:/h:zyxel:b-3000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:sitecom:wl-342" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5392 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:slingmedia:slingbox_classic" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:slingmedia:slingbox_classic" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:slingmedia:slingbox_pro" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:slingmedia:slingbox_pro" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:slingmedia:slingbox_solo", + "cpe:/h:slingmedia:slingbox_pro" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:slingmedia:slingbox_tuner" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:slingmedia:slingbox" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 8192 + ] + }, + "cpe": [ + "cpe:/h:slingmedia:slingbox_av" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:slingmedia:slingbox_av" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:smartlink:digisol_dg-hr3400" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:smc:smc7004abr" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:smc:smc8014wg" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:smc:smc8014wg" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:smc:barricade_7004br" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [ + "cpe:/h:smc:smc7908a-isp" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1536 + ] + }, + "cpe": [ + "cpe:/h:smc:8024l2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:smc:smc6750l2", + "cpe:/h:smc:smc7724m%2fvsw" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:smc:tigerstack_iii_6824m" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:smc:tigerswitch_smc8150l2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [ + "cpe:/h:smc:7904wbra-n" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:smc:smc2804wbrp-g" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:smc:smc7904wbrb2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:smc:smbwbr14-g2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 6000 + ] + }, + "cpe": [ + "cpe:/h:smc:smbwbr14-g2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:snom:360" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:snom:715" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:snr:snr-s2960" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:aventail_ex-1500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:tz_170" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:aventail_ex-6000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos:2.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos:3.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos:3.9" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos:3.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos:3.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos:4.0.0.12" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos:4" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:dell:sonicwall_nsa_220", + "cpe:/o:sonicwall:sonicos:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos:6.6.3.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:sonicwall:sonicos" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:sonos:zoneplayer" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:dlink:dap-1522", + "cpe:/h:xerox:workcentre_pro_245", + "cpe:/h:xerox:workcentre_5665" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:sonus:gsx9000" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:sonus:sbc1000" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,WS,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:sonyericsson:aino" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,WS,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/h:sonyericsson:c902", + "cpe:/h:sonyericsson:w910i", + "cpe:/h:sonyericsson:z780i" + ] + }, + { + "signature": { + "order_key": "MSS,TS,WS,SACK,EOL", + "set_key": "{EOL,MSS,SACK,TS,WS}", + "win_bucket": [ + 47916 + ] + }, + "cpe": [ + "cpe:/h:sonyericsson:g900" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,WS,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:sonyericsson:j20", + "cpe:/h:sonyericsson:j20i" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,WS,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/h:sonyericsson:k850i" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:sonyericsson:w705", + "cpe:/h:sonyericsson:w715" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,WS,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/h:sonyericsson:w705" + ] + }, + { + "signature": { + "order_key": "MSS,TS,WS,SACK,EOL", + "set_key": "{EOL,MSS,SACK,TS,WS}", + "win_bucket": [ + 0, + 47916 + ] + }, + "cpe": [ + "cpe:/h:sonyericsson:m600i", + "cpe:/o:sonyericsson:symbian_os:9.1" + ] + }, + { + "signature": { + "order_key": "MSS,TS,WS,SACK,EOL", + "set_key": "{EOL,MSS,SACK,TS,WS}", + "win_bucket": [ + 0, + 47916 + ] + }, + "cpe": [ + "cpe:/h:sonyericsson:p1i", + "cpe:/o:sonyericsson:symbian_os:9.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/h:sony:playstation_2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32120 + ] + }, + "cpe": [ + "cpe:/h:sony:playstation_2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:sony:playstation_3" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:sony:playstation_3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:sony:playstation_3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:sony:playstation_3" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:sony:playstation_3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:sony:playstation_3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:sony:playstation_3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:freebsd:freebsd:11.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:sony:playstation_portable" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/h:sony:bdp-s370", + "cpe:/h:sony:bdp-s570" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/h:sony:bdv-e970w" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/h:sony:bdv-t57" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:google:android" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:sony:bravia_kdl-32v5500" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:sony:bravia_kdl-32w550" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:sony:bravia_kdl-40x4500" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:sony:cmy-mx700ni" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:sony:smp-n200" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:sony:fwd-40lx2f" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 32850, + 65535 + ] + }, + "cpe": [ + "cpe:/h:sony:pcs-tl30" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:sourcetechnologies:st-9650" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:specialix:jetstream_8500" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:sphairon:turbolink_iad" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:starmicronics:tsp100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 511 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:storagetek:sn3250" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:stratus:ftserver_virtual_technician_module" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/a:sun:embedded_lights_out_manager" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32806 + ] + }, + "cpe": [ + "cpe:/h:sun:storage_7210" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32806 + ] + }, + "cpe": [ + "cpe:/h:sun:storage_7410" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:sun:storedge_3310_fc_array" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,EOL,EOL,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 1480 + ] + }, + "cpe": [ + "cpe:/h:sun:storedge_3510_fc_array" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:opensolaris" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:opensolaris" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,EOL,NOP,WS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49282 + ] + }, + "cpe": [ + "cpe:/o:sun:opensolaris" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:opensolaris" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:sun:opensolaris" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:sun:opensolaris" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49248 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49220 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49248 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 50540 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32942 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49248 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 50232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 50098 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 50312 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49248 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49248 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49248 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32806 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.11" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.11" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.11" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64296 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.11" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.11", + "cpe:/o:illumos:openindiana" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.11", + "cpe:/o:illumos:openindiana" + ] + }, + { + "signature": { + "order_key": "SACK,TS,MSS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 64436 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:11.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8760 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.5.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 9660 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.5.1" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,MSS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 10136 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.6" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 9576 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.7" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 10136 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.7" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 10136 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.7" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 9576 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.7" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49876 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24616 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24616 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24616 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24616 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24616 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24616 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24616 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24616 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24616 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33120 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24616 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,NOP,WS,NOP,NOP,SACK,MSS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33088 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.9" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.9" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.9" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.9" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.9" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.9" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.9", + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.9", + "cpe:/o:sun:sunos:5.10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49232 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.9", + "cpe:/o:sun:sunos:5.10", + "cpe:/o:sun:opensolaris" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 33304 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:5.9", + "cpe:/o:oracle:solaris:10" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 49742 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:10" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:sun:sunos:4.1.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1466 + ] + }, + "cpe": [ + "cpe:/a:rise_sics:uip" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32752 + ] + }, + "cpe": [ + "cpe:/o:syllable:desktop:0.6.7" + ] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:symantec:firewall_vpn_appliance_100", + "cpe:/h:symantec:firewall_vpn_appliance_200" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:symantec:gateway_security_5620" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 32120 + ] + }, + "cpe": [ + "cpe:/h:symantec:velociraptor_1.5", + "cpe:/a:symantec:velociraptor" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS,NOP,WS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:symbianos:symbian_os:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1, + 5840 + ] + }, + "cpe": [ + "cpe:/h:symbol:ap-2411" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1, + 5840 + ] + }, + "cpe": [ + "cpe:/h:symbol:ap-3021" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 9216 + ] + }, + "cpe": [ + "cpe:/h:symbol:es3000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1, + 5840 + ] + }, + "cpe": [ + "cpe:/h:symbol:spectrum24_4131" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/h:symbol:ws500" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16900 + ] + }, + "cpe": [ + "cpe:/h:symbol:ws5000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/h:symbol:ws5000" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/a:synology:diskstation_manager:3.2", + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/a:synology:diskstation_manager:5", + "cpe:/o:linux:linux_kernel" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/a:synology:diskstation_manager:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/a:synology:diskstation_manager:5.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 15896 + ] + }, + "cpe": [ + "cpe:/a:synology:diskstation_manager:6", + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/a:synology:diskstation_manager:6", + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 26844 + ] + }, + "cpe": [ + "cpe:/a:synology:diskstation_manager:7", + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/a:synology:diskstation_manager:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 28960 + ] + }, + "cpe": [ + "cpe:/a:synology:diskstation_manager:7.1", + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 13480 + ] + }, + "cpe": [ + "cpe:/a:synology:diskstation_manager", + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/a:synology:diskstation_manager", + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/a:synology:diskstation_manager", + "cpe:/o:linux:linux_kernel:3.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:synology:rt1900ac" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 11844 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14400 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:t-marc:254h" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:tadiran:flexset-ip_280s" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3072 + ] + }, + "cpe": [ + "cpe:/h:tahoe:8216" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:tandberg:tt_1122" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:tandberg:codec_c60" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:tandberg:vcs" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:tandberg:1000", + "cpe:/h:tandberg:2500", + "cpe:/h:tandberg:990_mxp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 32768 + ] + }, + "cpe": [ + "cpe:/o:tandberg:netbsd" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:tandem:guardian" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:technisat:digicorder_hd_s2" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:tektronix:phaser_8200dp" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:telco_systems:t-marc_250" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,EOL,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2800 + ] + }, + "cpe": [ + "cpe:/h:telewell:tw-ea501" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:telex:ip-223" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1400 + ] + }, + "cpe": [ + "cpe:/h:telsey:ip_video_station" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:teltronics:net-path" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:tenasys:irmx:2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17280 + ] + }, + "cpe": [ + "cpe:/h:tenda:n301" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 18824 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/h:teradici:10zig_v1200" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:thales:ncipher_nethsm_500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:thecus:4200", + "cpe:/h:thecus:n5500" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 15920 + ] + }, + "cpe": [ + "cpe:/h:thecus:n4100pro" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 31896 + ] + }, + "cpe": [ + "cpe:/h:thecus:n5200pro" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:thecus:n8800pro" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:thomson:speedtouch_510" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:thomson:speedtouch_510" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:thomson:speedtouch_510", + "cpe:/h:thomson:speedtouch_510i", + "cpe:/h:thomson:speedtouch_530", + "cpe:/h:thomson:speedtouch_570", + "cpe:/h:thomson:speedtouch_580" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:thomson:st_585", + "cpe:/h:thomson:st_536i" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:thomson:tcm390" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:thomson:tcw710" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/h:thomson:tg712" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:thomson:st_2030" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 255 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 24560 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:tizen:tizen" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20000 + ] + }, + "cpe": [ + "cpe:/h:topfield:tf6000pvr" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:toptech:tms5" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 28672 + ] + }, + "cpe": [ + "cpe:/o:toshiba:4690_operating_system:6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 28672 + ] + }, + "cpe": [ + "cpe:/o:toshiba:4690_operating_system:6" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,TS,MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 4344 + ] + }, + "cpe": [ + "cpe:/h:toshiba:regza" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:toshibatec:e-studio-20" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:toshibatec:e-studio-280" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:toshibatec:e-studio-4511" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 28672 + ] + }, + "cpe": [ + "cpe:/o:toshiba:tcx_sky:1.2" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:tp-link:tl-r4239g" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:tp-link:tl-r470t" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:tp-link:tl-r478+" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:tp-link:tl-r480t+" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:tp-link:ps110u" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 10240 + ] + }, + "cpe": [ + "cpe:/h:tp-link:tl-ps110u" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4380 + ] + }, + "cpe": [ + "cpe:/h:tp-link:tl-ps110u" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:tp-link:tl-wps510u" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 24576 + ] + }, + "cpe": [ + "cpe:/a:lwip_project:lwip" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:tp-link:eap330", + "cpe:/o:linux:linux_kernel:2.6.36" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2800 + ] + }, + "cpe": [ + "cpe:/h:tp-link:td-w8951nd" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:tp-link:td-w8963n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:tp-link:tl-wa5210g" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:tp-link:tl-wa801nd", + "cpe:/o:linux:linux_kernel:2.6.36" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5592 + ] + }, + "cpe": [ + "cpe:/h:trane:tracer_sc" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:transact:ithaca_280" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 3072 + ] + }, + "cpe": [ + "cpe:/h:trendnet:tw100-brf114" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:trendnet:tv-ip100" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:digi:net_os:6.3" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:tripplite:smart1500slt", + "cpe:/h:tripplite:pdumv30hvnet" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:tripplite:smart3000rmxl2u" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 16416 + ] + }, + "cpe": [ + "cpe:/o:tripplite:netos:7.5.2tl" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32736 + ] + }, + "cpe": [ + "cpe:/h:tutsystems:sms2000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:ubee:evw3226" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:ubee:evw3226", + "cpe:/h:arris:tg1672", + "cpe:/h:arris:tg862g", + "cpe:/o:linux:linux_kernel:2.6.18" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16 + ] + }, + "cpe": [ + "cpe:/o:ubicom:ipos" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5712 + ] + }, + "cpe": [ + "cpe:/o:ubnt:airos:5.5.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS", + "set_key": "{MSS,SACK,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:ubnt:airos:5.5.9" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:ubnt:airos:5.6.2", + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:ubnt:airos:5.2.6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.19" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 43440 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:ubnt:uap-ac", + "cpe:/o:linux:linux_kernel:2.6.22" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6.38" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,EOL", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 33238 + ] + }, + "cpe": [ + "cpe:/h:universaldevices:isy-99i" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,NOP,EOL", + "set_key": "{EOL,MSS,NOP,SACK}", + "win_bucket": [ + 4644 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:usrobotics:usr8000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2144 + ] + }, + "cpe": [ + "cpe:/h:usrobotics:usr8000" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:usrobotics:usr5450" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:utstarcom:wa3002g4" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:vantage:hd7100s" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:vbrick:4300" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [ + "cpe:/h:vegastream:vega_400" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:viasat:surfbeam_2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 27200 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,TS,WS,EOL,EOL,EOL", + "set_key": "{EOL,MSS,TS,WS}", + "win_bucket": [ + 8190 + ] + }, + "cpe": [ + "cpe:/h:virdi:3000" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 1 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2047 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 1 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esx:3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esx:3.0:2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esx:3.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esx:4.0:1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esx:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:3", + "cpe:/o:vmware:esxi:4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:3.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:3.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:3.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,EOL,EOL", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.0:1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,NOP,WS,SACK,TS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:4.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:5.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:5.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:5.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:6.0.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,SACK,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:vmware:esxi:7.0.3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 64240 + ] + }, + "cpe": [ + "cpe:/a:vmware:player" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:vodafone:easybox_802" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:vodafone:easybox_904_xdsl", + "cpe:/o:linux:linux_kernel:2.6.32" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 20480 + ] + }, + "cpe": [ + "cpe:/h:vodafone:easybox_a601" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17280 + ] + }, + "cpe": [ + "cpe:/h:vonage:v-portal" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 560 + ] + }, + "cpe": [ + "cpe:/h:w%26t:com-server" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 560 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/h:w%26t:web-thermometer" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 560 + ] + }, + "cpe": [ + "cpe:/h:w%26t:web-thermo-hygrobarograph" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 512 + ] + }, + "cpe": [ + "cpe:/h:w%26t:web-thermograph_ntc" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 560 + ] + }, + "cpe": [ + "cpe:/h:w%26t:web-thermograph_ntc" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 560 + ] + }, + "cpe": [ + "cpe:/h:w%26t:web-thermograph_ntc" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16000 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,EOL,EOL,WS,NOP,TS", + "set_key": "{EOL,MSS,NOP,TS,WS}", + "win_bucket": [ + 1500 + ] + }, + "cpe": [ + "cpe:/h:wago:wago-i%2f-system_750" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:watchguard:firebox_500" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16352 + ] + }, + "cpe": [ + "cpe:/h:watchguard:firebox_700", + "cpe:/h:watchguard:firebox_x700" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:watchguard:firebox_x5w", + "cpe:/h:watchguard:firebox_soho_6", + "cpe:/h:watchguard:firebox_x5w", + "cpe:/h:watchguard:firebox_soho_6" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:watchguard:firebox_x1250e" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:watchguard:xtm_525" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5760 + ] + }, + "cpe": [ + "cpe:/o:watchguard:fireware:11.3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:watchguard:fireware:xtm" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 12672 + ] + }, + "cpe": [ + "cpe:/h:welltech:ata-171" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:westell:wirespeed_b90-220030-04", + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:westell:wirespeed_6100" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:westermo:edw-100" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:westerndigital:wd_tv", + "cpe:/o:westerndigital:linux:2.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:windriver:psosystem" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:12.0" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 60000 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:12", + "cpe:/h:nomadix:ag_5800" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.3", + "cpe:/h:motorola:surfboard_sb3100" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.3", + "cpe:/h:motorola:surfboard_sb3100" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.3", + "cpe:/h:motorola:surfboard_sb3100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.4", + "cpe:/h:motorola:surfboard_sb5100e" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.4", + "cpe:/h:motorola:surfboard_sb5100e" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.4", + "cpe:/h:motorola:surfboard_sb5120" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.4", + "cpe:/h:motorola:surfboard_sb5120" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.4", + "cpe:/h:motorola:surfboard_sbv5121" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5", + "cpe:/h:linksys:befcmu10", + "cpe:/h:motorola:surfboard_sb5100", + "cpe:/h:nortel:baystack_460" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.4.2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 100 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.5.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.5.1" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.4.2", + "cpe:/h:arris:cadant_c3" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.4", + "cpe:/h:cisco:ap340" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:5.4.2", + "cpe:/h:netgear:wgr614", + "cpe:/h:netgear:wgt624", + "cpe:/h:netgear:wpn824" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:6.6" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 64000 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:6.8" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:6.5" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 60000 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks:7" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks", + "cpe:/h:dicksmithelectronics:xh1169", + "cpe:/h:netgear:wgr614", + "cpe:/h:neuf:neuf_box_trio_3c" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks", + "cpe:/h:huawei:e303s-2" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks", + "cpe:/h:hp:laserjet_3600", + "cpe:/h:hp:procurve_2650", + "cpe:/h:motorola:surfboard_sb5100e" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks", + "cpe:/h:3com:nbx_100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks", + "cpe:/h:netgear:he102" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/o:windriver:vxworks", + "cpe:/h:tenda:w311r%2b" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:wiznet:w3150a" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:wiznet:w5100" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:wiznet:w5100" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/h:wiznet:w5100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 37648 + ] + }, + "cpe": [ + "cpe:/h:wowwee:rovio" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 37128 + ] + }, + "cpe": [ + "cpe:/h:wowwee:rovio" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8688 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,EOL,EOL", + "set_key": "{EOL,MSS,NOP}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:wyse:v10l", + "cpe:/h:wyse:v1200le" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,EOL,EOL", + "set_key": "{EOL,MSS,NOP}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:wyse:v10l" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:wyse:thinos:5.2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:wyse:thinos:6.5" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": null + }, + "cpe": [ + "cpe:/o:wyse:thinos:6" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:wyse:thinos:7.1" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:wyse:thinos:7.1" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:wyse:thinos:8" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,SACK,NOP,NOP,TS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 18824 + ] + }, + "cpe": [ + "cpe:/o:wyse:thinos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/o:wyse:thinos" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/o:wyse:thinos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 8112 + ] + }, + "cpe": [ + "cpe:/h:xavi:7001" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:xavi:x7721r%2b" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65000 + ] + }, + "cpe": [ + "cpe:/h:xavi:x7868r" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:xerox:apeosport-iv_c3370" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:xerox:dc220" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:xerox:document_centre_440", + "cpe:/h:xerox:wordcentre_pro_55" + ] + }, + { + "signature": { + "order_key": null, + "set_key": null, + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:xerox:phaser_3150" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:xerox:phaser_3320" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:xerox:phaser_3435" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:xerox:phaser_6020" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:xerox:phaser_6020v%2fbi" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 12288 + ] + }, + "cpe": [ + "cpe:/h:xerox:phaser_6180n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:xerox:phaser_6250dp" + ] + }, + { + "signature": { + "order_key": "NOP,NOP,MSS,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 10000 + ] + }, + "cpe": [ + "cpe:/h:xerox:phaser_6600dn" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2920 + ] + }, + "cpe": [ + "cpe:/h:xerox:phaser_860n", + "cpe:/h:xerox:phaser_8200n" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 14600 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:3.10", + "cpe:/h:kemp:loadmaster_2400" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:xerox:workcentre_4150" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:xerox:workcentre_7545" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:xerox:workcentre_pro_7245" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:xerox:workcentre_pro_c2128" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65160 + ] + }, + "cpe": [ + "cpe:/o:xeu.com:ecomstation:2.2" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5808 + ] + }, + "cpe": [ + "cpe:/h:xirrus:xs8" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 448 + ] + }, + "cpe": [ + "cpe:/h:xmos:xc-2" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 4096 + ] + }, + "cpe": [ + "cpe:/h:xylan:omnistack_4024cf" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/h:xylan:omnistack" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,NOP,NOP,SACK", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17520 + ] + }, + "cpe": [ + "cpe:/h:xylan:omnistack" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 256 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:yamaha:rx-a2040" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 59800 + ] + }, + "cpe": [ + "cpe:/h:yamaha:rx-v2065" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0 + ] + }, + "cpe": [ + "cpe:/h:yamaha:rx-v2067", + "cpe:/h:yamaha:rx-v3900" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:yamaha:rx-v481d" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/h:yamaha:rx-v671" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 32767 + ] + }, + "cpe": [ + "cpe:/h:yamaha:rx-v671" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:yamaha:netvolante_rt57i" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 65535 + ] + }, + "cpe": [ + "cpe:/h:yamaha:netvolante_rt58i" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:yealink:sip-t22p" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:zebra:gk420t" + ] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:zebra:gx430t" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1460 + ] + }, + "cpe": [ + "cpe:/h:zebra:lp_2844-z" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS,SACK,NOP,NOP", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,TS,NOP,NOP", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/h:zebra:ztc_zm400" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 17376 + ] + }, + "cpe": [ + "cpe:/h:zelax:mm-201r-uni" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14400 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 29200 + ] + }, + "cpe": [ + "cpe:/o:linux:linux_kernel:4.4" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:zhone:6211-i3" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 47784 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5240 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 30660 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:zonealarm:z100g" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5392 + ] + }, + "cpe": [ + "cpe:/h:zte:zxv10_h201" + ] + }, + { + "signature": { + "order_key": "MSS,WS,EOL", + "set_key": "{EOL,MSS,WS}", + "win_bucket": [ + 46080 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,NOP,WS", + "set_key": "{MSS,NOP,WS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/h:zyfer:gsync_391" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8112 + ] + }, + "cpe": [ + "cpe:/h:zyxel:aes-100" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:zyxel:o2_homebox_6641" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:zyxel:p-2602h-d1a" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/h:zyxel:prestige_660r" + ] + }, + { + "signature": { + "order_key": "MSS,EOL,SACK,TS,NOP,WS", + "set_key": "{EOL,MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5192 + ] + }, + "cpe": [ + "cpe:/h:zyxel:keenetic_4g" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [ + "cpe:/h:zyxel:nsa-200" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 17896 + ] + }, + "cpe": [ + "cpe:/h:zyxel:nsa-210" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 18328 + ] + }, + "cpe": [ + "cpe:/h:zyxel:nsa320s", + "cpe:/o:linux:linux_kernel:2.6.31" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:zyxel:es-3024a" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,WS,NOP,NOP,TS", + "set_key": "{MSS,NOP,TS,WS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/h:zyxel:gs1910" + ] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 5792 + ] + }, + "cpe": [] + }, + { + "signature": { + "order_key": "MSS,SACK,TS,NOP,WS", + "set_key": "{MSS,NOP,SACK,TS,WS}", + "win_bucket": [ + 14480 + ] + }, + "cpe": [ + "cpe:/h:zyxel:nbg6817", + "cpe:/o:linux:linux_kernel:3.4" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5440 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zld:3.30" + ] + }, + { + "signature": { + "order_key": "MSS,NOP,NOP,SACK,NOP,WS", + "set_key": "{MSS,NOP,SACK,WS}", + "win_bucket": [ + 5840 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:2.21" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 8192 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:2.41" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 16384 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 21760 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:3.40" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:3" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:3.40", + "cpe:/h:zyxel:prestige_2602r-d1a" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:3.40" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 21760 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:3.40" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 22400 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:3.62" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 1024 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:3.62" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:3.65" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:3.50" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:4.04" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:4.04" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 8192 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos:4.04" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 2048 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 1024 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 1024 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos" + ] + }, + { + "signature": { + "order_key": "MSS", + "set_key": "{MSS}", + "win_bucket": [ + 0, + 23360 + ] + }, + "cpe": [ + "cpe:/o:zyxel:zynos" + ] + } + ] +} \ No newline at end of file diff --git a/resources/nrev-port-probes.json b/resources/nrev-port-probes.json new file mode 100644 index 0000000..77b1c75 --- /dev/null +++ b/resources/nrev-port-probes.json @@ -0,0 +1,1032 @@ +{ + "meta": { + "name": "Port Probe Database", + "version": "1.0" + }, + "map": { + "1": [ + "tcp:http_get", + "tcp:help" + ], + "7": [ + "tcp:help" + ], + "21": [ + "tcp:generic_lines", + "tcp:help" + ], + "23": [ + "tcp:generic_lines" + ], + "25": [ + "tcp:help" + ], + "35": [ + "tcp:generic_lines" + ], + "43": [ + "tcp:generic_lines" + ], + "53": [ + "udp:dns_version_bind_req", + "tcp:dns_version_bind_req" + ], + "70": [ + "tcp:http_get" + ], + "79": [ + "tcp:generic_lines", + "tcp:http_get", + "tcp:help" + ], + "80": [ + "tcp:http_get", + "tcp:http_options", + "udp:quic" + ], + "81": [ + "tcp:http_get", + "tcp:http_options" + ], + "82": [ + "tcp:http_get", + "tcp:http_options" + ], + "83": [ + "tcp:http_get", + "tcp:http_options" + ], + "84": [ + "tcp:http_get", + "tcp:http_options" + ], + "85": [ + "tcp:http_get", + "tcp:http_options" + ], + "88": [ + "tcp:http_get" + ], + "98": [ + "tcp:generic_lines" + ], + "110": [ + "tcp:generic_lines" + ], + "113": [ + "tcp:generic_lines", + "tcp:http_get", + "tcp:help" + ], + "119": [ + "tcp:generic_lines", + "tcp:help" + ], + "135": [ + "tcp:dns_version_bind_req" + ], + "139": [ + "tcp:http_get" + ], + "143": [ + "tcp:http_get" + ], + "199": [ + "tcp:generic_lines" + ], + "214": [ + "tcp:generic_lines" + ], + "261": [ + "tcp:tls_session" + ], + "264": [ + "tcp:generic_lines" + ], + "271": [ + "tcp:tls_session" + ], + "280": [ + "tcp:http_get" + ], + "322": [ + "tcp:tls_session" + ], + "324": [ + "tcp:tls_session" + ], + "443": [ + "tcp:tls_session", + "tcp:https_get", + "udp:quic" + ], + "444": [ + "tcp:tls_session" + ], + "448": [ + "tcp:tls_session" + ], + "449": [ + "tcp:generic_lines" + ], + "465": [ + "tcp:tls_session" + ], + "497": [ + "tcp:http_get" + ], + "505": [ + "tcp:generic_lines", + "tcp:http_get" + ], + "510": [ + "tcp:generic_lines" + ], + "512": [ + "tcp:dns_version_bind_req" + ], + "513": [ + "tcp:dns_version_bind_req" + ], + "514": [ + "tcp:http_get", + "tcp:dns_version_bind_req" + ], + "515": [ + "tcp:http_get", + "tcp:help" + ], + "540": [ + "tcp:generic_lines", + "tcp:http_get" + ], + "543": [ + "tcp:dns_version_bind_req" + ], + "544": [ + "tcp:dns_version_bind_req" + ], + "548": [ + "tcp:tls_session" + ], + "554": [ + "tcp:http_get" + ], + "563": [ + "tcp:tls_session" + ], + "585": [ + "tcp:tls_session" + ], + "587": [ + "tcp:generic_lines", + "tcp:help" + ], + "591": [ + "tcp:http_get" + ], + "616": [ + "tcp:generic_lines" + ], + "620": [ + "tcp:http_get" + ], + "628": [ + "tcp:generic_lines", + "tcp:dns_version_bind_req" + ], + "631": [ + "tcp:http_get", + "tcp:http_options" + ], + "636": [ + "tcp:tls_session" + ], + "641": [ + "tcp:http_options" + ], + "666": [ + "tcp:generic_lines" + ], + "684": [ + "tcp:tls_session" + ], + "731": [ + "tcp:generic_lines" + ], + "771": [ + "tcp:generic_lines" + ], + "782": [ + "tcp:generic_lines" + ], + "783": [ + "tcp:http_get" + ], + "853": [ + "tcp:tls_session" + ], + "888": [ + "tcp:http_get" + ], + "898": [ + "tcp:http_get" + ], + "900": [ + "tcp:http_get" + ], + "901": [ + "tcp:http_get" + ], + "989": [ + "tcp:tls_session" + ], + "990": [ + "tcp:tls_session" + ], + "992": [ + "tcp:tls_session" + ], + "993": [ + "tcp:tls_session" + ], + "994": [ + "tcp:tls_session" + ], + "995": [ + "tcp:tls_session" + ], + "1000": [ + "tcp:generic_lines" + ], + "1010": [ + "tcp:generic_lines" + ], + "1026": [ + "tcp:http_get" + ], + "1029": [ + "tcp:dns_version_bind_req" + ], + "1040": [ + "tcp:generic_lines" + ], + "1041": [ + "tcp:generic_lines" + ], + "1042": [ + "tcp:generic_lines", + "tcp:http_get" + ], + "1043": [ + "tcp:generic_lines" + ], + "1080": [ + "tcp:generic_lines", + "tcp:http_get" + ], + "1111": [ + "tcp:help" + ], + "1212": [ + "tcp:generic_lines" + ], + "1214": [ + "tcp:http_get" + ], + "1220": [ + "tcp:generic_lines", + "tcp:http_get" + ], + "1234": [ + "tcp:http_get" + ], + "1241": [ + "tcp:tls_session" + ], + "1248": [ + "tcp:generic_lines" + ], + "1302": [ + "tcp:generic_lines" + ], + "1311": [ + "tcp:help", + "tcp:tls_session" + ], + "1314": [ + "tcp:http_get" + ], + "1344": [ + "tcp:http_get" + ], + "1400": [ + "tcp:generic_lines" + ], + "1432": [ + "tcp:generic_lines" + ], + "1443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "1467": [ + "tcp:generic_lines" + ], + "1501": [ + "tcp:generic_lines" + ], + "1503": [ + "tcp:http_get" + ], + "1505": [ + "tcp:generic_lines" + ], + "1610": [ + "tcp:http_get" + ], + "1611": [ + "tcp:http_get" + ], + "1666": [ + "tcp:generic_lines" + ], + "1687": [ + "tcp:generic_lines" + ], + "1688": [ + "tcp:generic_lines" + ], + "1830": [ + "tcp:http_get" + ], + "1900": [ + "tcp:http_get" + ], + "1967": [ + "udp:dns_version_bind_req" + ], + "2000": [ + "tcp:tls_session" + ], + "2001": [ + "tcp:http_get" + ], + "2002": [ + "tcp:http_get" + ], + "2010": [ + "tcp:generic_lines" + ], + "2024": [ + "tcp:generic_lines" + ], + "2030": [ + "tcp:http_get" + ], + "2064": [ + "tcp:http_get" + ], + "2068": [ + "tcp:dns_version_bind_req" + ], + "2105": [ + "tcp:dns_version_bind_req" + ], + "2160": [ + "tcp:http_get" + ], + "2221": [ + "tcp:tls_session" + ], + "2252": [ + "tcp:tls_session" + ], + "2301": [ + "tcp:http_options" + ], + "2306": [ + "tcp:http_get" + ], + "2376": [ + "tcp:tls_session" + ], + "2396": [ + "tcp:http_get" + ], + "2401": [ + "tcp:help" + ], + "2443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "2525": [ + "tcp:http_get" + ], + "2600": [ + "tcp:generic_lines" + ], + "2627": [ + "tcp:help" + ], + "2715": [ + "tcp:http_get" + ], + "2869": [ + "tcp:http_get" + ], + "2967": [ + "udp:dns_version_bind_req", + "tcp:dns_version_bind_req" + ], + "3000": [ + "tcp:generic_lines", + "tcp:http_get", + "tcp:help" + ], + "3002": [ + "tcp:http_get" + ], + "3005": [ + "tcp:generic_lines" + ], + "3052": [ + "tcp:http_get" + ], + "3128": [ + "tcp:generic_lines", + "tcp:http_get", + "tcp:http_options" + ], + "3280": [ + "tcp:http_get" + ], + "3310": [ + "tcp:generic_lines" + ], + "3333": [ + "tcp:generic_lines" + ], + "3372": [ + "tcp:http_get" + ], + "3388": [ + "tcp:tls_session" + ], + "3389": [ + "tcp:tls_session" + ], + "3443": [ + "tcp:tls_session" + ], + "3493": [ + "tcp:help" + ], + "3531": [ + "tcp:http_get" + ], + "3689": [ + "tcp:http_get" + ], + "3872": [ + "tcp:http_get" + ], + "3940": [ + "tcp:generic_lines" + ], + "4000": [ + "tcp:http_get" + ], + "4155": [ + "tcp:generic_lines" + ], + "4433": [ + "tcp:tls_session", + "tcp:https_get" + ], + "4443": [ + "tcp:tls_session" + ], + "4444": [ + "tcp:http_get", + "tcp:tls_session", + "tcp:https_get" + ], + "4567": [ + "tcp:http_get" + ], + "4660": [ + "tcp:http_get" + ], + "4711": [ + "tcp:http_get" + ], + "4911": [ + "tcp:tls_session" + ], + "5000": [ + "tcp:generic_lines", + "tcp:http_get", + "tcp:dns_version_bind_req" + ], + "5060": [ + "tcp:http_get" + ], + "5061": [ + "tcp:tls_session" + ], + "5222": [ + "tcp:http_get" + ], + "5232": [ + "tcp:http_options" + ], + "5269": [ + "tcp:http_get" + ], + "5280": [ + "tcp:http_get" + ], + "5323": [ + "tcp:dns_version_bind_req" + ], + "5349": [ + "tcp:tls_session" + ], + "5400": [ + "tcp:generic_lines" + ], + "5427": [ + "tcp:http_get" + ], + "5432": [ + "tcp:generic_lines", + "tcp:http_get" + ], + "5443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "5520": [ + "tcp:dns_version_bind_req" + ], + "5530": [ + "tcp:dns_version_bind_req" + ], + "5550": [ + "tcp:tls_session" + ], + "5555": [ + "tcp:generic_lines", + "tcp:dns_version_bind_req" + ], + "5556": [ + "tcp:dns_version_bind_req" + ], + "5570": [ + "tcp:generic_lines" + ], + "5800": [ + "tcp:http_get" + ], + "5801": [ + "tcp:http_get" + ], + "5802": [ + "tcp:http_get" + ], + "5803": [ + "tcp:http_get" + ], + "5868": [ + "tcp:tls_session" + ], + "5900": [ + "tcp:http_get" + ], + "5985": [ + "tcp:http_get" + ], + "5986": [ + "tcp:tls_session" + ], + "6000": [ + "tcp:http_options" + ], + "6103": [ + "tcp:http_get" + ], + "6112": [ + "tcp:generic_lines" + ], + "6251": [ + "tcp:tls_session" + ], + "6346": [ + "tcp:http_get" + ], + "6380": [ + "tcp:tls_session" + ], + "6432": [ + "tcp:generic_lines" + ], + "6443": [ + "tcp:tls_session" + ], + "6543": [ + "tcp:dns_version_bind_req" + ], + "6544": [ + "tcp:http_get" + ], + "6560": [ + "tcp:help" + ], + "6600": [ + "tcp:http_get" + ], + "6666": [ + "tcp:help" + ], + "6667": [ + "tcp:generic_lines", + "tcp:help" + ], + "6668": [ + "tcp:generic_lines", + "tcp:help" + ], + "6669": [ + "tcp:generic_lines", + "tcp:help" + ], + "6670": [ + "tcp:generic_lines", + "tcp:help" + ], + "6679": [ + "tcp:tls_session" + ], + "6697": [ + "tcp:tls_session" + ], + "6699": [ + "tcp:http_get" + ], + "6969": [ + "tcp:http_get" + ], + "7000": [ + "tcp:dns_version_bind_req", + "tcp:tls_session" + ], + "7002": [ + "tcp:http_get" + ], + "7007": [ + "tcp:http_get" + ], + "7008": [ + "tcp:dns_version_bind_req" + ], + "7070": [ + "tcp:http_get" + ], + "7100": [ + "tcp:http_get" + ], + "7144": [ + "tcp:generic_lines" + ], + "7145": [ + "tcp:generic_lines" + ], + "7200": [ + "tcp:generic_lines" + ], + "7210": [ + "tcp:tls_session" + ], + "7272": [ + "tcp:tls_session" + ], + "7402": [ + "tcp:http_get" + ], + "7443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "7776": [ + "tcp:http_get" + ], + "7780": [ + "tcp:generic_lines" + ], + "8000": [ + "tcp:generic_lines", + "tcp:http_get" + ], + "8001": [ + "tcp:http_get" + ], + "8002": [ + "tcp:http_get" + ], + "8003": [ + "tcp:http_get" + ], + "8004": [ + "tcp:http_get" + ], + "8005": [ + "tcp:http_get" + ], + "8006": [ + "tcp:http_get" + ], + "8007": [ + "tcp:http_get" + ], + "8008": [ + "tcp:http_get" + ], + "8009": [ + "tcp:http_get", + "tcp:tls_session", + "tcp:https_get" + ], + "8010": [ + "tcp:http_get", + "tcp:tls_session", + "tcp:https_get" + ], + "8080": [ + "tcp:http_get", + "tcp:http_options" + ], + "8081": [ + "tcp:http_get" + ], + "8082": [ + "tcp:http_get" + ], + "8083": [ + "tcp:http_get" + ], + "8084": [ + "tcp:http_get" + ], + "8085": [ + "tcp:http_get" + ], + "8088": [ + "tcp:http_get" + ], + "8118": [ + "tcp:http_get" + ], + "8138": [ + "tcp:generic_lines" + ], + "8181": [ + "tcp:http_get", + "tcp:tls_session", + "tcp:https_get" + ], + "8194": [ + "tcp:tls_session" + ], + "8443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "8530": [ + "tcp:http_get" + ], + "8531": [ + "tcp:tls_session" + ], + "8880": [ + "tcp:http_get" + ], + "8881": [ + "tcp:http_get" + ], + "8882": [ + "tcp:http_get" + ], + "8883": [ + "tcp:http_get", + "tcp:tls_session", + "tcp:https_get" + ], + "8884": [ + "tcp:http_get" + ], + "8885": [ + "tcp:http_get" + ], + "8886": [ + "tcp:http_get" + ], + "8887": [ + "tcp:http_get" + ], + "8888": [ + "tcp:http_get", + "tcp:http_options" + ], + "9000": [ + "tcp:generic_lines", + "tcp:http_get" + ], + "9001": [ + "tcp:generic_lines", + "tcp:http_get", + "tcp:tls_session" + ], + "9002": [ + "tcp:generic_lines" + ], + "9003": [ + "tcp:generic_lines" + ], + "9030": [ + "tcp:http_get" + ], + "9050": [ + "tcp:http_get" + ], + "9080": [ + "tcp:http_get" + ], + "9090": [ + "tcp:http_get" + ], + "9443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "9801": [ + "tcp:generic_lines" + ], + "9999": [ + "tcp:http_get", + "tcp:http_options" + ], + "10000": [ + "tcp:http_get", + "tcp:http_options" + ], + "10001": [ + "tcp:http_get" + ], + "10005": [ + "tcp:http_get" + ], + "10031": [ + "tcp:http_options" + ], + "10443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "11371": [ + "tcp:generic_lines", + "tcp:http_get" + ], + "11443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "11965": [ + "tcp:generic_lines" + ], + "12345": [ + "tcp:help" + ], + "12443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "13013": [ + "tcp:http_get" + ], + "13666": [ + "tcp:http_get" + ], + "13720": [ + "tcp:generic_lines" + ], + "13722": [ + "tcp:http_get" + ], + "13783": [ + "tcp:dns_version_bind_req" + ], + "14443": [ + "tcp:tls_session" + ], + "14534": [ + "tcp:http_get" + ], + "14690": [ + "tcp:help" + ], + "15000": [ + "tcp:generic_lines", + "tcp:http_get" + ], + "15001": [ + "tcp:generic_lines" + ], + "15002": [ + "tcp:generic_lines", + "tcp:tls_session" + ], + "16379": [ + "tcp:tls_session" + ], + "17988": [ + "tcp:http_get" + ], + "18086": [ + "tcp:generic_lines" + ], + "18264": [ + "tcp:http_get" + ], + "19150": [ + "tcp:generic_lines" + ], + "22490": [ + "tcp:help" + ], + "26198": [ + "udp:dns_version_bind_req" + ], + "26214": [ + "tcp:generic_lines" + ], + "26470": [ + "tcp:generic_lines" + ], + "30443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "30444": [ + "tcp:generic_lines" + ], + "31337": [ + "tcp:http_get" + ], + "31416": [ + "tcp:generic_lines" + ], + "34012": [ + "tcp:generic_lines" + ], + "37435": [ + "tcp:http_options" + ], + "40193": [ + "tcp:http_get" + ], + "40443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "44443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "49400": [ + "tcp:http_options" + ], + "50000": [ + "tcp:http_get" + ], + "50443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "55443": [ + "tcp:tls_session", + "tcp:https_get" + ], + "55555": [ + "tcp:http_get" + ], + "56667": [ + "tcp:generic_lines" + ], + "60443": [ + "tcp:tls_session", + "tcp:https_get" + ] + } +} diff --git a/resources/nrev-service-db.json b/resources/nrev-service-db.json new file mode 100644 index 0000000..80ef4cf --- /dev/null +++ b/resources/nrev-service-db.json @@ -0,0 +1,5461 @@ +{ + "meta": { + "name": "Signatures Database", + "version": "1.0" + }, + "signatures": [ + { + "probe_id": "tcp:null", + "service": "daytime", + "regex": "^\\w+, +\\d+ +\\w+ +\\d+ +\\d+:\\d+:\\d+ [+-]\\d+\\r\\n([\\w:._ /\\\\-]+\\\\ats\\.exe)\\r\\n", + "regex_literal_tokens": [ + "\\ats.exe" + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "filemaker-xdbc", + "regex": "^2\\x00\\x00\\x00\\xc3\\x0b.\\x00\\x00\\x00([\\d.]+) on Mac OS X ([\\d.]+) \\(([\\w_]+)\\)\\x00\\x00\\x00\\x00\\x00", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "finger", + "regex": "^Windows NT Version ([\\d.]+) build (\\d+), \\d+ processors? \\(.*\\)\\r\\nFingerDW V([\\d.]+) - Hummingbird Ltd\\.\\n", + "regex_literal_tokens": [ + ")FingerDW V", + "- Hummingbird Ltd.", + "Windows NT Version", + "build", + "processor" + ], + "cpe": [ + "cpe:/o:microsoft:windows_nt:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 ([-/.+\\w]+) IBM TCP/IP for OS/2 - FTP Server [Vv]er \\d+:\\d+:\\d+ on [A-Z]", + "regex_literal_tokens": [ + "220", + "IBM TCP/IP for OS/2 - FTP Server" + ], + "cpe": [ + "cpe:/a:ibm:os2_ftp_server/", + "cpe:/o:ibm:os2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 ([-/.+\\w]+) IBM TCP/IP f\\xfcr OS/2 - FTP-Server [Vv]er \\d+:\\d+:\\d+ .* bereit\\.\\r\\n", + "regex_literal_tokens": [ + "220", + "IBM TCP/IP fr OS/2 - FTP-Server", + "bereit." + ], + "cpe": [ + "cpe:/a:ibm:os2_ftp_server::::de/", + "cpe:/o:ibm:os2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 .* FTP Server \\(ProFTPD ([\\d.]+) on Red Hat linux ([\\d.]+)\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + ") ready.", + "220", + "FTP Server (ProFTPD", + "on Red Hat linux" + ], + "cpe": [ + "cpe:/o:redhat:linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 ([-\\w_.]+) FTP server \\(SunOS 5\\.([789])\\) ready", + "regex_literal_tokens": [ + ") ready", + "220", + "FTP server (SunOS 5." + ], + "cpe": [ + "cpe:/o:sun:sunos:5.$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 ([-\\w_.]+) FTP server \\(SunOS (\\S+)\\) ready", + "regex_literal_tokens": [ + ") ready", + "220", + "FTP server (SunOS" + ], + "cpe": [ + "cpe:/o:sun:sunos:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 VxWorks FTP server \\(VxWorks ?([\\d.]+) - Secure NetLinx version \\(([\\d.]+)\\)\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + ")) ready.", + "- Secure NetLinx version (", + "220 VxWorks FTP server (VxWorks" + ], + "cpe": [ + "cpe:/o:harman:amx_firmware:$1/", + "cpe:/o:windriver:vxworks:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 VxWorks \\(VxWorks ([\\w._-]+)\\) FTP server ready\\r\\n", + "regex_literal_tokens": [ + ") FTP server ready", + "220 VxWorks (VxWorks" + ], + "cpe": [ + "cpe:/o:harman:amx_firmware:$1/", + "cpe:/o:windriver:vxworks:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 ABB Robotics FTP server \\(VxWorks ([\\d.]+) rev ([\\d.]+)\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + ") ready.", + "220 ABB Robotics FTP server (VxWorks", + "rev" + ], + "cpe": [ + "cpe:/o:windriver:vxworks:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 ([-.\\w]+) FTP server \\(Version ([-.\\w]+)/OpenBSD\\) ready\\.\\r\\n$", + "regex_literal_tokens": [ + "/OpenBSD) ready.", + "220", + "FTP server (Version" + ], + "cpe": [ + "cpe:/a:openbsd:ftpd:$2/", + "cpe:/o:openbsd:openbsd/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 ([\\w._-]+) FTP server \\(NetBSD-ftpd 20\\w+\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + ") ready.", + "220", + "FTP server (NetBSD-ftpd 20" + ], + "cpe": [ + "cpe:/o:netbsd:netbsd/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 mandelbrot FTP server \\(Version ([\\d.]+) \\(NeXT ([\\d.]+)\\) .*\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + "(NeXT", + ") ready.", + "220 mandelbrot FTP server (Version" + ], + "cpe": [ + "cpe:/o:next:nextstep/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "220 ([-\\w_.]+) FTP server \\(Version: Mac OS X Server ([\\d.]+) - \\+GSSAPI\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + "- +GSSAPI) ready.", + "220", + "FTP server (Version: Mac OS X Server" + ], + "cpe": [ + "cpe:/o:apple:mac_os_x_server:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 FTP 9500 server \\(Version ([\\d.]+)\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + ") ready.", + "220 FTP 9500 server (Version" + ], + "cpe": [ + "cpe:/o:symbian:symbian/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 IBM TCP/IP for OS/2 - FTP Server ver ([\\d:.]+) on .* ready\\.\\r\\n", + "regex_literal_tokens": [ + "220 IBM TCP/IP for OS/2 - FTP Server ver", + "ready." + ], + "cpe": [ + "cpe:/a:ibm:os2_ftp_server:$1/", + "cpe:/o:ibm:os2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220-TCP/IP for VSE FTP Daemon Version ([\\w._-]+) ", + "regex_literal_tokens": [ + "220-TCP/IP for VSE FTP Daemon Version" + ], + "cpe": [ + "cpe:/o:ibm:z%2fvse/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220-CentOS release ([\\w._-]+) .*\\r\\n220 ProFTPD ([\\w._-]+) Server \\(ProFTPD Default Installation\\)", + "regex_literal_tokens": [ + "220 ProFTPD", + "220-CentOS release", + "Server (ProFTPD Default Installation)" + ], + "cpe": [ + "cpe:/o:centos:centos/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220-TiMOS-\\w+-([\\w._-]+) cpm/hops ALCATEL ESS 7450 Copyright \\(c\\) 2000-2007 Alcatel-Lucent\\.\\r\\n", + "regex_literal_tokens": [ + "220-TiMOS-", + "cpm/hops ALCATEL ESS 7450 Copyright (c) 2000-2007 Alcatel-Lucent." + ], + "cpe": [ + "cpe:/o:alcatel-lucent:timos/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220-FTPSERVE IBM VM Level (\\d)(\\d+) at ([\\w._-]+), [^\\r\\n]*\\r\\n220 Connection will close if idle for more than 5 minutes\\.\\r\\n", + "regex_literal_tokens": [ + "220 Connection will close if idle for more than 5 minutes.", + "220-FTPSERVE IBM VM Level" + ], + "cpe": [ + "cpe:/o:ibm:z%2fvm:$1.$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 NET\\+OS ([\\d.]+) FTP server ready\\.\\r\\n503 Bad sequence of commands\\r\\n", + "regex_literal_tokens": [ + "220 NET+OS", + "FTP server ready.503 Bad sequence of commands" + ], + "cpe": [ + "cpe:/o:digi:net%2bos:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220- Menuet FTP Server v([\\d.]+)\\r\\n220 Username and Password required\\r\\n", + "regex_literal_tokens": [ + "220 Username and Password required", + "220- Menuet FTP Server v" + ], + "cpe": [ + "cpe:/o:menuetos:menuetos/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 tandem FTP SERVER \\w+ \\(Version ([\\w.]+) TANDEM \\w+\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + "(Version", + ") ready.", + "220 tandem FTP SERVER", + "TANDEM" + ], + "cpe": [ + "cpe:/o:tandem:guardian/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 ftp server corona \\(([\\w._-]+)\\)\\r\\n", + "regex_literal_tokens": [ + "220 ftp server corona (" + ], + "cpe": [ + "cpe:/o:theos:theos/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 vxTarget FTP server \\(VxWorks ([\\d.]+)\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + ") ready.", + "220 vxTarget FTP server (VxWorks" + ], + "cpe": [ + "cpe:/o:windriver:vxworks:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220-Welcome to the S60 Dumb FTP Server \\(dftpd\\)\\r\\n", + "regex_literal_tokens": [ + "220-Welcome to the S60 Dumb FTP Server (dftpd)" + ], + "cpe": [ + "cpe:/o:symbian:symbian/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 <\\w+> Tenor Multipath Switch FTP server \\(Version VxWorks([\\w._-]+)\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + ") ready.", + "220 <", + "> Tenor Multipath Switch FTP server (Version VxWorks" + ], + "cpe": [ + "cpe:/o:windriver:vxworks:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 -= HyNetOS FTP Server =-\\r\\n500 Command \\(null\\) not understood\\r\\n", + "regex_literal_tokens": [ + "220 -= HyNetOS FTP Server =-500 Command (null) not understood" + ], + "cpe": [ + "cpe:/o:hyperstone:hynetos/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 Welcome to Solar FTP Server \\(http://solarftp\\.com\\)\\r\\n", + "regex_literal_tokens": [ + "220 Welcome to Solar FTP Server (http://solarftp.com)" + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 Aos FTP Server ready\\.\\r\\n", + "regex_literal_tokens": [ + "220 Aos FTP Server ready." + ], + "cpe": [ + "cpe:/o:eth:a2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 FreeFloat Ftp Server \\(Version ([\\w._-]+)\\)\\.\\r\\n", + "regex_literal_tokens": [ + "220 FreeFloat Ftp Server (Version" + ], + "cpe": [ + "cpe:/a:freefloat:freefloat_ftp_server:$1/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220(?:-.*\\r\\n220)* [\\d.]+ FTP Server \\(Apache/([\\w._-]+) \\(Ubuntu\\) (.*)\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + "(Ubuntu)", + ") ready.", + "220", + "FTP Server (Apache/" + ], + "cpe": [ + "cpe:/a:apache:http_server/", + "cpe:/o:canonical:ubuntu_linux/", + "cpe:/o:canonical:ubuntu_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 Wind River FTP server ([\\w._-]+) ready\\.\\r\\n", + "regex_literal_tokens": [ + "220 Wind River FTP server", + "ready." + ], + "cpe": [ + "cpe:/a:windriver:ftp_server:$1/", + "cpe:/o:windriver:vxworks/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220-TiMOS-B-([\\w._-]+) both/hops ALCATEL SR ([\\w._-]+) Copyright \\(c\\) \\d+-\\d+ Alcatel-Lucent\\.\\r\\n220-All rights reserved\\. All use subject to applicable license agreements\\.\\r\\n220-Built on (.*) by builder in /rel[\\w._-]+/[\\w._-]+/[\\w._-]+/panos/main\\r\\n220-\\r\\n220-This is a Maxcom, system restricted to authorized individuals\\. This system is subject to monitoring\\. Unauthorized users, access, and/or modification will be prosecuted\\.\\r\\n220 FTP server ready\\r\\n", + "regex_literal_tokens": [ + "/panos/main220-220-This is a Maxcom, system restricted to authorized individuals. This system is subject to monitoring. Unauthorized users, access, and/or modification will be prosecuted.220 FTP server ready", + "220-TiMOS-B-", + "Alcatel-Lucent.220-All rights reserved. All use subject to applicable license agreements.220-Built on", + "Copyright (c)", + "both/hops ALCATEL SR", + "by builder in /rel" + ], + "cpe": [ + "cpe:/h:alcatel:$2_service_router/", + "cpe:/o:alcatel:timos:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 ([\\w.-]+) FTP server \\(StarOS\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + "220", + "FTP server (StarOS) ready." + ], + "cpe": [ + "cpe:/o:cisco:staros/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220- FTP Server \\(RTOS-UH\\) ready\\. \\(c\\)IEP Version: ([\\d.]+)\\r\\n220 Connection is automatically closed if idle for 10 Minutes\\r\\n", + "regex_literal_tokens": [ + "220 Connection is automatically closed if idle for 10 Minutes", + "220- FTP Server (RTOS-UH) ready. (c)IEP Version:" + ], + "cpe": [ + "cpe:/o:universitathanover:rtos-uh/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220-Debian GNU/Linux (\\d+)\\r\\n220 ProFTPD ([\\w._-]+) Server ", + "regex_literal_tokens": [ + "220 ProFTPD", + "220-Debian GNU/Linux", + "Server" + ], + "cpe": [ + "cpe:/o:debian:debian_linux:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 MinWin FTP server ready\\.\\r\\n", + "regex_literal_tokens": [ + "220 MinWin FTP server ready." + ], + "cpe": [ + "cpe:/o:microsoft:windows_10:::iot/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ftp", + "regex": "^220 ([\\w._-]+) FTP server \\(U(?:LTRIX|ltrix) Version ([\\d.]+) ([^)]+)\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + ") ready.", + "220", + "FTP server (U", + "LTRIX", + "Version", + "ltrix" + ], + "cpe": [ + "cpe:/o:dec:ultrix:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "http", + "regex": "^HTTP/1\\.1 \\d\\d\\d .*\\r\\nServer: micro_httpd\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1", + "Server: micro_httpd" + ], + "cpe": [ + "cpe:/o:acme:micro_httpd/" + ] + }, + { + "probe_id": "tcp:null", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nServer: Menuet\\r\\nConnection: close\\r\\nContent-Length: 0\\d+\\r\\nContent-Type: image/bmp\\r\\n\\r\\n", + "regex_literal_tokens": [ + "Content-Type: image/bmp", + "HTTP/1.1 200 OKServer: MenuetConnection: closeContent-Length: 0" + ], + "cpe": [ + "cpe:/o:menuetos:menuetos/" + ] + }, + { + "probe_id": "tcp:null", + "service": "http", + "regex": "^HTTP/1\\.1 500 Internal Server Error\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: LG HDCP Server\\r\\n.*500Internal Server Error$", + "regex_literal_tokens": [ + "500Internal Server Error", + "HTTP/1.1 500 Internal Server Error", + "Server: LG HDCP Server" + ], + "cpe": [ + "cpe:/h:lg:lw5700/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ibm-hmc", + "regex": "^\\xab\\xab\\xab\\xab\\xa0\\x81\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x13\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00$", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:ibm:hardware_management_console/", + "cpe:/o:ibm:aix/" + ] + }, + { + "probe_id": "tcp:null", + "service": "imap", + "regex": "^\\* OK \\[[^\\[]+\\] Dovecot \\(Ubuntu\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + "* OK [", + "] Dovecot (Ubuntu) ready." + ], + "cpe": [ + "cpe:/a:dovecot:dovecot/", + "cpe:/o:canonical:ubuntu_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "imap", + "regex": "^\\* OK ([-.\\w]+) Cyrus IMAP4 v([-.\\w\\+]+)-Red Hat [-.\\w\\+]+ server ready\\r\\n", + "regex_literal_tokens": [ + "* OK", + "-Red Hat", + "Cyrus IMAP4 v", + "server ready" + ], + "cpe": [ + "cpe:/a:cmu:cyrus_imap_server:$2/", + "cpe:/o:redhat:linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "imap", + "regex": "^\\* OK (?:\\[CAPABILITY IMAP4[^\\]]*?\\] )?([-\\w_.]+) Cyrus IMAP4? v([-\\w_.]+)-Debian", + "regex_literal_tokens": [ + "* OK", + "-Debian", + "Cyrus IMAP", + "[CAPABILITY IMAP4" + ], + "cpe": [ + "cpe:/a:cmu:cyrus_imap_server:$2/", + "cpe:/o:canonical:ubuntu_linux/", + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "imap", + "regex": "^\\* OK \\[CAPABILITY IMAP4rev1 [^]]*\\] ([-.\\w]+) Cyrus IMAP [^ -]*-Debian-(\\d[\\w.]+)[\\w+-]* server ready\\r\\n", + "regex_literal_tokens": [ + "* OK [CAPABILITY IMAP4rev1", + "-Debian-", + "Cyrus IMAP", + "server ready" + ], + "cpe": [ + "cpe:/a:cmu:cyrus_imap_server:$2/", + "cpe:/o:debian:debian_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "imap", + "regex": "^\\* OK ([\\w._-]+) IMAP2bis Service ([\\w._()-]+) at .* ([-+]\\d+)", + "regex_literal_tokens": [ + "* OK", + "IMAP2bis Service" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/", + "cpe:/o:slackware:slackware_linux:3.5/" + ] + }, + { + "probe_id": "tcp:null", + "service": "imap-proxy", + "regex": "^\\* BYE concurrent connection limit in avast! exceeded\\(pass:\\d+, processes:([\\w._-]+)\\[\\d+\\]\\)\\r\\n", + "regex_literal_tokens": [ + "* BYE concurrent connection limit in avast! exceeded(pass:", + ", processes:" + ], + "cpe": [ + "cpe:/a:avast:antivirus/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "imap-proxy", + "regex": "^ BYE concurrent connection limit in AVG exceeded\\(pass:\\d+, processes:([\\w._-]+)\\[\\d+\\]\\)\\r\\n", + "regex_literal_tokens": [ + ", processes:", + "BYE concurrent connection limit in AVG exceeded(pass:" + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "imap-proxy", + "regex": "^\\* BYE Cannot connect to IMAP server ([\\w._-]+) \\([^)]*\\), connect error \\d+\\r\\n", + "regex_literal_tokens": [ + "), connect error", + "* BYE Cannot connect to IMAP server" + ], + "cpe": [ + "cpe:/a:avast:antivirus/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ipmi-advertiserd", + "regex": "^\\x0e\\x00\\x00\\x00\\x00\\x00\\x00$", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:supermicro:intelligent_platform_management_firmware/" + ] + }, + { + "probe_id": "tcp:null", + "service": "lmtp", + "regex": "^220 ([\\w.-]+) Dovecot \\(Ubuntu\\) ready\\.\\r\\n", + "regex_literal_tokens": [ + "220", + "Dovecot (Ubuntu) ready." + ], + "cpe": [ + "cpe:/a:dovecot:dovecot/", + "cpe:/o:canonical:ubuntu_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "nntp", + "regex": "^200 NNTP Service ([\\w._-]+) Version: [\\w._-]+ Posting Allowed \\r\\n", + "regex_literal_tokens": [ + "200 NNTP Service", + "Posting Allowed", + "Version:" + ], + "cpe": [ + "cpe:/o:microsoft:windows_2000/" + ] + }, + { + "probe_id": "tcp:null", + "service": "nntp", + "regex": "^200 NNTP-service ([\\w._-]+) Version: [\\w._-]+ Posting Allowed \\r\\n", + "regex_literal_tokens": [ + "200 NNTP-service", + "Posting Allowed", + "Version:" + ], + "cpe": [ + "cpe:/o:microsoft:windows_2000/" + ] + }, + { + "probe_id": "tcp:null", + "service": "nntp", + "regex": "^200 Service NNTP ([\\w._-]+) Version: [\\w._-]+ Posting Allowed \\r\\n", + "regex_literal_tokens": [ + "200 Service NNTP", + "Posting Allowed", + "Version:" + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "nntp", + "regex": "^200 Servicio NNTP ([\\w._-]+) Version: [\\w._-]+ Posting Allowed \\r\\n", + "regex_literal_tokens": [ + "200 Servicio NNTP", + "Posting Allowed", + "Version:" + ], + "cpe": [ + "cpe:/o:microsoft:windows::::es/" + ] + }, + { + "probe_id": "tcp:null", + "service": "nntp", + "regex": "^200 Servi\\xe7o NNTP ([\\w._-]+) Version: [\\w._-]+ Posting Allowed \\r\\n", + "regex_literal_tokens": [ + "200 Servio NNTP", + "Posting Allowed", + "Version:" + ], + "cpe": [ + "cpe:/o:microsoft:windows::::pt/" + ] + }, + { + "probe_id": "tcp:null", + "service": "nntp", + "regex": "^200 NNTP Service Microsoft\\xae Internet Services (\\d[-.\\w]+) Version: \\d+\\.\\d+\\.\\d+\\.\\d+ Posting Allowed \\r\\n", + "regex_literal_tokens": [ + "200 NNTP Service Microsoft Internet Services", + "Posting Allowed", + "Version:" + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "nntp", + "regex": "^200 ([-\\w_.]+) InterNetNews NNRP server INN ([\\d.]+) .* \\(Debian\\) ready \\(posting ok\\)\\.\\r\\n", + "regex_literal_tokens": [ + "(Debian) ready (posting ok).", + "200", + "InterNetNews NNRP server INN" + ], + "cpe": [ + "cpe:/a:isc:inn:$2/", + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "nntp-proxy", + "regex": "^5?02 concurrent connection limit in avast! exceeded\\(pass:\\d+, processes:([\\w._-]+)\\[\\d+\\]\\)\\r\\n", + "regex_literal_tokens": [ + ", processes:", + "02 concurrent connection limit in avast! exceeded(pass:" + ], + "cpe": [ + "cpe:/a:avast:antivirus/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "pop3", + "regex": "^\\+OK ([-\\w_.]+) Cyrus POP3 v(\\S+?)[-_]?Debian\\S+ server ready", + "regex_literal_tokens": [ + "+OK", + "Cyrus POP3 v", + "Debian", + "server ready" + ], + "cpe": [ + "cpe:/a:cmu:cyrus_imap_server:$2/", + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "pop3", + "regex": "^\\+OK Microsoft Windows POP3 Service Version 1.0 <", + "regex_literal_tokens": [ + "+OK Microsoft Windows POP3 Service Version 1", + "0 <" + ], + "cpe": [ + "cpe:/o:microsoft:windows_2000/" + ] + }, + { + "probe_id": "tcp:null", + "service": "pop3", + "regex": "^\\+OK Server Ready\\r\\n", + "regex_literal_tokens": [ + "+OK Server Ready" + ], + "cpe": [ + "cpe:/o:cisco:vpn_3000_concentrator_series_software/" + ] + }, + { + "probe_id": "tcp:null", + "service": "pop3-proxy", + "regex": "^-ERR Cannot connect to POP server ([\\w._-]+) \\([^)]*\\), connect error \\d+\\r\\n", + "regex_literal_tokens": [ + "), connect error", + "-ERR Cannot connect to POP server" + ], + "cpe": [ + "cpe:/a:avast:antivirus/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "remote-rac", + "regex": "^\\x10\\x00\\x00\\x00\\t\\xe7\\xa0o\\xde&\\xdc\\xfec\\xbf\\xb91\\xef\\xc3\\?\\xc9\\x10\\x00\\x00\\x00\\xa1\\xcasZ6\\[\\xdf\\x0cc\\xbf\\xb91\\xef\\xc3\\?\\xc9\\x08\\x00\\x19\\xdbh\\x06\\xa1\\xfc\\x91\\xce$", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "remote-rac", + "regex": "^\\x02\\x00\\x00\\x00\\xfe\\x00\\x00\\x00\\x00\\x01\\x00\\x00.{256}$", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "rethinkdb-intracluster", + "regex": "^RethinkDB ([\\w._~-]+ubuntu[\\w._~-]+) cluster\\n\\xab\\xa6\\x04\\^\\x11!M\\xd6\\x99\\xb6\\xb5\\xbe\\x1cxR\\xdd\\x02\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x7f\\x00\\x00\\x01\\x7f\\x00\\x01\\x01Wq\\x00\\x00$", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:canonical:ubuntu_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "sieve", + "regex": "^\\\"IMPLEMENTATION\\\" \\\"Cyrus timsieved v([\\w._-]+-Red Hat[- ][\\w._+-]+)\\\"\\r\\n", + "regex_literal_tokens": [ + "\"IMPLEMENTATION\" \"Cyrus timsieved v", + "-Red Hat" + ], + "cpe": [ + "cpe:/a:cmu:cyrus_imap_server:$1/", + "cpe:/o:redhat:linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "sieve", + "regex": "^\\\"IMPLEMENTATION\\\" \\\"Cyrus timsieved v([\\w._-]+-Debian[- ][\\w._+-]+)\\\"\\r\\n", + "regex_literal_tokens": [ + "\"IMPLEMENTATION\" \"Cyrus timsieved v", + "-Debian" + ], + "cpe": [ + "cpe:/a:cmu:cyrus_imap_server:$1/", + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "sieve", + "regex": "^\\\"IMPLEMENTATION\\\" \\\"Cyrus timsieved v([\\w_.]+)-OS X ([^\"]+)\\\"\\r\\n", + "regex_literal_tokens": [ + "\"IMPLEMENTATION\" \"Cyrus timsieved v", + "-OS X" + ], + "cpe": [ + "cpe:/a:cmu:cyrus_imap_server:$1/", + "cpe:/o:apple:mac_os_x:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "sieve", + "regex": "^\\\"IMPLEMENTATION\\\" \\\"Dovecot \\(Ubuntu\\) Pigeonhole\\\"\\r\\n\\\"SIEVE\\\" \\\"[\\w._;-]+(?:\\s+[\\w._;-]+)*\\\"\\r\\n\\\"NOTIFY\\\" \\\"mailto\\\"\\r\\n\\\"SASL\\\" \\\"[\\w._;-]*(?:\\s+[\\w._;-]+)*\\\"\\r\\n\\\"STARTTLS\\\"\\r\\n\\\"VERSION\\\" \\\"([\\w._-]+)\\\"\\r\\nOK \\\"[^\"]*\\\"\\r\\n$", + "regex_literal_tokens": [ + "\"\"NOTIFY\" \"mailto\"\"SASL\" \"", + "\"\"STARTTLS\"\"VERSION\" \"", + "\"IMPLEMENTATION\" \"Dovecot (Ubuntu) Pigeonhole\"\"SIEVE\" \"", + "\"OK \"" + ], + "cpe": [ + "cpe:/o:canonical:ubuntu_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "smtp", + "regex": "^220 [\\*\\d\\ ]{2,300}\\r\\n", + "regex_literal_tokens": [ + "220" + ], + "cpe": [ + "cpe:/o:cisco:pix_firewall_software/" + ] + }, + { + "probe_id": "tcp:null", + "service": "smtp", + "regex": "^220 ([-\\w_.]+) running IBM MVS SMTP CS V2R10 on .*\\r\\n", + "regex_literal_tokens": [ + "220", + "running IBM MVS SMTP CS V2R10 on" + ], + "cpe": [ + "cpe:/o:ibm:mvs/" + ] + }, + { + "probe_id": "tcp:null", + "service": "smtp", + "regex": "^220 [-\\w_]+ ESMTP ([-\\w_.]+) \\(Debian/GNU\\)\\r\\n", + "regex_literal_tokens": [ + "(Debian/GNU)", + "220", + "ESMTP" + ], + "cpe": [ + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "smtp", + "regex": "^220 ESMTP \\(Debian/GNU Mewwwwwww\\)\\r\\n", + "regex_literal_tokens": [ + "220 ESMTP (Debian/GNU Mewwwwwww)" + ], + "cpe": [ + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "smtp", + "regex": "^220 ([\\w._-]+) [\\w._-]+ ESMTP Postfix \\(Debian/GNU\\)", + "regex_literal_tokens": [ + "220", + "ESMTP Postfix (Debian/GNU)" + ], + "cpe": [ + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "smtp", + "regex": "^220 ([-\\w_.]+) running IBM MVS SMTP CS (\\w+) on .*\\r\\n", + "regex_literal_tokens": [ + "220", + "running IBM MVS SMTP CS" + ], + "cpe": [ + "cpe:/o:ibm:mvs/" + ] + }, + { + "probe_id": "tcp:null", + "service": "smtp", + "regex": "^220-\\S+ Sendmail ([\\d.]+)/A/UX ([\\d.]+) ready at .*\\r\\n220 ESMTP spoken here\\r\\n", + "regex_literal_tokens": [ + "/A/UX", + "220 ESMTP spoken here", + "220-", + "Sendmail", + "ready at" + ], + "cpe": [ + "cpe:/a:sendmail:sendmail:$1/", + "cpe:/o:apple:a_ux:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "smtp", + "regex": "^220-([-\\w_.]+) Sendmail IBM OS/2 SENDMAIL VERSION ([\\w./]+) ready at .*\\r\\n220 ESMTP spoken here\\r\\n", + "regex_literal_tokens": [ + "220 ESMTP spoken here", + "220-", + "Sendmail IBM OS/2 SENDMAIL VERSION", + "ready at" + ], + "cpe": [ + "cpe:/a:sendmail:sendmail:$2/", + "cpe:/o:ibm:os2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "smtp-proxy", + "regex": "^421 concurrent connection limit in avast! exceeded\\(pass:0, processes:([\\w._-]+)\\[\\d+\\]\\)\\r\\n", + "regex_literal_tokens": [ + "421 concurrent connection limit in avast! exceeded(pass:0, processes:" + ], + "cpe": [ + "cpe:/a:avast:antivirus/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "smtp-proxy", + "regex": "^421 Cannot connect to SMTP server ([\\w._-]+) \\([^)]*\\), connect error \\d+\\r\\n", + "regex_literal_tokens": [ + "), connect error", + "421 Cannot connect to SMTP server" + ], + "cpe": [ + "cpe:/a:avast:antivirus/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ssh", + "regex": "^SSH-([\\d.]+)-OpenSSH_([\\w._-]+) Debian-(\\S*maemo\\S*)\\r?\\n", + "regex_literal_tokens": [ + "-OpenSSH_", + "Debian-", + "SSH-", + "maemo" + ], + "cpe": [ + "cpe:/a:openbsd:openssh:$2/", + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ssh", + "regex": "^SSH-([\\d.]+)-OpenSSH_([\\w._-]+)[ -]{1,2}Debian[ -_](.*ubuntu.*)\\r\\n", + "regex_literal_tokens": [ + "-OpenSSH_", + "Debian", + "SSH-", + "ubuntu" + ], + "cpe": [ + "cpe:/a:openbsd:openssh:$2/", + "cpe:/o:canonical:ubuntu_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ssh", + "regex": "^SSH-([\\d.]+)-OpenSSH_([\\w._-]+)[ -]{1,2}Ubuntu[ -_]([^\\r\\n]+)\\r?\\n", + "regex_literal_tokens": [ + "-OpenSSH_", + "SSH-", + "Ubuntu" + ], + "cpe": [ + "cpe:/a:openbsd:openssh:$2/", + "cpe:/o:canonical:ubuntu_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ssh", + "regex": "^SSH-([\\d.]+)-OpenSSH_([\\w._-]+)[ -]{1,2}Debian[ -_]([^\\r\\n]+)\\r?\\n", + "regex_literal_tokens": [ + "-OpenSSH_", + "Debian", + "SSH-" + ], + "cpe": [ + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ssh", + "regex": "^SSH-([\\d.]+)-OpenSSH_[\\w.]+-FC-([\\w.-]+)\\.fc(\\d+)\\r\\n", + "regex_literal_tokens": [ + "-FC-", + "-OpenSSH_", + ".fc", + "SSH-" + ], + "cpe": [ + "cpe:/a:openbsd:openssh:$2/", + "cpe:/o:fedoraproject:fedora_core:$3/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ssh", + "regex": "^SSH-([\\d.]+)-OpenSSH_([\\w._-]+) NetBSD_Secure_Shell-([\\w._+-]+)\\r?\\n", + "regex_literal_tokens": [ + "-OpenSSH_", + "NetBSD_Secure_Shell-", + "SSH-" + ], + "cpe": [ + "cpe:/a:openbsd:openssh:$2/", + "cpe:/o:netbsd:netbsd/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ssh", + "regex": "^SSH-([\\d.]+)-OpenSSH_([\\w._-]+) Trisquel_GNU/linux_([\\d.]+)(?:-\\d+)?\\r\\n", + "regex_literal_tokens": [ + "-OpenSSH_", + "SSH-", + "Trisquel_GNU/linux_" + ], + "cpe": [ + "cpe:/o:trisquel_project:trisquel_gnu%2flinux:$3/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ssh", + "regex": "^SSH-([\\d.]+)-OpenSSH_([\\w._-]+) SolidFire Element \\r\\n", + "regex_literal_tokens": [ + "-OpenSSH_", + "SSH-", + "SolidFire Element" + ], + "cpe": [ + "cpe:/o:netapp:element_software/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ssh", + "regex": "^SSH-([\\d.]+)-ROSSSH\\r\\n", + "regex_literal_tokens": [ + "-ROSSSH", + "SSH-" + ], + "cpe": [ + "cpe:/o:mikrotik:routeros/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ssh", + "regex": "^SSH-([\\d.]+)-DOPRA-([\\w._-]+)\\n", + "regex_literal_tokens": [ + "-DOPRA-", + "SSH-" + ], + "cpe": [ + "cpe:/o:huawei:dopra_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "ssh", + "regex": "^SSH-([\\d.]+)-SC123/SC143 CHIP-RTOS V([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + "-SC123/SC143 CHIP-RTOS V", + "SSH-" + ], + "cpe": [ + "cpe:/o:beck-ipc:chip-rtos:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x18\\xff\\xfb\\x01\\x1b\\[2J\\x1b\\[\\?7l\\x1b.*HP [-.\\w]+ ProCurve Switch ([-.\\w]+)\\r\\n\\rFirmware revision ([-.\\w]+)\\r\\n\\r\\r", + "regex_literal_tokens": [ + "Firmware revision", + "ProCurve Switch", + "[2J[?7l" + ], + "cpe": [ + "cpe:/h:hp:procurve_switch_$1/", + "cpe:/o:hp:procurve_switch_software:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\x1b\\[20;1H\\r\\n\\r\\x1b\\[\\?25h\\x1b\\[20;11H\\x1b\\[21;1HSession Terminated, Connect again\\r\\n\\r\\x1b\\[\\?25h\\x1b\\[21;1H\\xff\\xfd\\x18\\xff\\xfb\\x01\\x1b\\[2J\\x1b\\[\\?7l\\x1b\\[[34];23r\\x1b\\[\\?6l\\x1b\\[1;1H\\x1b\\[\\?25l\\x1b\\[1;1HHP [-.\\w]+ ProCurve Switch ([-.\\w]+)\\r\\n\\rFirmware revision ([-.\\w]+)\\r\\n\\r\\r", + "regex_literal_tokens": [ + ";23r[?6l[1;1H[?25l[1;1HHP", + "Firmware revision", + "ProCurve Switch", + "[20;1H[?25h[20;11H[21;1HSession Terminated, Connect again[?25h[21;1H[2J[?7l[" + ], + "cpe": [ + "cpe:/h:hp:procurve_switch_$1/", + "cpe:/o:hp:procurve_switch_software:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x18\\xff\\xfb\\x01\\x1b\\[2J\\x1b\\[\\?7l\\x1b.*ProCurve [\\w._-]+ Switch ([\\w._-]+)\\r\\r\\nSoftware revision ([\\w._-]+)\\r\\r\\n", + "regex_literal_tokens": [ + "ProCurve", + "Software revision", + "Switch", + "[2J[?7l" + ], + "cpe": [ + "cpe:/h:hp:procurve_switch_$1/", + "cpe:/o:hp:procurve_switch_software:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd%\\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfd'\\xff\\xfd\\x1f\\xff\\xfd\\x00\\xff\\xfb\\x00", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:microsoft:windows_xp/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\r\\nNo more connections are allowed to telnet server\\. Please try again later\\.\\x00", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:microsoft:windows_xp/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfd\\x03\\xff\\xfd\\x1f\\xff\\xfd\\x18Windows NT Workstation ([\\d.]+) \\(build \\d+\\) Service Pack (\\d+)\\r\\nRemotelyAnywhere Telnet Server ([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + "(build", + ") Service Pack", + "RemotelyAnywhere Telnet Server", + "Windows NT Workstation" + ], + "cpe": [ + "cpe:/o:microsoft:windows_nt:$1:sp$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\xfd\\xff\\xfb\\x01\\n\\r\\n\\rFabric OS \\(tm\\) Release v([\\w.]+)\\n\\r\\n\\r", + "regex_literal_tokens": [ + "Fabric OS (tm) Release v" + ], + "cpe": [ + "cpe:/o:brocade:fabric_os:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\r\\nWelcome to slush\\. \\(Version ([\\d.]+)\\)\\r\\n\\r\\n\\r\\n\\xff\\xfb\\x01\\xff\\xfb\\x03([-\\w_. ]+) login: ", + "regex_literal_tokens": [ + "Welcome to slush. (Version", + "login:" + ], + "cpe": [ + "cpe:/o:systronix:tinios/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\r\\nWelcome to NetLinx v([\\d.]+) Copyright AMX ", + "regex_literal_tokens": [ + "Copyright AMX", + "Welcome to NetLinx v" + ], + "cpe": [ + "cpe:/o:harman:amx_firmware:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\r\\nWelcome to NetLinx v([\\d.]+) , AMX LLC\\r\\n>", + "regex_literal_tokens": [ + ", AMX LLC>", + "Welcome to NetLinx v" + ], + "cpe": [ + "cpe:/o:harman:amx_firmware:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x01\\xff\\xfd\\x1f\\xff\\xfb\\x01\\xff\\xfb\\x03Fritz!Box user: ", + "regex_literal_tokens": [ + "Fritz!Box user:" + ], + "cpe": [ + "cpe:/o:avm:fritzos/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x01\\xff\\xfd!\\xff\\xfb\\x01\\xff\\xfb\\x03\\(none\\) login: ", + "regex_literal_tokens": [ + "!(none) login:" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x03\\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfb\\x01\\r\\n\\r\\nPIX passwd: ", + "regex_literal_tokens": [ + "PIX passwd:" + ], + "cpe": [ + "cpe:/o:cisco:pix_firewall_software/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x03\\xff\\xfd\\x03\\xff\\xfb\\x01\\r\\nPrecise/RTCS v([\\d.]+) Telnet server\\r\\n\\r\\x00\\r\\nService Port Manager Active\\r\\x00\\r\\n Ends Session\\r\\x00\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:precise:mqx:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x03\\xff\\xfb\\x01\\xff\\xfe\\x01\\xff\\xfd\\x00\\r\\nser2net port \\d+ device (/dev/[-\\w_]+) \\[\\d+ \\w+\\] \\(Debian GNU/Linux\\)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfe\\x01\\n\\rTerminal shell v1\\.0\\n\\r\\rCopyright \\xa9\\d+ Netopia, Inc\\. All rights reserved\\.\\n\\r\\rNetopia Model ([\\w-]+) Wireless DSL Ethernet Switch\\n\\rRunning Netopia SOC OS version ([\\d.]+ \\(build \\w+\\))\\n", + "regex_literal_tokens": [ + "(build", + "Netopia, Inc. All rights reserved.Netopia Model", + "Terminal shell v1.0Copyright", + "Wireless DSL Ethernet SwitchRunning Netopia SOC OS version" + ], + "cpe": [ + "cpe:/o:netopia:soc_os:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfe\\x01\\n\\rTerminal shell v1\\.0\\n\\r\\rCopyright \\xa92008 Motorola, Inc\\. All rights reserved\\.\\n\\r\\rNetopia Model ([\\d-]+)(?: AnnexA)? High-Power Wireless DSL Ethernet Managed Switch\\n\\rRunning Netopia SOC OS version ([\\w.-]+ \\(build \\w+\\))\\n", + "regex_literal_tokens": [ + "(build", + "AnnexA", + "High-Power Wireless DSL Ethernet Managed SwitchRunning Netopia SOC OS version", + "Terminal shell v1.0Copyright 2008 Motorola, Inc. All rights reserved.Netopia Model" + ], + "cpe": [ + "cpe:/o:netopia:soc_os:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^(?:\\x1b\\[23;1H\\r\\n\\r\\x1b\\[\\?25h\\x1b\\[23;11H\\x1b\\[24;1HSession Terminated, Connect again\\r\\n\\r\\x1b\\[\\?25h\\x1b\\[24;1H)?\\xff\\xfd\\x18\\xff\\xfb\\x01\\x1b\\[2J\\x1b\\[\\?7l\\x1b\\[3;23r\\x1b\\[\\?6l\\x1b\\[1;1H\\x1b\\[\\?25l\\x1b\\[1;1HProCurve (J\\w+) Switch (\\d+)\\r\\n\\rFirmware revision ([^\\r\\n]+)\\r\\n", + "regex_literal_tokens": [ + "Firmware revision", + "Switch", + "[23;1H[?25h[23;11H[24;1HSession Terminated, Connect again[?25h[24;1H", + "[2J[?7l[3;23r[?6l[1;1H[?25l[1;1HProCurve J" + ], + "cpe": [ + "cpe:/h:hp:procurve_switch_$2/", + "cpe:/o:hp:procurve_switch_software:$3/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\xff\\xfd\\x18\\xff\\xfb\\x03$", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:tandem:guardian/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x01\\xff\\xfd\\x1f\\xff\\xfd!\\xff\\xfb\\x01\\xff\\xfb\\x03\\r\\r\\n\\r\\n\\r.*\\xaf\\xaf\\xaf\\xaf\\xaf\\r\\n\\r Kernel ([\\w._-]+) \\(00:17:54\\)\\r\\n\\rdreambox login: ", + "regex_literal_tokens": [ + "(00:17:54)dreambox login:", + "Kernel" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x01\\xff\\xfd\\x1f\\xff\\xfd!\\xff\\xfb\\x01\\xff\\xfb\\x03\\r\\r\\n\\r\\n\\r\\r\\n\\rWelcome to DreamBox\\.\\r\\n\\rRunning under Kernel ([\\w._-]+) \\.\\r\\n\\rBased on (Gemini [\\w._-]+ GUI)\\.\\r\\n\\rKernel and utilities compiled by SatDream\\.\\r\\n\\r\\r\\n\\r\\r\\n\\rhttp://www\\.satderam\\.ru , info@satdream\\.ru , dreambox@satdream\\.ru\\r\\n", + "regex_literal_tokens": [ + "!Welcome to DreamBox.Running under Kernel", + ".Based on Gemini", + "GUI.Kernel and utilities compiled by SatDream.http://www.satderam.ru , info@satdream.ru , dreambox@satdream.ru" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfc\\x01\\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfe\\x18\\xff\\xfd\\x1f\\xff\\xfb\\x1f\\xff\\xfb\\\"\\xff\\xfb\\x05TiMOS-([\\w._-]+) cpm/hops ALCATEL SR (\\w+)", + "regex_literal_tokens": [ + "\"TiMOS-", + "cpm/hops ALCATEL SR" + ], + "cpe": [ + "cpe:/o:alcatel-lucent:timos:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\xff\\xfb\\x01\\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfd\\x18\\xff\\xfd\\x1f\\r\\n\\*{78}\\r\\n\\* Copyright \\(c\\) 2010-2\\d\\d\\d Hewlett-Packard Development Company, L\\.P\\. {10}\\*\\r\\n\\* Without the owner's prior written consent, {33}\\*\\r\\n\\* no decompiling or reverse-engineering shall be allowed\\. {20}\\*\\r\\n\\*{78}\\r\\n\\r\\n\\r\\nLogin authentication\\r\\n\\r\\n\\r\\nUsername:", + "regex_literal_tokens": [ + "* Copyright (c) 2010-2", + "** Without the owner's prior written consent,", + "** no decompiling or reverse-engineering shall be allowed.", + "Hewlett-Packard Development Company, L.P.", + "Login authenticationUsername:" + ], + "cpe": [ + "cpe:/o:hp:comware/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfc\\x01\\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfd\\x18\\xff\\xfb\\x18\\xff\\xfd\\x1f\\xff\\xfb\\x1f\\xff\\xfb\\\"\\xff\\xfb\\x05Username:", + "regex_literal_tokens": [ + "\"Username:" + ], + "cpe": [ + "cpe:/o:oneaccess:oneos/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x18\\xff\\xfb\\x01\\x1b\\[2J\\x1b\\[\\?7l\\x1b\\[3;23r\\x1b\\[\\?6l\\x1b\\[1;1H\\x1b\\[\\?25l\\x1b\\[1;1HProCurve J\\w+ Switch ([\\w-]+)\\r\\n\\rSoftware revision ([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "Software revision", + "Switch", + "[2J[?7l[3;23r[?6l[1;1H[?25l[1;1HProCurve J" + ], + "cpe": [ + "cpe:/h:hp:procurve_switch_$1/", + "cpe:/o:hp:procurve_switch_software:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x01\\xff\\xfd\\x1f\\xff\\xfd!\\xff\\xfb\\x01\\xff\\xfb\\x03\\r\\r\\nWelcome to Linux \\(([\\w._-]+)\\) for MIPS\\r\\n\\rKernel ([\\w._-]+) Treckle on an MIPS\\r\\n\\r[\\w._-]+ login: ", + "regex_literal_tokens": [ + "!Welcome to Linux (", + ") for MIPSKernel", + "Treckle on an MIPS", + "login:" + ], + "cpe": [ + "cpe:/h:zksoftware:$1/", + "cpe:/o:linux:linux_kernel:$2/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^Eltin\\r\\n Ethernut Nut/OS witamy\\.\\r\\nkey=[0-9A-F]+\\r\\n$", + "regex_literal_tokens": [ + "Eltin Ethernut Nut/OS witamy.key=" + ], + "cpe": [ + "cpe:/o:ethernut:nut_os::::pl/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfd\\x03\\xff\\xfd\\x1fWELCOME\\r\\n NO UNAUTHORIZED LOGIN\\r\\n Private property\\r\\nlogin: ", + "regex_literal_tokens": [ + "WELCOME NO UNAUTHORIZED LOGIN Private propertylogin:" + ], + "cpe": [ + "cpe:/h:patton:sn4638/", + "cpe:/o:patton:smartware/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\xff\\xfb\\x03XMR-2: Console access 2047\\r\\n\\r\\nUsername: ", + "regex_literal_tokens": [ + "XMR-2: Console access 2047Username:" + ], + "cpe": [ + "cpe:/o:brocade:ironware/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\xff\\xfd\\x01\\xff\\xfb\\x03\\xff\\xfd\\x03\\xff\\xfb\\x05\\xff\\xfd\\x05Welcome to InterNiche Telnet Server ([\\w._-]+)\\r\\n\\r\\n\\r\\nlogin: ", + "regex_literal_tokens": [ + "Welcome to InterNiche Telnet Server", + "login:" + ], + "cpe": [ + "cpe:/o:micrium:uc%2fos-iii/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x01\\xff\\xfd\\x1f\\xff\\xfb\\x01\\xff\\xfb\\x03\\r\\r\\nWelcome to Vyatta\\r\\n\\rvyatta login: ", + "regex_literal_tokens": [ + "Welcome to Vyattavyatta login:" + ], + "cpe": [ + "cpe:/a:brocade:vyatta_vrouter_software/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x03\\xff\\xfb\\x03\\xff\\xfd\\x01\\xff\\xfb\\x01\\r\\n\\r\\x1b\\[2J\\x1b\\[0;0H\\x1b\\[K\\x1b\\[1;0H\\x1b\\[K\\x1b\\[2;0H\\x1b\\[K\\x1b\\[3;0H\\x1b\\[K\\x1b\\[4;0H\\x1b\\[K\\x1b\\[5;0H\\x1b\\[K\\x1b\\[6;0H\\x1b\\[K\\x1b\\[7;0H\\x1b\\[K\\x1b\\[8;0H\\x1b\\[K\\x1b\\[9;0H\\x1b\\[K\\x1b\\[10;0H\\x1b\\[K\\x1b\\[11;0H\\x1b\\[K\\x1b\\[12;0H\\x1b\\[K\\x1b\\[13;0H\\x1b\\[K\\x1b\\[14;0H\\x1b\\[K\\x1b\\[15;0H\\x1b\\[K\\x1b\\[16;0H\\x1b\\[K\\x1b\\[17;0H\\x1b\\[K\\x1b\\[18;0H\\x1b\\[K\\x1b\\[19;0H\\x1b\\[K\\x1b\\[20;0H\\x1b\\[K\\x1b\\[21;0H\\x1b\\[K\\x1b\\[22;0H\\x1b\\[K\\x1b\\[23;0HArrowKey/TAB/BACK=Move SPACE=Toggle ENTER=Select ESC=Back", + "regex_literal_tokens": [ + "[2J[0;0H[K[1;0H[K[2;0H[K[3;0H[K[4;0H[K[5;0H[K[6;0H[K[7;0H[K[8;0H[K[9;0H[K[10;0H[K[11;0H[K[12;0H[K[13;0H[K[14;0H[K[15;0H[K[16;0H[K[17;0H[K[18;0H[K[19;0H[K[20;0H[K[21;0H[K[22;0H[K[23;0HArrowKey/TAB/BACK=Move SPACE=Toggle ENTER=Select ESC=Back" + ], + "cpe": [ + "cpe:/o:linksys:srw2024/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x01\\xff\\xfd\\x1f\\xff\\xfd!\\xff\\xfb\\x01\\xff\\xfb\\x03\\r\\r\\nIngenic linux machine\\r\\n\\rKernel ([\\w._-]+) on an mips\\r\\n\\r\\(none\\) login: ", + "regex_literal_tokens": [ + "!Ingenic linux machineKernel", + "on an mips(none) login:" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x18\\xff\\xfd \\xff\\xfd#\\xff\\xfd'\\xff\\xfd\\$\\xff\\xfd!", + "regex_literal_tokens": [ + "#'$!" + ], + "cpe": [ + "cpe:/h:cisco:asr_9010/", + "cpe:/o:cisco:ios_xr:3/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x03\\xff\\xfb\\x01HGFMA-B> GET / HTTP/1\\.0\\r\\nGET: Command not found\\.\\r\\nHGFMA-B> \\r\\nHGFMA-B> ", + "regex_literal_tokens": [ + "HGFMA-B> GET / HTTP/1.0GET: Command not found.HGFMA-B> HGFMA-B>" + ], + "cpe": [ + "cpe:/o:hay_systems:hsl_2.75g_femtocell/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x03\\xff\\xfb\\x01\\xff\\xfb\\x00\\xff\\xfd\\x00Auto-sensing\\.\\.\\.\\r\\n \\x1b\\[6n\\x08\\x08\\x08\\x08\\r \\x1b\\[!\\x08\\x08\\x08\\r\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\x08\\r\\n\\r\\n WELCOME!\\r\\n\\r\\nLegion \\(#(\\d+)\\)\\r\\nRunning Worldgroup by GALACTICOMM\\r\\nONLINE \\d+ BAUD AT \\d+:\\d\\d \\d+-\\w+-\\d\\d\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:microsoft:windows_nt/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x03\\xff\\xfd\\x03\\xff\\xfb\\x01\\r\\nRTCS v([\\w._-]+) Telnet server\\r\\npress Ctrl-L to enable/disable debug output\\r\\x00\\r\\n\\r\\x00\\r\\nService Port Manager Active\\r\\x00\\r\\n Ends Session\\r\\x00\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/h:emersonnetworkpower:liebert_nxc/", + "cpe:/o:precise:mqx:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\xff\\xfb\\x03\\r\\n\\r\\n Welcome to OpenVMS \\(TM\\) VAX Operating System, Version V([\\d.]+) \\r\\n\\r\\n\\rUsername: ", + "regex_literal_tokens": [ + "Username:", + "Welcome to OpenVMS (TM) VAX Operating System, Version V" + ], + "cpe": [ + "cpe:/o:hp:openvms:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfd\\x01\\xff\\xfd\\x1f\\xff\\xfd!\\xff\\xfb\\x01\\xff\\xfb\\x03\\r\\r\\n\\r\\n\\rNVS\\r\\n\\rLinux (2\\.\\d+\\.\\d+)(?:[\\w._-]+)? on a armv\\w+ \\(\\d\\d:\\d\\d:\\d\\d\\)\\r\\n\\r([\\w._-]+) login: ", + "regex_literal_tokens": [ + "!NVSLinux 2.", + "login:", + "on a armv" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfd\\x03\\xff\\xfd\\x1f\\r\\nlogin: ", + "regex_literal_tokens": [ + "login:" + ], + "cpe": [ + "cpe:/h:patton:sn4638/", + "cpe:/o:patton:smartware/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x03\\xff\\xfd\\x03\\xff\\xfb\\x01\\r\\nPrecise/RTCS v([\\w._-]+) Telnet server\\r\\n\\x1b\\[0m\\x1b\\[2J\\x1b\\[1;1H\\x1b\\[\\?25l\\x1b\\[0;30;47m\\x1b\\[0;34;47m\\*{80}\\r\\x00\\r\\n\\* {78}\\*\\r\\x00\\r\\n\\*{80}\\r\\x00\\r\\n\\* {12}Remote Status {13}\\* {12}Remote Control {13}\\*\\r\\x00\\r\\n\\*{80}\\r\\x00\\r\\n\\* Exciter #: ", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/h:harris:flexstar_hdx-fm/", + "cpe:/o:precise:mqx:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfe\\x01\\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfd\\x03\\xff\\xfd\\x1fUser name: ", + "regex_literal_tokens": [ + "User name:" + ], + "cpe": [ + "cpe:/o:microsoft:windows_10:::iot/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfb\\x00\\xff\\xfd\\x01\\xff\\xfd\\x00\\r\\x00\\n\\r\\x00\\n-{77}\\r\\x00\\nModel name {7}: ([\\w-]+)\\r\\x00\\nMAC address {6}: ([A-F0-9:]+)\\r\\x00\\nSerial No {8}: (\\d+)\\r\\x00\\nFirmware version : (([\\d.]+) Build \\d+)\\r\\x00\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/h:moxa:$1/", + "cpe:/o:moxa:$SUBST(1,\"-\",\"_\")_firmware:$5/" + ] + }, + { + "probe_id": "tcp:null", + "service": "telnet", + "regex": "^\\xff\\xfb\\x03\\xff\\xfd\\x03\\xff\\xfb\\x01\\r\\nPrecise/RTCS v(\\d[\\w._-]+) Telnet server\\r\\n\\x1b\\[2J\\r\\nUsername: ", + "regex_literal_tokens": [ + "Precise/RTCS v", + "Telnet server[2JUsername:" + ], + "cpe": [ + "cpe:/o:precise:mqx:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "vspe", + "regex": "^\\nADA38072\\r\\nAD_80099\\r\\nABA39071\\r\\nAB_07096\\r\\nACA40064\\r\\nAC_00090\\r\\nADA41066\\r\\nAD_81100\\r\\nABA42065\\r\\nAB_08097\\r\\nACA43067\\r\\nACA44068\\r\\nAC_01091\\r\\nADA45070\\r\\nAD_81100\\r\\nADA45070\\r\\nADA45070\\r\\nADA45070\\r\\nABA46069\\r\\nAB_09098\\r\\n", + "regex_literal_tokens": [ + "ADA38072AD_80099ABA39071AB_07096ACA40064AC_00090ADA41066AD_81100ABA42065AB_08097ACA43067ACA44068AC_01091ADA45070AD_81100ADA45070ADA45070ADA45070ABA46069AB_09098" + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "zos-commserver", + "regex": "^EZY1315E \\d\\d/\\d\\d/\\d\\d \\d\\d:\\d\\d:\\d\\d INVALID TRANID=\\r\\n\\r\\n PARTNER INET ADDR=[\\d.]+ PORT= \\d+ ", + "regex_literal_tokens": [ + "EZY1315E", + "INVALID TRANID= PARTNER INET ADDR=", + "PORT=" + ], + "cpe": [ + "cpe:/o:ibm:z%2fos/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "airdroid", + "regex": "^#connected,all connect count: 1\\{\\\"event\\\":\\\"device_status\\\",\\\"data\\\":\\{\\\"wifi_name\\\":\\\"([^\\\"]+)\\\",\\\"wifi_signal\\\":\\d+,\\\"battery\\\":\\d+,\\\"batterycharging\\\":\\w+,\\\"gsm_signal\\\":\\d+,\\\"sms_unread\\\":\\d+,\\\"sdcard\\\":\\d+,\\\"updateinfo\\\":null\\}\\}", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:airdroid:airdroid/", + "cpe:/o:google:android/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "elm-agent", + "regex": "^ELM Manager Agent ([\\w._-]+)\\r\\nCopyright \\xa9 \\d+-\\d+ TNT Software, Inc\\.\\r\\n", + "regex_literal_tokens": [ + "Copyright", + "ELM Manager Agent", + "TNT Software, Inc." + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "elm-manager", + "regex": "^ELM Enterprise Manager ([\\w._-]+)\\r\\nCopyright \\xa9 \\d+-\\d+ TNT Software, Inc\\.\\r\\n", + "regex_literal_tokens": [ + "Copyright", + "ELM Enterprise Manager", + "TNT Software, Inc." + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "finger", + "regex": "^Punix version ([\\d./()]+) - Current Time \\(since boot\\) \\d+:\\d\\d:\\d\\d\\r\\nName pid stat pc cpusec stack pr/sy idle tty\\r\\n", + "regex_literal_tokens": [ + "- Current Time (since boot)", + "Name pid stat pc cpusec stack pr/sy idle tty", + "Punix version" + ], + "cpe": [ + "cpe:/o:christopher_williams:punix:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "finger", + "regex": "^Login Name Tty Idle Login Time Office Office Phone\\r\\n", + "regex_literal_tokens": [ + "Login Name Tty Idle Login Time Office Office Phone" + ], + "cpe": [ + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "finger", + "regex": "^finger: /var/adm/lastlog open error\\nNo one logged on\\r\\n", + "regex_literal_tokens": [ + "finger: /var/adm/lastlog open errorNo one logged on" + ], + "cpe": [ + "cpe:/o:sun:sunos:5.10/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "finger", + "regex": "^finger: /var/adm/lastlog open error\\nLogin Name", + "regex_literal_tokens": [ + "finger: /var/adm/lastlog open errorLogin Name" + ], + "cpe": [ + "cpe:/o:sun:sunos:5.10/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "finger", + "regex": "^finger: /usr/adm/lastlog open error\\nLogin +Name +TTY Idle +When +Office\\r\\n", + "regex_literal_tokens": [ + "Name", + "Office", + "TTY Idle", + "When", + "finger: /usr/adm/lastlog open errorLogin" + ], + "cpe": [ + "cpe:/o:dec:osf_1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "finger", + "regex": "^\\nDebian GNU/Linux Copyright \\(c\\) 1993-1999 Software in the Public Interest\\n\\n Your site has been rejected for some reason\\.\\n\\n This may be caused by a missing RFC 1413 identd on your site\\.\\n\\n", + "regex_literal_tokens": [ + "Debian GNU/Linux Copyright (c) 1993-1999 Software in the Public Interest Your site has been rejected for some reason. This may be caused by a missing RFC 1413 identd on your site." + ], + "cpe": [ + "cpe:/a:debian:cfingerd/", + "cpe:/o:debian:debian_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "finger", + "regex": "^Debian GNU/Linux Copyright \\(C\\) 1993-1999 Software in the Public Interest\\n.*You haven't specified a user\\.\\n\\n A general listing is not provided to the public\\.", + "regex_literal_tokens": [ + "Debian GNU/Linux Copyright (C) 1993-1999 Software in the Public Interest", + "You haven't specified a user. A general listing is not provided to the public." + ], + "cpe": [ + "cpe:/a:debian:cfingerd/", + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "ftp", + "regex": "^220 Service ready\\.\\r\\n501 Syntax Error\\.\\r\\n", + "regex_literal_tokens": [ + "220 Service ready.501 Syntax Error." + ], + "cpe": [ + "cpe:/o:hay_systems:hsl_2.75g_femtocell/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "gntp", + "regex": "^GNTP/1\\.0 -ERROR NONE\\r\\nError-Code: 301\\r\\nError-Description: Growl does not recognize the protocol beginning with \\r\\n\\r\\n\\r\\nOrigin-Software-Name: Growl\\r\\nOrigin-Software-Version: ([\\d.]+)\\r\\nOrigin-Platform-Version: ([\\d.]+)\\r\\nOrigin-Machine-Name: (.*)\\r\\nOrigin-Platform-Name: Mac OS X\\r\\n\\r\\n\\r\\n", + "regex_literal_tokens": [ + "GNTP/1.0 -ERROR NONEError-Code: 301Error-Description: Growl does not recognize the protocol beginning with Origin-Software-Name: GrowlOrigin-Software-Version:", + "Origin-Machine-Name:", + "Origin-Platform-Name: Mac OS X", + "Origin-Platform-Version:" + ], + "cpe": [ + "cpe:/a:growl:growl:$1/", + "cpe:/o:apple:mac_os_x:$2/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nContent-Type: text/html\\r\\n\\r\\nmongodb ([\\w._-]+):\\d+ .*
db version v([\\w._-]+), pdfile version ([\\w._-]+)\\ngit hash: ([0-9a-f]{40})\\nsys info: Linux [\\w._-]+ ([\\w._-]+) .* BOOST_LIB_VERSION=([\\w._-]+)\\n\\ndbwritelocked:  \\d+ \\(initial\\)\\nuptime:    ([^\\n]+)\\n",
+      "regex_literal_tokens": [
+        "(initial)uptime:",
+        ", pdfile version",
+        "",
+        "
db version v",
+        "BOOST_LIB_VERSION=",
+        "HTTP/1.0 200 OKContent-Type: text/htmlmongodb",
+        "dbwritelocked:",
+        "git hash:",
+        "sys info: Linux"
+      ],
+      "cpe": [
+        "cpe:/o:linux:linux_kernel:$5/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "http",
+      "regex": "^HTTP/1\\.0 200 OK\\r\\nContent-Type: text/html\\r\\n\\r\\n<html><head><title>mongodb ([\\w._-]+):\\d+ .*
db version v([\\w._-]+), pdfile version ([\\w._-]+)\\ngit hash: nogitversion\\nsys info: Linux [\\w._-]+ ([\\w._-]+) .* BOOST_LIB_VERSION=([\\w._-]+)\\n\\ndblocked:  \\d+ \\(initial\\)\\nuptime:    ([^\\n]+)\\n",
+      "regex_literal_tokens": [
+        "(initial)uptime:",
+        ", pdfile version",
+        "",
+        "
db version v",
+        "BOOST_LIB_VERSION=",
+        "HTTP/1.0 200 OKContent-Type: text/htmlmongodb",
+        "dblocked:",
+        "git hash: nogitversionsys info: Linux"
+      ],
+      "cpe": [
+        "cpe:/a:mongodb:mongodb:$2/",
+        "cpe:/o:linux:linux_kernel:$4/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "http",
+      "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nServer: sfcHttpd\\r\\nContent-Length: 0\\r\\nConnection: close\\r\\n\\r\\nHTTP/1\\.1 400 Bad Request\\r\\nServer: sfcHttpd\\r\\nContent-Length: 0\\r\\nConnection: close\\r\\n\\r\\n",
+      "regex_literal_tokens": [
+        "HTTP/1.1 501 Not ImplementedServer: sfcHttpdContent-Length: 0Connection: closeHTTP/1.1 400 Bad RequestServer: sfcHttpdContent-Length: 0Connection: close"
+      ],
+      "cpe": [
+        "cpe:/o:supermicro:intelligent_platform_management_firmware/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "http",
+      "regex": "^HTTP/1\\.0 400 Bad Request\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: doubleTwist Sync \\(Android\\)\\r\\n",
+      "regex_literal_tokens": [
+        "HTTP/1.0 400 Bad Request",
+        "Server: doubleTwist Sync (Android)"
+      ],
+      "cpe": [
+        "cpe:/o:google:android/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "http",
+      "regex": "^HTTP/0\\.0 400 Bad request\\r\\nServer: Aos HTTP Server/([\\w._-]+)\\r\\nHTTP/0\\.0 400 Bad request\\r\\nServer: Aos HTTP Server/[\\w._-]+\\r\\nHTTP/0\\.0 400 Bad request\\r\\nServer: Aos HTTP Server/[\\w._-]+\\r\\nHTTP/0\\.0 400 Bad request\\r\\nServer: Aos HTTP Server/[\\w._-]+\\r\\nHTTP/0\\.0 400 Bad request\\r\\nServer: Aos HTTP Server/[\\w._-]+\\r\\nHTTP/0\\.0 400 Bad request\\r\\nServer: Aos HTTP Server/[\\w._-]+\\r\\nHTTP/0\\.0 400 Bad request\\r\\nServer: Aos HTTP Server/[\\w._-]+\\r\\nHTTP/0\\.0 400 Bad request\\r\\nServer: Aos HTTP Server/[\\w._-]+\\r\\nHTTP/0\\.0 400 Bad request\\r\\nServer: Aos HTTP Server/[\\w._-]+\\r\\n",
+      "regex_literal_tokens": [
+        "HTTP/0.0 400 Bad requestServer: Aos HTTP Server/"
+      ],
+      "cpe": [
+        "cpe:/o:eth:a2/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "http",
+      "regex": "^HTTP/1\\.1 400 Bad Request\\r\\nCONNECTION: close\\r\\n\\r\\n$",
+      "regex_literal_tokens": [
+        "HTTP/1.1 400 Bad RequestCONNECTION: close"
+      ],
+      "cpe": [
+        "cpe:/o:freebsd:freebsd:8.0/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "ident",
+      "regex": "^: USERID : UNIX : CacheFlow Server\\r\\n",
+      "regex_literal_tokens": [
+        ": USERID : UNIX : CacheFlow Server"
+      ],
+      "cpe": [
+        "cpe:/o:bluecoat:cacheos/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "asf-rmcp",
+      "regex": "^\\x00\\x00\\x00\\x02\\t\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00$",
+      "regex_literal_tokens": [],
+      "cpe": [
+        "cpe:/o:supermicro:intelligent_platform_management_firmware/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "jrpgt",
+      "regex": "^<<jrpgt!>>\\x7c$",
+      "regex_literal_tokens": [
+        "<<jrpgt!>>|"
+      ],
+      "cpe": [
+        "cpe:/o:microsoft:windows/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "pmcd",
+      "regex": "^\\x00\\x00\\x00\\x14\\x00\\x00p\\x00\\x00\\x00\\x03.\\xff\\xff\\xfc\\x11\\x02\\x00..$",
+      "regex_literal_tokens": [],
+      "cpe": [
+        "cpe:/o:sgi:irix:6.5/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "telnet",
+      "regex": "^\\xff\\xfd\\x03\\xff\\xfb\\x03\\xff\\xfd\\x18\\xff\\xfd\\x17Please wait\\. The connection to your station is still in the process of being established\\. Your last input has been discarded\\.\\r\\nPlease wait\\. The connection to your station is still in the process of being established\\. Your last input has been discarded\\.\\r\\n",
+      "regex_literal_tokens": [
+        "Please wait. The connection to your station is still in the process of being established. Your last input has been discarded.Please wait. The connection to your station is still in the process of being established. Your last input has been discarded."
+      ],
+      "cpe": [
+        "cpe:/o:burroughs:mcp/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "telnet",
+      "regex": "^\\xff\\xfd\\x18\\xff\\xfa\\x18\\x01\\xff\\xf0\\xff\\xfb\\x03\\xff\\xfd\\x01\\xff\\xfd\\x1f\\xff\\xfb\\x05\\xff\\xfd!\\xff\\xfb\\x01TELNET_SERVER V([\\d.]+) RTOS-UH \\(c\\)IEP,1995-\\d\\d\\d\\d ready\\r\\nUsername:",
+      "regex_literal_tokens": [
+        "!TELNET_SERVER V",
+        "RTOS-UH (c)IEP,1995-",
+        "readyUsername:"
+      ],
+      "cpe": [
+        "cpe:/o:universitathanover:rtos-uh/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "uucp",
+      "regex": "^login: login: login: $",
+      "regex_literal_tokens": [
+        "login: login: login:"
+      ],
+      "cpe": [
+        "cpe:/o:netbsd:netbsd/"
+      ]
+    },
+    {
+      "probe_id": "tcp:generic_lines",
+      "service": "upnp",
+      "regex": "^ 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: Net-OS (\\d+)\\.xx UPnP/([\\d.]+)\\r\\n\\r\\n<HTML><HEAD><TITLE>501 Not Implemented

Not Implemented

The HTTP Method is not implemented by this server\\.\\r\\n", + "regex_literal_tokens": [ + ".xx UPnP/", + "501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: Net-OS", + "501 Not Implemented

Not Implemented

The HTTP Method is not implemented by this server." + ], + "cpe": [ + "cpe:/o:digi:net%2bos:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "telnet", + "regex": "^\\xff\\xfb\\x01\\n\\rSSH service name not present in rcvd msg\\n\\rSSH Session task 0x\\w+: Version Exchange Failed\\n\\r\\n\\r\\n\\rSSH service name not present in rcvd msg\\n\\r", + "regex_literal_tokens": [ + ": Version Exchange FailedSSH service name not present in rcvd msg", + "SSH service name not present in rcvd msgSSH Session task 0x" + ], + "cpe": [ + "cpe:/a:cisco:telnet/", + "cpe:/o:cisco:aironet_350/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "telnet", + "regex": "^\\x1b\\[24;1HUsername: \\x1b\\[\\?25h\\x1b\\[24;1H\\x1b\\[\\?25h\\x1b\\[24;11H\\x1b\\[24;11H\\x1b\\[\\?25h\\x1b\\[24;11H\\x1b\\[24;1H\\r\\n\\r\\x1b\\[\\?25h\\x1b\\[24;11H\\xff\\xfd\\x18\\xff\\xfb\\x01\\x1b\\[2J\\x1b\\[\\?7l\\x1b\\[3;23r\\x1b\\[\\?6l\\x1b\\[1;1H\\x1b\\[\\?25l\\x1b\\[1;1HProCurve (\\w+) Switch (\\w+)\\r\\n\\rSoftware revision ([\\w.]+)\\r\\n", + "regex_literal_tokens": [ + "Software revision", + "Switch", + "[24;1HUsername: [?25h[24;1H[?25h[24;11H[24;11H[?25h[24;11H[24;1H[?25h[24;11H[2J[?7l[3;23r[?6l[1;1H[?25l[1;1HProCurve" + ], + "cpe": [ + "cpe:/h:hp:procurve_switch_$2/", + "cpe:/o:hp:procurve_switch_software:$3/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^ 501 Not Implemented\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: AsusWRT/([\\d.]+) UPnP/([\\w.]+) MiniUPnPd/([\\w.]+)\\r\\n", + "regex_literal_tokens": [ + "501 Not Implemented", + "MiniUPnPd/", + "Server: AsusWRT/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:asus:asuswrt:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^ 501 Not Implemented\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: FedoraCore/(\\d+) UPnP/([\\w._-]+) MiniUPnPd/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "501 Not Implemented", + "MiniUPnPd/", + "Server: FedoraCore/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:fedoraproject:fedora_core:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^ 501 Not Implemented\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Debian/([\\w.]+) UPnP/([\\w._-]+) MiniUPnPd/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "501 Not Implemented", + "MiniUPnPd/", + "Server: Debian/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:debian:debian_linux:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^ 501 Not Implemented\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Debian/([\\w.]+) UPnP/([\\w._-]+) miniupnpd/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "501 Not Implemented", + "Server: Debian/", + "UPnP/", + "miniupnpd/" + ], + "cpe": [ + "cpe:/o:debian:debian_linux:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^ 501 Not Implemented\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Ubuntu/([\\w._-]+) UPnP/([\\w._-]+) miniupnpd/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "501 Not Implemented", + "Server: Ubuntu/", + "UPnP/", + "miniupnpd/" + ], + "cpe": [ + "cpe:/o:canonical:ubuntu_linux:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^ 501 Not Implemented\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Linux/(([234]\\.[\\d.]+)[\\w._-]+) UPnP/([\\w._-]+) [Mm]ini[Uu][Pp]n[Pp]d/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "501 Not Implemented", + "Server: Linux/", + "UPnP/", + "ini" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$2/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^ 501 Not Implemented\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: SmoothWall Express/([\\d.]+) UPnP/([\\d.]+) MiniUPnPd/([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + "501 Not Implemented", + "MiniUPnPd/", + "Server: SmoothWall Express/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:smoothwall:smoothwall:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: Debian/([\\w._/-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) MiniDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: Debian/", + "MiniDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:debian:debian_linux:$1/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: RedHatEnterpriseServer/([\\w._/-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) MiniDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: RedHatEnterpriseServer/", + "MiniDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/", + "cpe:/o:redhat:enterprise_linux:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: Fedora/([\\w._-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) MiniDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: Fedora/", + "MiniDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:fedoraproject:fedora:$1/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: RAIDiator/([\\w._-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) MiniDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: RAIDiator/", + "MiniDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:netgear:raidiator:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: Ubuntu/([\\w._-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) MiniDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: Ubuntu/", + "MiniDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:canonical:ubuntu_linux:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: Gentoo/([\\w._-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) MiniDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: Gentoo/", + "MiniDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:gentoo:linux:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: SUSE LINUX/n/a DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) MiniDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: SUSE LINUX/n/a DLNADOC/", + "MiniDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:suse:suse_linux/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: Linux/([\\w._-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) MiniDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: Linux/", + "MiniDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: (?:Linux )?(([234]\\.[\\d.]+)[\\w._-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) MiniDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server:", + "Linux", + "MiniDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$2/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: OpenWrt Linux/([\\w._-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) MiniDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: OpenWrt Linux/", + "MiniDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: FreeBSD/([\\w._-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) MiniDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: FreeBSD/", + "MiniDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:freebsd:freebsd:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: RAIDiator/([\\w._-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) ReadyDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: RAIDiator/", + "ReadyDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:netgear:raidiator:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: Linux[ /]([\\d.]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) ReadyDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server: Linux", + "ReadyDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: ([\\d._-]+)ReadyNAS DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) ReadyDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server:", + "ReadyDLNA/", + "ReadyNAS DLNADOC/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: 149\\r\\nServer: (?:Linux )?(([234]\\.[\\d.]+)[\\w._-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) ReadyDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 501 Not ImplementedContent-Type: text/htmlConnection: closeContent-Length: 149Server:", + "Linux", + "ReadyDLNA/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$2/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^ 501 Not Implemented\\r.*\\nServer: RedHatEnterpriseServer/([\\d.]+) UPnP/([\\d.]+) MiniUPnPd/([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + "501 Not Implemented", + "MiniUPnPd/", + "Server: RedHatEnterpriseServer/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/", + "cpe:/o:redhat:enterprise_linux:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^ 501 Not Implemented\\r.*\\nServer: EXOS/OpenWrt UPnP/([\\d.]+) MiniUPnPd/([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + "501 Not Implemented", + "MiniUPnPd/", + "Server: EXOS/OpenWrt UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/0\\.0 400 Bad Request\\r\\nServer: Windows/([\\w._-]+\\.2600)/Service Pack (\\d+), UPnP/([\\d.]+), TVersity Media Server/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + ", TVersity Media Server/", + ", UPnP/", + ".2600/Service Pack", + "HTTP/0.0 400 Bad RequestServer: Windows/" + ], + "cpe": [ + "cpe:/o:microsoft:windows_xp::sp$2/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/0\\.0 400 Bad Request\\r\\nServer: Windows/([\\w._-]+)\\.6001/Service Pack (\\d+), UPnP/([\\d.]+), TVersity Media Server/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + ", TVersity Media Server/", + ", UPnP/", + ".6001/Service Pack", + "HTTP/0.0 400 Bad RequestServer: Windows/" + ], + "cpe": [ + "cpe:/o:microsoft:windows_vista::sp$2/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 \\d\\d\\d .*\\r\\nDATE: .*\\r\\nConnection: Keep-Alive\\r\\nServer: LINUX/([\\w._-]+) UPnP/([\\d.]+) BRCM400/([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + "BRCM400/", + "Connection: Keep-AliveServer: LINUX/", + "DATE:", + "HTTP/1.1", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 \\d\\d\\d .*\\r\\nDATE: .*\\r\\nConnection: Keep-Alive\\r\\nServer: LINUX/([\\w._-]+) UPnP/([\\d.]+) ZyXEL-UPnP/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "Connection: Keep-AliveServer: LINUX/", + "DATE:", + "HTTP/1.1", + "UPnP/", + "ZyXEL-UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/1\\.1 400 Bad Request\\r\\nServer: Symbian/([\\w._-]+) UPnP/([\\d.]+)\\r\\nContent-Length: 151\\r\\n\\r\\n\\n\\n400 Bad Request\\n\\n

Bad Request

\\n
\\n$", + "regex_literal_tokens": [ + "Content-Length: 151400 Bad Request

Bad Request


", + "HTTP/1.1 400 Bad RequestServer: Symbian/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:symbian:symbian/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "upnp", + "regex": "^HTTP/0\\.0 400 Bad Request\\r\\nSERVER: Linux/([\\w._-]+) UPnP/([\\w._-]+) SKY DLNADOC/([\\w._-]+)\\r\\n\\r\\n", + "regex_literal_tokens": [ + "HTTP/0.0 400 Bad RequestSERVER: Linux/", + "SKY DLNADOC/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "unreal-media", + "regex": "^\\xb1\\x36\\x00\\x00\\x19\\x00\\x00\\x00\\x30\\x05\\xff\\x8f\\x00\\x00\\x00\\x00\\x88\\xff.\\x03.\\xef.\\x00$", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "finger", + "regex": "^finger: GET: no such user\\nfinger: /: no such user\\nfinger: HTTP/1\\.0: no such user\\n$", + "regex_literal_tokens": [ + "finger: GET: no such userfinger: /: no such userfinger: HTTP/1.0: no such user" + ], + "cpe": [ + "cpe:/o:netbsd:netbsd/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "gopher", + "regex": "^iUnable to locate requested resource\\.\\t\\t([\\w._-]+)\\t\\d+\\r\\n\\.\\r\\n", + "regex_literal_tokens": [ + "iUnable to locate requested resource." + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "gopher", + "regex": "^Error: File or directory not found!\\r\\n______________________________________________________________________\\r\\n Gophered by Gophernicus/([\\w._-]+) on archlinux/rolling ", + "regex_literal_tokens": [ + "Error: File or directory not found!______________________________________________________________________ Gophered by Gophernicus/", + "on archlinux/rolling" + ], + "cpe": [ + "cpe:/o:archlinux:arch_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] 401 Unauthorized\\r\\nDate: .*\\r\\nWWW-Authenticate: Basic realm=\\\"PIX\\\"", + "regex_literal_tokens": [ + "401 UnauthorizedDate:", + "HTTP/1.", + "WWW-Authenticate: Basic realm=\"PIX\"" + ], + "cpe": [ + "cpe:/o:cisco:pix_firewall_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d (?s:.*?)Server: Cherokee/([-.\\w]+) \\(Debian GNU/Linux\\)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:cherokee-project:cherokee:$1/", + "cpe:/o:debian:debian_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d (?s:.*?)Server: Cherokee/([-.\\w]+) \\(Ubuntu\\)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:cherokee-project:cherokee:$1/", + "cpe:/o:canonical:ubuntu_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d (?s:.*?)Server: Cherokee/([-.\\w]+) \\(openSUSE Build Service\\)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:cherokee-project:cherokee:$1/", + "cpe:/o:novell:opensuse/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d (?s:.*?)Server: Cherokee/([-.\\w]+) \\(Gentoo Linux\\)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:cherokee-project:cherokee:$1/", + "cpe:/o:gentoo:linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nServer: eHTTP v([\\w._-]+)\\r\\n.*\\s*([\\w._-]+)\\s*-\\s*(?:HP )?(?:\\w+ )?ProCurve Switch ([\\w._-]+)", + "regex_literal_tokens": [ + "<title>", + "HTTP/1.0 200 OKServer: eHTTP v", + "ProCurve Switch" + ], + "cpe": [ + "cpe:/a:ehttp:ehttp:$1/", + "cpe:/h:hp:procurve_switch_$3/", + "cpe:/o:hp:procurve_switch_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nServer: eHTTP v([\\w._-]+)\\r\\n.*<title>\\s*(?:HP )?(?:\\w+\\s+)?ProCurve Switch ([\\w._-]+)", + "regex_literal_tokens": [ + "<title>", + "HTTP/1.0 200 OKServer: eHTTP v", + "ProCurve Switch" + ], + "cpe": [ + "cpe:/a:ehttp:ehttp:$1/", + "cpe:/h:hp:procurve_switch_$2/", + "cpe:/o:hp:procurve_switch_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nServer: eHTTP v([\\w._-]+)\\r\\n.*<title>\\s*([\\w._-]+)\\s*-\\s*(?:HP )?(?:\\w+ )?ProCurve ([\\w._-]+) Switch", + "regex_literal_tokens": [ + "<title>", + "HTTP/1.0 200 OKServer: eHTTP v", + "ProCurve", + "Switch" + ], + "cpe": [ + "cpe:/a:ehttp:ehttp:$1/", + "cpe:/h:hp:procurve_switch_$3/", + "cpe:/o:hp:procurve_switch_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nServer: eHTTP v([\\w._-]+)\\r\\n.*<title>\\s*(?:HP )?(?:\\w+\\s+)?ProCurve ([\\w._-]+) Switch", + "regex_literal_tokens": [ + "<title>", + "HTTP/1.0 200 OKServer: eHTTP v", + "ProCurve", + "Switch" + ], + "cpe": [ + "cpe:/a:ehttp:ehttp:$1/", + "cpe:/h:hp:procurve_switch_$2/", + "cpe:/o:hp:procurve_switch_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nServer: eHTTP v([\\w._-]+)\\r\\n.*<title>\\s*([ \\w._-]+?)\\s*-\\s*(?:HP )?(?:\\w+ )?ProCurve Switch ([\\w._-]+)", + "regex_literal_tokens": [ + "<title>", + "HTTP/1.0 200 OKServer: eHTTP v", + "ProCurve Switch" + ], + "cpe": [ + "cpe:/a:ehttp:ehttp:$1/", + "cpe:/h:hp:procurve_switch_$3/", + "cpe:/o:hp:procurve_switch_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 401 Unauthorized\\r\\nServer: eHTTP v([\\w._-]+)\\r\\n(?:[^\\r\\n]+\\r\\n)*?WWW-Authenticate: Basic realm=\\\"HP ([-.\\w]+)\\\"\\r\\n\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 401 UnauthorizedServer: eHTTP v", + "WWW-Authenticate: Basic realm=\"HP" + ], + "cpe": [ + "cpe:/a:ehttp:ehttp:$1/", + "cpe:/o:hp:procurve_switch_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 401 Unauthorized\\r\\nServer: eHTTP v([\\w._-]+)\\r\\n(?:[^\\r\\n]+\\r\\n)*?WWW-Authenticate: Basic realm=\\\"ProCurve (J\\w+)\\\"\\r\\n\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 401 UnauthorizedServer: eHTTP v", + "WWW-Authenticate: Basic realm=\"ProCurve J" + ], + "cpe": [ + "cpe:/a:ehttp:ehttp:$1/", + "cpe:/h:hp:procurve_switch_$2/", + "cpe:/o:hp:procurve_switch_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nServer: Web Server\\r\\nContent-Type: text/html\\r\\nCache-Control: no-cache\\r\\nPragma: no-cache\\r\\n\\r\\n\\r\\n <!DOCTYPE HTML PUBLIC \\\"-//W3C//DTD HTML 4\\.0 Transitional//EN\\\">\\n<HTML>\\n<HEAD>\\n <TITLE>Login", + "regex_literal_tokens": [ + "HTTP/1.1 200 OKServer: Web ServerContent-Type: text/htmlCache-Control: no-cachePragma: no-cache Login" + ], + "cpe": [ + "cpe:/h:hp:procurve_switch_1810g/", + "cpe:/o:hp:procurve_switch_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nServer: eHTTP v([\\w._-]+)\\r\\n.*HP Virtual Stack\\n\\n", + "regex_literal_tokens": [ + "HP Virtual Stack", + "HTTP/1.0 200 OKServer: eHTTP v" + ], + "cpe": [ + "cpe:/a:ehttp:ehttp:$1/", + "cpe:/h:hp:procurve_switch_2626/", + "cpe:/o:hp:procurve_switch_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^Server: Apache/([-\\.\\w]+) \\(Ubuntu\\)\\r?$", + "regex_flags": "mi", + "regex_literal_tokens": [ + "Server: Apache/", + "(Ubuntu)" + ], + "cpe": [ + "cpe:/a:apache:http_server:$1/", + "cpe:/o:canonical:ubuntu_linux/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^Server: Apache/([-\\.\\w]+) \\(Debian\\)\\r?$", + "regex_flags": "mi", + "regex_literal_tokens": [ + "Server: Apache/", + "(Debian)" + ], + "cpe": [ + "cpe:/a:apache:http_server:$1/", + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^Server: Apache/([-\\.\\w]+) \\(CentOS\\)\\r?$", + "regex_flags": "mi", + "regex_literal_tokens": [ + "Server: Apache/", + "(CentOS)" + ], + "cpe": [ + "cpe:/a:apache:http_server:$1/", + "cpe:/o:centos:centos/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^Server: Apache/([-\\.\\w]+) \\((?:Red Hat|RHEL)\\)\\r?$", + "regex_flags": "mi", + "regex_literal_tokens": [ + "Server: Apache/", + "(Red Hat|RHEL)" + ], + "cpe": [ + "cpe:/a:apache:http_server:$1/", + "cpe:/o:redhat:enterprise_linux/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] \\d\\d\\d.*\\r\\nDate: .*\\r\\nServer: Apache-AdvancedExtranetServer/(\\d[-.\\w]+) \\(Mandriva Linux/PREFORK-([-\\w_.]+)\\) (.*)\\r\\n", + "regex_literal_tokens": [ + "(Mandriva Linux/PREFORK-", + "Date:", + "HTTP/1.", + "Server: Apache-AdvancedExtranetServer/" + ], + "cpe": [ + "cpe:/a:apache:http_server:$1/", + "cpe:/o:mandriva:linux/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] \\d\\d\\d.*\\r\\nServer: nginx/([\\d.]+) \\(Ubuntu\\)\\r\\n", + "regex_literal_tokens": [ + "(Ubuntu)", + "HTTP/1.", + "Server: nginx/" + ], + "cpe": [ + "cpe:/a:igor_sysoev:nginx:$1/", + "cpe:/o:canonical:ubuntu_linux/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nDate: .+\\r\\nServer: Tomcat/([-.\\w]+)\\r\\nContent-Type: text/html\\r\\nContent-Length: \\d+\\r\\nServlet-Engine: Tomcat/[-.\\w]+ \\(Java ([-.\\w]+); SunOS ([-.\\w]+) (\\w+); java\\.vendor=Sun Microsystems Inc\\.\\)\\r\\n", + "regex_literal_tokens": [ + "(Java", + "; SunOS", + "; java.vendor=Sun Microsystems Inc.)", + "Content-Type: text/htmlContent-Length:", + "HTTP/1.0 200 OKDate:", + "Server: Tomcat/", + "Servlet-Engine: Tomcat/" + ], + "cpe": [ + "cpe:/a:apache:tomcat:$1/", + "cpe:/a:sun:jre:$2/", + "cpe:/o:sun:sunos:$3/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*\\r\\nServer: EHTTP/([\\d.]+)\\r\\nPragma:no-cache\\r\\nContent-Type:text/html\\r\\n\\r\\n \\n\\n \\n(.*) \\n- HP \\w+ ProCurve Switch (\\w+)\\n", + "regex_literal_tokens": [ + "- HP", + "", + "HTTP/1.0", + "Pragma:no-cacheContent-Type:text/html ", + "ProCurve Switch", + "Server: EHTTP/" + ], + "cpe": [ + "cpe:/a:ehttp:ehttp:$1/", + "cpe:/h:hp:procurve_switch_$3/", + "cpe:/o:hp:procurve_switch_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d (?s:.*?)Connection: close\\r\\nContent-Length: \\d+\\r\\nContent-Type: text/html.*\\r\\n\\r\\n<!DOCTYPE html\\nPUBLIC.*\\n<title>MikroTik RouterOS Managing Webpage\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:mikrotik:routeros/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Content-Type: text/html.*\\r\\n\\r\\nRouterOS router configuration page", + "regex_literal_tokens": [ + "RouterOS router configuration page", + "Content-Type: text/html", + "HTTP/1.0 200 OK" + ], + "cpe": [ + "cpe:/o:mikrotik:routeros/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 403 Forbidden\\r\\nDate: .*\\r\\nServer: Microsoft-WinCE/([\\w._-]+)\\r\\nContent-Type: text/html\\r\\nContent-Length: 125\\r\\n\\r\\nAccess DeniedAccess denied\\.

The action requested is forbidden\\.$", + "regex_literal_tokens": [ + "Content-Type: text/htmlContent-Length: 125Access DeniedAccess denied.

The action requested is forbidden.", + "HTTP/1.1 403 ForbiddenDate:", + "Server: Microsoft-WinCE/" + ], + "cpe": [ + "cpe:/h:crestron/", + "cpe:/o:microsoft:windows_ce:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d (?s:.*?)content-length: \\d+\\r\\ncontent-type: text/html\\r\\ndate: .*MikroTik RouterOS Managing Webpage", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:mikrotik:routeros/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*\\r\\nServer: Thy/([\\d.]+) Debian/[\\w/]+ \\([^)]+\\) GnuTLS/([\\d.]+) zlib/([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + ") GnuTLS/", + "Debian/", + "HTTP/1.0", + "Server: Thy/", + "zlib/" + ], + "cpe": [ + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*\\r\\nServer: Thy/([\\d.]+) Debian \\(\\w+\\) GnuTLS/([\\d.]+) zlib/([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + ") GnuTLS/", + "Debian (", + "HTTP/1.0", + "Server: Thy/", + "zlib/" + ], + "cpe": [ + "cpe:/o:debian:debian_linux/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nDate: .*\\r\\nServer: Java/[\\d.]+\\r\\nContent-type: text/html\\r\\nContent-length: \\d+\\r\\n\\r\\n.*TINIWebServer.*Current temperature ([\\d.]+) F
", + "regex_literal_tokens": [ + "TINIWebServer", + "Content-type: text/htmlContent-length:", + "Current temperature", + "F
", + "HTTP/1.0 200 OKDate:", + "Server: Java/" + ], + "cpe": [ + "cpe:/o:systronix:tinios/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 302 Found\\r\\nLocation: http://www\\.cfauth\\.com/\\?cfru[\\w=]+\\r\\nCache-Control: no-cache\\r\\nPragma: no-cache\\r\\n", + "regex_literal_tokens": [ + "Cache-Control: no-cachePragma: no-cache", + "HTTP/1.1 302 FoundLocation: http://www.cfauth.com/?cfru" + ], + "cpe": [ + "cpe:/o:bluecoat:cacheos/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*\\nContent-Length: \\d+\\n.*Cable Modem Description :.*

ZyXEL Prestige (\\w+), HW V([\\d.]+), SW ZyNOS V([\\d.]+)\\(", + "regex_literal_tokens": [ + ", HW V", + ", SW ZyNOS V", + "Cable Modem Description :", + "

ZyXEL Prestige", + "Content-Length:", + "HTTP/1.0" + ], + "cpe": [ + "cpe:/o:zyxel:zynos/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] \\d\\d\\d .*\\r\\nDate: .*\\r\\nServer: Embperl/([\\w.]+) Apache/([\\w.]+) \\(Fedora\\)\\r\\n", + "regex_literal_tokens": [ + "(Fedora)", + "Apache/", + "Date:", + "HTTP/1.", + "Server: Embperl/" + ], + "cpe": [ + "cpe:/a:apache:http_server:$2/", + "cpe:/a:ecos:embperl:$1/", + "cpe:/o:fedoraproject:fedora/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] \\d\\d\\d .*\\r\\nDate: .*\\r\\nServer: Embperl/([\\w.]+) Apache/([\\w.]+) \\(Debian GNU/Linux\\) (.*)\\r\\n", + "regex_literal_tokens": [ + "(Debian GNU/Linux)", + "Apache/", + "Date:", + "HTTP/1.", + "Server: Embperl/" + ], + "cpe": [ + "cpe:/a:apache:http_server:$2/", + "cpe:/a:ecos:embperl:$1/", + "cpe:/o:debian:debian_linux:$3/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] \\d\\d\\d .*\\r\\nDate: .*\\r\\nServer: Embperl/([\\w.]+) Apache/([\\w.]+) \\(Debian GNU/Linux\\)\\r\\n", + "regex_literal_tokens": [ + "(Debian GNU/Linux)", + "Apache/", + "Date:", + "HTTP/1.", + "Server: Embperl/" + ], + "cpe": [ + "cpe:/a:apache:http_server:$2/", + "cpe:/a:ecos:embperl:$1/", + "cpe:/o:debian:debian_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] \\d\\d\\d .*\\r\\nDate: .*\\r\\nServer: PicoWebServer\\r\\n", + "regex_literal_tokens": [ + "Date:", + "HTTP/1.", + "Server: PicoWebServer" + ], + "cpe": [ + "cpe:/o:microsoft:windows_ce/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 302 Redirect\\r\\nServer: GoAhead-Webs\\r\\nDate: .*\\r\\nPragma: no-cache\\r\\nCache-Control: no-cache\\r\\nContent-Type: text/html\\r\\nLocation: http://Netlinx/WebControl\\.asp\\r\\n\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.0 302 RedirectServer: GoAhead-WebsDate:", + "Pragma: no-cacheCache-Control: no-cacheContent-Type: text/htmlLocation: http://Netlinx/WebControl.asp" + ], + "cpe": [ + "cpe:/a:goahead:goahead_webserver/", + "cpe:/o:harman:amx_firmware/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*mikrotik routeros > administration.*font-size: 9px\\\">mikrotik routeros ([\\d.]+) administration", + "regex_literal_tokens": [ + "mikrotik routeros > administration", + "HTTP/1.0", + "administration", + "font-size: 9px\">mikrotik routeros" + ], + "cpe": [ + "cpe:/o:mikrotik:routeros:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d (?s:.*?)Server: BeOS/PoorMan\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:be:beos/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d (?s:.*?)Server: Novell-Agent ([\\w._-]+) \\(Linux\\)\\r\\n.*GroupWise Monitor - Status", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:novell:groupwise/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d (?s:.*?)Server: Allegro-Software-RomPager/(\\d[-.\\w]+)\\r\\n\\r\\n.*ExtremeWare Management Interface", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:allegro:rompager:$1/", + "cpe:/o:extremenetworks:extremeware/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nDate: .*\\r\\nContent-Length: \\d+\\r\\nContent-Type: text/html\\r\\nServer: HyNetOS/([\\d.]+)\\r\\n\\r\\n\\r\\n\\r\\nEverFocus EDSR Applet \\(([\\d.]+)\\)", + "regex_literal_tokens": [ + ")", + "EverFocus EDSR Applet (", + "Content-Length:", + "Content-Type: text/htmlServer: HyNetOS/", + "HTTP/1.0 200 OKDate:" + ], + "cpe": [ + "cpe:/o:hyperstone:hynetos:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*\\r\\nServer: XOS (\\w+)\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.0", + "Server: XOS" + ], + "cpe": [ + "cpe:/o:extremenetworks:extremeware_xos/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*<title>Smart VoIP IAD Web Configuration Pages", + "regex_literal_tokens": [ + "Smart VoIP IAD Web Configuration Pages", + "HTTP/1.0" + ], + "cpe": [ + "cpe:/h:patton:sl4020/", + "cpe:/o:patton:smartware/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 \\d\\d\\d (?s:.*?)Server: Web Server\\r\\n.*\\nCisco Systems, Inc\\. VPN 3000 Concentrator \\[vpn-conc-3030\\]\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:cisco:vpn_3000_concentrator_series_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nDate:.*Welcome to VMware ESX Server ([\\d.]+)\\n\\n", + "regex_literal_tokens": [ + "", + "Welcome to VMware ESX Server", + "HTTP/1.1 200 OKDate:" + ], + "cpe": [ + "cpe:/o:vmware:esx:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nDate: .*document\\.write\\(\\\"<title>\\\" \\+ ID_EE?SX_Welcome \\+ \\\"", + "regex_literal_tokens": [ + "HTTP/1.1 200 OKDate:", + "SX_Welcome + \"", + "document.write(\"\" + ID_E" + ], + "cpe": [ + "cpe:/o:vmware:esxi/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*\\r\\nDate: .*\\r\\nServer: GG/([\\d.]+) \\(Unix\\) Debian GNU/Linux\\r\\nWWW-Authenticate: Basic realm=\\\"gg zone\\\"\\r\\n", + "regex_literal_tokens": [ + "(Unix) Debian GNU/LinuxWWW-Authenticate: Basic realm=\"gg zone\"", + "Date:", + "HTTP/1.0", + "Server: GG/" + ], + "cpe": [ + "cpe:/o:debian:debian_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 401 Authorization Required\\r\\nconnection: Close\\r\\ncontent-type: text/html\\r\\nserver: NEWS/([\\w._-]+ \\(Funk\\)) \\(Windows 2000\\)\\r\\n", + "regex_literal_tokens": [ + "(Funk) (Windows 2000)", + "HTTP/1.0 401 Authorization Requiredconnection: Closecontent-type: text/htmlserver: NEWS/" + ], + "cpe": [ + "cpe:/o:microsoft:windows_2000/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 400 Bad Request\\r\\nDate: .*\\r\\nRIPT-Server: iTunesLib/([-\\w_.]+) \\(Mac OS X\\)\\r\\n", + "regex_literal_tokens": [ + "(Mac OS X)", + "HTTP/1.1 400 Bad RequestDate:", + "RIPT-Server: iTunesLib/" + ], + "cpe": [ + "cpe:/a:apple:apple_tv/", + "cpe:/o:apple:mac_os_x/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 401 Unauthorized\\r\\nServer: mini_httpd/([-\\w_.]+)/astlinux (\\w+)\\r\\nDate: .*\\r\\nCache-Control: no-cache,no-store\\r\\nWWW-Authenticate: Basic realm=\\\"\\.\\\"\\r\\n", + "regex_literal_tokens": [ + "/astlinux", + "Cache-Control: no-cache,no-storeWWW-Authenticate: Basic realm=\".\"", + "Date:", + "HTTP/1.0 401 UnauthorizedServer: mini_httpd/" + ], + "cpe": [ + "cpe:/a:acme:mini_httpd:$1/", + "cpe:/o:linux:linux_kernel:$2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nServer: http server ([\\w._-]+)\\r\\n(?:[^\\r\\n]+\\r\\n)*?Content-length: 291\\r\\n.*if\\(location\\.hostname\\.indexOf\\(':'\\) == -1\\)\\{location\\.href='http://'\\+location\\.hostname\\+':'\\+8080\\+'/';\\n\\}", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 301 Moved Permanently\\r\\nDate: .*\\r\\nLocation: https://([\\w._-]+)/\\r\\nConnection: close\\r\\nContent-Type: text/html\\r\\nContent-Length: 56\\r\\n\\r\\n<HTML><BODY><H1>301 Moved Permanently</H1></BODY></HTML>$", + "regex_literal_tokens": [ + "/Connection: closeContent-Type: text/htmlContent-Length: 56<HTML><BODY><H1>301 Moved Permanently</H1></BODY></HTML>", + "HTTP/1.1 301 Moved PermanentlyDate:", + "Location: https://" + ], + "cpe": [ + "cpe:/o:vmware:esxi/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 301 Moved Permanently\\r\\nDate: .*\\r\\nLocation: https://([\\w._-]+)/\\r\\nConnection: close\\r\\nContent-Length: 0\\r\\n\\r\\n$", + "regex_literal_tokens": [ + "/Connection: closeContent-Length: 0", + "HTTP/1.1 301 Moved PermanentlyDate:", + "Location: https://" + ], + "cpe": [ + "cpe:/o:vmware:esx:3.5/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 401 Unauthorized\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: THEO\\+Server/([\\d.]+)\\r\\n(?:[^\\r\\n]+\\r\\n)*?WWW-Authenticate: Basic realm=\\\"THEOS Web-based Maintenance\\\"\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 401 Unauthorized", + "Server: THEO+Server/", + "WWW-Authenticate: Basic realm=\"THEOS Web-based Maintenance\"" + ], + "cpe": [ + "cpe:/o:theos:theos/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nServer: Web Server\\r\\n.*top\\.location\\.href = \\\"/hp_login\\.html\\\";\\r\\n</script>\\r\\n\\r\\n\\r\\n<BODY style=\\\"text-align: center\\\" onload=\\\"document\\.forms\\[0\\]\\.login\\.focus\\(\\);CheckError\\(\\)\\\">\\r\\n<FORM METHOD=\\\"POST\\\" ACTION=\\\"/hp_login\\.html\\\">", + "regex_literal_tokens": [ + "HTTP/1.1 200 OKServer: Web Server", + "top.location.href = \"/hp_login.html\";</script><BODY style=\"text-align: center\" onload=\"document.forms[0].login.focus();CheckError()\"><FORM METHOD=\"POST\" ACTION=\"/hp_login.html\">" + ], + "cpe": [ + "cpe:/h:hp:procurve_switch_1810g/", + "cpe:/o:hp:procurve_switch_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nServer: RapidLogic/([\\w._-]+)\\r\\n.*<title>OneAccess WCF", + "regex_literal_tokens": [ + "OneAccess WCF", + "HTTP/1.0 200 OKServer: RapidLogic/" + ], + "cpe": [ + "cpe:/a:rapidlogic:httpd:$1/", + "cpe:/o:oneaccess:oneos/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nCONTENT-ENCODING: gzip\\r\\n(?:[^\\r\\n]+\\r\\n)*?SERVER: Linux/([\\w._-]+) Motorola/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 200 OKCONTENT-ENCODING: gzip", + "Motorola/", + "SERVER: Linux/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nDATE: .*\\r\\nCONTENT-TYPE: httpd/unix-directory\\r\\nCONTENT-LENGTH: 0\\r\\nALLOW: GET, POST, HEAD, OPTIONS\\r\\nSERVER: Linux/([\\w._-]+) Motorola/([\\w._-]+)\\r\\n\\r\\n$", + "regex_literal_tokens": [ + "CONTENT-TYPE: httpd/unix-directoryCONTENT-LENGTH: 0ALLOW: GET, POST, HEAD, OPTIONSSERVER: Linux/", + "HTTP/1.1 200 OKDATE:", + "Motorola/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 302 Moved Temporarily\\r\\nPragma: no-cache\\r\\nLocation: https://[\\w._-]+/\\r\\n.*Redirect Notification.*

Please click here to go to the correct location\\.", + "regex_literal_tokens": [ + "/\">here to go to the correct location.", + "

Please click Redirect Notification", + "HTTP/1.0 302 Moved TemporarilyPragma: no-cacheLocation: https://" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:2.6/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\n.*XBMC\\r\\n\\t\\t.*", + "regex_literal_tokens": [ + "", + "XBMC", + "HTTP/1.1 200 OK" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] 200 OK\\r\\n.*XBMC\\s*.*", + "regex_literal_tokens": [ + "200 OK", + "" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nContent-Length: 134\\r\\nExpires: .*\\r\\nContent-Type: text/html\\r\\nDate: .*\\r\\n\\r\\n\\n\\nXBMC Web Media Manager \\n\\n\\n\\n$", + "regex_literal_tokens": [ + "XBMC Web Media Manager ", + "Content-Type: text/htmlDate:", + "HTTP/1.1 200 OKContent-Length: 134Expires:" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 401 Unauthorized\\r\\nContent-Length: 0\\r\\n(?:[^\\r\\n]+\\r\\n)*?WWW-Authenticate: Basic realm=XBMC\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 401 UnauthorizedContent-Length: 0", + "WWW-Authenticate: Basic realm=XBMC" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nContent-Length: \\d+\\r\\nExpires: .*\\r\\nLast-Modified: .*\\r\\nContent-Type: text/html\\r\\nAccept-Ranges: bytes\\r\\nDate: .*\\r\\n\\r\\n.*XBMC \\x7c Web interface", + "regex_literal_tokens": [ + "", + "XBMC | Web interface", + "Content-Type: text/htmlAccept-Ranges: bytesDate:", + "Expires:", + "HTTP/1.0 200 OKContent-Length:", + "Last-Modified:" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: CMSHTTPD/([\\w._-]+) z_VM/([\\w._-]+) ([^\\r\\n]+)\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.0 200 OK", + "Server: CMSHTTPD/", + "z_VM/" + ], + "cpe": [ + "cpe:/o:ibm:z%2fvm:$2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: HyNetOS/([\\w._-]+)\\r\\n.*(CS\\d+) SNMP/Web Adapter", + "regex_literal_tokens": [ + "CS", + "HTTP/1.1 200 OK", + "SNMP/Web Adapter", + "Server: HyNetOS/" + ], + "cpe": [ + "cpe:/o:hyperstone:hynetos:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: ShellHTTPD/([\\w._-]+)\\r\\n.*Dachstein LEAF Firewall", + "regex_literal_tokens": [ + "Dachstein LEAF Firewall", + "HTTP/1.0 200 OK", + "Server: ShellHTTPD/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:2.2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 505 HTTP Version not supported\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Good\\.iWare WebDAV Server for iPhone\\r\\n.*If you have any questions, please contact support@goodreader\\.net", + "regex_literal_tokens": [ + "HTTP/1.1 505 HTTP Version not supported", + "If you have any questions, please contact support@goodreader.net", + "Server: Good.iWare WebDAV Server for iPhone" + ], + "cpe": [ + "cpe:/o:apple:iphone_os/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 505 HTTP Version not supported\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: GoodReader for iPad\\r\\n.*If you have any questions, please contact support@goodreader\\.net", + "regex_literal_tokens": [ + "HTTP/1.1 505 HTTP Version not supported", + "If you have any questions, please contact support@goodreader.net", + "Server: GoodReader for iPad" + ], + "cpe": [ + "cpe:/o:apple:iphone_os/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nConnection: close\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: AvatronHTTP \\(com\\.avatron\\.AirSharingHD,([\\w._-]+)\\)\\r\\n\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.0 200 OKConnection: close", + "Server: AvatronHTTP (com.avatron.AirSharingHD," + ], + "cpe": [ + "cpe:/h:apple:ipad/", + "cpe:/h:apple:iphone/", + "cpe:/o:apple:iphone_os/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: zVWS ([\\w._-]+) Velocity Software, Inc\\. on z/VM (V\\d+R[\\d.]+)\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.0 200 OK", + "Server: zVWS", + "Velocity Software, Inc. on z/VM V" + ], + "cpe": [ + "cpe:/o:ibm:z%2fvm:$2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nServer: Barrelfish\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.0 200 OKServer: Barrelfish" + ], + "cpe": [ + "cpe:/o:barrelfish:barrelfish/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 403 Forbidden\\r\\nDate: .*\\r\\nServer: Helix Mobile Server/([\\w._-]+) \\(win-x86_64-vc10\\)\\r\\n", + "regex_literal_tokens": [ + "(win-x86_64-vc10)", + "HTTP/1.0 403 ForbiddenDate:", + "Server: Helix Mobile Server/" + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nContent-Length: 0\\r\\n\\r\\n$", + "regex_literal_tokens": [ + "HTTP/1.0 200 OKContent-Length: 0" + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 505 HTTP Version Not Supported\\r\\n.*VMware View", + "regex_literal_tokens": [ + "VMware View", + "HTTP/1.1 505 HTTP Version Not Supported" + ], + "cpe": [ + "cpe:/o:vmware:esx/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nCONTENT-ENCODING: gzip\\r\\nEXPIRES: .*\\r\\nCONTENT-LENGTH: \\d+\\r\\nLAST-MODIFIED: .*\\r\\nDATE: .*\\r\\nCONTENT-TYPE: text/html; charset=UTF-8\\r\\nCACHE-CONTROL: max-age=0, no-cache, public\\r\\nSERVER: Linux/([\\w._-]+) Motorola/([\\w._-]+) DAV/2\\r\\n", + "regex_literal_tokens": [ + "CONTENT-LENGTH:", + "CONTENT-TYPE: text/html; charset=UTF-8CACHE-CONTROL: max-age=0, no-cache, publicSERVER: Linux/", + "DATE:", + "DAV/2", + "HTTP/1.1 200 OKCONTENT-ENCODING: gzipEXPIRES:", + "LAST-MODIFIED:", + "Motorola/" + ], + "cpe": [ + "cpe:/o:google:android/", + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] \\d\\d\\d [^\\r\\n]*\\r\\nCONTENT-TYPE: text/html\\r.*\\nServer: IBM_CICS_Transaction_Server/([\\w._-]+)\\(zOS\\)\\r\\n", + "regex_literal_tokens": [ + "(zOS)", + "CONTENT-TYPE: text/html", + "HTTP/1.", + "Server: IBM_CICS_Transaction_Server/" + ], + "cpe": [ + "cpe:/o:ibm:z%2fos/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nConnection: close\\r\\nContent-Encoding: gzip\\r\\nContent-Type: text/html; charset=iso-8859-1\\r\\n\\r\\n\\x1f\\x8b\\x08\\x00\\x00\\x00\\x00\\x00\\x02\\x03\\xa5\\x93Mo", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/h:hp:procurve_switch_1800/", + "cpe:/o:hp:procurve_switch_software/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nConnection: close\\r\\nContent-Type: text/html; charset=utf-8\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: webcam 7\\r\\n\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 200 OKConnection: closeContent-Type: text/html; charset=utf-8", + "Server: webcam 7" + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 401 Unauthorized\\nWWW-Authenticate: Basic realm='unRAID SMU'\\n$", + "regex_literal_tokens": [ + "HTTP/1.1 401 UnauthorizedWWW-Authenticate: Basic realm='unRAID SMU'" + ], + "cpe": [ + "cpe:/o:lime_technology:unraid_server:4/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nConnection: Close\\r\\nPragma: no-cache\\r\\nCache-Control: private, max-age=0\\r\\nDate: .*\\r\\nExpires: -1\\r\\nContent-Type: text/html\\r\\nTransfer-Encoding: chunked\\r\\nRefresh: 60; URL=\\r\\n\\r\\n[0-9a-f]+\\r\\n([\\w._-]+) unRAID Server", + "regex_literal_tokens": [ + "", + "Expires: -1Content-Type: text/htmlTransfer-Encoding: chunkedRefresh: 60; URL=", + "HTTP/1.1 200 OKConnection: ClosePragma: no-cacheCache-Control: private, max-age=0Date:", + "unRAID Server" + ], + "cpe": [ + "cpe:/o:lime_technology:unraid_server:4/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Etag: ([\\w._ -]+)\\r\\n.*\\xef\\xbb\\xbfAirDroid", + "regex_literal_tokens": [ + "AirDroid", + "Etag:", + "HTTP/1.1 200 OK" + ], + "cpe": [ + "cpe:/a:airdroid:airdroid:$1/", + "cpe:/o:google:android/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Etag: ([\\w._ -]+)\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: AirDroid-g\\r\\n", + "regex_literal_tokens": [ + "Etag:", + "HTTP/1.1 200 OK", + "Server: AirDroid-g" + ], + "cpe": [ + "cpe:/a:airdroid:airdroid:$1/", + "cpe:/o:google:android/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: AirDroid ([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 200 OK", + "Server: AirDroid" + ], + "cpe": [ + "cpe:/a:airdroid:airdroid:$1/", + "cpe:/o:google:android/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 500 Server Error\\r\\nContent-Length: 0\\r\\nServer: HBHTTP POGOBASIC - ([\\w._-]+) - Linux\\r\\n", + "regex_literal_tokens": [ + "- Linux", + "HTTP/1.1 500 Server ErrorContent-Length: 0Server: HBHTTP POGOBASIC -" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 404 Not Found\\r\\nContent-Length: 0\\r\\nServer: HBHTTP POGOBASIC - ([\\w._-]+) - Linux\\r\\n", + "regex_literal_tokens": [ + "- Linux", + "HTTP/1.1 404 Not FoundContent-Length: 0Server: HBHTTP POGOBASIC -" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nServer: Mini web server ([\\w._-]+) ZTE corp 2005\\.\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.0 200 OKServer: Mini web server", + "ZTE corp 2005." + ], + "cpe": [ + "cpe:/h:zte:zxv10_w300/", + "cpe:/o:montavista:linux_kernel:2.4.17/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nConnection: keep-alive\\r\\nContent-Length: \\d+\\r\\nContent-Type: text/html; charset=utf-8\\r\\n\\r\\nPlayBook WebInspector", + "regex_literal_tokens": [ + "Content-Type: text/html; charset=utf-8PlayBook WebInspector", + "HTTP/1.1 200 OKConnection: keep-aliveContent-Length:" + ], + "cpe": [ + "cpe:/h:rim:blackberry_playbook_tablet/", + "cpe:/o:rim:blackberry_playbook_os:2.0/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: TMeter\\r\\n.*([\\w._-]+) Unicode\\r\\n\\tIn capture\\r\\n\\t([^<]*)\\r\\n", + "regex_literal_tokens": [ + "", + "", + "HTTP/1.1 200 OK", + "Server: TMeter", + "UnicodeIn capture" + ], + "cpe": [ + "cpe:/a:trafficreg:tmeter:$1/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nContent type: text/xml; charset=utf-8\\r\\n.*TMeter\\r\\n\\tCopyright \\(c\\) \\d\\d\\d\\d Trafficreg Software\\r\\n\\t([\\d.]+) Unicode\\r\\n", + "regex_literal_tokens": [ + "TMeterCopyright (c)", + "HTTP/1.1 200 OKContent type: text/xml; charset=utf-8", + "Trafficreg Software", + "Unicode" + ], + "cpe": [ + "cpe:/a:trafficreg:tmeter:$1/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\nServer: Integrity\\nContent-type: text/html\\n\\n\\n\\n\\nWelcome to INTEGRITY", + "regex_literal_tokens": [ + "HTTP/1.0 200 OKServer: IntegrityContent-type: text/htmlWelcome to INTEGRITY" + ], + "cpe": [ + "cpe:/o:hay_systems:hsl_2.75g_femtocell/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nDate: .*\\r\\nServer: BQTWWW/([\\w._-]+) \\(RSX\\) \\(RSX-11M-PLUS V([\\w._-]+)\\)\\r\\n", + "regex_literal_tokens": [ + "(RSX) (RSX-11M-PLUS V", + "HTTP/1.0 200 OKDate:", + "Server: BQTWWW/" + ], + "cpe": [ + "cpe:/o:dec:rsx_11m_plus:$2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] 200 OK\\r\\nContent-Type: text/xml;charset=utf-8\\r\\nContent-Length: \\d+\\r\\nConnection: close\\r\\nX-Plex-Protocol: 1\\.0\\r\\nCache-Control: no-cache(?:\\r\\nDate: .*)?\\r\\n\\r\\n<\\?xml version=\\\"1\\.0\\\" encoding=\\\"UTF-8\\\"\\?>\\n]*friendlyName=\\\"([^\"]*)\\\" [^>]*platform=\\\"Linux\\\" platformVersion=\\\"(((?:2\\.)?\\d\\.\\d+)[^\"]+)\\\" [^>]*version=\\\"([^\"]+)", + "regex_literal_tokens": [ + "200 OKContent-Type: text/xml;charset=utf-8Content-Length:", + "\\n]*friendlyName=\\\"([^\"]*)\\\" [^>]*platform=\\\"Linux\\\" platformVersion=\\\"(((?:2\\.)?\\d\\.\\d+)[^\"]+)\\\"", + "regex_literal_tokens": [ + "200 OKContent-Type: text/xml;charset=utf-8Content-Length:", + "\\n]*friendlyName=\\\"([^\"]*)\\\" [^>]*platform=\\\"Linux\\\" platformVersion=\\\"(((?:2\\.)?\\d\\.\\d+)[^\"]+)\\\" [^>]*version=\\\"([^\"]+)", + "regex_literal_tokens": [ + "200 OKX-Plex-Protocol: 1.0Content-Type: text/xml;charset=utf-8Content-Length:", + "\\n]*friendlyName=\\\"([^\"]*)\\\" [^>]*platform=\\\"Linux\\\" platformVersion=\\\"(((?:2\\.)?\\d\\.\\d+)[^\"]+)\\\"", + "regex_literal_tokens": [ + "200 OKX-Plex-Protocol: 1.0Content-Type: text/xml;charset=utf-8Content-Length:", + "\\n\\n\\n\\nLogin", + "regex_literal_tokens": [ + "Connection: closeContent-Type: text/htmlLogin", + "HTTP/1.1 401 Authorization RequiredDate:", + "Server: Expires: 0Set-Cookie: SESSION=; path=/;Expires: 0Vary: Accept-EncodingContent-Length:" + ], + "cpe": [ + "cpe:/o:arubanetworks:arubaos/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] 302 Hotspot redirect\\r\\nCache-Control: no-cache\\r\\nConnection: close\\r\\nContent-Length: \\d+\\r\\nContent-Type: text/html\\r\\nDate: .*\\r\\nExpires: 0\\r\\nLocation: .*\\r\\n\\r\\n", + "regex_literal_tokens": [ + "302 Hotspot redirectCache-Control: no-cacheConnection: closeContent-Length:", + "Content-Type: text/htmlDate:", + "Expires: 0Location:", + "HTTP/1." + ], + "cpe": [ + "cpe:/a:mikrotik:hotspot/", + "cpe:/o:mikrotik:routeros/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nCache-control: no-cache\\r\\nConnection: Close\\r\\n\\r\\n(?:\\r\\n)?\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n", + "regex_literal_tokens": [ + "", + "", + "HTTP/1.0 200 OKCache-control: no-cacheConnection: Close" + ], + "cpe": [ + "cpe:/o:kcodes:netusb/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 302 Moved Temporarily\\r\\nContent-Type: application/x-gzip\\r\\nLocation: https://idrac(?::\\d+)?/start\\.html\\r\\nDate: .* GMT\\r\\nETag: \\w{3} \\w{3} \\d\\d \\d\\d:\\d\\d:\\d\\d \\d\\d\\d\\d ([-A-Z]+)\\r\\n", + "regex_literal_tokens": [ + "/start.htmlDate:", + "GMTETag:", + "HTTP/1.0 302 Moved TemporarilyContent-Type: application/x-gzipLocation: https://idrac" + ], + "cpe": [ + "cpe:/o:dell:idrac8_firmware/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nContent-Type: text/html\\r\\nContent-Length: \\d+\\r\\nCache-Control: private, no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0\\r\\nExpires: 0\\r\\nPragma: no-cache\\r\\n\\r\\nZentriOS Web App", + "regex_literal_tokens": [ + "Cache-Control: private, no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0Expires: 0Pragma: no-cacheZentriOS Web App", + "HTTP/1.1 200 OKContent-Type: text/htmlContent-Length:" + ], + "cpe": [ + "cpe:/o:zentri:zentrios/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\n(?:Connection: close\\r\\n)?Server: fec/1\\.0 \\(Funkwerk BOSS\\)\\r\\n", + "regex_literal_tokens": [ + "Connection: close", + "HTTP/1.0 200 OK", + "Server: fec/1.0 (Funkwerk BOSS)" + ], + "cpe": [ + "cpe:/o:funkwerk:boss/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\n(?:Connection: close\\r\\n)?Server: boss/1\\.0 \\(BOSS\\)\\r\\n", + "regex_literal_tokens": [ + "Connection: close", + "HTTP/1.0 200 OK", + "Server: boss/1.0 (BOSS)" + ], + "cpe": [ + "cpe:/o:funkwerk:boss/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 404 Not Found\\r\\nServer: Linux, HTTP/1\\.1, MyNet(N\\d+) Ver ([\\d.]+)\\r\\nDate:", + "regex_literal_tokens": [ + "Date:", + "HTTP/1.1 404 Not FoundServer: Linux, HTTP/1.1, MyNetN", + "Ver" + ], + "cpe": [ + "cpe:/h:wdc:my_net_$1/", + "cpe:/o:wdc:my_net_firmware:$2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 200 OK\\r\\nDate: .*\\r\\nConnection: close\\r\\nContent-Type: text/html\\r\\nX-Frame-Options: DENY\\r\\nContent-Length: \\d+\\r\\n\\r\\n\\n\\n\\n\\n \\n \\n\\n\\n", + "regex_literal_tokens": [ + " ", + "Connection: closeContent-Type: text/htmlX-Frame-Options: DENYContent-Length:", + "HTTP/1.1 200 OKDate:" + ], + "cpe": [ + "cpe:/o:vmware:esxi/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 200 OK\\r\\nServer: httpd/2\\.0\\r\\nx-frame-options: SAMEORIGIN\\r\\nx-xss-protection: 1; mode=block\\r\\nDate: .*\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\n\\r\\n\\n\\n", + "regex_literal_tokens": [ + "Content-Type: text/htmlConnection: close", + "HTTP/1.0 200 OKServer: httpd/2.0x-frame-options: SAMEORIGINx-xss-protection: 1; mode=blockDate:" + ], + "cpe": [ + "cpe:/o:asus:wrt_firmware/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 \\d\\d\\d .*\\r\\nDate: .*\\r\\nServer: WatchGuard\\r\\n", + "regex_literal_tokens": [ + "Date:", + "HTTP/1.1", + "Server: WatchGuard" + ], + "cpe": [ + "cpe:/o:watchguard:fireware/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.0 \\d\\d\\d (?s:.*?)Server: ExtremeWare/([\\d.]+)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:extremenetworks:extremeware_xos:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] \\d\\d\\d (?s:.*?)Server: Linux/(([\\d.]+?)(?:\\.x)?) UPnP/([\\d.]+) Avtech/([\\d.]+)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:linux:linux_kernel:$2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 \\d\\d\\d .*\\r\\nServer: MQX HTTPSRV/[\\d.]+ - Freescale Embedded Web Server v([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + "- Freescale Embedded Web Server v", + "HTTP/1.1", + "Server: MQX HTTPSRV/" + ], + "cpe": [ + "cpe:/o:freescale:mqx/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.1 \\d\\d\\d .*\\nServer: MQX HTTP - Freescale Embedded Web Server\\n", + "regex_literal_tokens": [ + "HTTP/1.1", + "Server: MQX HTTP - Freescale Embedded Web Server" + ], + "cpe": [ + "cpe:/o:freescale:mqx/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http-proxy", + "regex": "^HTTP/1\\.1 407 Proxy Authentication Required\\r\\nProxy-Authenticate: NTLM\\r\\nProxy-Authenticate: BASIC realm=\\\"DOMBUD\\\"\\r\\nCache-Control: no-cache\\r\\nPragma: no-cache\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 407 Proxy Authentication RequiredProxy-Authenticate: NTLMProxy-Authenticate: BASIC realm=\"DOMBUD\"Cache-Control: no-cachePragma: no-cache" + ], + "cpe": [ + "cpe:/o:bluecoat:cacheos/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http-proxy", + "regex": "^HTTP/1\\.0 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: PAW Server ([\\w._-]+-android) \\(Brazil/2\\.0\\)\\r\\n", + "regex_literal_tokens": [ + "-android (Brazil/2.0)", + "HTTP/1.0 200 OK", + "Server: PAW Server" + ], + "cpe": [ + "cpe:/o:google:android/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http-proxy", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*\\r\\nMime-Version: 1\\.0\\r\\nDate: .*\\r\\nVia: 1\\.0 ([\\w.-]+):\\d+ \\(Cisco-WSA/([\\w._-]+)\\)\\r\\n", + "regex_literal_tokens": [ + "(Cisco-WSA/", + "HTTP/1.0", + "Mime-Version: 1.0Date:", + "Via: 1.0" + ], + "cpe": [ + "cpe:/o:cisco:asyncos:$2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http-proxy", + "regex": "^HTTP/1\\.0 403 Forbidden\\r\\nConnection: close\\r\\nContent-Length: 51\\r\\nContent-type: text/html\\r\\n\\r\\nAccess denied: authentication configuration missing", + "regex_literal_tokens": [ + "HTTP/1.0 403 ForbiddenConnection: closeContent-Length: 51Content-type: text/htmlAccess denied: authentication configuration missing" + ], + "cpe": [ + "cpe:/o:smoothwall:smoothwall/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "smtp", + "regex": "^220 ([\\w._-]+)\\r\\n500 5\\.5\\.1 Unrecognized command\\r\\n", + "regex_literal_tokens": [ + "220", + "500 5.5.1 Unrecognized command" + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.[01] 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Linux-amd64-([\\w._-]+), UPnP/([\\d.]+), PMS/(.*?)\\r\\n", + "regex_literal_tokens": [ + ", PMS/", + ", UPnP/", + "200 OK", + "HTTP/1.", + "Server: Linux-amd64-" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.[01] 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Linux-([\\w_.-]+), UPnP/([\\d.]+), PMS/(.*?)\\r\\n", + "regex_literal_tokens": [ + ", PMS/", + ", UPnP/", + "200 OK", + "HTTP/1.", + "Server: Linux-" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.[01] 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Windows_XP-([\\w_.-]+), UPnP/([\\d.]+), PMS/(.*?)\\r\\n", + "regex_literal_tokens": [ + ", PMS/", + ", UPnP/", + "200 OK", + "HTTP/1.", + "Server: Windows_XP-" + ], + "cpe": [ + "cpe:/o:microsoft:windows_xp:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.[01] 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Windows_Vista-x86-([\\w._-]+), UPnP/([\\d.]+), PMS/(.*?)\\r\\n", + "regex_literal_tokens": [ + ", PMS/", + ", UPnP/", + "200 OK", + "HTTP/1.", + "Server: Windows_Vista-x86-" + ], + "cpe": [ + "cpe:/o:microsoft:windows_vista:$1::x32/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.[01] 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Windows_Vista-x86_64-([\\w._-]+), UPnP/([\\d.]+), PMS/(.*?)\\r\\n", + "regex_literal_tokens": [ + ", PMS/", + ", UPnP/", + "200 OK", + "HTTP/1.", + "Server: Windows_Vista-x86_64-" + ], + "cpe": [ + "cpe:/o:microsoft:windows_vista:$1::x64/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.[01] 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Windows_7-x86-([\\w._-]+), UPnP/([\\d.]+), PMS/(.*?)\\r\\n", + "regex_literal_tokens": [ + ", PMS/", + ", UPnP/", + "200 OK", + "HTTP/1.", + "Server: Windows_7-x86-" + ], + "cpe": [ + "cpe:/o:microsoft:windows_7:$1::x32/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.[01] 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Windows_7-x86_64-([\\w._-]+), UPnP/([\\d.]+), PMS/(.*?)\\r\\n", + "regex_literal_tokens": [ + ", PMS/", + ", UPnP/", + "200 OK", + "HTTP/1.", + "Server: Windows_7-x86_64-" + ], + "cpe": [ + "cpe:/o:microsoft:windows_7:$1::x64/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.0 200 (?s:.*?)Server: Linux/([\\w_.-]+), UPnP/([\\w_.-]+), Free UPnP Entertainment Service/ReadyNAS\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.0 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: Linux/([\\w_.-]+), UPnP/([\\w_.-]+), Free UPnP Entertainment Service/([^\\r\\n]+)\\r\\n", + "regex_literal_tokens": [ + ", Free UPnP Entertainment Service/", + ", UPnP/", + "HTTP/1.0 200 OK", + "Server: Linux/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.0 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?Server: FreeBSD/([\\w_.-]+), UPnP/([\\w_.-]+), Free UPnP Entertainment Service/([^\\r\\n]+)\\r\\n", + "regex_literal_tokens": [ + ", Free UPnP Entertainment Service/", + ", UPnP/", + "HTTP/1.0 200 OK", + "Server: FreeBSD/" + ], + "cpe": [ + "cpe:/o:freebsd:freebsd:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 400 Bad Request\\r\\nSERVER: ipOS/([\\d.]+) UPnP/([\\d.]+) ipGENADevice/([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 400 Bad RequestSERVER: ipOS/", + "UPnP/", + "ipGENADevice/" + ], + "cpe": [ + "cpe:/o:ubicom:ipos:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*\\r\\nSERVER: ipos/([\\w._-]+) +UPnP/([\\d.]+) (?:ADSL2\\+ (?:Modem )?Router )?(T[DL]-\\w+)/([\\w._/-]+)\\r\\n", + "regex_literal_tokens": [ + "ADSL2+", + "HTTP/1.0", + "Modem", + "Router", + "SERVER: ipos/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:ubicom:ipos:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*\\r\\nSERVER: ipos/([\\w._-]+) +UPnP/([\\d.]+) (RNX-\\w+)/([\\w._/-]+)\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.0", + "RNX-", + "SERVER: ipos/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:ubicom:ipos:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*\\r\\nSERVER: ipos/([\\w._-]+) UPnP/([\\d.]+) Archer[ _]([^/]+)/([\\w._/-]+)\\r\\n", + "regex_literal_tokens": [ + "Archer", + "HTTP/1.0", + "SERVER: ipos/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:ubicom:ipos:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.[01] \\d\\d\\d .*\\r\\nSERVER: Linux/([\\w._+-]+), UPnP/([\\d.]+), Portable SDK for UPnP devices/([\\w._~-]+)\\r\\n", + "regex_literal_tokens": [ + ", Portable SDK for UPnP devices/", + ", UPnP/", + "HTTP/1.", + "SERVER: Linux/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.[01] \\d\\d\\d .*\\r\\nSERVER: Linux, UPnP/([\\d.]+), Portable SDK for UPnP devices/([\\w._~-]+)\\r\\n", + "regex_literal_tokens": [ + ", Portable SDK for UPnP devices/", + "HTTP/1.", + "SERVER: Linux, UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.[01] \\d\\d\\d .*\\r\\nSERVER: Linux/([\\w._+-]+) UPnP/([\\d.]+) DLNADOC/([\\d.]+) Portable SDK for UPnP devices/([\\w._~-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.", + "Portable SDK for UPnP devices/", + "SERVER: Linux/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 \\d\\d\\d (?s:.*?)Server: Linux/([\\w._+-]+) DLNADOC/([\\d.]+) UPnP/([\\d.]+) MiniDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.[01] \\d\\d\\d (?s:.*?)SERVER: Linux/([-+\\w_.]+), UPnP/([\\d.]+), Intel SDK for UPnP devices ?/([\\w._~-]+)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.[01] \\d\\d\\d (?s:.*?)SERVER: Linux/([-+\\w_.]+) UPnP/([\\d.]+) DLNADOC/([\\w._-]+) Intel_SDK_for_UPnP_devices/([\\w._~-]+)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.0 \\d\\d\\d .*\\r\\nDate: .*\\r\\nConnection: close\\r\\nServer: Microsoft-Windows-NT/(\\d[-.\\w]+) UPnP/(\\d[-.\\w]+) UPnP-Device-Host/(\\d[-.\\w]+)\\r\\n", + "regex_literal_tokens": [ + "Connection: closeServer: Microsoft-Windows-NT/", + "Date:", + "HTTP/1.0", + "UPnP-Device-Host/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:microsoft:windows_nt:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 .*\\r\\nSERVER: Linux/((2\\.[46]\\.\\d+|\\d\\.\\d+)\\S*), UPnP/([\\d.]+), MediaTomb/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + ", MediaTomb/", + ", UPnP/", + "HTTP/1.1 200", + "SERVER: Linux/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?SERVER: FreeBSD/([\\w._-]+), UPnP/([\\d.]+), MediaTomb/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + ", MediaTomb/", + ", UPnP/", + "HTTP/1.1 200 OK", + "SERVER: FreeBSD/" + ], + "cpe": [ + "cpe:/o:freebsd:freebsd:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?SERVER: OpenBSD/([\\w._-]+), UPnP/([\\d.]+), MediaTomb/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + ", MediaTomb/", + ", UPnP/", + "HTTP/1.1 200 OK", + "SERVER: OpenBSD/" + ], + "cpe": [ + "cpe:/o:openbsd:openbsd:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?SERVER: SunOS/([\\w._-]+), UPnP/([\\d.]+), MediaTomb/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + ", MediaTomb/", + ", UPnP/", + "HTTP/1.1 200 OK", + "SERVER: SunOS/" + ], + "cpe": [ + "cpe:/o:sun:sunos:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 \\d\\d\\d (?s:.*?)Server: *Linux/([\\w._-]+), UPnP/([\\w._-]+), TwonkyVision UPnP SDK/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:packetvideo:twonky/", + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 \\d\\d\\d (?s:.*?)Server: *Linux/2\\.x\\.x, UPnP/([\\w._-]+), pvConnect UPnP SDK/([\\w._-]+), Twonky UPnP SDK/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:packetvideo:twonky/", + "cpe:/o:linux:linux_kernel:2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 \\d\\d\\d .*Server: *Linux/([\\w._-]+), UPnP/([\\w._-]+), pvConnect UPnP SDK/([\\w._-]+)\\r\\n.*(?:TwonkyMedia|TwonkyMedia server media browser|TwonkyVision Configuration)", + "regex_literal_tokens": [ + ", UPnP/", + ", pvConnect UPnP SDK/", + "", + "", + "HTTP/1.1", + "Linux/", + "Server:", + "TwonkyMedia", + "TwonkyMedia server media browser", + "TwonkyVision Configuration" + ], + "cpe": [ + "cpe:/a:packetvideo:twonky/", + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 \\d\\d\\d (?s:.*?)Server: *Linux/([\\w._-]+), UPnP/([\\w._-]+), pvConnect UPnP SDK/([\\w._-]+)\\r\\n.*<title>MediaServer Restriced Access", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:packetvideo:twonky/", + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 \\d\\d\\d (?s:.*?)Server: *Linux/2\\.x\\.x, UPnP/([\\w._-]+), pvConnect UPnP SDK/([\\w._-]+), TwonkyMedia UPnP SDK/([\\w._-]+)\\r\\n\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:packetvideo:twonky/", + "cpe:/o:linux:linux_kernel:2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 401 Unauthorised\\r\\n(?:[^\\r\\n]+\\r\\n)*?WWW-Authenticate: Digest realm=\\\"([\\w._-]+)\\\", nonce=\\\"\\w+\\\", algorigthm=MD5, qop=\\\"auth\\\" \\n.*Server: *Linux/2\\.x\\.x, UPnP/([\\d.]+), pvConnect UPnP SDK/([\\w._-]+), Twonky UPnP SDK/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "\", algorigthm=MD5, qop=\"auth\"", + "\", nonce=\"", + ", Twonky UPnP SDK/", + ", pvConnect UPnP SDK/", + "HTTP/1.1 401 Unauthorised", + "Linux/2.x.x, UPnP/", + "Server:", + "WWW-Authenticate: Digest realm=\"" + ], + "cpe": [ + "cpe:/a:packetvideo:twonky/", + "cpe:/o:linux:linux_kernel:2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 \\d\\d\\d (?s:.*?)Server: *Linux/2\\.x\\.x, UPnP/([\\w._-]+), pvConnect UPnP SDK/([\\w._-]+)\\r\\n\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:packetvideo:twonky/", + "cpe:/o:linux:linux_kernel:2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 \\d\\d\\d (?s:.*?)Server: Windows NT/[\\w._-]+, UPnP/([\\w._-]+), pvConnect UPnP SDK/([\\w._-]+), TwonkyMedia UPnP SDK/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:packetvideo:twonky/", + "cpe:/o:microsoft:windows_nt/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 401 Unauthorised\\r\\n(?:[^\\r\\n]+\\r\\n)*?WWW-Authenticate: Basic realm=\\\"([\\w._-]+)\\\"\\n.*Server: *Linux/2\\.x\\.x, UPnP/([\\w._-]+), pvConnect UPnP SDK/([\\w._-]+), Twonky UPnP SDK/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + ", Twonky UPnP SDK/", + ", pvConnect UPnP SDK/", + "HTTP/1.1 401 Unauthorised", + "Linux/2.x.x, UPnP/", + "Server:", + "WWW-Authenticate: Basic realm=\"" + ], + "cpe": [ + "cpe:/a:packetvideo:twonky/", + "cpe:/o:linux:linux_kernel:2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.0 \\d\\d\\d (?s:.*?)SERVER: Linux/([\\w._-]+) UPnP/([\\w._-]+) myigd/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.0 \\d\\d\\d (?s:.*?)SERVER: Linux/([\\w._-]+), UPnP/([\\w._-]+), Everest/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 404 Bad Request\\r\\nCONTENT-LENGTH: 0\\r\\nCONTENT-TYPE: text/html\\r\\n\\r\\n$", + "regex_literal_tokens": [ + "HTTP/1.1 404 Bad RequestCONTENT-LENGTH: 0CONTENT-TYPE: text/html" + ], + "cpe": [ + "cpe:/o:supermicro:intelligent_platform_management_firmware/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 OK\\r\\n.*SERVER: EPSON_Linux UPnP/([\\d.]+) Epson UPnP SDK/([\\d.]+)\\r\\n.*(?:Epson )?(Stylus (?:Office |Photo )?\\w+)", + "regex_literal_tokens": [ + "", + "", + "Epson", + "Epson UPnP SDK/", + "HTTP/1.1 200 OK", + "Office", + "Photo", + "SERVER: EPSON_Linux UPnP/", + "Stylus" + ], + "cpe": [ + "cpe:/h:epson:$3/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?SERVER: EPSON_Linux UPnP/([\\d.]+) Epson UPnP SDK/([\\d.]+)\\r\\n.*<meta name=\\\"Author\\\" content=\\\"SEIKO EPSON\\\">.*path\\.indexOf\\(\\\"/PRESENTATION/HTML/TOP/INDEX\\.HTML\\\", 0\\);", + "regex_literal_tokens": [ + "<meta name=\"Author\" content=\"SEIKO EPSON\">", + "Epson UPnP SDK/", + "HTTP/1.1 200 OK", + "SERVER: EPSON_Linux UPnP/", + "path.indexOf(\"/PRESENTATION/HTML/TOP/INDEX.HTML\", 0);" + ], + "cpe": [ + "cpe:/h:epson:stylus_nx230/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 OK\\r\\n(?:[^\\r\\n]+\\r\\n)*?SERVER: EPSON_Linux UPnP/([\\d.]+) Epson UPnP SDK/([\\d.]+)\\r\\n\\r\\n<!DOCTYPE HTML PUBLIC \\\"-//W3C//DTD HTML 4\\.01//EN \\\"\\r\\n\\\"http://www\\.w3\\.org/TR/html4/strict\\.dtd\\\">\\r\\n<html>\\r\\n<head>\\r\\n<meta http-equiv=\\\"Content-Type\\\" content=\\\"text/html; charset=utf-8\\\">\\r\\n<meta name=\\\"Author\\\" content=\\\"SEIKO EPSON\\\">", + "regex_literal_tokens": [ + "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN \"\"http://www.w3.org/TR/html4/strict.dtd\"><html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta name=\"Author\" content=\"SEIKO EPSON\">", + "Epson UPnP SDK/", + "HTTP/1.1 200 OK", + "SERVER: EPSON_Linux UPnP/" + ], + "cpe": [ + "cpe:/h:epson:wf-2540/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 OK\\r\\nDate: .*\\r\\nServer: Linux/2\\.x UPnP/([\\w._-]+) Avtech/([\\w._-]+)\\r\\nConnection: close\\r\\nLast-Modified: .*..\\xbe\\x40..\\xbe..\\x03\\r\\n", + "regex_literal_tokens": [ + "Avtech/", + "Connection: closeLast-Modified:", + "HTTP/1.1 200 OKDate:", + "Server: Linux/2.x UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 OK\\r\\nDate: .*\\r\\nServer: Linux/2\\.x UPnP/([\\w._-]+) Avtech/([\\w._-]+)\\r\\nConnection: close\\r\\nLast-Modified: .*\\xb2\\xe8\\xbe\\x1c\\xb2\\xe8\\xbe\\x38\\x62\\x03\\r\\n", + "regex_literal_tokens": [ + "Avtech/", + "Connection: closeLast-Modified:", + "HTTP/1.1 200 OKDate:", + "Server: Linux/2.x UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 404 Not Found\\r\\nConnection: close\\r\\nDate: .* GMT\\r\\nServer: RTOS/([\\w._-]+) UPnP/([\\w._]+) ([\\w._-]+)\\s*/([\\w._-]+)\\r\\nX-AV-Server-Info: av=5\\.0; cn=\\\"Sony Corporation\\\"; mn=\\\"BRAVIA ", + "regex_literal_tokens": [ + "GMTServer: RTOS/", + "HTTP/1.1 404 Not FoundConnection: closeDate:", + "UPnP/", + "X-AV-Server-Info: av=5.0; cn=\"Sony Corporation\"; mn=\"BRAVIA" + ], + "cpe": [ + "cpe:/h:sony:bravia_$3:$4/", + "cpe:/o:greenhills:rtos:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 400 Bad Request\\r\\nContent-Type: \\r\\nContent-Length: 0\\r\\nConnection: close\\r\\n\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 400 Bad RequestContent-Type: Content-Length: 0Connection: close" + ], + "cpe": [ + "cpe:/o:samsung:bada:1.2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 \\d\\d\\d .*\\r\\nSERVER: Linux/([\\w._-]+) UPnP/([\\w._-]+) DLNADOC/([\\w._-]+) INTEL_NMPR/([\\w._-]+) LGE_DLNA_SDK/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1", + "INTEL_NMPR/", + "LGE_DLNA_SDK/", + "SERVER: Linux/", + "UPnP/" + ], + "cpe": [ + "cpe:/h:lg:lw5700/", + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.0 404 Not Found\\r\\nSERVER: PACKAGE_VERSION HUAWEI, UPnP, HUAWEI SDK for UPnP devices/ \\r\\nCONTENT-LENGTH: 48\\r\\nCONTENT-TYPE: text/html\\r\\n\\r\\n<html><body><h1>404 Not Found</h1></body></html>$", + "regex_literal_tokens": [ + "HTTP/1.0 404 Not FoundSERVER: PACKAGE_VERSION HUAWEI, UPnP, HUAWEI SDK for UPnP devices/ CONTENT-LENGTH: 48CONTENT-TYPE: text/html<html><body><h1>404 Not Found</h1></body></html>" + ], + "cpe": [ + "cpe:/o:huawei:vxworks/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 400 Bad Request\\r\\nContent-Type: text/html; charset=\\\"utf-8\\\"\\r\\nServer: Linux/([\\w._-]+) CyberHTTP/([\\d.]+)\\r\\nContent-Length: 0\\r\\nDate: .*\\r\\n\\r\\n", + "regex_literal_tokens": [ + "Content-Length: 0Date:", + "CyberHTTP/", + "HTTP/1.1 400 Bad RequestContent-Type: text/html; charset=\"utf-8\"Server: Linux/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 404 Not Found\\r\\nDATE: .*\\r\\nConnection: Keep-Alive\\r\\nServer: LINUX/([\\w._-]+) UPnP/([\\d.]+) BRCM400-UPnP/([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + "BRCM400-UPnP/", + "Connection: Keep-AliveServer: LINUX/", + "HTTP/1.1 404 Not FoundDATE:", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 404 Not Found\\r\\nSERVER: Linux/([\\w._-]+) UPnP/([\\w._-]+) Motorola-DLNA-Stack-DLNADOC/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.1 404 Not FoundSERVER: Linux/", + "Motorola-DLNA-Stack-DLNADOC/", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.0 404 Not Found\\r\\nSERVER: ipos/([\\w._-]+) UPnP/([\\w._-]+) (RNX-[\\w._-]+)/1\\.0\\r\\n", + "regex_literal_tokens": [ + "/1.0", + "HTTP/1.0 404 Not FoundSERVER: ipos/", + "RNX-", + "UPnP/" + ], + "cpe": [ + "cpe:/o:ubicom:ipos:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.0 404 Not Found\\r\\nSERVER: ipos/([\\w._-]+) UPnP/([\\w._-]+) (TL-[\\w._-]+)/1\\.0\\r\\n", + "regex_literal_tokens": [ + "/1.0", + "HTTP/1.0 404 Not FoundSERVER: ipos/", + "TL-", + "UPnP/" + ], + "cpe": [ + "cpe:/o:ubicom:ipos:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 OK\\r\\nContent-Type: text/html\\r\\nConnection: close\\r\\nContent-Length: \\d+\\r\\nServer: Linux (([234]\\.[\\d.]+)[\\w._-]+) DLNADOC/([\\w._-]+) UPnP/([\\w._-]+) ReadyDLNA/([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "DLNADOC/", + "HTTP/1.1 200 OKContent-Type: text/htmlConnection: closeContent-Length:", + "ReadyDLNA/", + "Server: Linux", + "UPnP/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 404 Not Found\\r\\nSERVER: Linux/((2\\.[46]\\.\\d+|\\d\\.\\d+)\\S*) UPnP/([\\d.]+) DiXiM/([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + "DiXiM/", + "HTTP/1.1 404 Not FoundSERVER: Linux/", + "UPnP/" + ], + "cpe": [ + "cpe:/a:digion:dixim_media_player:$4/", + "cpe:/o:linux:linux_kernel:$2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 OK\\r.*\\nS(?:erver|ERVER): (Windows_[^-]+)_(R\\d+)-([^-]+)-[\\d.]+, UPnP/([\\d.]+), UMS/([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + ", UMS/", + ", UPnP/", + ": Windows_", + "ERVER", + "HTTP/1.1 200 OK", + "erver" + ], + "cpe": [ + "cpe:/o:microsoft:$1:$2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 OK\\r.*\\nS(?:erver|ERVER): (Windows_[^-]+)-([^-]+)-[\\d.]+, UPnP/([\\d.]+), UMS/([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + ", UMS/", + ", UPnP/", + ": Windows_", + "ERVER", + "HTTP/1.1 200 OK", + "erver" + ], + "cpe": [ + "cpe:/o:microsoft:$1/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "upnp", + "regex": "^HTTP/1\\.1 200 OK\\r.*\\nS(?:erver|ERVER): Mac_OS_X-([^-]+)-(\\d.[\\w._-]+), UPnP/([\\d.]+), UMS/([\\d.]+)\\r\\n", + "regex_literal_tokens": [ + ", UMS/", + ", UPnP/", + ": Mac_OS_X-", + "ERVER", + "HTTP/1.1 200 OK", + "erver" + ], + "cpe": [ + "cpe:/a:universal_media_server:universal_media_server:$4/", + "cpe:/o:apple:mac_os_x:$2/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "uucp", + "regex": "^login: Password: $", + "regex_literal_tokens": [ + "login: Password:" + ], + "cpe": [ + "cpe:/o:debian:debian_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:http_options", + "service": "http", + "regex": "^HTTP/1\\.0 501 Not Implemented\\r\\nConnection: close\\r\\nServer: Android Webcam Server v([\\w._-]+)\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.0 501 Not ImplementedConnection: closeServer: Android Webcam Server v" + ], + "cpe": [ + "cpe:/o:google:android/" + ] + }, + { + "probe_id": "tcp:http_options", + "service": "http", + "regex": "^HTTP/1\\.1 501 Not Implemented\\r\\nDate: .* GMT\\r\\nConnection: close\\r\\nContent-Type: text/html\\r\\nContent-Length: 54\\r\\n\\r\\n<HTML><BODY><H1>501 Not Implemented</H1></BODY></HTML>$", + "regex_literal_tokens": [ + "GMTConnection: closeContent-Type: text/htmlContent-Length: 54<HTML><BODY><H1>501 Not Implemented</H1></BODY></HTML>", + "HTTP/1.1 501 Not ImplementedDate:" + ], + "cpe": [ + "cpe:/o:vmware:esxi:4.1/" + ] + }, + { + "probe_id": "tcp:http_options", + "service": "http", + "regex": "^HTTP/1\\.0 404 Not Found\\r\\nContent-Type: text/html\\r\\nContent-Length: \\d+\\r\\nServer: \\r\\n\\r\\n<html><head><title>404 Not Found\\n

404 Not Found

\\n/:
This item has not been found
\\n
[\\w._-]+:\\d+
\\n\\n$", + "regex_literal_tokens": [ + "/\">", + "", + "HTTP/1.0 404 Not FoundContent-Type: text/htmlContent-Length:", + "Server: 404 Not Found

404 Not Found

/:
This item has not been found

506 - IO Error

$", + "regex_literal_tokens": [ + "HTTP/1.1 506 Content-Type: text/htmlServer: JavaWeb/0

506 - IO Error

" + ], + "cpe": [ + "cpe:/a:airdroid:airdroid/", + "cpe:/o:google:android/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:dns_version_bind_req", + "service": "login", + "regex": "^\\x00\\r\\nSorry, shell is locked\\.\\r\\n$", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:brocade:fabric_os/" + ] + }, + { + "probe_id": "tcp:dns_version_bind_req", + "service": "login", + "regex": "^\\x01rlogind: Host name for your address \\([\\d.]+\\) unknown\\.\\r\\n", + "regex_literal_tokens": [ + ") unknown.", + "rlogind: Host name for your address (" + ], + "cpe": [ + "cpe:/o:apple:a_ux/" + ] + }, + { + "probe_id": "tcp:dns_version_bind_req", + "service": "upnp", + "regex": "^HTTP/1\\.0 414 Request-URI Too Long\\r\\nServer: Linux/([\\w._-]+) UPnP/([\\w._-]+) fbxigdd/([\\w._-]+)\\r\\nConnection: close\\r\\n\\r\\n$", + "regex_literal_tokens": [ + "Connection: close", + "HTTP/1.0 414 Request-URI Too LongServer: Linux/", + "UPnP/", + "fbxigdd/" + ], + "cpe": [ + "cpe:/o:linux:linux_kernel:$1/" + ] + }, + { + "probe_id": "tcp:help", + "service": "ftp", + "regex": "^220 .*\\r\\n214-CesarFTP server ([\\w.]+) supports the following commands:\\r\\n", + "regex_literal_tokens": [ + "214-CesarFTP server", + "220", + "supports the following commands:" + ], + "cpe": [ + "cpe:/a:aclogic:cesarftpd:$1/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:help", + "service": "ftp", + "regex": "^220-Rival Group FTP Server\\r\\n220-Unauthorized access prohibited\\r\\n220 All activity is logged\\.\\r\\n214-CesarFTP server ([\\w._-]+) supports the following commands:\\r\\n214-ABOR ACCT ALLO APPE CDUP CWD DELE HELP LIST\\r\\n214-MDTM MKD MODE NLST NOOP PASS PASV PORT PWD \\r\\n214-QUIT REIN REST RETR RMD RNFR RNTO SITE SMNT\\r\\n214-STAT STOR STOU STRU SYST TYPE\\r\\n214-\\r\\n214-CesarFTP server [\\w._-]+ supports specific commands\\r\\n214-invoked with the SITE command:\\r\\n214-\\r\\n214-SITE MSG\\r\\n214-\\r\\n214 \\r\\n", + "regex_literal_tokens": [ + "220-Rival Group FTP Server220-Unauthorized access prohibited220 All activity is logged.214-CesarFTP server", + "supports specific commands214-invoked with the SITE command:214-214-SITE MSG214-214", + "supports the following commands:214-ABOR ACCT ALLO APPE CDUP CWD DELE HELP LIST214-MDTM MKD MODE NLST NOOP PASS PASV PORT PWD 214-QUIT REIN REST RETR RMD RNFR RNTO SITE SMNT214-STAT STOR STOU STRU SYST TYPE214-214-CesarFTP server" + ], + "cpe": [ + "cpe:/a:aclogic:cesarftpd:$1/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:help", + "service": "smtp", + "regex": "^220 ([-\\w_.]+) ESMTP (?:[^(]+? )?\\(Ubuntu\\)\\r\\n502 5\\.5\\.2 Error: command not recognized\\r\\n", + "regex_literal_tokens": [ + "(Ubuntu)502 5.5.2 Error: command not recognized", + "220", + "ESMTP" + ], + "cpe": [ + "cpe:/o:canonical:ubuntu_linux/" + ] + }, + { + "probe_id": "tcp:help", + "service": "smtp", + "regex": "^220 ([-\\w_.]+) ESMTP\\r\\n214-Gentoo Linux qmail-([-\\w.]+)\\r\\n214 qmail home page: http://pobox\\.com/~djb/qmail\\.html\\r\\n", + "regex_literal_tokens": [ + "214 qmail home page: http://pobox.com/~djb/qmail.html", + "220", + "ESMTP214-Gentoo Linux qmail-" + ], + "cpe": [ + "cpe:/a:djb:qmail/", + "cpe:/o:gentoo:linux/" + ] + }, + { + "probe_id": "tcp:help", + "service": "smtp", + "regex": "^220 .* ESMTP\\r\\n214-Gentoo Linux qmail-([-\\w.]+)\\r\\n214 qmail home page: http://pobox\\.com/~djb/qmail\\.html\\r\\n", + "regex_literal_tokens": [ + "214 qmail home page: http://pobox.com/~djb/qmail.html", + "220", + "ESMTP214-Gentoo Linux qmail-" + ], + "cpe": [ + "cpe:/a:djb:qmail/", + "cpe:/o:gentoo:linux/" + ] + }, + { + "probe_id": "tcp:help", + "service": "vulnserver", + "regex": "^Welcome to Vulnerable Server! Enter HELP for help\\.\\nValid Commands:\\nHELP\\nSTATS \\[stat_value\\]\\nRTIME \\[rtime_value\\]\\nLTIME \\[ltime_value\\]\\nSRUN \\[srun_value\\]\\nTRUN \\[trun_value\\]\\nGMON \\[gmon_value\\]\\nGDOG \\[gdog_value\\]\\nKSTET \\[kstet_value\\]\\nGTER \\[gter_value\\]\\nHTER \\[hter_value\\]\\nLTER \\[lter_value\\]\\nKSTAN \\[lstan_value\\]\\nEXIT\\n$", + "regex_literal_tokens": [ + "Welcome to Vulnerable Server! Enter HELP for help.Valid Commands:HELPSTATS [stat_value]RTIME [rtime_value]LTIME [ltime_value]SRUN [srun_value]TRUN [trun_value]GMON [gmon_value]GDOG [gdog_value]KSTET [kstet_value]GTER [gter_value]HTER [hter_value]LTER [lter_value]KSTAN [lstan_value]EXIT" + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "ssl", + "regex": "^\\x16\\x03\\x00\\x00\\*\\x02\\x00\\x00&\\x03.*vCenterServer_([\\w._-]+)", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:vmware:esxi:$1/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x80\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*\\tMacintosh\\x05\\x06AFPX03\\x06AFP2\\.2\\x0eAFPVersion 2\\.1\\x0eAFPVersion 2\\.0\\x0eAFPVersion 1\\.1.\\tDHCAST128", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.1/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x83\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*\\tMacintosh\\x06\\x06AFP3\\.1\\x06AFPX03\\x06AFP2\\.2\\x0eAFPVersion 2\\.1\\x0eAFPVersion 2\\.0\\x0eAFPVersion 1\\.1.\\tDHCAST128.*[\\x04\\x05]([\\w.-]+)\\x00", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.2/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x83\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*\\tMacintosh\\x06\\x06AFP3\\.1\\x06AFPX03\\x06AFP2\\.2\\x0eAFPVersion 2\\.1\\x0eAFPVersion 2\\.0\\x0eAFPVersion 1\\.1.\\tDHCAST128", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.2/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x83\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*\\tMacintosh\\x03\\x06AFP3\\.1\\x06AFPX03\\x06AFP2\\.2.\\x06Recon1\\rClient Krb v20\\x00.*[\\x04\\x05]([\\w.-]+)\\x01.afpserver/([\\w.@-]+)\\x00", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.2/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x83\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*\\tMacintosh\\x03\\x06AFP3\\.1\\x06AFPX03\\x06AFP2\\.2.\\tDHCAST128.*[\\x04\\x05]([\\w.-]+)\\x01.afpserver/([\\w.@-]+)\\x00", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.3/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x83\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*\\tMacintosh\\x03\\x06AFP3\\.1\\x06AFPX03\\x06AFP2\\.2.\\tDHCAST128.*[\\x04\\x05]([\\w.-]+)\\x00", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.3/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x83\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*\\tMacintosh\\x03\\x06AFP3\\.1\\x06AFPX03\\x06AFP2\\.2.\\tDHCAST128", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.3/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x8f\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*\\tMacintosh\\x04\\x06AFP3\\.2\\x06AFP3\\.1\\x06AFPX03\\x06AFP2\\.2.\\x06Recon1\\rClient Krb v2\\x0fNo User Authent\\x00.*[\\x04\\x05]([\\w.-]+)\\x01.afpserver/([-\\w_.@]+)\\x00", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x_server:10.5/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x8f\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*\\tMacintosh.\\x06AFP3\\.3\\x06AFP3\\.2\\x06AFP3\\.1\\x06AFPX03\\x06AFP2\\.2.\\tDHCAST128.*[\\x04\\x05]([\\w.-]+)\\x01.afpserver", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x8f\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*\\tMacintosh.\\x06AFP3\\.3\\x06AFP3\\.2\\x06AFP3\\.1\\x06AFPX03\\x06AFP2\\.2.\\tDHCAST128", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x8f\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*?(i?Mac(?:mini|Pro|Book(?:Air|Pro)?)?\\d+,\\d+)\\x04\\x06AFP3\\.3\\x06AFP3\\.2\\x06AFP3\\.1\\x06AFPX03.\\tDHCAST128.*[\\x04\\x05]([\\w.-]+)\\x01.afpserver", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5/", + "cpe:/o:apple:mac_os_x:10.6/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x8f\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*?(i?Mac(?:mini|Pro|Book(?:Air|Pro)?)?\\d+,\\d+)\\x04\\x06AFP3\\.3\\x06AFP3\\.2\\x06AFP3\\.1\\x06AFPX03.\\tDHCAST128.*[\\x04\\x05]([\\w.-]+)\\x00\\x00", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x80........\\x00\\x00\\x00\\x00........\\x8f\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*?(i?Mac(?:mini|Pro|Book(?:Air|Pro)?)?\\d+,\\d+)\\x04\\x06AFP3\\.3\\x06AFP3\\.2\\x06AFP3\\.1\\x06AFPX03.\\tDHCAST128.*[\\x04\\x05]([\\w.-]+)\\x01.afpserver", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5/", + "cpe:/o:apple:mac_os_x:10.6/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x80........\\x00\\x00\\x00\\x00........\\x8f\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*\\tMacintosh.\\x06AFP3\\.3\\x06AFP3\\.2\\x06AFP3\\.1\\x06AFPX03\\x06AFP2\\.2.\\tDHCAST128.*[\\x04\\x05]([\\w.-]+)\\x01.afpserver", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.5/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x9f\\xf3.([^\\x00\\x01]+)[\\x00\\x01].*?(i?Mac(?:mini|Pro|Book(?:Air|Pro)?)?\\d+,\\d+)\\x05\\x06AFP3\\.4\\x06AFP3\\.3\\x06AFP3\\.2\\x06AFP3\\.1\\x06AFPX03", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/a:apple:afp_server/", + "cpe:/o:apple:mac_os_x:10.10/", + "cpe:/o:apple:mac_os_x:10.11/", + "cpe:/o:apple:mac_os_x:10.9/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x9f\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*?(i?Mac(?:mini|Pro|Book(?:Air|Pro)?)?\\d+,\\d+)\\x05\\x06AFP3\\.4\\x06AFP3\\.3\\x06AFP3\\.2\\x06AFP3\\.1\\x06AFPX03\\x06\\tDHCAST128\\x04DHX2\\x06Recon1\\rClient Krb v2\\x03GSS\\x0fNo User Authent.*\\x1b\\$not_defined_in_RFC4178@please_ignore$", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6/", + "cpe:/o:apple:mac_os_x:10.7/", + "cpe:/o:apple:mac_os_x:10.8/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x9f\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*?(i?Mac(?:mini|Pro|Book(?:Air|Pro)?)?\\d+,\\d+)\\x05\\x06AFP3\\.4\\x06AFP3\\.3\\x06AFP3\\.2\\x06AFP3\\.1\\x06AFPX03\\x05\\tDHCAST128\\x04DHX2\\x06Recon1\\rClient Krb v2\\x03GSS.*\\x1b\\$not_defined_in_RFC4178@please_ignore", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.6/", + "cpe:/o:apple:mac_os_x:10.7/", + "cpe:/o:apple:mac_os_x:10.8/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "afp", + "regex": "^\\x01\\x03\\x00\\x00........\\x00\\x00\\x00\\x00........\\x9f\\xfb.([^\\x00\\x01]+)[\\x00\\x01].*?(i?Mac(?:mini|Pro|Book(?:Air|Pro)?)?\\d+,\\d+)\\x05\\x06AFP3\\.4\\x06AFP3\\.3\\x06AFP3\\.2\\x06AFP3\\.1\\x06AFPX03\\x05\\tDHCAST128\\x04DHX2\\x06Recon1\\x03GSS\\x0fNo User Authent", + "regex_literal_tokens": [], + "cpe": [ + "cpe:/o:apple:mac_os_x:10.8/" + ] + }, + { + "probe_id": "tcp:tls_session", + "service": "pop3-proxy", + "regex": "^ERR concurrent connection limit in avast! exceeded\\(pass:\\d+, processes:([\\w._-]+)\\[\\d+\\]\\)\\r\\n", + "regex_literal_tokens": [ + ", processes:", + "ERR concurrent connection limit in avast! exceeded(pass:" + ], + "cpe": [ + "cpe:/a:avast:antivirus/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "^HTTP/1\\.[01] \\d\\d\\d[\\s\\S]*?\\r\\nServer: Microsoft-IIS/([-.\\w]+)\\r\\n", + "regex_literal_tokens": [ + "HTTP/1.", + "Server: Microsoft-IIS/" + ], + "cpe": [ + "cpe:/a:microsoft:internet_information_services:$1/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:http_get", + "service": "http", + "regex": "[\\s\\S]*?IIS Windows Server", + "regex_literal_tokens": [ + "IIS Windows Server" + ], + "cpe": [ + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:generic_lines", + "service": "ftp", + "regex": "^220 Microsoft FTP Service\\b", + "regex_literal_tokens": [ + "220 Microsoft FTP Service" + ], + "cpe": [ + "cpe:/a:microsoft:internet_information_services/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:help", + "service": "ftp", + "regex": "^220 Microsoft FTP Service\\b", + "regex_literal_tokens": [ + "220 Microsoft FTP Service" + ], + "cpe": [ + "cpe:/a:microsoft:internet_information_services/", + "cpe:/o:microsoft:windows/" + ] + }, + { + "probe_id": "tcp:null", + "service": "mysql", + "regex": "5\\.5\\.5-([0-9.]+)-MariaDB-0ubuntu[^\\s\\x00]*", + "regex_literal_tokens": [ + "5.5.5-", + "MariaDB", + "0ubuntu" + ], + "cpe": [ + "cpe:/a:mariadb:mariadb:$1/", + "cpe:/o:canonical:ubuntu_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "mysql", + "regex": "5\\.5\\.5-([0-9.]+)-MariaDB(?:-[^\\s\\x00]+)?", + "regex_literal_tokens": [ + "5.5.5-", + "MariaDB" + ], + "cpe": [ + "cpe:/a:mariadb:mariadb:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "mysql", + "regex": "([0-9]+\\.[0-9]+\\.[0-9]+)-0ubuntu[^\\s\\x00]*", + "regex_literal_tokens": [ + "0ubuntu" + ], + "cpe": [ + "cpe:/a:mysql:mysql:$1/", + "cpe:/o:canonical:ubuntu_linux/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "mysql", + "regex": "MySQL Community Server.*?([0-9]+\\.[0-9]+\\.[0-9]+)", + "regex_literal_tokens": [ + "MySQL", + "Community", + "Server" + ], + "cpe": [ + "cpe:/a:mysql:mysql_community_server:$1/" + ] + }, + { + "probe_id": "tcp:null", + "service": "mysql", + "regex": "(?is)blocked because of many connection errors;.*mariadb-admin\\s+flush-hosts", + "regex_literal_tokens": [ + "blocked because of many connection errors", + "mariadb-admin", + "flush-hosts" + ], + "cpe": [ + "cpe:/a:mariadb:mariadb/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "mysql", + "regex": "(?is)blocked because of many connection errors;.*mysqladmin\\s+flush-hosts", + "regex_literal_tokens": [ + "blocked because of many connection errors", + "mysqladmin", + "flush-hosts" + ], + "cpe": [ + "cpe:/a:mysql:mysql/", + "cpe:/o:linux:linux_kernel/" + ] + }, + { + "probe_id": "tcp:null", + "service": "mysql", + "regex": "([0-9]+\\.[0-9]+\\.[0-9]+)(?:-log)?", + "regex_literal_tokens": [ + "-log" + ], + "cpe": [ + "cpe:/a:mysql:mysql:$1/" + ] + } + ] +} \ No newline at end of file diff --git a/resources/nrev-service-probes.json b/resources/nrev-service-probes.json new file mode 100644 index 0000000..303a476 --- /dev/null +++ b/resources/nrev-service-probes.json @@ -0,0 +1,528 @@ +{ + "meta": { + "name": "Probe Payload Database", + "version": "1.0" + }, + "probes": [ + { + "id": "tcp:null", + "protocol": "tcp", + "name": "NULL", + "payload": "", + "payload_encoding": "raw", + "wait_ms": 6000, + "ports": [] + }, + { + "id": "tcp:generic_lines", + "protocol": "tcp", + "name": "GenericLines", + "payload": "\r\n\r\n", + "payload_encoding": "raw", + "wait_ms": null, + "ports": [ + 21, + 23, + 35, + 43, + 79, + 98, + 110, + 113, + 119, + 199, + 214, + 264, + 449, + 505, + 510, + 540, + 587, + 616, + 628, + 666, + 731, + 771, + 782, + 1000, + 1010, + 1040, + 1041, + 1042, + 1043, + 1080, + 1212, + 1220, + 1248, + 1302, + 1400, + 1432, + 1467, + 1501, + 1505, + 1666, + 1687, + 1688, + 2010, + 2024, + 2600, + 3000, + 3005, + 3128, + 3310, + 3333, + 3940, + 4155, + 5000, + 5400, + 5432, + 5555, + 5570, + 6112, + 6432, + 6667, + 6668, + 6669, + 6670, + 7144, + 7145, + 7200, + 7780, + 8000, + 8138, + 9000, + 9001, + 9002, + 9003, + 9801, + 11371, + 11965, + 13720, + 15000, + 15001, + 15002, + 18086, + 19150, + 26214, + 26470, + 30444, + 31416, + 34012, + 56667 + ] + }, + { + "id": "tcp:http_get", + "protocol": "tcp", + "name": "GetRequest", + "payload": "GET / HTTP/1.0\r\n\r\n", + "payload_encoding": "raw", + "wait_ms": null, + "ports": [ + 1, + 70, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 88, + 113, + 139, + 143, + 280, + 497, + 505, + 514, + 515, + 540, + 554, + 591, + 620, + 631, + 783, + 888, + 898, + 900, + 901, + 1026, + 1042, + 1080, + 1214, + 1220, + 1234, + 1314, + 1344, + 1503, + 1610, + 1611, + 1830, + 1900, + 2001, + 2002, + 2030, + 2064, + 2160, + 2306, + 2396, + 2525, + 2715, + 2869, + 3000, + 3002, + 3052, + 3128, + 3280, + 3372, + 3531, + 3689, + 3872, + 4000, + 4444, + 4567, + 4660, + 4711, + 5000, + 5060, + 5222, + 5269, + 5280, + 5427, + 5432, + 5800, + 5801, + 5802, + 5803, + 5900, + 5985, + 6103, + 6346, + 6544, + 6600, + 6699, + 6969, + 7002, + 7007, + 7070, + 7100, + 7402, + 7776, + 8000, + 8001, + 8002, + 8003, + 8004, + 8005, + 8006, + 8007, + 8008, + 8009, + 8010, + 8080, + 8081, + 8082, + 8083, + 8084, + 8085, + 8088, + 8118, + 8181, + 8530, + 8880, + 8881, + 8882, + 8883, + 8884, + 8885, + 8886, + 8887, + 8888, + 9000, + 9001, + 9030, + 9050, + 9080, + 9090, + 9999, + 10000, + 10001, + 10005, + 11371, + 13013, + 13666, + 13722, + 14534, + 15000, + 17988, + 18264, + 31337, + 40193, + 50000, + 55555 + ] + }, + { + "id": "tcp:https_get", + "protocol": "tcp", + "name": "HttpsGetRequest", + "payload": "GET $PATH HTTP/1.1\r\nHost: $HOST\r\nConnection: close\r\nAccept-Encoding: identity\r\n\r\n", + "payload_encoding": "raw", + "wait_ms": null, + "ports": [ + 443, + 1443, + 2443, + 4433, + 4434, + 4443, + 4444, + 5443, + 7443, + 8009, + 8010, + 8181, + 8443, + 8883, + 9443, + 10443, + 11443, + 12443, + 30443, + 40443, + 44443, + 49592, + 50443, + 55443, + 60443 + ] + }, + { + "id": "tcp:http_options", + "protocol": "tcp", + "name": "HTTPOptions", + "payload": "OPTIONS / HTTP/1.0\r\n\r\n", + "payload_encoding": "raw", + "wait_ms": null, + "ports": [ + 80, + 81, + 82, + 83, + 84, + 85, + 631, + 641, + 2301, + 3128, + 5232, + 6000, + 8080, + 8888, + 9999, + 10000, + 10031, + 37435, + 49400 + ] + }, + { + "id": "udp:dns_version_bind_req", + "protocol": "udp", + "name": "DNSVersionBindReq", + "payload": "AAYBAAABAAAAAAAAB3ZlcnNpb24EYmluZAAAEAAD", + "payload_encoding": "base64", + "wait_ms": null, + "ports": [ + 53, + 1967, + 2967, + 26198 + ] + }, + { + "id": "tcp:dns_version_bind_req", + "protocol": "tcp", + "name": "DNSVersionBindReqTCP", + "payload": "AB4ABgEAAAEAAAAAAAAHdmVyc2lvbgRiaW5kAAAQAAM=", + "payload_encoding": "base64", + "wait_ms": null, + "ports": [ + 53, + 135, + 512, + 513, + 514, + 543, + 544, + 628, + 1029, + 2068, + 2105, + 2967, + 5000, + 5323, + 5520, + 5530, + 5555, + 5556, + 6543, + 7000, + 7008, + 13783 + ] + }, + { + "id": "tcp:help", + "protocol": "tcp", + "name": "Help", + "payload": "HELP\r\n", + "payload_encoding": "raw", + "wait_ms": 7500, + "ports": [ + 1, + 7, + 21, + 25, + 79, + 113, + 119, + 515, + 587, + 1111, + 1311, + 2401, + 2627, + 3000, + 3493, + 6560, + 6666, + 6667, + 6668, + 6669, + 6670, + 12345, + 14690, + 22490 + ] + }, + { + "id": "tcp:tls_session", + "protocol": "tcp", + "name": "SSLSessionReq", + "payload": "FgMAAFMBAABPAwA/R9f3uizu6rJgfvMA/YJ7udWWyHeb5sTbPD3bb+8QbgAAKAAWABMACgBmAAUABABlAGQAYwBiAGEAYAAVABIACQAUABEACAAGAAMBAA==", + "payload_encoding": "base64", + "wait_ms": null, + "ports": [ + 261, + 271, + 322, + 324, + 443, + 444, + 448, + 465, + 548, + 563, + 585, + 636, + 684, + 853, + 989, + 990, + 992, + 993, + 994, + 995, + 1241, + 1311, + 1443, + 2000, + 2221, + 2252, + 2376, + 2443, + 3443, + 4433, + 4443, + 4444, + 4911, + 5061, + 5349, + 5443, + 5550, + 5868, + 5986, + 6251, + 6380, + 6443, + 6679, + 6697, + 7000, + 7210, + 7272, + 7443, + 8009, + 8181, + 8194, + 8443, + 8531, + 8883, + 9001, + 9443, + 10443, + 14443, + 15002, + 16379, + 44443, + 60443 + ] + }, + { + "id": "tcp:tls_session", + "protocol": "tcp", + "name": "TLSSessionReq", + "payload": "FgMAAGkBAABlAwNVHKfkcmFuZG9tMXJhbmRvbTJyYW5kb20zcmFuZG9tNAAADAAvAAoAEwA5AAQA/wEAADAADQAsACoAAQADAAIGAQYDBgICAQIDAgIDAQMDAwIEAQQDBAIBAQEDAQIFAQUDBQI=", + "payload_encoding": "base64", + "wait_ms": null, + "ports": [ + 443, + 444, + 465, + 636, + 989, + 990, + 992, + 993, + 994, + 995, + 1241, + 1311, + 2252, + 3388, + 3389, + 4433, + 4444, + 5061, + 6679, + 6697, + 8443, + 8883, + 9001 + ] + }, + { + "id": "udp:quic", + "protocol": "udp", + "name": "QUIC", + "payload": "DYnBnBwq//zxUTk5OQA=", + "payload_encoding": "base64", + "wait_ms": null, + "ports": [ + 80, + 443 + ] + } + ] +} \ No newline at end of file diff --git a/resources/nrev-tls-oid-map.json b/resources/nrev-tls-oid-map.json new file mode 100644 index 0000000..4e590fc --- /dev/null +++ b/resources/nrev-tls-oid-map.json @@ -0,0 +1,29 @@ +{ + "sig": { + "1.2.840.113549.1.1.5": "sha1WithRSAEncryption", + "1.2.840.113549.1.1.11": "sha256WithRSAEncryption", + "1.2.840.113549.1.1.12": "sha384WithRSAEncryption", + "1.2.840.113549.1.1.13": "sha512WithRSAEncryption", + "1.2.840.113549.1.1.14": "sha224WithRSAEncryption", + "1.2.840.113549.1.1.4": "md5WithRSAEncryption", + "1.2.840.113549.1.1.10": "RSASSA-PSS", + "1.2.840.10045.4.1": "ecdsa-with-SHA1", + "1.2.840.10045.4.3.1": "ecdsa-with-SHA224", + "1.2.840.10045.4.3.2": "ecdsa-with-SHA256", + "1.2.840.10045.4.3.3": "ecdsa-with-SHA384", + "1.2.840.10045.4.3.4": "ecdsa-with-SHA512", + "1.3.101.112": "Ed25519", + "1.3.101.113": "Ed448", + "1.2.840.10040.4.3": "dsa-with-sha1" + }, + "pubkey": { + "1.2.840.113549.1.1.1": "rsaEncryption", + "1.2.840.10045.2.1": "id-ecPublicKey", + "1.3.101.112": "Ed25519", + "1.3.101.113": "Ed448", + "1.3.101.110": "X25519", + "1.3.101.111": "X448", + "1.2.840.10040.4.1": "id-dsa", + "1.2.840.113549.1.3.1": "dhKeyAgreement" + } +} diff --git a/resources/nrev-top-subdomains.json b/resources/nrev-top-subdomains.json new file mode 100644 index 0000000..7dfa24f --- /dev/null +++ b/resources/nrev-top-subdomains.json @@ -0,0 +1,1002 @@ +[ + "www", + "mail", + "ftp", + "localhost", + "webmail", + "smtp", + "webdisk", + "pop", + "cpanel", + "whm", + "ns1", + "ns2", + "autodiscover", + "autoconfig", + "ns", + "test", + "m", + "blog", + "dev", + "www2", + "ns3", + "pop3", + "forum", + "admin", + "mail2", + "vpn", + "mx", + "imap", + "old", + "new", + "mobile", + "mysql", + "beta", + "support", + "cp", + "secure", + "shop", + "demo", + "dns2", + "ns4", + "dns1", + "static", + "lists", + "web", + "www1", + "img", + "news", + "portal", + "server", + "wiki", + "api", + "media", + "images", + "www.blog", + "backup", + "dns", + "sql", + "intranet", + "www.forum", + "www.test", + "stats", + "host", + "video", + "mail1", + "mx1", + "www3", + "staging", + "www.m", + "sip", + "chat", + "search", + "crm", + "mx2", + "ads", + "ipv4", + "remote", + "email", + "my", + "wap", + "svn", + "store", + "cms", + "download", + "proxy", + "www.dev", + "mssql", + "apps", + "dns3", + "exchange", + "mail3", + "forums", + "ns5", + "db", + "office", + "live", + "files", + "info", + "owa", + "monitor", + "helpdesk", + "panel", + "sms", + "newsletter", + "ftp2", + "web1", + "web2", + "upload", + "home", + "bbs", + "login", + "app", + "en", + "blogs", + "it", + "cdn", + "stage", + "gw", + "dns4", + "www.demo", + "ssl", + "cn", + "smtp2", + "vps", + "ns6", + "relay", + "online", + "service", + "test2", + "radio", + "ntp", + "library", + "help", + "www4", + "members", + "tv", + "www.shop", + "extranet", + "hosting", + "ldap", + "services", + "webdisk.blog", + "s1", + "i", + "survey", + "s", + "www.mail", + "www.new", + "premium", + "data", + "docs", + "ping", + "ad", + "legacy", + "router", + "de", + "meet", + "cs", + "av", + "sftp", + "server1", + "stat", + "moodle", + "facebook", + "test1", + "photo", + "partner", + "nagios", + "mrtg", + "s2", + "mailadmin", + "dev2", + "ts", + "autoconfig.blog", + "autodiscover.blog", + "games", + "jobs", + "image", + "host2", + "gateway", + "preview", + "www.support", + "im", + "ssh", + "correo", + "control", + "ns0", + "vpn2", + "cloud", + "archive", + "citrix", + "webdisk.m", + "voip", + "connect", + "game", + "smtp1", + "access", + "lib", + "www5", + "gallery", + "redmine", + "es", + "irc", + "stream", + "qa", + "dl", + "billing", + "construtor", + "lyncdiscover", + "painel", + "fr", + "projects", + "a", + "pgsql", + "mail4", + "tools", + "iphone", + "server2", + "dbadmin", + "manage", + "jabber", + "music", + "webmail2", + "www.beta", + "mailer", + "phpmyadmin", + "t", + "reports", + "rss", + "pgadmin", + "images2", + "mx3", + "www.webmail", + "ws", + "content", + "sv", + "web3", + "community", + "poczta", + "www.mobile", + "ftp1", + "dialin", + "us", + "sp", + "panelstats", + "vip", + "cacti", + "s3", + "alpha", + "videos", + "ns7", + "promo", + "testing", + "sharepoint", + "marketing", + "sitedefender", + "member", + "webdisk.dev", + "emkt", + "training", + "edu", + "autoconfig.m", + "git", + "autodiscover.m", + "catalog", + "webdisk.test", + "job", + "ww2", + "www.news", + "sandbox", + "elearning", + "fb", + "webmail.cp", + "downloads", + "speedtest", + "design", + "staff", + "master", + "panelstatsmail", + "v2", + "db1", + "mailserver", + "builder.cp", + "travel", + "mirror", + "ca", + "sso", + "tickets", + "alumni", + "sitebuilder", + "www.admin", + "auth", + "jira", + "ns8", + "partners", + "ml", + "list", + "images1", + "club", + "business", + "update", + "fw", + "devel", + "local", + "wp", + "streaming", + "zeus", + "images3", + "adm", + "img2", + "gate", + "pay", + "file", + "seo", + "status", + "share", + "maps", + "zimbra", + "webdisk.forum", + "trac", + "oa", + "sales", + "post", + "events", + "project", + "xml", + "wordpress", + "images4", + "main", + "english", + "e", + "img1", + "db2", + "time", + "redirect", + "go", + "bugs", + "direct", + "www6", + "social", + "www.old", + "development", + "calendar", + "www.forums", + "ru", + "www.wiki", + "monitoring", + "hermes", + "photos", + "bb", + "mx01", + "mail5", + "temp", + "map", + "ns10", + "tracker", + "sport", + "uk", + "hr", + "autodiscover.test", + "conference", + "free", + "autoconfig.test", + "client", + "vpn1", + "autodiscover.dev", + "b2b", + "autoconfig.dev", + "noc", + "webconf", + "ww", + "payment", + "firewall", + "intra", + "rt", + "v", + "clients", + "www.store", + "gis", + "m2", + "event", + "origin", + "site", + "domain", + "barracuda", + "link", + "ns11", + "internal", + "dc", + "smtp3", + "zabbix", + "mdm", + "assets", + "images6", + "www.ads", + "mars", + "mail01", + "pda", + "images5", + "c", + "ns01", + "tech", + "ms", + "images7", + "autoconfig.forum", + "public", + "css", + "autodiscover.forum", + "webservices", + "www.video", + "web4", + "orion", + "pm", + "fs", + "w3", + "student", + "www.chat", + "domains", + "book", + "lab", + "o1.email", + "server3", + "img3", + "kb", + "faq", + "health", + "in", + "board", + "vod", + "www.my", + "cache", + "atlas", + "php", + "images8", + "wwww", + "voip750101.pg6.sip", + "cas", + "origin-www", + "cisco", + "banner", + "mercury", + "w", + "directory", + "mailhost", + "test3", + "shopping", + "webdisk.demo", + "ip", + "market", + "pbx", + "careers", + "auto", + "idp", + "ticket", + "js", + "ns9", + "outlook", + "foto", + "www.en", + "pro", + "mantis", + "spam", + "movie", + "s4", + "lync", + "jupiter", + "dev1", + "erp", + "register", + "adv", + "b", + "corp", + "sc", + "ns12", + "images0", + "enet1", + "mobil", + "lms", + "net", + "storage", + "ss", + "ns02", + "work", + "webcam", + "www7", + "report", + "admin2", + "p", + "nl", + "love", + "pt", + "manager", + "d", + "cc", + "android", + "linux", + "reseller", + "agent", + "web01", + "sslvpn", + "n", + "thumbs", + "links", + "mailing", + "hotel", + "pma", + "press", + "venus", + "finance", + "uesgh2x", + "nms", + "ds", + "joomla", + "doc", + "flash", + "research", + "dashboard", + "track", + "www.img", + "x", + "rs", + "edge", + "deliver", + "sync", + "oldmail", + "da", + "order", + "eng", + "testbrvps", + "user", + "radius", + "star", + "labs", + "top", + "srv1", + "mailers", + "mail6", + "pub", + "host3", + "reg", + "lb", + "log", + "books", + "phoenix", + "drupal", + "affiliate", + "www.wap", + "webdisk.support", + "www.secure", + "cvs", + "st", + "wksta1", + "saturn", + "logos", + "preprod", + "m1", + "backup2", + "opac", + "core", + "vc", + "mailgw", + "pluto", + "ar", + "software", + "jp", + "srv", + "newsite", + "www.members", + "openx", + "otrs", + "titan", + "soft", + "analytics", + "code", + "mp3", + "sports", + "stg", + "whois", + "apollo", + "web5", + "ftp3", + "www.download", + "mm", + "art", + "host1", + "www8", + "www.radio", + "demo2", + "click", + "smail", + "w2", + "feeds", + "g", + "education", + "affiliates", + "kvm", + "sites", + "mx4", + "autoconfig.demo", + "controlpanel", + "autodiscover.demo", + "tr", + "ebook", + "www.crm", + "hn", + "black", + "mcp", + "adserver", + "www.staging", + "static1", + "webservice", + "f", + "develop", + "sa", + "katalog", + "as", + "smart", + "pr", + "account", + "mon", + "munin", + "www.games", + "www.media", + "cam", + "school", + "r", + "mc", + "id", + "network", + "www.live", + "forms", + "math", + "mb", + "maintenance", + "pic", + "agk", + "phone", + "bt", + "sm", + "demo1", + "ns13", + "tw", + "ps", + "dev3", + "tracking", + "green", + "users", + "int", + "athena", + "www.static", + "www.info", + "security", + "mx02", + "prod", + "1", + "team", + "transfer", + "www.facebook", + "www10", + "v1", + "google", + "proxy2", + "feedback", + "vpgk", + "auction", + "view", + "biz", + "vpproxy", + "secure2", + "www.it", + "newmail", + "sh", + "mobi", + "wm", + "mailgate", + "dms", + "11192521404255", + "autoconfig.support", + "play", + "11192521403954", + "start", + "life", + "autodiscover.support", + "antispam", + "cm", + "booking", + "iris", + "www.portal", + "hq", + "gc._msdcs", + "neptune", + "terminal", + "vm", + "pool", + "gold", + "gaia", + "internet", + "sklep", + "ares", + "poseidon", + "relay2", + "up", + "resources", + "is", + "mall", + "traffic", + "webdisk.mail", + "www.api", + "join", + "smtp4", + "www9", + "w1", + "upl", + "ci", + "gw2", + "open", + "audio", + "fax", + "alfa", + "www.images", + "alex", + "spb", + "xxx", + "ac", + "edm", + "mailout", + "webtest", + "nfs01.jc", + "me", + "sun", + "virtual", + "spokes", + "ns14", + "webserver", + "mysql2", + "tour", + "igk", + "wifi", + "pre", + "abc", + "corporate", + "adfs", + "srv2", + "delta", + "loopback", + "magento", + "br", + "campus", + "law", + "global", + "s5", + "web6", + "orange", + "awstats", + "static2", + "learning", + "www.seo", + "china", + "gs", + "www.gallery", + "tmp", + "ezproxy", + "darwin", + "bi", + "best", + "mail02", + "studio", + "sd", + "signup", + "dir", + "server4", + "archives", + "golf", + "omega", + "vps2", + "sg", + "ns15", + "win", + "real", + "www.stats", + "c1", + "eshop", + "piwik", + "geo", + "mis", + "proxy1", + "web02", + "pascal", + "lb1", + "app1", + "mms", + "apple", + "confluence", + "sns", + "learn", + "classifieds", + "pics", + "gw1", + "www.cdn", + "rp", + "matrix", + "repository", + "updates", + "se", + "developer", + "meeting", + "twitter", + "artemis", + "au", + "cat", + "system", + "ce", + "ecommerce", + "sys", + "ra", + "orders", + "sugar", + "ir", + "wwwtest", + "bugzilla", + "listserv", + "www.tv", + "vote", + "webmaster", + "webdev", + "sam", + "www.de", + "vps1", + "contact", + "galleries", + "history", + "journal", + "hotels", + "www.newsletter", + "podcast", + "dating", + "sub", + "www.jobs", + "www.intranet", + "www.email", + "mt", + "science", + "counter", + "dns5", + "2", + "people", + "ww3", + "www.es", + "ntp1", + "vcenter", + "test5", + "radius1", + "ocs", + "power", + "pg", + "pl", + "magazine", + "sts", + "fms", + "customer", + "wsus", + "bill", + "www.hosting", + "vega", + "nat", + "sirius", + "lg", + "11285521401250", + "sb", + "hades", + "students", + "uat", + "conf", + "ap", + "uxr4", + "eu", + "moon", + "www.search", + "checksrv", + "hydra", + "usa", + "digital", + "wireless", + "banners", + "md", + "mysite", + "webmail1", + "windows", + "traveler", + "www.poczta", + "hrm", + "database", + "mysql1", + "inside", + "debian", + "pc", + "ask", + "backend", + "cz", + "mx0", + "mini", + "autodiscover.mail", + "rb", + "webdisk.shop", + "mba", + "www.help", + "www.sms", + "test4", + "dm", + "subscribe", + "sf", + "passport", + "red", + "video2", + "ag", + "autoconfig.mail", + "all.edge", + "registration", + "ns16", + "camera", + "myadmin", + "ns20", + "uxr3", + "mta", + "beauty", + "fw1", + "epaper", + "central", + "cert", + "backoffice", + "biblioteca", + "mob", + "about", + "space", + "movies", + "u", + "ms1", + "ec", + "forum2", + "server5", + "money", + "radius2", + "print", + "ns18", + "thunder", + "nas", + "ww1", + "webdisk.webmail", + "edit", + "www.music", + "planet", + "m3", + "vstagingnew", + "app2", + "repo", + "prueba", + "house", + "ntp2", + "dragon", + "pandora", + "stock", + "form", + "pp", + "www.sport", + "physics", + "food", + "groups", + "antivirus", + "profile", + "www.online", + "stream2", + "hp", + "d1", + "nhko1111", + "logs", + "eagle", + "v3", + "mail7", + "gamma", + "career", + "vpn3", + "ipad", + "dom", + "webdisk.store", + "iptv", + "www.promo", + "hd", + "mag", + "box", + "talk", + "hera", + "f1", + "www.katalog", + "syslog", + "fashion", + "t1", + "private", + "soporte", + "teste", + "scripts", + "welcome" +] diff --git a/resources/nrev-wellknown-ports.json b/resources/nrev-wellknown-ports.json new file mode 100644 index 0000000..c606f70 --- /dev/null +++ b/resources/nrev-wellknown-ports.json @@ -0,0 +1,687 @@ +[ + 1, + 2, + 3, + 5, + 7, + 9, + 11, + 13, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 25, + 27, + 29, + 31, + 33, + 37, + 38, + 39, + 41, + 42, + 43, + 44, + 45, + 46, + 48, + 49, + 50, + 52, + 53, + 54, + 55, + 56, + 58, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 76, + 78, + 79, + 80, + 82, + 83, + 84, + 85, + 86, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 256, + 257, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 271, + 280, + 281, + 282, + 283, + 284, + 286, + 287, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 333, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 514, + 515, + 516, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + 612, + 613, + 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 704, + 705, + 706, + 707, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 729, + 730, + 731, + 741, + 742, + 744, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 767, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 780, + 800, + 801, + 802, + 810, + 828, + 829, + 830, + 831, + 832, + 833, + 847, + 848, + 853, + 854, + 860, + 861, + 862, + 873, + 886, + 887, + 888, + 900, + 901, + 902, + 903, + 910, + 911, + 912, + 913, + 953, + 989, + 990, + 991, + 992, + 993, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1010, + 1021, + 1022 +] diff --git a/src/app.rs b/src/app.rs deleted file mode 100644 index a9222c7..0000000 --- a/src/app.rs +++ /dev/null @@ -1,110 +0,0 @@ -use crate::sys; -use clap::{crate_description, crate_name, crate_version}; -use std::sync::{Mutex, OnceLock}; - -// APP information -pub const CRATE_BIN_NAME: &str = "nrev"; -pub const CRATE_UPDATE_DATE: &str = "2024-07-21"; -pub const CRATE_REPOSITORY: &str = "https://github.com/shellrow/nrev"; - -/// Global Mutex lock guard for quiet mode -pub static QUIET_MODE: OnceLock> = OnceLock::new(); - -/// Check if quiet mode is enabled -pub fn is_quiet_mode() -> bool { - match QUIET_MODE.get() { - Some(mutex) => match mutex.try_lock() { - Ok(guard) => *guard, - Err(_) => false, - }, - None => false, - } -} - -pub fn set_quiet_mode(enabled: bool) -> Result<(), String> { - let mutex: &Mutex = QUIET_MODE.get_or_init(|| Mutex::new(false)); - match mutex.try_lock() { - Ok(mut guard) => { - *guard = enabled; - Ok(()) - } - Err(_) => Err("Failed to lock mutex".to_string()), - } -} - -pub enum AppCommands { - PortScan, - HostScan, - Ping, - Trace, - Subdomain, - Neighbor, - Interfaces, - Interface, - CheckDependencies, -} - -impl AppCommands { - pub fn from_str(s: &str) -> Option { - match s { - "port" => Some(AppCommands::PortScan), - "host" => Some(AppCommands::HostScan), - "ping" => Some(AppCommands::Ping), - "trace" => Some(AppCommands::Trace), - "subdomain" => Some(AppCommands::Subdomain), - "nei" => Some(AppCommands::Neighbor), - "interfaces" => Some(AppCommands::Interfaces), - "interface" => Some(AppCommands::Interface), - "check" => Some(AppCommands::CheckDependencies), - _ => None, - } - } -} - -pub fn show_app_desc() { - if is_quiet_mode() { - return; - } - println!( - "{} v{} ({}) {}", - crate_name!(), - crate_version!(), - CRATE_UPDATE_DATE, - sys::os::get_os_type() - ); - println!("{}", crate_description!()); - println!("{}", CRATE_REPOSITORY); - println!(); - println!("'{} --help' for more information.", CRATE_BIN_NAME); - println!(); -} - -pub fn show_banner_with_starttime() { - if is_quiet_mode() { - return; - } - println!( - "{} v{} {}", - crate_name!(), - crate_version!(), - sys::os::get_os_type() - ); - println!("{}", CRATE_REPOSITORY); - println!(); - println!("Starting at {}", sys::time::get_sysdate()); - println!(); -} - -pub fn exit_with_error_message(message: &str) { - println!(); - println!("Error: {}", message); - std::process::exit(1); -} - -pub fn show_error_with_help(message: &str) { - println!(); - println!("Error: {}", message); - println!(); - println!("'{} --help' for more information.", CRATE_BIN_NAME); - println!(); -} diff --git a/src/capture/mod.rs b/src/capture/mod.rs new file mode 100644 index 0000000..a5bf742 --- /dev/null +++ b/src/capture/mod.rs @@ -0,0 +1 @@ +pub mod pcap; diff --git a/src/pcap/mod.rs b/src/capture/pcap.rs similarity index 63% rename from src/pcap/mod.rs rename to src/capture/pcap.rs index 9dec797..f527bc1 100644 --- a/src/pcap/mod.rs +++ b/src/capture/pcap.rs @@ -1,40 +1,16 @@ -pub mod setting; use std::net::IpAddr; -//use std::sync::mpsc::Sender; -use crate::interface; -use crate::packet::frame::PacketFrame; -use nex::datalink::RawReceiver; +use nex::datalink::async_io::AsyncRawReceiver; use nex::net::interface::Interface; use nex::packet::frame::Frame; use nex::packet::frame::ParseOption; -use nex::packet::{ethernet::EtherType, ip::IpNextLevelProtocol}; +use nex::packet::{ethernet::EtherType, ip::IpNextProtocol}; use serde::{Deserialize, Serialize}; use std::collections::HashSet; -use std::sync::{Arc, Mutex}; use std::time::Duration; use std::time::Instant; - -/// Packet capture message -#[derive(Serialize, Deserialize, Debug, Clone)] -pub struct CaptureReport { - pub bytes: usize, - pub packets: usize, - pub start_time: String, - pub end_time: String, - pub duration: Duration, -} - -impl CaptureReport { - pub fn new() -> CaptureReport { - CaptureReport { - bytes: 0, - packets: 0, - start_time: String::new(), - end_time: String::new(), - duration: Duration::from_secs(0), - } - } -} +use futures::stream::StreamExt; +use tokio::sync::oneshot; +use crate::interface; /// Packet capture options #[derive(Serialize, Deserialize, Debug, Clone)] @@ -55,7 +31,7 @@ pub struct PacketCaptureOptions { /// Ether types to filter. If empty, all ether types will be captured pub ether_types: HashSet, /// IP protocols to filter. If empty, all IP protocols will be captured - pub ip_protocols: HashSet, + pub ip_protocols: HashSet, /// Capture duration limit pub capture_timeout: Duration, /// Read Timeout for read next packet (Linux, BPF only) @@ -153,126 +129,51 @@ impl PacketCaptureOptions { } /// Start packet capture -pub fn start_capture( - rx: &mut Box, +pub async fn start_capture( + rx: &mut Box, capture_options: PacketCaptureOptions, - stop: &Arc>, -) -> Vec { + ready_tx: oneshot::Sender<()>, + stop_rx: &mut oneshot::Receiver<()>, +) -> Vec { let mut frames = Vec::new(); let start_time = Instant::now(); + ready_tx.send(()).unwrap(); loop { - match rx.next() { - Ok(packet) => { - let mut parse_option: ParseOption = ParseOption::default(); - if capture_options.tunnel - || (cfg!(any(target_os = "macos", target_os = "ios")) - && capture_options.loopback) - { - let payload_offset; - if capture_options.loopback { - payload_offset = 14; - } else { - payload_offset = 0; + tokio::select! { + _ = &mut *stop_rx => break, + // Check if capture timeout is reached + // Read next packet + next_read = rx.next() => { + match next_read { + Some(Ok(packet)) => { + let mut parse_option: ParseOption = ParseOption::default(); + if capture_options.tunnel || (cfg!(any(target_os = "macos", target_os = "ios")) && capture_options.loopback) { + let payload_offset = if capture_options.loopback { 14 } else { 0 }; + parse_option.from_ip_packet = true; + parse_option.offset = payload_offset; + } + if let Some(frame) = Frame::from_buf(&packet, parse_option) { + if filter_packet(&frame, &capture_options) { + frames.push(frame); + } + } else { + eprintln!("Error parsing packet"); + } } - parse_option.from_ip_packet = true; - parse_option.offset = payload_offset; - } - let frame: Frame = Frame::from_bytes(&packet, parse_option); - if filter_packet(&frame, &capture_options) { - let packet_frame = PacketFrame::from_nex_frame(&frame); - frames.push(packet_frame); - /* match msg_tx.send(packet_frame) { - Ok(_) => {} - Err(_) => {} - } */ - } - } - Err(_) => {} - } - match stop.lock() { - Ok(stop) => { - if *stop { - break; - } - } - Err(_) => {} - } - if Instant::now().duration_since(start_time) > capture_options.capture_timeout { - break; - } - } - frames -} - -/* /// Start packet capture -pub fn start_capture( - capture_options: PacketCaptureOptions, - stop: &Arc>, - interface: Interface, -) -> Vec { - let mut frames = Vec::new(); - let config = nex::datalink::Config { - write_buffer_size: 4096, - read_buffer_size: 4096, - read_timeout: Some(capture_options.read_timeout), - write_timeout: None, - channel_type: nex::datalink::ChannelType::Layer2, - bpf_fd_attempts: 1000, - linux_fanout: None, - promiscuous: capture_options.promiscuous, - }; - let (mut _tx, mut rx) = match nex::datalink::channel(&interface, config) { - Ok(nex::datalink::Channel::Ethernet(tx, rx)) => (tx, rx), - Ok(_) => { - //thread_log!(warn, "Unknown channel type"); - return frames; - }, - Err(_e) => { - //thread_log!(error, "Error happened {}", e); - return frames; - }, - }; - let start_time = Instant::now(); - loop { - match rx.next() { - Ok(packet) => { - let mut parse_option: ParseOption = ParseOption::default(); - if interface.is_tun() || (cfg!(any(target_os = "macos", target_os = "ios")) && interface.is_loopback()) { - let payload_offset; - if interface.is_loopback() { - payload_offset = 14; - } else { - payload_offset = 0; + Some(Err(e)) => { + eprintln!("Error reading packet: {}", e); + break; } - parse_option.from_ip_packet = true; - parse_option.offset = payload_offset; + None => {} } - let frame: Frame = Frame::from_bytes(&packet, parse_option); - if filter_packet(&frame, &capture_options) { - let packet_frame = PacketFrame::from_nex_frame(&frame); - frames.push(packet_frame); - /* match msg_tx.send(packet_frame) { - Ok(_) => {} - Err(_) => {} - } */ - } - } - Err(_) => {} - } - match stop.lock() { - Ok(stop) => { - if *stop { + if start_time.elapsed() >= capture_options.capture_timeout { break; } } - Err(_) => {} - } - if Instant::now().duration_since(start_time) > capture_options.capture_timeout { - break; } } frames -} */ +} fn filter_packet(frame: &Frame, capture_options: &PacketCaptureOptions) -> bool { if let Some(datalink) = &frame.datalink { @@ -364,10 +265,7 @@ fn filter_ether_type(ether_type: EtherType, capture_options: &PacketCaptureOptio } } -fn filter_ip_protocol( - protocol: IpNextLevelProtocol, - capture_options: &PacketCaptureOptions, -) -> bool { +fn filter_ip_protocol(protocol: IpNextProtocol, capture_options: &PacketCaptureOptions) -> bool { if capture_options.ip_protocols.len() == 0 || capture_options.ip_protocols.contains(&protocol) { return true; } else { diff --git a/src/cli/host.rs b/src/cli/host.rs new file mode 100644 index 0000000..23285d8 --- /dev/null +++ b/src/cli/host.rs @@ -0,0 +1,90 @@ +use anyhow::{Result, Context}; +use std::{net::IpAddr, path::Path}; +use ipnet::IpNet; +use std::fs; +use crate::endpoint::Host; + +/// Resolve one target specification line (CIDR / IP / hostname) +async fn expand_one_target(t: &str) -> Result> { + let mut out = Vec::new(); + let resolver = crate::dns::resolver::get_resolver()?; + + // CIDR + if let Ok(net) = t.parse::() { + for ip in net.hosts() { + out.push(Host::new(ip)); + } + return Ok(out); + } + + // IP + if let Ok(ip) = t.parse::() { + out.push(Host::new(ip)); + return Ok(out); + } + + // Hostname + let ips = resolver.lookup_ip(t).await.with_context(|| format!("resolve {t}"))?; + for ip in ips { + out.push(Host::with_hostname(ip, t.to_string())); + } + Ok(out) +} + +/// Expand targets from a file (each line: CIDR / IP / hostname / @file) +async fn expand_file(path: &Path) -> Result> { + let text = fs::read_to_string(path) + .with_context(|| format!("read target list file {}", path.display()))?; + + // Normalize lines and prepare for recursive processing + let mut hosts = Vec::new(); + let mut nested_inputs = Vec::new(); + + for line in text.lines() { + let s = line.trim(); + if s.is_empty() || s.starts_with('#') { continue; } // Skip empty lines/comments + nested_inputs.push(s.to_string()); + } + + // Recursively interpret each entry in the file + for entry in nested_inputs { + let nested = expand_one_target(&entry).await?; + hosts.extend(nested); + } + + Ok(hosts) +} + +/// Parse target specifications (CIDR / IP / hostname / @file / existing file path) +pub async fn parse_target_hosts(inputs: &[String]) -> Result> { + let mut out = Vec::new(); + + for raw in inputs { + let s = raw.trim(); + if s.is_empty() { continue; } + + // 1. Check if it's a file (with '@' hint or existing file path) + let (is_file_hint, path_str) = if let Some(stripped) = s.strip_prefix('@') { + (true, stripped) + } else { + (false, s) + }; + + let path = Path::new(path_str); + if is_file_hint || path.is_file() { + // Interpret as file + let hosts = expand_file(path).await?; + out.extend(hosts); + continue; + } + + // 2. Interpret as regular target + let hosts = expand_one_target(s).await?; + out.extend(hosts); + } + + // Sort by IP & remove duplicates + out.sort_by_key(|e| e.ip); + out.dedup_by_key(|e| e.ip); + Ok(out) +} diff --git a/src/cli/mod.rs b/src/cli/mod.rs new file mode 100644 index 0000000..085d4c0 --- /dev/null +++ b/src/cli/mod.rs @@ -0,0 +1,354 @@ +pub mod port; +pub mod host; +pub mod ping; + +use std::path::PathBuf; + +use clap::{command, value_parser, ArgAction, Args, Parser, Subcommand, ValueEnum}; + +use crate::{config::default::{DEFAULT_BASE_TARGET_UDP_PORT, DEFAULT_PORTS_CONCURRENCY}, endpoint::TransportProtocol, protocol::Protocol}; + +/// nrev - Fast Network Mapper +#[derive(Parser, Debug)] +#[command(author, version, about = "nrev - Cross-platform Network Mapper\nhttps://github.com/shellrow/nrev", long_about = None)] +pub struct Cli { + /// Global log level + #[arg(long, default_value = "info")] + pub log_level: LogLevel, + + /// Log to file (in addition to stdout) + #[arg(long, action = ArgAction::SetTrue, default_value_t = false)] + pub log_file: bool, + + /// Log file path (default: ~/.nrev/logs/nrev.log) + #[arg(long, value_name = "FILE", value_parser = value_parser!(PathBuf))] + pub log_file_path: Option, + + /// Suppress all log output (only errors are shown) + #[arg(long, action = ArgAction::SetTrue, default_value_t = false)] + pub quiet: bool, + + /// Save output to file (JSON format) + #[arg(short, long, value_name = "FILE", value_parser = value_parser!(PathBuf))] + pub output: Option, + + /// Suppress stdout console output (only save to file if -o is set) + #[arg(long, action = ArgAction::SetTrue, default_value_t = false)] + pub no_stdout: bool, + + /// Subcommands + #[command(subcommand)] + pub command: Command, +} + +/// Log level +#[derive(Copy, Clone, Debug, ValueEnum, Eq, PartialEq)] +pub enum LogLevel { + Error, + Warn, + Info, + Debug, + Trace, +} + +impl LogLevel { + /// Convert to `tracing::Level` + pub fn to_level_filter(&self) -> tracing::Level { + match self { + LogLevel::Error => tracing::Level::ERROR, + LogLevel::Warn => tracing::Level::WARN, + LogLevel::Info => tracing::Level::INFO, + LogLevel::Debug => tracing::Level::DEBUG, + LogLevel::Trace => tracing::Level::TRACE, + } + } +} + +/// Subcommands +#[derive(Subcommand, Debug)] +pub enum Command { + /// Scan ports on the target(s) (TCP/QUIC) + Port(PortScanArgs), + + /// Discover alive hosts (ICMP/UDP/TCP etc.) + Host(HostScanArgs), + + /// Simple ping (ICMP/UDP/TCP) + Ping(PingArgs), + + /// Traceroute (UDP) + Trace(TraceArgs), + + /// Neighbor discovery (ARP/NDP) + Nei(NeighborArgs), + + /// Subdomain enumeration + Domain(DomainScanArgs), + + /// Show network interface(s) + Interface(InterfaceArgs), +} + +/// Port scan methods. Default: Connect +#[derive(Copy, Clone, Debug, ValueEnum, Eq, PartialEq)] +pub enum PortScanMethod { Connect, Syn } + +/// Host scan protocols. Default: ICMP +#[derive(Copy, Clone, Debug, ValueEnum, Eq, PartialEq)] +pub enum HostScanProto { Icmp, Udp, Tcp } + +impl HostScanProto { + /// Convert to TransportProtocol (if applicable) + pub fn to_transport(&self) -> Option { + match self { + HostScanProto::Icmp => None, + HostScanProto::Udp => Some(TransportProtocol::Udp), + HostScanProto::Tcp => Some(TransportProtocol::Tcp), + } + } + /// Convert to &str + pub fn as_str(&self) -> &str { + match self { + HostScanProto::Icmp => "icmp", + HostScanProto::Udp => "udp", + HostScanProto::Tcp => "tcp", + } + } +} + +/// Traceroute protocol (currently only UDP is supported) +#[derive(Copy, Clone, Debug, ValueEnum, Eq, PartialEq)] +pub enum TraceProto { Udp } + +impl TraceProto { + /// Convert to &str + pub fn as_str(&self) -> &str { + match self { + TraceProto::Udp => "udp", + } + } + /// Convert to Protocol + pub fn to_protocol(&self) -> Protocol { + match self { + TraceProto::Udp => Protocol::Udp, + } + } +} + +/// Port scan arguments +#[derive(Args, Debug)] +pub struct PortScanArgs { + /// Target IP or hostname + #[arg(required = true)] + pub target: Vec, + + /// Port spec: "top-1000" | "1-1024,80,443" | "22-25" + #[arg(short, long, default_value = "top-1000")] + pub ports: String, + + /// Transport to scan (now tcp only; udp/quic later) + #[arg(long, default_value = "tcp", value_parser = ["tcp","udp","quic"])] + pub proto: String, + + /// Scanning method (default: connect) + #[arg(long, value_enum, default_value_t = PortScanMethod::Connect)] + pub method: PortScanMethod, + + /// Enable service detection (banner/TLS/etc.) + #[arg(short='s', long, default_value_t = false, action=ArgAction::SetTrue)] + pub service_detect: bool, + + /// Enable OS fingerprinting + /// for open ports, send one SYN to collect OS-fingerprint features + #[arg(short='o', long, default_value_t = false, action=ArgAction::SetTrue)] + pub os_detect: bool, + + /// Enable QUIC probing on UDP ports (e.g., 443/udp) + #[arg(long, action=ArgAction::SetTrue)] + pub quic: bool, + + /// SNI for QUIC/TLS probing (defaults to target name) + #[arg(long)] + pub sni: Option, + + /// Network interface name to bind + #[arg(long)] + pub interface: Option, + + /// Concurrency (tasks) + #[arg(long, default_value_t = DEFAULT_PORTS_CONCURRENCY)] + pub concurrency: usize, + + /// Base connect timeout in ms (auto-adapted by RTT) + #[arg(long, value_parser = value_parser!(u64).range(1..=10_000))] + pub connect_timeout_ms: Option, + + /// Read timeout in ms (auto-adapted by RTT) + #[arg(long, value_parser = value_parser!(u64).range(1..=10_000))] + pub read_timeout_ms: Option, + + /// Wait time after last send (ms) + #[arg(short='w', long, value_parser = value_parser!(u64).range(10..=5000))] + pub wait_ms: Option, + + /// Task timeout in ms + #[arg(long, default_value_t = 30000, value_parser = value_parser!(u64).range(1..=60_000))] + pub task_timeout_ms: u64, + + /// Scan ports in user-specified order (default is randomized) + #[arg(long, action=ArgAction::SetTrue)] + pub ordered: bool, + + /// Skip initial ping + #[arg(long, action=ArgAction::SetTrue)] + pub no_ping: bool, +} + +/// Host scan arguments +#[derive(Args, Debug)] +pub struct HostScanArgs { + /// Targets (CIDR, range, or list). + #[arg(required = true)] + pub target: Vec, + + /// Protocol to use (default: ICMP) + #[arg(long, value_enum, default_value_t = HostScanProto::Icmp)] + pub proto: HostScanProto, + + /// Port spec: "80" | "80,443" | "22-25" + #[arg(short, long, default_value = "80")] + pub ports: String, + + /// Wait time after last send (ms) + #[arg(short='w', long, default_value_t = 300, value_parser = value_parser!(u64).range(10..=5000))] + pub wait_ms: u64, + + /// Timeout per probe (ms) + #[arg(long, default_value_t = 600, value_parser = value_parser!(u64).range(50..=5000))] + pub timeout_ms: u64, + + /// Network interface name to bind + #[arg(long)] + pub interface: Option, + + /// Concurrency (in-flight probes) + #[arg(long, default_value_t = 512)] + pub concurrency: usize, + + /// Scan hosts in user-specified order (default is randomized) + #[arg(long, action=ArgAction::SetTrue)] + pub ordered: bool, +} + +/// Simple ping arguments +#[derive(Args, Debug)] +pub struct PingArgs { + /// Target IP or hostname + #[arg(required = true)] + pub target: String, + + /// Protocol to use (default: ICMP) + #[arg(long, value_enum, default_value_t = Protocol::Icmp)] + pub proto: Protocol, + + /// Target port + #[arg(short, long, default_value_t = 80)] + pub port: u16, + + /// Number of probes + #[arg(short, long, default_value_t = 4, value_parser = value_parser!(u32).range(1..=10_000))] + pub count: u32, + + /// Interval between probes (ms) + #[arg(short, long, default_value_t = 1000)] + pub interval_ms: u64, + + /// Per-probe timeout (ms) + #[arg(long, default_value_t = 1000)] + pub timeout_ms: u64, + + /// Network interface name to bind + #[arg(long)] + pub interface: Option, +} + + +/// Traceroute arguments +#[derive(Args, Debug)] +pub struct TraceArgs { + /// Target host or IP + #[arg(required = true)] + pub target: String, + + /// Protocol + #[arg(long, value_enum, default_value_t = TraceProto::Udp)] + pub proto: TraceProto, + + /// Destination port (for UDP) + #[arg(long, default_value_t = DEFAULT_BASE_TARGET_UDP_PORT)] + pub port: u16, + + /// Max TTL/hops + #[arg(long, default_value_t = 64, value_parser = value_parser!(u8).range(1..=255))] + pub max_hops: u8, + + /// Interval between probes (ms) + #[arg(short, long, default_value_t = 1000)] + pub interval_ms: u64, + + /// Per-hop timeout (ms) + #[arg(long, default_value_t = 1000)] + pub timeout_ms: u64, + + /// Network interface name to bind + #[arg(long)] + pub interface: Option, +} + +/// Neighbor discovery arguments +#[derive(Args, Debug)] +pub struct NeighborArgs { + /// Target IP (IPv4 -> ARP, IPv6 -> NDP). + #[arg(required = true)] + pub target: String, + + /// Network interface name to bind + #[arg(short='i', long)] + pub interface: Option, + + /// Timeout waiting for replies (ms) + #[arg(long, default_value_t = 500)] + pub timeout_ms: u64, +} + +/// Subdomain scan arguments +#[derive(Args, Debug)] +pub struct DomainScanArgs { + /// Base domain (e.g., example.com) + #[arg(required = true)] + pub domain: String, + + /// Wordlist path + #[arg(short, long)] + pub wordlist: Option, + + /// Concurrency + #[arg(long, default_value_t = 256)] + pub concurrency: usize, + + /// Total scan timeout (ms) + #[arg(long, default_value_t = 30000)] + pub timeout_ms: u64, + + /// Per-lookup timeout (ms) + #[arg(long, default_value_t = 2000)] + pub resolve_timeout_ms: u64, +} + +/// Network interface arguments +#[derive(Args, Debug)] +pub struct InterfaceArgs { + /// Show all interfaces + #[arg(short, long, action=ArgAction::SetTrue)] + pub all: bool, +} diff --git a/src/cli/ping.rs b/src/cli/ping.rs new file mode 100644 index 0000000..c7841a3 --- /dev/null +++ b/src/cli/ping.rs @@ -0,0 +1,21 @@ +use std::net::IpAddr; + +use anyhow::{Result, Context}; +use crate::endpoint::Host; + +/// Parse a single target host (IP or hostname) +pub async fn parse_target_host(host_str: &str) -> Result { + let resolver = crate::dns::resolver::get_resolver()?; + match host_str.parse::() { + Ok(ip) => Ok(Host::new(ip)), + Err(_) => { + let ips = resolver.lookup_ip(host_str).await + .with_context(|| format!("resolve {host_str}"))?; + // If multiple IPs are returned, use the first one (ips: LookupIp) + for ip in ips { + return Ok(Host::with_hostname(ip, host_str.to_string())); + } + Err(anyhow::anyhow!("no IPs found")) + } + } +} diff --git a/src/cli/port.rs b/src/cli/port.rs new file mode 100644 index 0000000..24f6db7 --- /dev/null +++ b/src/cli/port.rs @@ -0,0 +1,32 @@ +use anyhow::{Result, bail}; +use std::collections::BTreeSet; +use crate::endpoint::{Port, TransportProtocol}; + +/// Get top N ports from the default port list +fn top_ports(n: usize) -> Vec { + let top_ports: Vec = crate::db::port::get_default_ports(); + top_ports.into_iter().take(n).collect() +} + +/// Parse port specification string into a list of ports +pub fn parse_ports(spec: &str, tr: TransportProtocol) -> Result> { + let mut set = BTreeSet::new(); + + if let Some(nstr) = spec.strip_prefix("top-") { + let n: usize = nstr.parse()?; + for p in top_ports(n) { set.insert(Port::new(p, tr)); } + } else { + for part in spec.split(',').map(|s| s.trim()).filter(|s| !s.is_empty()) { + if let Some((a,b)) = part.split_once('-') { + let start: u16 = a.parse()?; + let end: u16 = b.parse()?; + if start > end { bail!("invalid range: {part}"); } + for p in start..=end { set.insert(Port::new(p, tr)); } + } else { + let p: u16 = part.parse()?; + set.insert(Port::new(p, tr)); + } + } + } + Ok(set.into_iter().collect()) +} diff --git a/src/cmd/domain.rs b/src/cmd/domain.rs new file mode 100644 index 0000000..cf6edbb --- /dev/null +++ b/src/cmd/domain.rs @@ -0,0 +1,38 @@ +use std::{path::PathBuf, time::Duration}; + +use anyhow::Result; +use crate::{cli::DomainScanArgs, util::json::{save_json_output, JsonStyle}}; + +/// Run subdomain scan +pub async fn run(args: DomainScanArgs, no_stdout: bool, output: Option) -> Result<()> { + let resolve_timeout = Duration::from_millis(args.resolve_timeout_ms); + let base = crate::dns::lookup_domain(&args.domain, resolve_timeout).await; + let settings = crate::dns::probe::DomainScanSetting { + base_domain: base.name.clone(), + word_list: if let Some(wl_path) = args.wordlist { + let content = std::fs::read_to_string(wl_path)?; + content.lines().map(|s| s.trim().to_string()).filter(|s| !s.is_empty()).collect() + } else { + crate::db::domain::get_subdomain_wordlist() + }, + timeout: Duration::from_millis(args.timeout_ms), + resolve_timeout: resolve_timeout, + concurrent_limit: args.concurrency, + }; + let scanner = crate::dns::probe::DomainScanner::new(settings); + let result = scanner.run().await?; + if !no_stdout { + crate::output::domain::print_domain_tree(&base, &result); + } + if let Some(path) = &output { + match save_json_output(&result, path, JsonStyle::Pretty) { + Ok(_) => { + if !no_stdout { + tracing::info!("JSON output saved to {}", path.display()); + } + }, + Err(e) => tracing::error!("Failed to save JSON output: {}", e), + } + } + Ok(()) +} diff --git a/src/cmd/host.rs b/src/cmd/host.rs new file mode 100644 index 0000000..e0001ec --- /dev/null +++ b/src/cmd/host.rs @@ -0,0 +1,84 @@ +use std::{path::PathBuf, time::Duration}; +use rand::seq::SliceRandom; +use rand::thread_rng; +use anyhow::Result; +use crate::{cli::{HostScanArgs, HostScanProto}, endpoint::{Endpoint, Host, Port, TransportProtocol}, output::ScanResult, scan::HostScanner, util::json::{save_json_output, JsonStyle}}; +use crate::probe::ProbeSetting; + +/// Run host scan +pub async fn run(args: HostScanArgs, no_stdout: bool, output: Option) -> Result<()> { + let mut target_hosts: Vec = crate::cli::host::parse_target_hosts(&args.target).await?; + if target_hosts.is_empty() { anyhow::bail!("no targets resolved"); } + + let mut ports: Vec = Vec::new(); + match args.proto { + HostScanProto::Tcp => { + ports = crate::cli::port::parse_ports(&args.ports, TransportProtocol::Tcp)?; + } + _ => {} + } + + if !args.ordered { + // Randomize the order of targets and ports + target_hosts.shuffle(&mut thread_rng()); + ports.shuffle(&mut thread_rng()); + } + + let mut target_endpoints: Vec = Vec::new(); + + for host in target_hosts { + let mut endpoint = Endpoint::new(host.ip); + endpoint.hostname = host.hostname; + for port in &ports { + endpoint.upsert_port(port.clone()); + } + target_endpoints.push(endpoint); + } + + let interface: netdev::Interface = if let Some(if_name) = args.interface { + match crate::interface::get_interface_by_name(if_name.to_string()) { + Some(iface) => iface, + None => anyhow::bail!("interface not found"), + } + } else { + match netdev::get_default_interface() { + Ok(iface) => iface, + Err(_) => anyhow::bail!("failed to get default interface"), + } + }; + + let probe_setting = ProbeSetting { + if_index: interface.index, + target_endpoints: target_endpoints, + host_concurrency: args.concurrency, + port_concurrency: args.concurrency, + task_timeout: Duration::from_secs(30), + connect_timeout: Duration::from_millis(args.timeout_ms), + wait_time: Duration::from_millis(args.wait_ms), + send_rate: Duration::from_millis(1), + }; + + let host_scanner = HostScanner::new(probe_setting.clone(), args.proto); + if !probe_setting.target_endpoints.is_empty() { + tracing::info!("Starting {} host scan. Target: {} host(s), {} port(s)", args.proto.as_str().to_uppercase(), probe_setting.target_endpoints.len(), probe_setting.target_endpoints[0].ports.len()); + } + let mut hostscan_result: ScanResult = host_scanner.run().await?; + hostscan_result.sort_endpoints(); + tracing::info!("{} Host scan completed in {:?}", args.proto.as_str().to_uppercase(), hostscan_result.scan_time); + + // Print result as a tree + if !no_stdout { + crate::output::host::print_report_tree(&hostscan_result); + } + if let Some(path) = &output { + match save_json_output(&hostscan_result, path, JsonStyle::Pretty) { + Ok(_) => { + if !no_stdout { + tracing::info!("JSON output saved to {}", path.display()); + } + }, + Err(e) => tracing::error!("Failed to save JSON output: {}", e), + } + } + Ok(()) +} diff --git a/src/cmd/interface.rs b/src/cmd/interface.rs new file mode 100644 index 0000000..17d8f8a --- /dev/null +++ b/src/cmd/interface.rs @@ -0,0 +1,23 @@ +use netdev::Interface; +use anyhow::Result; +use crate::cli::InterfaceArgs; + +/// Show network interfaces +pub fn show(args: &InterfaceArgs) -> Result<()> { + let ifaces: Vec = if args.all { + // Show all interfaces + let ifaces = netdev::get_interfaces(); + ifaces + } else { + // Show default interface + let ifaces = match netdev::get_default_interface() { + Ok(iface) => vec![iface], + Err(e) => { + return Err(anyhow::anyhow!("Failed to get default interface: {}", e)); + } + }; + ifaces + }; + crate::output::interface::print_interface_tree(&ifaces); + Ok(()) +} diff --git a/src/cmd/mod.rs b/src/cmd/mod.rs new file mode 100644 index 0000000..cef52d8 --- /dev/null +++ b/src/cmd/mod.rs @@ -0,0 +1,7 @@ +pub mod port; +pub mod host; +pub mod ping; +pub mod trace; +pub mod nei; +pub mod domain; +pub mod interface; diff --git a/src/cmd/nei.rs b/src/cmd/nei.rs new file mode 100644 index 0000000..f28ea0e --- /dev/null +++ b/src/cmd/nei.rs @@ -0,0 +1,64 @@ +use std::{net::IpAddr, path::PathBuf, time::Duration}; + +use crate::{cli::NeighborArgs, endpoint::Host, nei::NeighborDiscoveryResult, util::json::{save_json_output, JsonStyle}}; +use anyhow::Result; + +/// Run neighbor discovery (ARP for IPv4, NDP for IPv6) +pub async fn run(args: NeighborArgs, no_stdout: bool, output: Option) -> Result<()> { + let interface: netdev::Interface = if let Some(if_name) = args.interface { + match crate::interface::get_interface_by_name(if_name.to_string()) { + Some(iface) => iface, + None => anyhow::bail!("interface not found"), + } + } else { + match netdev::get_default_interface() { + Ok(iface) => iface, + Err(_) => anyhow::bail!("failed to get default interface"), + } + }; + let dst_host: Host = crate::cli::ping::parse_target_host(&args.target).await?; + let nd_result: NeighborDiscoveryResult = match dst_host.ip { + IpAddr::V4(ipv4) => { + let recv_timeout = Duration::from_millis(args.timeout_ms); + let mut arp_result = crate::nei::arp::send_arp(ipv4, &interface, recv_timeout).await?; + match dst_host.hostname { + Some(hostname) => { + arp_result.hostname = Some(hostname); + }, + None => { + let timeout = Duration::from_millis(200); + arp_result.hostname = crate::dns::reverse_lookup(IpAddr::V4(ipv4), timeout).await; + }, + } + arp_result + } + IpAddr::V6(ipv6) => { + let recv_timeout = Duration::from_millis(args.timeout_ms); + let mut ndp_result = crate::nei::ndp::send_ndp(ipv6, &interface, recv_timeout).await?; + match dst_host.hostname { + Some(hostname) => { + ndp_result.hostname = Some(hostname); + }, + None => { + let timeout = Duration::from_millis(200); + ndp_result.hostname = crate::dns::reverse_lookup(IpAddr::V6(ipv6), timeout).await; + }, + } + ndp_result + } + }; + if !no_stdout { + crate::output::nei::print_neighbor_tree(&[nd_result.clone()]); + } + if let Some(path) = &output { + match save_json_output(&nd_result, path, JsonStyle::Pretty) { + Ok(_) => { + if !no_stdout { + tracing::info!("JSON output saved to {}", path.display()); + } + }, + Err(e) => tracing::error!("Failed to save JSON output: {}", e), + } + } + Ok(()) +} diff --git a/src/cmd/ping.rs b/src/cmd/ping.rs new file mode 100644 index 0000000..b0570e8 --- /dev/null +++ b/src/cmd/ping.rs @@ -0,0 +1,48 @@ +use std::{path::PathBuf, time::Duration}; + +use crate::{cli::PingArgs, endpoint::Host, ping::{pinger::Pinger, setting::PingSetting}, protocol::Protocol, util::json::{save_json_output, JsonStyle}}; +use anyhow::Result; + +/// Run ping command +pub async fn run(args: PingArgs, no_stdout: bool, output: Option) -> Result<()> { + let interface: netdev::Interface = if let Some(if_name) = args.interface { + match crate::interface::get_interface_by_name(if_name.to_string()) { + Some(iface) => iface, + None => anyhow::bail!("interface not found"), + } + } else { + match netdev::get_default_interface() { + Ok(iface) => iface, + Err(_) => anyhow::bail!("failed to get default interface"), + } + }; + let dst_host: Host = crate::cli::ping::parse_target_host(&args.target).await?; + let mut ping_setting: PingSetting = match args.proto { + Protocol::Icmp => PingSetting::icmp_ping(&interface, dst_host, args.count)?, + Protocol::Tcp => PingSetting::tcp_ping(&interface, dst_host, args.port, args.count)?, + Protocol::Udp => PingSetting::udp_ping(&interface, dst_host, args.count)?, + _ => { + anyhow::bail!("Unsupported protocol"); + } + }; + ping_setting.send_rate = Duration::from_millis(args.interval_ms); + ping_setting.receive_timeout = Duration::from_millis(args.timeout_ms); + + let pinger = Pinger::new(ping_setting); + tracing::info!("Pinging {} with {}...", args.target, args.proto.as_str().to_uppercase()); + let ping_result = pinger.run().await?; + if !no_stdout { + crate::output::ping::print_ping_tree(&ping_result); + } + if let Some(path) = &output { + match save_json_output(&ping_result, path, JsonStyle::Pretty) { + Ok(_) => { + if !no_stdout { + tracing::info!("JSON output saved to {}", path.display()); + } + }, + Err(e) => tracing::error!("Failed to save JSON output: {}", e), + } + } + Ok(()) +} diff --git a/src/cmd/port.rs b/src/cmd/port.rs new file mode 100644 index 0000000..9697e69 --- /dev/null +++ b/src/cmd/port.rs @@ -0,0 +1,198 @@ +use std::{path::PathBuf, time::Duration}; +use rand::seq::SliceRandom; +use rand::thread_rng; +use anyhow::Result; +use crate::{cli::PortScanArgs, endpoint::{Endpoint, Host, Port, PortState, TransportProtocol}, output::{port::{print_report_tree, ScanReport}, ScanResult}, probe::ProbeSetting, scan::PortScanner, service::{ServiceDetector, ServiceProbeConfig}, util::json::{save_json_output, JsonStyle}}; + +/// Run port scan +pub async fn run(args: PortScanArgs, no_stdout: bool, output: Option) -> Result<()> { + let mut rep = ScanReport::new(); + // Parse target hosts + let target_hosts: Vec = crate::cli::host::parse_target_hosts(&args.target).await?; + if target_hosts.is_empty() { anyhow::bail!("no targets resolved"); } + let first_host = target_hosts[0].clone(); + // Parse transport protocol + let transport: TransportProtocol = TransportProtocol::from_str(&args.proto).ok_or_else(|| anyhow::anyhow!("invalid transport"))?; + // Parse ports + let mut ports: Vec = crate::cli::port::parse_ports(&args.ports, transport)?; + + if !args.ordered { + // Randomize the order of ports + ports.shuffle(&mut thread_rng()); + } + + // Create target endpoints from hosts and ports + let mut target_endpoints: Vec = Vec::new(); + + for host in target_hosts { + let mut endpoint = Endpoint::new(host.ip); + endpoint.hostname = host.hostname; + for port in &ports { + endpoint.upsert_port(port.clone()); + } + target_endpoints.push(endpoint); + } + + // Get network interface + let interface: netdev::Interface = if let Some(if_name) = args.interface { + match crate::interface::get_interface_by_name(if_name.to_string()) { + Some(iface) => iface, + None => anyhow::bail!("interface not found"), + } + } else { + match netdev::get_default_interface() { + Ok(iface) => iface, + Err(_) => anyhow::bail!("failed to get default interface"), + } + }; + + // Initial ping to check reachability and measure latency + let initial_rtt = if args.no_ping { + Duration::from_millis(200) + } else { + match crate::ping::initial_ping(&interface, &first_host, Some(ports[0].number)).await { + Ok(rtt) => rtt, + Err(e) => { + tracing::warn!("Initial ping failed: {}. Proceeding with default RTT.", e); + Duration::from_millis(200) // Default RTT if ping fails + } + } + }; + + let conn_timeout = if let Some(ct) = args.connect_timeout_ms { + Duration::from_millis(ct) + } else { + // adapt timeout based on RTT + let adapted = (initial_rtt.as_millis() as f64 * 1.5) as u64; + Duration::from_millis(adapted.clamp(50, 5000)) + }; + + let wait_time = if let Some(wt) = args.wait_ms { + Duration::from_millis(wt) + } else { + // adapt wait time based on RTT + let adapted = (initial_rtt.as_millis() as f64 * 2.0) as u64; + Duration::from_millis(adapted.clamp(100, 5000)) + }; + + // Create probe setting + let probe_setting = ProbeSetting { + if_index: interface.index, + target_endpoints: target_endpoints, + host_concurrency: args.concurrency, + port_concurrency: args.concurrency, + task_timeout: Duration::from_millis(args.task_timeout_ms), + connect_timeout: conn_timeout, + wait_time: wait_time, + send_rate: Duration::from_millis(1), + }; + + let transport = TransportProtocol::from_str(&args.proto).unwrap(); + + if !probe_setting.target_endpoints.is_empty() { + tracing::info!("Starting {} port scan on {} host(s), {} port(s)", args.proto.to_uppercase(), probe_setting.target_endpoints.len(), probe_setting.target_endpoints[0].ports.len()); + } + + // Run port scan + let port_scanner = PortScanner::new(probe_setting.clone(), transport, args.method); + let portscan_result: ScanResult = port_scanner.run().await?; + tracing::info!("{} Port scan completed in {:?}", args.proto.to_uppercase(), portscan_result.scan_time); + let mut endpoint_results = portscan_result.endpoints.clone(); + + let mut active_endpoints = portscan_result.get_active_endpoints(); + + if active_endpoints.is_empty() { + tracing::info!("No open ports found"); + } + + rep.apply_port_scan(portscan_result); + + if transport != TransportProtocol::Quic && args.quic { + let port_scanner = PortScanner::new(probe_setting.clone(), TransportProtocol::Quic, args.method); + let quic_portscan_result = port_scanner.run().await?; + endpoint_results.extend(quic_portscan_result.endpoints.clone()); + let active_quic_endpoints = quic_portscan_result.get_active_endpoints(); + // Merge active QUIC endpoints with active TCP endpoints + active_endpoints.extend(active_quic_endpoints); + + rep.apply_port_scan(quic_portscan_result); + } + + for endpoint in &endpoint_results { + let mut open_ports: Vec = Vec::new(); + for (port, port_result) in &endpoint.ports { + if port_result.state == PortState::Open { + open_ports.push(port.number); + } + } + tracing::info!("{}: Open ports: {:?}", endpoint.ip, open_ports); + } + + if args.os_detect { + // OS detection + let os_probe_setting = ProbeSetting { + target_endpoints: active_endpoints.clone(), + if_index: probe_setting.if_index, + host_concurrency: probe_setting.host_concurrency, + port_concurrency: probe_setting.port_concurrency, + task_timeout: probe_setting.task_timeout, + connect_timeout: probe_setting.connect_timeout, + wait_time: probe_setting.wait_time, + send_rate: probe_setting.send_rate, + }; + tracing::info!("Starting OS detection on {} host(s)", os_probe_setting.target_endpoints.len()); + let os_detector = crate::os::OsDetector::new(os_probe_setting); + let os_probe_result = os_detector.run().await?; + tracing::info!("OS detection completed in {:?}", os_probe_result.probe_time); + if os_probe_result.endpoints.len() == 0 { + tracing::info!("No OS detected"); + } + for endpoint in &os_probe_result.endpoints { + tracing::debug!("[OS] Guess {}: {:?}", endpoint.ip, endpoint.cpes); + } + + rep.apply_os_probe(os_probe_result); + } + + if args.service_detect { + // service detection + let service_probe_setting = ServiceProbeConfig { + timeout: Duration::from_secs(2), + max_concurrency: args.concurrency, + max_read_size: 1024 * 1024, + sni: true, + skip_cert_verify: true, + }; + + let service_detector = ServiceDetector::new(service_probe_setting); + if !active_endpoints.is_empty() { + tracing::info!("Starting service detection on {} host(s), {} port(s)", active_endpoints.len(), active_endpoints[0].ports.len()); + } + + let service_result = service_detector.run_service_detection(active_endpoints).await?; + tracing::info!("Service detection completed in {:?}", service_result.scan_time); + + service_result.results.iter().for_each(|result| { + tracing::debug!("[SERVICE] {}:{} {} {} {:?} {:?}", result.ip, result.port, result.transport.as_str().to_uppercase(), result.probe_id.as_str(), result.service_info.banner, result.service_info.cpes); + }); + + rep.apply_service_detection(service_result); + } + + rep.finish(); + + if !no_stdout { + print_report_tree(&rep); + } + if let Some(path) = &output { + match save_json_output(&rep, path, JsonStyle::Pretty) { + Ok(_) => { + if !no_stdout { + tracing::info!("JSON output saved to {}", path.display()); + } + }, + Err(e) => tracing::error!("Failed to save JSON output: {}", e), + } + } + Ok(()) +} diff --git a/src/cmd/trace.rs b/src/cmd/trace.rs new file mode 100644 index 0000000..c7a5940 --- /dev/null +++ b/src/cmd/trace.rs @@ -0,0 +1,49 @@ +use std::{path::PathBuf, time::Duration}; + +use crate::{cli::TraceArgs, endpoint::Host, protocol::Protocol, trace::{TraceSetting, Tracer}, util::json::{save_json_output, JsonStyle}}; +use anyhow::Result; + +/// Run traceroute +pub async fn run(args: TraceArgs, no_stdout: bool, output: Option) -> Result<()> { + let interface: netdev::Interface = if let Some(if_name) = args.interface { + match crate::interface::get_interface_by_name(if_name.to_string()) { + Some(iface) => iface, + None => anyhow::bail!("interface not found"), + } + } else { + match netdev::get_default_interface() { + Ok(iface) => iface, + Err(_) => anyhow::bail!("failed to get default interface"), + } + }; + let dst_host: Host = crate::cli::ping::parse_target_host(&args.target).await?; + let mut trace_setting: TraceSetting = match args.proto.to_protocol() { + Protocol::Udp => TraceSetting::udp_trace(&interface, &dst_host)?, + _ => { + anyhow::bail!("Unsupported protocol"); + } + }; + trace_setting.dst_port = Some(args.port); + trace_setting.hop_limit = args.max_hops; + trace_setting.send_rate = Duration::from_millis(args.interval_ms); + trace_setting.receive_timeout = Duration::from_millis(args.timeout_ms); + + let tracer = Tracer::new(trace_setting); + tracing::info!("Trace route to {} with {}...", args.target, args.proto.as_str().to_uppercase()); + let trace_result = tracer.run().await?; + tracing::info!("Trace complete."); + if !no_stdout { + crate::output::trace::print_trace_tree(&trace_result, dst_host); + } + if let Some(path) = &output { + match save_json_output(&trace_result, path, JsonStyle::Pretty) { + Ok(_) => { + if !no_stdout { + tracing::info!("JSON output saved to {}", path.display()); + } + }, + Err(e) => tracing::error!("Failed to save JSON output: {}", e), + } + } + Ok(()) +} diff --git a/src/config/db.rs b/src/config/db.rs new file mode 100644 index 0000000..a3fb18d --- /dev/null +++ b/src/config/db.rs @@ -0,0 +1,18 @@ +/// Default port list +pub const DEFAULT_PORTS_JSON: &str = include_str!("../../resources/nrev-default-ports.json"); +/// OS class by TTL values +pub const OS_CLASS_TTL_JSON: &str = include_str!("../../resources/nrev-os-class-ttl.json"); +/// Well-known ports +pub const WELLKNOWN_PORTS_JSON: &str = include_str!("../../resources/nrev-wellknown-ports.json"); +/// OS database and fingerprints +pub const OS_DB_JSON: &str = include_str!("../../resources/nrev-os-db.json"); +/// Service database and fingerprints +pub const SERVICE_DB_JSON: &str = include_str!("../../resources/nrev-service-db.json"); +/// probe types and definitions +pub const SERVICE_PROBES_JSON: &str = include_str!("../../resources/nrev-service-probes.json"); +/// Port and probe type mappings +pub const PORT_PROBES_JSON: &str = include_str!("../../resources/nrev-port-probes.json"); +/// TLS OID mappings +pub const TLS_OID_MAP_JSON: &str = include_str!("../../resources/nrev-tls-oid-map.json"); +/// Top subdomain words for subdomain scanning +pub const TOP_SUBDOMAIN_WORDS_JSON: &str = include_str!("../../resources/nrev-top-subdomains.json"); diff --git a/src/config/default.rs b/src/config/default.rs new file mode 100644 index 0000000..bf9be71 --- /dev/null +++ b/src/config/default.rs @@ -0,0 +1,14 @@ +/// Default local TCP port for sending probes +pub const DEFAULT_LOCAL_TCP_PORT: u16 = 44322; +/// Default local UDP port for sending probes +pub const DEFAULT_LOCAL_UDP_PORT: u16 = 53445; +/// Default base target UDP port for traceroute or ping +pub const DEFAULT_BASE_TARGET_UDP_PORT: u16 = 33435; +/// Default hop limit (TTL) +pub const DEFAULT_HOP_LIMIT: u8 = 64; +/// Default ping count for ping command +pub const DEFAULT_PING_COUNT: u32 = 4; +/// Default concurrency for host scanning +pub const DEFAULT_HOSTS_CONCURRENCY: usize = 50; +/// Default concurrency for port scanning +pub const DEFAULT_PORTS_CONCURRENCY: usize = 100; diff --git a/src/config/mod.rs b/src/config/mod.rs index 46783d2..57f1104 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -1,22 +1,38 @@ -pub const DEFAULT_LOCAL_TCP_PORT: u16 = 44322; -pub const DEFAULT_LOCAL_UDP_PORT: u16 = 53445; -pub const DEFAULT_BASE_TARGET_UDP_PORT: u16 = 33435; -pub const DEFAULT_HOP_LIMIT: u8 = 64; -pub const DEFAULT_PING_COUNT: u32 = 4; -pub const DEFAULT_HOSTS_CONCURRENCY: usize = 50; -pub const DEFAULT_PORTS_CONCURRENCY: usize = 100; -pub const PCAP_WAIT_TIME_MILLIS: u64 = 10; +use std::path::PathBuf; -// Database -pub const DEFAULT_PORTS_BIN: &[u8] = include_bytes!("../../resources/ndb-default-ports.bin"); -pub const HTTP_PORTS_BIN: &[u8] = include_bytes!("../../resources/ndb-http-ports.bin"); -pub const HTTPS_PORTS_BIN: &[u8] = include_bytes!("../../resources/ndb-https-ports.bin"); -pub const OS_FAMILY_FINGERPRINT_BIN: &[u8] = - include_bytes!("../../resources/ndb-os-family-fingerprint.bin"); -pub const OS_TTL_BIN: &[u8] = include_bytes!("../../resources/ndb-os-ttl.bin"); -pub const OS_FAMILY_BIN: &[u8] = include_bytes!("../../resources/ndb-os-family.bin"); -pub const OUI_BIN: &[u8] = include_bytes!("../../resources/ndb-oui.bin"); -pub const OUI_VM_BIN: &[u8] = include_bytes!("../../resources/ndb-oui-vm.bin"); -pub const SUBDOMAIN_BIN: &[u8] = include_bytes!("../../resources/ndb-subdomain.bin"); -pub const TCP_SERVICE_BIN: &[u8] = include_bytes!("../../resources/ndb-tcp-service.bin"); -pub const WELLKNOWN_PORTS_BIN: &[u8] = include_bytes!("../../resources/ndb-wellknown-ports.bin"); +pub mod db; +pub mod default; + +/// User configuration directory name +pub const USER_CONFIG_DIR_NAME: &str = ".nrev"; + +/// Get user configuration directory path, create it if not exists +pub fn get_config_dir_path() -> Option { + match home::home_dir() { + Some(mut path) => { + path.push(USER_CONFIG_DIR_NAME); + if !path.exists() { + match std::fs::create_dir_all(&path) { + Ok(_) => {} + Err(e) => { + tracing::error!("Failed to create config dir: {:?}", e); + return None; + } + } + } + Some(path) + } + None => None, + } +} + +/// Get user configuration file path +pub fn get_user_file_path(file_name: &str) -> Option { + match get_config_dir_path() { + Some(mut path) => { + path.push(file_name); + Some(path) + } + None => None, + } +} diff --git a/src/db/domain.rs b/src/db/domain.rs new file mode 100644 index 0000000..925a2c2 --- /dev/null +++ b/src/db/domain.rs @@ -0,0 +1,6 @@ +use crate::config::db::TOP_SUBDOMAIN_WORDS_JSON; + +/// Get top subdomain wordlist +pub fn get_subdomain_wordlist() -> Vec { + serde_json::from_str(TOP_SUBDOMAIN_WORDS_JSON).unwrap_or_default() +} diff --git a/src/db/mod.rs b/src/db/mod.rs index 508e5b5..61ab9e3 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -1,402 +1,129 @@ -pub mod model; -pub mod tcp_service; -use crate::packet::frame::PacketFrame; -use nex::packet::ethernet::EthernetHeader; - -use crate::config; -use crate::ip; -use std::collections::HashMap; -use std::net::IpAddr; - -pub fn get_oui_detail_map() -> HashMap { - let mut oui_map: HashMap = HashMap::new(); - let ds_oui: Vec = bincode::deserialize(config::OUI_BIN).unwrap_or(vec![]); - for oui in ds_oui { - oui_map.insert(oui.mac_prefix, oui.vendor_name_detail); - } - oui_map -} - -pub fn get_vm_oui_map() -> HashMap { - let mut oui_map: HashMap = HashMap::new(); - let ds_oui: Vec = bincode::deserialize(config::OUI_VM_BIN).unwrap_or(vec![]); - for oui in ds_oui { - oui_map.insert(oui.mac_prefix, oui.vendor_name_detail); - } - oui_map -} - -pub fn get_tcp_map() -> HashMap { - let mut tcp_map: HashMap = HashMap::new(); - let ds_tcp_service: Vec = - bincode::deserialize(config::TCP_SERVICE_BIN).unwrap_or(vec![]); - for port in ds_tcp_service { - tcp_map.insert(port.port, port.service_name); - } - tcp_map -} - -pub fn get_default_ports() -> Vec { - let default_ports: Vec = bincode::deserialize(config::DEFAULT_PORTS_BIN).unwrap_or(vec![]); - default_ports -} - -pub fn get_wellknown_ports() -> Vec { - let wellknown_ports: Vec = - bincode::deserialize(config::WELLKNOWN_PORTS_BIN).unwrap_or(vec![]); - wellknown_ports -} - -pub fn get_http_ports() -> Vec { - let http_ports: Vec = bincode::deserialize(config::HTTP_PORTS_BIN).unwrap_or(vec![]); - http_ports -} - -pub fn get_https_ports() -> Vec { - let https_ports: Vec = bincode::deserialize(config::HTTPS_PORTS_BIN).unwrap_or(vec![]); - https_ports -} - -pub fn get_os_ttl_map() -> HashMap { - let mut os_ttl_map: HashMap = HashMap::new(); - let ds_os_ttl: Vec = bincode::deserialize(config::OS_TTL_BIN).unwrap_or(vec![]); - for os_ttl in ds_os_ttl { - os_ttl_map.insert(os_ttl.initial_ttl, os_ttl.os_description); - } - os_ttl_map -} - -pub fn get_os_ttl_list() -> Vec { - let ds_os_ttl: Vec = bincode::deserialize(config::OS_TTL_BIN).unwrap_or(vec![]); - ds_os_ttl -} - -pub fn get_subdomain() -> Vec { - let subdomain: Vec = bincode::deserialize(config::SUBDOMAIN_BIN).unwrap_or(vec![]); - subdomain -} - -pub fn get_os_family_fingerprints() -> Vec { - let ds_os_fingerprints: Vec = - bincode::deserialize(config::OS_FAMILY_FINGERPRINT_BIN).unwrap_or(vec![]); - ds_os_fingerprints -} - -pub fn get_os_family_list() -> Vec { - let os_families: Vec = bincode::deserialize(config::OS_FAMILY_BIN).unwrap_or(vec![]); - os_families -} - -pub fn is_vm_fingerprint(fingerprint: &model::OsFingerprint) -> bool { - if fingerprint.os_family == "Player".to_string() - && fingerprint.device_type == "specialized".to_string() - { - return true; - } - false -} - -pub fn in_vm_network(ether_header: EthernetHeader) -> bool { - let vm_oui_map: HashMap = get_vm_oui_map(); - let mac = ether_header.source.address(); - if mac.len() > 16 { - let prefix8 = mac[0..8].to_uppercase(); - vm_oui_map.contains_key(&prefix8) - } else { - vm_oui_map.contains_key(&mac) - } -} - -pub fn verify_os_family_fingerprint(fingerprint: &PacketFrame) -> model::OsFamilyFingerprint { - let os_family_list: Vec = get_os_family_list(); - let os_family_fingerprints: Vec = get_os_family_fingerprints(); - let in_vm: bool = if let Some(ether_header) = &fingerprint.ethernet_header { - in_vm_network(ether_header.clone()) - } else { - false - }; - - // 0. Check TTL - let os_ttl_list: Vec = get_os_ttl_list(); - let initial_ttl = if let Some(ipv4_header) = &fingerprint.ipv4_header { - ip::guess_initial_ttl(ipv4_header.ttl) - } else { - if let Some(ipv6_header) = &fingerprint.ipv6_header { - ip::guess_initial_ttl(ipv6_header.hop_limit) - } else { - 0 - } - }; - let mut tcp_window_size = 0; - let mut tcp_options: Vec = vec![]; - if let Some(ref tcp_header) = fingerprint.tcp_header { - tcp_window_size = tcp_header.window; - for option in &tcp_header.options { - tcp_options.push(option.kind.name()); - } - } - let tco_option_pattern = tcp_options.join("-"); - let mut os_ttl_info: model::OsTtl = model::OsTtl { - initial_ttl: initial_ttl, - os_description: String::new(), - os_family: String::new(), - }; - for os_ttl in os_ttl_list { - if os_ttl.initial_ttl == initial_ttl { - os_ttl_info.initial_ttl = os_ttl.initial_ttl; - os_ttl_info.os_description = os_ttl.os_description; - os_ttl_info.os_family = os_ttl.os_family; - } - } - // 1. Select OS Fingerprint that match tcp_window_size and tcp_option_pattern - let mut matched_fingerprints: Vec = vec![]; - for f in &os_family_fingerprints { - let mut window_size_match: bool = false; - let mut option_pattern_match: bool = false; - if f.tcp_window_sizes.contains(&tcp_window_size) { - window_size_match = true; - } - for option_pattern in &f.tcp_option_patterns { - if option_pattern == &tco_option_pattern { - option_pattern_match = true; - } - } - if window_size_match && option_pattern_match { - matched_fingerprints.push(f.clone()); - } - } - if matched_fingerprints.len() == 1 { - return matched_fingerprints[0].clone(); - } else if matched_fingerprints.len() > 1 { - // Check VM Fingerprint - if in_vm { - for f in &matched_fingerprints { - if &f.os_family == "Player" { - let mut vmf = f.clone(); - vmf.os_family = format!("{} (Probably in VM Network)", vmf.os_family); - return vmf; - } - } - } - // Search fingerprint that match general OS Family - matched_fingerprints.reverse(); - for f in &matched_fingerprints { - if os_ttl_info.os_family == f.os_family.to_lowercase() { - return f.clone(); - } - } - for f in matched_fingerprints { - if os_family_list.contains(&f.os_family) { - return f; - } - } - } - // 2. Select OS Fingerprint that match tcp_option_pattern and have most closely tcp_window_size - let mut matched_fingerprints: Vec = vec![]; - for f in os_family_fingerprints { - let mut window_size_match: bool = false; - let mut option_pattern_match: bool = false; - for window_size in &f.tcp_window_sizes { - if tcp_window_size - 100 < *window_size && *window_size < tcp_window_size + 100 { - window_size_match = true; - } - } - for option_pattern in &f.tcp_option_patterns { - if option_pattern == &tco_option_pattern { - option_pattern_match = true; - } - } - if window_size_match && option_pattern_match { - matched_fingerprints.push(f.clone()); - } - } - if matched_fingerprints.len() == 1 { - return matched_fingerprints[0].clone(); - } else if matched_fingerprints.len() > 1 { - // Check VM Fingerprint - if in_vm { - for f in &matched_fingerprints { - if &f.os_family == "Player" { - let mut vmf = f.clone(); - vmf.os_family = format!("{} (Probably in VM network)", vmf.os_family); - return vmf; +pub mod service; +pub mod os; +pub mod port; +pub mod tls; +pub mod oui; +pub mod domain; + +use std::time::{Duration, Instant}; +use futures::StreamExt; +use anyhow::Result; + +/// Initialization function type +type InitFn = fn() -> Result<()>; + +/// Database initialization task +struct DbTask { + name: &'static str, + init: InitFn, +} + +const TASK_TCP_SERVICE: DbTask = DbTask { name: "tcp_service_db", init: || service::init_tcp_service_db() }; +const TASK_UDP_SERVICE: DbTask = DbTask { name: "udp_service_db", init: || service::init_udp_service_db() }; +const TASK_PORT_PROBE : DbTask = DbTask { name: "port_probe_db", init: || service::init_port_probe_db() }; +const TASK_SVC_PROBE : DbTask = DbTask { name: "service_probe_db", init: || service::init_service_probe_db() }; +const TASK_RESP_SIGS : DbTask = DbTask { name: "response_signatures", init: || service::init_response_signatures_db() }; +const TASK_TLS_OID : DbTask = DbTask { name: "tls_oid_map", init: || tls::init_tls_oid_map() }; +const TASK_OS_DB : DbTask = DbTask { name: "os_db", init: || os::init_os_db() }; +const TASK_OUI_DB : DbTask = DbTask { name: "oui_db", init: || oui::init_oui_db() }; + +/// Database initialization result record +#[derive(Debug, Clone)] +pub struct InitRecord { + pub name: &'static str, + pub elapsed: Duration, + pub ok: bool, + pub error: Option, +} + +/// Database initialization report +#[derive(Debug, Clone)] +pub struct InitReport { + pub total: Duration, + pub records: Vec, +} + +/// Database initializer (for once-only initialization) +pub struct DbInitializer { + tasks: Vec<&'static DbTask>, +} + +impl DbInitializer { + /// Create new initializer + pub fn new() -> Self { Self { tasks: Vec::new() } } + /// Add TCP service DB + pub fn with_tcp_services(mut self) -> Self { self.tasks.push(&TASK_TCP_SERVICE); self } + /// Add UDP service DB + pub fn with_udp_services(mut self) -> Self { self.tasks.push(&TASK_UDP_SERVICE); self } + /// Add port probe DB + pub fn with_port_probe(mut self) -> Self { self.tasks.push(&TASK_PORT_PROBE); self } + /// Add service probe DB + pub fn with_service_probe(mut self)-> Self { self.tasks.push(&TASK_SVC_PROBE); self } + /// Add response signatures DB + pub fn with_response_sigs(mut self)-> Self { self.tasks.push(&TASK_RESP_SIGS); self } + /// Add TLS OID map + pub fn with_tls_oids(mut self) -> Self { self.tasks.push(&TASK_TLS_OID); self } + /// Add OS DB + pub fn with_os_db(mut self) -> Self { self.tasks.push(&TASK_OS_DB); self } + /// Add OUI DB + pub fn with_oui_db(mut self) -> Self { self.tasks.push(&TASK_OUI_DB); self } + /// Add all databases + pub fn with_all() -> Self { + Self::new() + .with_tcp_services() + .with_udp_services() + .with_port_probe() + .with_service_probe() + .with_response_sigs() + .with_tls_oids() + .with_os_db() + .with_oui_db() + } + + /// Run initialization tasks, return report + pub async fn init(self) -> InitReport { + use futures::stream; + + // Remove duplicate tasks (even if the same preset is stacked, it will only be done once) + let mut uniq: Vec<&'static DbTask> = Vec::new(); + for t in self.tasks { + if !uniq.iter().any(|u| u.name == t.name) { + uniq.push(t); + } + } + + let uniq_count = uniq.len(); + tracing::debug!("Initializing databases ({} task(s))...", uniq_count); + let t0 = Instant::now(); + + let results = stream::iter(uniq) + .map(|task| async move { + let start = Instant::now(); + let res = (task.init)(); + let ok = res.is_ok(); + let err = res.err().map(|e| e.to_string()); + InitRecord { + name: task.name, + elapsed: start.elapsed(), + ok, + error: err, } - } - } - // Search fingerprint that match general OS Family - matched_fingerprints.reverse(); - for f in &matched_fingerprints { - if os_ttl_info.os_family == f.os_family.to_lowercase() { - return f.clone(); - } - } - for f in matched_fingerprints { - if os_family_list.contains(&f.os_family) { - return f; - } - } - } - // 3. from TTL - return model::OsFamilyFingerprint { - os_family: os_ttl_info.os_family, - tcp_window_sizes: vec![tcp_window_size], - tcp_option_patterns: vec![tco_option_pattern], - }; -} + }) + .buffer_unordered(uniq_count) + .collect::>() + .await; -pub fn get_os_family( - fingerprint: &PacketFrame, - os_family_list: &Vec, - os_family_fingerprints: &Vec, -) -> model::OsFamilyFingerprint { - let in_vm: bool = if let Some(ether_header) = &fingerprint.ethernet_header { - in_vm_network(ether_header.clone()) - } else { - false - }; + let total = t0.elapsed(); - // 0. Check TTL - let os_ttl_list: Vec = get_os_ttl_list(); - let initial_ttl = if let Some(ipv4_header) = &fingerprint.ipv4_header { - ip::guess_initial_ttl(ipv4_header.ttl) - } else { - if let Some(ipv6_header) = &fingerprint.ipv6_header { - ip::guess_initial_ttl(ipv6_header.hop_limit) - } else { - 0 - } - }; - let mut tcp_window_size = 0; - let mut tcp_options: Vec = vec![]; - if let Some(ref tcp_header) = fingerprint.tcp_header { - tcp_window_size = tcp_header.window; - for option in &tcp_header.options { - tcp_options.push(option.kind.name()); - } - } - let tco_option_pattern = tcp_options.join("-"); - let mut os_ttl_info: model::OsTtl = model::OsTtl { - initial_ttl: initial_ttl, - os_description: String::new(), - os_family: String::new(), - }; - for os_ttl in os_ttl_list { - if os_ttl.initial_ttl == initial_ttl { - os_ttl_info.initial_ttl = os_ttl.initial_ttl; - os_ttl_info.os_description = os_ttl.os_description; - os_ttl_info.os_family = os_ttl.os_family; - } - } - // 1. Select OS Fingerprint that match tcp_window_size and tcp_option_pattern - let mut matched_fingerprints: Vec = vec![]; - for f in os_family_fingerprints { - let mut window_size_match: bool = false; - let mut option_pattern_match: bool = false; - if f.tcp_window_sizes.contains(&tcp_window_size) { - window_size_match = true; - } - for option_pattern in &f.tcp_option_patterns { - if option_pattern == &tco_option_pattern { - option_pattern_match = true; + for r in &results { + if r.ok { + tracing::debug!("DB init ok: {} ({:?})", r.name, r.elapsed); + } else { + tracing::error!("DB init failed: {} ({:?}) - {}", r.name, r.elapsed, r.error.as_deref().unwrap_or("?")); } } - if window_size_match && option_pattern_match { - matched_fingerprints.push(f.clone()); - } - } - if matched_fingerprints.len() == 1 { - return matched_fingerprints[0].clone(); - } else if matched_fingerprints.len() > 1 { - // Check VM Fingerprint - if in_vm { - for f in &matched_fingerprints { - if &f.os_family == "Player" { - let mut vmf = f.clone(); - vmf.os_family = format!("{} (Probably in VM Network)", vmf.os_family); - return vmf; - } - } - } - // Search fingerprint that match general OS Family - matched_fingerprints.reverse(); - for f in &matched_fingerprints { - if os_ttl_info.os_family == f.os_family.to_lowercase() { - return f.clone(); - } - } - for f in matched_fingerprints { - if os_family_list.contains(&f.os_family) { - return f; - } - } - } - // 2. Select OS Fingerprint that match tcp_option_pattern and have most closely tcp_window_size - let mut matched_fingerprints: Vec = vec![]; - for f in os_family_fingerprints { - let mut window_size_match: bool = false; - let mut option_pattern_match: bool = false; - for window_size in &f.tcp_window_sizes { - if tcp_window_size - 100 < *window_size && *window_size < tcp_window_size + 100 { - window_size_match = true; - } - } - for option_pattern in &f.tcp_option_patterns { - if option_pattern == &tco_option_pattern { - option_pattern_match = true; - } - } - if window_size_match && option_pattern_match { - matched_fingerprints.push(f.clone()); - } - } - if matched_fingerprints.len() == 1 { - return matched_fingerprints[0].clone(); - } else if matched_fingerprints.len() > 1 { - // Check VM Fingerprint - if in_vm { - for f in &matched_fingerprints { - if &f.os_family == "Player" { - let mut vmf = f.clone(); - vmf.os_family = format!("{} (Probably in VM network)", vmf.os_family); - return vmf; - } - } - } - // Search fingerprint that match general OS Family - matched_fingerprints.reverse(); - for f in &matched_fingerprints { - if os_ttl_info.os_family == f.os_family.to_lowercase() { - return f.clone(); - } - } - for f in matched_fingerprints { - if os_family_list.contains(&f.os_family) { - return f; - } - } - } - // 3. from TTL - return model::OsFamilyFingerprint { - os_family: os_ttl_info.os_family, - tcp_window_sizes: vec![tcp_window_size], - tcp_option_patterns: vec![tco_option_pattern], - }; -} + tracing::debug!("DB init done: {:?} total", total); -// return HashMap -pub fn get_fingerprint_map(fingerprints: &Vec) -> HashMap { - let mut fingerprint_map: HashMap = HashMap::new(); - let os_family_list: Vec = get_os_family_list(); - let os_family_fingerprints: Vec = get_os_family_fingerprints(); - for f in fingerprints { - let os_fingerprint = get_os_family(&f, &os_family_list, &os_family_fingerprints); - if let Some(ipv4_header) = &f.ipv4_header { - fingerprint_map.insert(IpAddr::V4(ipv4_header.source), os_fingerprint.os_family); - } else { - if let Some(ipv6_header) = &f.ipv6_header { - fingerprint_map.insert(IpAddr::V6(ipv6_header.source), os_fingerprint.os_family); - } - } + InitReport { total, records: results } } - fingerprint_map } diff --git a/src/db/model.rs b/src/db/model.rs deleted file mode 100644 index a977eca..0000000 --- a/src/db/model.rs +++ /dev/null @@ -1,67 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Serialize, Deserialize, Debug, Clone)] -pub struct Oui { - pub mac_prefix: String, - pub vendor_name: String, - pub vendor_name_detail: String, -} - -#[derive(Serialize, Deserialize, Debug, Clone)] -pub struct TcpService { - pub port: u16, - pub service_name: String, - pub service_description: String, - pub wellknown_flag: u32, - pub default_flag: u32, -} - -#[derive(Serialize, Deserialize, Debug, Clone)] -pub struct UdpService { - pub port: u16, - pub service_name: String, - pub service_description: String, - pub wellknown_flag: u32, - pub default_flag: u32, -} - -#[derive(Serialize, Deserialize, Debug, Clone)] -pub struct OsFingerprint { - pub cpe: String, - pub os_name: String, - pub os_vendor: String, - pub os_family: String, - pub os_generation: String, - pub device_type: String, - pub tcp_window_sizes: Vec, - pub tcp_option_patterns: Vec, -} - -impl OsFingerprint { - pub fn new() -> OsFingerprint { - OsFingerprint { - cpe: String::new(), - os_name: String::new(), - os_vendor: String::new(), - os_family: String::new(), - os_generation: String::new(), - device_type: String::new(), - tcp_window_sizes: vec![], - tcp_option_patterns: vec![], - } - } -} - -#[derive(Serialize, Deserialize, Debug, Clone)] -pub struct OsFamilyFingerprint { - pub os_family: String, - pub tcp_window_sizes: Vec, - pub tcp_option_patterns: Vec, -} - -#[derive(Serialize, Deserialize, Debug, Clone)] -pub struct OsTtl { - pub os_family: String, - pub os_description: String, - pub initial_ttl: u8, -} diff --git a/src/db/os.rs b/src/db/os.rs new file mode 100644 index 0000000..ee0a34f --- /dev/null +++ b/src/db/os.rs @@ -0,0 +1,42 @@ +use std::{collections::HashMap, sync::OnceLock}; +use anyhow::Result; +use crate::{config, os::{OsClass, OsClassTtl, OsDb}}; + +pub static OS_DB: OnceLock = OnceLock::new(); + +/// Initialize OS database +pub fn init_os_db() -> Result<()> { + let os_db: OsDb = serde_json::from_str(config::db::OS_DB_JSON) + .expect("Invalid nrev-os-db.json format"); + OS_DB + .set(os_db) + .map_err(|_| anyhow::anyhow!("Failed to set OS_DB in OnceLock"))?; + Ok(()) +} + +/// Get reference to OS database +pub fn os_db() -> &'static OsDb { + OS_DB.get().expect("OS_DB not initialized") +} + +/// Get initial TTL to OS class mapping +pub fn get_ttl_class_map() -> HashMap { + let mut ttl_class_map: HashMap = HashMap::new(); + let ds_os_ttl: Vec = + serde_json::from_str(config::db::OS_CLASS_TTL_JSON).expect("Invalid os-class-ttl.json format"); + for os_ttl in ds_os_ttl { + ttl_class_map.insert(os_ttl.initial_ttl, os_ttl.os_class.as_str().to_string()); + } + ttl_class_map +} + +/// Get initial TTL mapping +pub fn get_class_ttl_map() -> HashMap { + let mut class_ttl_map: HashMap = HashMap::new(); + let ds_os_ttl: Vec = + serde_json::from_str(config::db::OS_CLASS_TTL_JSON).expect("Invalid os-class-ttl.json format"); + for os_ttl in ds_os_ttl { + class_ttl_map.insert(os_ttl.os_class, os_ttl.initial_ttl); + } + class_ttl_map +} diff --git a/src/db/oui.rs b/src/db/oui.rs new file mode 100644 index 0000000..c0f0ff4 --- /dev/null +++ b/src/db/oui.rs @@ -0,0 +1,19 @@ +use ndb_oui::OuiDb; +use anyhow::Result; +use std::sync::OnceLock; + +pub static OUI_DB: OnceLock = OnceLock::new(); + +/// Initialize OUI database +pub fn init_oui_db() -> Result<()> { + let oui_db = OuiDb::bundled(); + OUI_DB + .set(oui_db) + .map_err(|_| anyhow::anyhow!("Failed to set OUI_DB in OnceLock"))?; + Ok(()) +} + +/// Get reference to OUI database +pub fn oui_db() -> &'static OuiDb { + OUI_DB.get().expect("OUI_DB not initialized") +} diff --git a/src/db/port.rs b/src/db/port.rs new file mode 100644 index 0000000..08d0ac6 --- /dev/null +++ b/src/db/port.rs @@ -0,0 +1,15 @@ +use crate::config; + +/// Get default port list +pub fn get_default_ports() -> Vec { + let default_ports: Vec = serde_json::from_str(config::db::DEFAULT_PORTS_JSON) + .expect("Invalid default-ports.json format"); + default_ports +} + +/// Get well-known port list +pub fn get_wellknown_ports() -> Vec { + let wellknown_ports: Vec = serde_json::from_str(config::db::WELLKNOWN_PORTS_JSON) + .expect("Invalid wellknown-ports.json format"); + wellknown_ports +} diff --git a/src/db/service.rs b/src/db/service.rs new file mode 100644 index 0000000..9c9621f --- /dev/null +++ b/src/db/service.rs @@ -0,0 +1,161 @@ +use ndb_tcp_service::TcpServiceDb; +use ndb_udp_service::UdpServiceDb; +use anyhow::Result; +use std::{collections::HashMap, sync::OnceLock}; + +use crate::{config, endpoint::Port, service::probe::{PortProbeDb, ProbePayload, ProbePayloadDb, ResponseSignature, ResponseSignaturesDb, ServiceProbe}}; + +pub static TCP_SERVICE_DB: OnceLock = OnceLock::new(); +pub static UDP_SERVICE_DB: OnceLock = OnceLock::new(); +pub static PORT_PROBE_DB: OnceLock>> = OnceLock::new(); +pub static SERVICE_PROBE_DB: OnceLock> = OnceLock::new(); +pub static RESPONSE_SIGNATURES_DB: OnceLock> = OnceLock::new(); + +/// Get a reference to the initialized TCP service database. +pub fn tcp_service_db() -> &'static TcpServiceDb { + TCP_SERVICE_DB.get().expect("TCP_SERVICE_DB not initialized") +} + +/// Get a reference to the initialized UDP service database. +pub fn udp_service_db() -> &'static UdpServiceDb { + UDP_SERVICE_DB.get().expect("UDP_SERVICE_DB not initialized") +} + +/// Get a reference to the initialized Port Probe database. +pub fn port_probe_db() -> &'static HashMap> { + PORT_PROBE_DB.get().expect("PORT_PROBE_DB not initialized") +} + +/// Get a reference to the initialized Service Probe database. +pub fn service_probe_db() -> &'static HashMap { + SERVICE_PROBE_DB.get().expect("SERVICE_PROBE_DB not initialized") +} + +/// Get a reference to the initialized Response Signatures database. +pub fn response_signatures_db() -> &'static Vec { + RESPONSE_SIGNATURES_DB.get().expect("RESPONSE_SIGNATURES_DB not initialized") +} + +/// Initialize TCP Service database +pub fn init_tcp_service_db() -> Result<()> { + let tcp_service_db = TcpServiceDb::bundled(); + TCP_SERVICE_DB + .set(tcp_service_db) + .map_err(|_| anyhow::anyhow!("Failed to set TCP_SERVICE_DB in OnceLock"))?; + Ok(()) +} + +/// Initialize UDP Service database +pub fn init_udp_service_db() -> Result<()> { + let udp_service_db = UdpServiceDb::bundled(); + UDP_SERVICE_DB + .set(udp_service_db) + .map_err(|_| anyhow::anyhow!("Failed to set UDP_SERVICE_DB in OnceLock"))?; + Ok(()) +} + +/// Initialize Port Probe database +pub fn init_port_probe_db() -> Result<()> { + let port_probe_db: PortProbeDb = serde_json::from_str(config::db::PORT_PROBES_JSON) + .expect("Invalid port-probes.json format"); + + let mut map: HashMap> = HashMap::new(); + for (port, probes) in port_probe_db.map { + let service_probes: Vec = probes + .into_iter() + .map(|probe| ServiceProbe::from_str(&probe).expect("Invalid service probe format")) + .collect(); + for service_probe in service_probes { + let port = Port::new(port, service_probe.transport()); + map.entry(port).or_insert_with(Vec::new).push(service_probe); + } + } + PORT_PROBE_DB + .set(map) + .map_err(|_| anyhow::anyhow!("Failed to set PORT_PROBE_DB in OnceLock"))?; + Ok(()) +} + +/// Initialize Service Probe database +pub fn init_service_probe_db() -> Result<()> { + let probe_payload_db: ProbePayloadDb = serde_json::from_str(config::db::SERVICE_PROBES_JSON) + .expect("Invalid service-probes.json format"); + let mut service_probe_map: HashMap = HashMap::new(); + for probe_payload in probe_payload_db.probes { + let service_probe: ServiceProbe = ServiceProbe::from_str(&probe_payload.id) + .expect("Invalid service probe format"); + service_probe_map.insert(service_probe, probe_payload); + } + SERVICE_PROBE_DB + .set(service_probe_map) + .map_err(|_| anyhow::anyhow!("Failed to set SERVICE_PROBE_DB in OnceLock"))?; + Ok(()) +} + +/// Initialize Response Signatures database +pub fn init_response_signatures_db() -> Result<()> { + let response_signatures_db: ResponseSignaturesDb = serde_json::from_str(config::db::SERVICE_DB_JSON) + .expect("Invalid nrev-service-db.json format"); + RESPONSE_SIGNATURES_DB + .set(response_signatures_db.signatures) + .map_err(|_| anyhow::anyhow!("Failed to set RESPONSE_SIGNATURES_DB in OnceLock"))?; + Ok(()) +} + +/// Get the service name for a given TCP port +pub fn get_tcp_service_name(port: u16) -> Option { + match TCP_SERVICE_DB.get() { + Some(db) => { + match db.get(port) { + Some(service) => Some(service.name.clone()), + None => None, + } + } + None => None, + } +} + +/// Get the service names for a list of TCP ports +pub fn get_tcp_service_names(ports: &[u16]) -> HashMap { + let mut result = HashMap::new(); + if let Some(db) = TCP_SERVICE_DB.get() { + for &port in ports { + if let Some(service) = db.get(port) { + result.insert(port, service.name.clone()); + } else { + result.insert(port, "Unknown".to_string()); + } + } + } + result +} + +/// Get the map of port to service probes +pub fn get_port_probes() -> HashMap> { + let mut port_probe_map: HashMap> = HashMap::new(); + let port_probe_db: PortProbeDb = serde_json::from_str(config::db::PORT_PROBES_JSON).expect("Invalid os-ttl.json format"); + for (port, probes) in port_probe_db.map { + for probe in probes { + let service_probe: ServiceProbe = ServiceProbe::from_str(&probe).expect("Invalid service probe format"); + port_probe_map.entry(port).or_insert_with(Vec::new).push(service_probe); + } + } + port_probe_map +} + +/// Get the map of service probes to their payloads +pub fn get_service_probes() -> HashMap { + let mut service_probe_map: HashMap = HashMap::new(); + let probe_payload_db: ProbePayloadDb = serde_json::from_str(config::db::SERVICE_PROBES_JSON).expect("Invalid service-probes.json format"); + for probe_payload in probe_payload_db.probes { + let service_probe: ServiceProbe = ServiceProbe::from_str(&probe_payload.id).expect("Invalid service probe format"); + service_probe_map.insert(service_probe, probe_payload); + } + service_probe_map +} + +/// Get the list of response signatures +pub fn get_service_response_signatures() -> Vec { + let response_signatures_db: ResponseSignaturesDb = serde_json::from_str(config::db::SERVICE_DB_JSON).expect("Invalid nrev-service-os-db.json format"); + response_signatures_db.signatures +} diff --git a/src/db/tcp_service.rs b/src/db/tcp_service.rs deleted file mode 100644 index 7bab6b4..0000000 --- a/src/db/tcp_service.rs +++ /dev/null @@ -1,5847 +0,0 @@ -use phf::{phf_map, Map}; - -pub(crate) static PORT_SERVICE_MAP: Map = phf_map! { - 1u16 => "tcpmux", - 2u16 => "compressnet", - 3u16 => "compressnet", - 5u16 => "rje", - 7u16 => "echo", - 9u16 => "discard", - 11u16 => "systat", - 13u16 => "daytime", - 17u16 => "qotd", - 18u16 => "msp", - 19u16 => "chargen", - 20u16 => "ftp-data", - 21u16 => "ftp", - 22u16 => "ssh", - 23u16 => "telnet", - 25u16 => "smtp", - 27u16 => "nsw-fe", - 29u16 => "msg-icp", - 31u16 => "msg-auth", - 33u16 => "dsp", - 37u16 => "time", - 38u16 => "rap", - 39u16 => "rlp", - 41u16 => "graphics", - 42u16 => "nameserver", - 43u16 => "nicname", - 44u16 => "mpm-flags", - 45u16 => "mpm", - 46u16 => "mpm-snd", - 48u16 => "auditd", - 49u16 => "tacacs", - 50u16 => "re-mail-ck", - 52u16 => "xns-time", - 53u16 => "domain", - 54u16 => "xns-ch", - 55u16 => "isi-gl", - 56u16 => "xns-auth", - 58u16 => "xns-mail", - 62u16 => "acas", - 63u16 => "whois++", - 64u16 => "covia", - 65u16 => "tacacs-ds", - 66u16 => "sql*net", - 67u16 => "bootps", - 68u16 => "bootpc", - 69u16 => "tftp", - 70u16 => "gopher", - 71u16 => "netrjs-1", - 72u16 => "netrjs-2", - 73u16 => "netrjs-3", - 74u16 => "netrjs-4", - 76u16 => "deos", - 78u16 => "vettcp", - 79u16 => "finger", - 80u16 => "http", - 82u16 => "xfer", - 83u16 => "mit-ml-dev", - 84u16 => "ctf", - 85u16 => "mit-ml-dev", - 86u16 => "mfcobol", - 88u16 => "kerberos", - 89u16 => "su-mit-tg", - 90u16 => "dnsix", - 91u16 => "mit-dov", - 92u16 => "npp", - 93u16 => "dcp", - 94u16 => "objcall", - 95u16 => "supdup", - 96u16 => "dixie", - 97u16 => "swift-rvf", - 98u16 => "tacnews", - 99u16 => "metagram", - 101u16 => "hostname", - 102u16 => "iso-tsap", - 103u16 => "gppitnp", - 104u16 => "acr-nema", - 105u16 => "csnet-ns", - 106u16 => "3com-tsmux", - 107u16 => "rtelnet", - 108u16 => "snagas", - 109u16 => "pop2", - 110u16 => "pop3", - 111u16 => "sunrpc", - 112u16 => "mcidas", - 113u16 => "auth", - 115u16 => "sftp", - 116u16 => "ansanotify", - 117u16 => "uucp-path", - 118u16 => "sqlserv", - 119u16 => "nntp", - 120u16 => "cfdptkt", - 121u16 => "erpc", - 122u16 => "smakynet", - 123u16 => "ntp", - 124u16 => "ansatrader", - 125u16 => "locus-map", - 126u16 => "nxedit", - 127u16 => "locus-con", - 128u16 => "gss-xlicen", - 129u16 => "pwdgen", - 130u16 => "cisco-fna", - 131u16 => "cisco-tna", - 132u16 => "cisco-sys", - 133u16 => "statsrv", - 134u16 => "ingres-net", - 135u16 => "epmap", - 136u16 => "profile", - 137u16 => "netbios-ns", - 138u16 => "netbios-dgm", - 139u16 => "netbios-ssn", - 140u16 => "emfis-data", - 141u16 => "emfis-cntl", - 142u16 => "bl-idm", - 143u16 => "imap", - 144u16 => "uma", - 145u16 => "uaac", - 146u16 => "iso-tp0", - 147u16 => "iso-ip", - 148u16 => "jargon", - 149u16 => "aed-512", - 150u16 => "sql-net", - 151u16 => "hems", - 152u16 => "bftp", - 153u16 => "sgmp", - 154u16 => "netsc-prod", - 155u16 => "netsc-dev", - 156u16 => "sqlsrv", - 157u16 => "knet-cmp", - 158u16 => "pcmail-srv", - 159u16 => "nss-routing", - 160u16 => "sgmp-traps", - 161u16 => "snmp", - 162u16 => "snmptrap", - 163u16 => "cmip-man", - 164u16 => "cmip-agent", - 165u16 => "xns-courier", - 166u16 => "s-net", - 167u16 => "namp", - 168u16 => "rsvd", - 169u16 => "send", - 170u16 => "print-srv", - 171u16 => "multiplex", - 172u16 => "cl/1", - 173u16 => "xyplex-mux", - 174u16 => "mailq", - 175u16 => "vmnet", - 176u16 => "genrad-mux", - 177u16 => "xdmcp", - 178u16 => "nextstep", - 179u16 => "bgp", - 180u16 => "ris", - 181u16 => "unify", - 182u16 => "audit", - 183u16 => "ocbinder", - 184u16 => "ocserver", - 185u16 => "remote-kis", - 186u16 => "kis", - 187u16 => "aci", - 188u16 => "mumps", - 189u16 => "qft", - 190u16 => "gacp", - 191u16 => "prospero", - 192u16 => "osu-nms", - 193u16 => "srmp", - 194u16 => "irc", - 195u16 => "dn6-nlm-aud", - 196u16 => "dn6-smm-red", - 197u16 => "dls", - 198u16 => "dls-mon", - 199u16 => "smux", - 200u16 => "src", - 201u16 => "at-rtmp", - 202u16 => "at-nbp", - 203u16 => "at-3", - 204u16 => "at-echo", - 205u16 => "at-5", - 206u16 => "at-zis", - 207u16 => "at-7", - 208u16 => "at-8", - 209u16 => "qmtp", - 210u16 => "z39.50", - 211u16 => "914c/g", - 212u16 => "anet", - 213u16 => "ipx", - 214u16 => "vmpwscs", - 215u16 => "softpc", - 216u16 => "CAIlic", - 217u16 => "dbase", - 218u16 => "mpp", - 219u16 => "uarps", - 220u16 => "imap3", - 221u16 => "fln-spx", - 222u16 => "rsh-spx", - 223u16 => "cdc", - 224u16 => "masqdialer", - 242u16 => "direct", - 243u16 => "sur-meas", - 244u16 => "inbusiness", - 245u16 => "link", - 246u16 => "dsp3270", - 247u16 => "subntbcst_tftp", - 248u16 => "bhfhs", - 256u16 => "rap", - 257u16 => "set", - 259u16 => "esro-gen", - 260u16 => "openport", - 261u16 => "nsiiops", - 262u16 => "arcisdms", - 263u16 => "hdap", - 264u16 => "bgmp", - 265u16 => "x-bone-ctl", - 266u16 => "sst", - 267u16 => "td-service", - 268u16 => "td-replica", - 269u16 => "manet", - 271u16 => "pt-tls", - 280u16 => "http-mgmt", - 281u16 => "personal-link", - 282u16 => "cableport-ax", - 283u16 => "rescap", - 284u16 => "corerjd", - 286u16 => "fxp", - 287u16 => "k-block", - 308u16 => "novastorbakcup", - 309u16 => "entrusttime", - 310u16 => "bhmds", - 311u16 => "asip-webadmin", - 312u16 => "vslmp", - 313u16 => "magenta-logic", - 314u16 => "opalis-robot", - 315u16 => "dpsi", - 316u16 => "decauth", - 317u16 => "zannet", - 318u16 => "pkix-timestamp", - 319u16 => "ptp-event", - 320u16 => "ptp-general", - 321u16 => "pip", - 322u16 => "rtsps", - 323u16 => "rpki-rtr", - 324u16 => "rpki-rtr-tls", - 333u16 => "texar", - 344u16 => "pdap", - 345u16 => "pawserv", - 346u16 => "zserv", - 347u16 => "fatserv", - 348u16 => "csi-sgwp", - 349u16 => "mftp", - 350u16 => "matip-type-a", - 351u16 => "bhoetty", - 352u16 => "bhoedap4", - 353u16 => "ndsauth", - 354u16 => "bh611", - 355u16 => "datex-asn", - 356u16 => "cloanto-net-1", - 357u16 => "bhevent", - 358u16 => "shrinkwrap", - 359u16 => "nsrmp", - 360u16 => "scoi2odialog", - 361u16 => "semantix", - 362u16 => "srssend", - 363u16 => "rsvp_tunnel", - 364u16 => "aurora-cmgr", - 365u16 => "dtk", - 366u16 => "odmr", - 367u16 => "mortgageware", - 368u16 => "qbikgdp", - 369u16 => "rpc2portmap", - 370u16 => "codaauth2", - 371u16 => "clearcase", - 372u16 => "ulistproc", - 373u16 => "legent-1", - 374u16 => "legent-2", - 375u16 => "hassle", - 376u16 => "nip", - 377u16 => "tnETOS", - 378u16 => "dsETOS", - 379u16 => "is99c", - 380u16 => "is99s", - 381u16 => "hp-collector", - 382u16 => "hp-managed-node", - 383u16 => "hp-alarm-mgr", - 384u16 => "arns", - 385u16 => "ibm-app", - 386u16 => "asa", - 387u16 => "aurp", - 388u16 => "unidata-ldm", - 389u16 => "ldap", - 390u16 => "uis", - 391u16 => "synotics-relay", - 392u16 => "synotics-broker", - 393u16 => "meta5", - 394u16 => "embl-ndt", - 395u16 => "netcp", - 396u16 => "netware-ip", - 397u16 => "mptn", - 398u16 => "kryptolan", - 399u16 => "iso-tsap-c2", - 400u16 => "osb-sd", - 401u16 => "ups", - 402u16 => "genie", - 403u16 => "decap", - 404u16 => "nced", - 405u16 => "ncld", - 406u16 => "imsp", - 407u16 => "timbuktu", - 408u16 => "prm-sm", - 409u16 => "prm-nm", - 410u16 => "decladebug", - 411u16 => "rmt", - 412u16 => "synoptics-trap", - 413u16 => "smsp", - 414u16 => "infoseek", - 415u16 => "bnet", - 416u16 => "silverplatter", - 417u16 => "onmux", - 418u16 => "hyper-g", - 419u16 => "ariel1", - 420u16 => "smpte", - 421u16 => "ariel2", - 422u16 => "ariel3", - 423u16 => "opc-job-start", - 424u16 => "opc-job-track", - 425u16 => "icad-el", - 426u16 => "smartsdp", - 427u16 => "svrloc", - 428u16 => "ocs_cmu", - 429u16 => "ocs_amu", - 430u16 => "utmpsd", - 431u16 => "utmpcd", - 432u16 => "iasd", - 433u16 => "nnsp", - 434u16 => "mobileip-agent", - 435u16 => "mobilip-mn", - 436u16 => "dna-cml", - 437u16 => "comscm", - 438u16 => "dsfgw", - 439u16 => "dasp", - 440u16 => "sgcp", - 441u16 => "decvms-sysmgt", - 442u16 => "cvc_hostd", - 443u16 => "https", - 444u16 => "snpp", - 445u16 => "microsoft-ds", - 446u16 => "ddm-rdb", - 447u16 => "ddm-dfm", - 448u16 => "ddm-ssl", - 449u16 => "as-servermap", - 450u16 => "tserver", - 451u16 => "sfs-smp-net", - 452u16 => "sfs-config", - 453u16 => "creativeserver", - 454u16 => "contentserver", - 455u16 => "creativepartnr", - 456u16 => "macon-tcp", - 457u16 => "scohelp", - 458u16 => "appleqtc", - 459u16 => "ampr-rcmd", - 460u16 => "skronk", - 461u16 => "datasurfsrv", - 462u16 => "datasurfsrvsec", - 463u16 => "alpes", - 464u16 => "kpasswd", - 465u16 => "submissions", - 466u16 => "digital-vrc", - 467u16 => "mylex-mapd", - 468u16 => "photuris", - 469u16 => "rcp", - 470u16 => "scx-proxy", - 471u16 => "mondex", - 472u16 => "ljk-login", - 473u16 => "hybrid-pop", - 474u16 => "tn-tl-w1", - 475u16 => "tcpnethaspsrv", - 476u16 => "tn-tl-fd1", - 477u16 => "ss7ns", - 478u16 => "spsc", - 479u16 => "iafserver", - 480u16 => "iafdbase", - 481u16 => "ph", - 482u16 => "bgs-nsi", - 483u16 => "ulpnet", - 484u16 => "integra-sme", - 485u16 => "powerburst", - 486u16 => "avian", - 487u16 => "saft", - 488u16 => "gss-http", - 489u16 => "nest-protocol", - 490u16 => "micom-pfs", - 491u16 => "go-login", - 492u16 => "ticf-1", - 493u16 => "ticf-2", - 494u16 => "pov-ray", - 495u16 => "intecourier", - 496u16 => "pim-rp-disc", - 497u16 => "retrospect", - 498u16 => "siam", - 499u16 => "iso-ill", - 500u16 => "isakmp", - 501u16 => "stmf", - 502u16 => "mbap", - 503u16 => "intrinsa", - 504u16 => "citadel", - 505u16 => "mailbox-lm", - 506u16 => "ohimsrv", - 507u16 => "crs", - 508u16 => "xvttp", - 509u16 => "snare", - 510u16 => "fcp", - 511u16 => "passgo", - 512u16 => "exec", - 513u16 => "login", - 514u16 => "shell", - 515u16 => "printer", - 516u16 => "videotex", - 517u16 => "talk", - 518u16 => "ntalk", - 519u16 => "utime", - 520u16 => "efs", - 521u16 => "ripng", - 522u16 => "ulp", - 523u16 => "ibm-db2", - 524u16 => "ncp", - 525u16 => "timed", - 526u16 => "tempo", - 527u16 => "stx", - 528u16 => "custix", - 529u16 => "irc-serv", - 530u16 => "courier", - 531u16 => "conference", - 532u16 => "netnews", - 533u16 => "netwall", - 534u16 => "windream", - 535u16 => "iiop", - 536u16 => "opalis-rdv", - 537u16 => "nmsp", - 538u16 => "gdomap", - 539u16 => "apertus-ldp", - 540u16 => "uucp", - 541u16 => "uucp-rlogin", - 542u16 => "commerce", - 543u16 => "klogin", - 544u16 => "kshell", - 545u16 => "appleqtcsrvr", - 546u16 => "dhcpv6-client", - 547u16 => "dhcpv6-server", - 548u16 => "afpovertcp", - 549u16 => "idfp", - 550u16 => "new-rwho", - 551u16 => "cybercash", - 552u16 => "devshr-nts", - 553u16 => "pirp", - 554u16 => "rtsp", - 555u16 => "dsf", - 556u16 => "remotefs", - 557u16 => "openvms-sysipc", - 558u16 => "sdnskmp", - 559u16 => "teedtap", - 560u16 => "rmonitor", - 561u16 => "monitor", - 562u16 => "chshell", - 563u16 => "nntps", - 564u16 => "9pfs", - 565u16 => "whoami", - 566u16 => "streettalk", - 567u16 => "banyan-rpc", - 568u16 => "ms-shuttle", - 569u16 => "ms-rome", - 570u16 => "meter", - 571u16 => "meter", - 572u16 => "sonar", - 573u16 => "banyan-vip", - 574u16 => "ftp-agent", - 575u16 => "vemmi", - 576u16 => "ipcd", - 577u16 => "vnas", - 578u16 => "ipdd", - 579u16 => "decbsrv", - 580u16 => "sntp-heartbeat", - 581u16 => "bdp", - 582u16 => "scc-security", - 583u16 => "philips-vc", - 584u16 => "keyserver", - 586u16 => "password-chg", - 587u16 => "submission", - 588u16 => "cal", - 589u16 => "eyelink", - 590u16 => "tns-cml", - 591u16 => "http-alt", - 592u16 => "eudora-set", - 593u16 => "http-rpc-epmap", - 594u16 => "tpip", - 595u16 => "cab-protocol", - 596u16 => "smsd", - 597u16 => "ptcnameservice", - 598u16 => "sco-websrvrmg3", - 599u16 => "acp", - 600u16 => "ipcserver", - 601u16 => "syslog-conn", - 602u16 => "xmlrpc-beep", - 603u16 => "idxp", - 604u16 => "tunnel", - 605u16 => "soap-beep", - 606u16 => "urm", - 607u16 => "nqs", - 608u16 => "sift-uft", - 609u16 => "npmp-trap", - 610u16 => "npmp-local", - 611u16 => "npmp-gui", - 612u16 => "hmmp-ind", - 613u16 => "hmmp-op", - 614u16 => "sshell", - 615u16 => "sco-inetmgr", - 616u16 => "sco-sysmgr", - 617u16 => "sco-dtmgr", - 618u16 => "dei-icda", - 619u16 => "compaq-evm", - 620u16 => "sco-websrvrmgr", - 621u16 => "escp-ip", - 622u16 => "collaborator", - 623u16 => "oob-ws-http", - 624u16 => "cryptoadmin", - 625u16 => "dec_dlm", - 626u16 => "asia", - 627u16 => "passgo-tivoli", - 628u16 => "qmqp", - 629u16 => "3com-amp3", - 630u16 => "rda", - 631u16 => "ipps", - 632u16 => "bmpp", - 633u16 => "servstat", - 634u16 => "ginad", - 635u16 => "rlzdbase", - 636u16 => "ldaps", - 637u16 => "lanserver", - 638u16 => "mcns-sec", - 639u16 => "msdp", - 640u16 => "entrust-sps", - 641u16 => "repcmd", - 642u16 => "esro-emsdp", - 643u16 => "sanity", - 644u16 => "dwr", - 645u16 => "pssc", - 646u16 => "ldp", - 647u16 => "dhcp-failover", - 648u16 => "rrp", - 649u16 => "cadview-3d", - 650u16 => "obex", - 651u16 => "ieee-mms", - 652u16 => "hello-port", - 653u16 => "repscmd", - 654u16 => "aodv", - 655u16 => "tinc", - 656u16 => "spmp", - 657u16 => "rmc", - 658u16 => "tenfold", - 660u16 => "mac-srvr-admin", - 661u16 => "hap", - 662u16 => "pftp", - 663u16 => "purenoise", - 664u16 => "oob-ws-https", - 665u16 => "sun-dr", - 666u16 => "doom", - 667u16 => "disclose", - 668u16 => "mecomm", - 669u16 => "meregister", - 670u16 => "vacdsm-sws", - 671u16 => "vacdsm-app", - 672u16 => "vpps-qua", - 673u16 => "cimplex", - 674u16 => "acap", - 675u16 => "dctp", - 676u16 => "vpps-via", - 677u16 => "vpp", - 678u16 => "ggf-ncp", - 679u16 => "mrm", - 680u16 => "entrust-aaas", - 681u16 => "entrust-aams", - 682u16 => "xfr", - 683u16 => "corba-iiop", - 684u16 => "corba-iiop-ssl", - 685u16 => "mdc-portmapper", - 686u16 => "hcp-wismar", - 687u16 => "asipregistry", - 688u16 => "realm-rusd", - 689u16 => "nmap", - 690u16 => "vatp", - 691u16 => "msexch-routing", - 692u16 => "hyperwave-isp", - 693u16 => "connendp", - 694u16 => "ha-cluster", - 695u16 => "ieee-mms-ssl", - 696u16 => "rushd", - 697u16 => "uuidgen", - 698u16 => "olsr", - 699u16 => "accessnetwork", - 700u16 => "epp", - 701u16 => "lmp", - 702u16 => "iris-beep", - 704u16 => "elcsd", - 705u16 => "agentx", - 706u16 => "silc", - 707u16 => "borland-dsj", - 709u16 => "entrust-kmsh", - 710u16 => "entrust-ash", - 711u16 => "cisco-tdp", - 712u16 => "tbrpf", - 713u16 => "iris-xpc", - 714u16 => "iris-xpcs", - 715u16 => "iris-lwz", - 729u16 => "netviewdm1", - 730u16 => "netviewdm2", - 731u16 => "netviewdm3", - 741u16 => "netgw", - 742u16 => "netrcs", - 744u16 => "flexlm", - 747u16 => "fujitsu-dev", - 748u16 => "ris-cm", - 749u16 => "kerberos-adm", - 750u16 => "rfile", - 751u16 => "pump", - 752u16 => "qrh", - 753u16 => "rrh", - 754u16 => "tell", - 758u16 => "nlogin", - 759u16 => "con", - 760u16 => "ns", - 761u16 => "rxe", - 762u16 => "quotad", - 763u16 => "cycleserv", - 764u16 => "omserv", - 765u16 => "webster", - 767u16 => "phonebook", - 769u16 => "vid", - 770u16 => "cadlock", - 771u16 => "rtip", - 772u16 => "cycleserv2", - 773u16 => "submit", - 774u16 => "rpasswd", - 775u16 => "entomb", - 776u16 => "wpages", - 777u16 => "multiling-http", - 780u16 => "wpgs", - 800u16 => "mdbs_daemon", - 801u16 => "device", - 802u16 => "mbap-s", - 810u16 => "fcp-udp", - 828u16 => "itm-mcell-s", - 829u16 => "pkix-3-ca-ra", - 830u16 => "netconf-ssh", - 831u16 => "netconf-beep", - 832u16 => "netconfsoaphttp", - 833u16 => "netconfsoapbeep", - 847u16 => "dhcp-failover2", - 848u16 => "gdoi", - 853u16 => "domain-s", - 854u16 => "dlep", - 860u16 => "iscsi", - 861u16 => "owamp-control", - 862u16 => "twamp-control", - 873u16 => "rsync", - 886u16 => "iclcnet-locate", - 887u16 => "iclcnet_svinfo", - 888u16 => "cddbp", - 900u16 => "omginitialrefs", - 901u16 => "smpnameres", - 902u16 => "ideafarm-door", - 903u16 => "ideafarm-panic", - 910u16 => "kink", - 911u16 => "xact-backup", - 912u16 => "apex-mesh", - 913u16 => "apex-edge", - 953u16 => "rndc", - 989u16 => "ftps-data", - 990u16 => "ftps", - 991u16 => "nas", - 992u16 => "telnets", - 993u16 => "imaps", - 995u16 => "pop3s", - 996u16 => "vsinet", - 997u16 => "maitrd", - 998u16 => "busboy", - 999u16 => "puprouter", - 1000u16 => "cadlock2", - 1001u16 => "webpush", - 1010u16 => "surf", - 1021u16 => "exp1", - 1022u16 => "exp2", - 1025u16 => "blackjack", - 1026u16 => "cap", - 1029u16 => "solid-mux", - 1033u16 => "netinfo-local", - 1034u16 => "activesync", - 1035u16 => "mxxrlogin", - 1036u16 => "nsstp", - 1037u16 => "ams", - 1038u16 => "mtqp", - 1039u16 => "sbl", - 1040u16 => "netarx", - 1041u16 => "danf-ak2", - 1042u16 => "afrog", - 1043u16 => "boinc-client", - 1044u16 => "dcutility", - 1045u16 => "fpitp", - 1046u16 => "wfremotertm", - 1047u16 => "neod1", - 1048u16 => "neod2", - 1049u16 => "td-postman", - 1050u16 => "cma", - 1051u16 => "optima-vnet", - 1052u16 => "ddt", - 1053u16 => "remote-as", - 1054u16 => "brvread", - 1055u16 => "ansyslmd", - 1056u16 => "vfo", - 1057u16 => "startron", - 1058u16 => "nim", - 1059u16 => "nimreg", - 1060u16 => "polestar", - 1061u16 => "kiosk", - 1062u16 => "veracity", - 1063u16 => "kyoceranetdev", - 1064u16 => "jstel", - 1065u16 => "syscomlan", - 1066u16 => "fpo-fns", - 1067u16 => "instl_boots", - 1068u16 => "instl_bootc", - 1069u16 => "cognex-insight", - 1070u16 => "gmrupdateserv", - 1071u16 => "bsquare-voip", - 1072u16 => "cardax", - 1073u16 => "bridgecontrol", - 1074u16 => "warmspotMgmt", - 1075u16 => "rdrmshc", - 1076u16 => "dab-sti-c", - 1077u16 => "imgames", - 1078u16 => "avocent-proxy", - 1079u16 => "asprovatalk", - 1080u16 => "socks", - 1081u16 => "pvuniwien", - 1082u16 => "amt-esd-prot", - 1083u16 => "ansoft-lm-1", - 1084u16 => "ansoft-lm-2", - 1085u16 => "webobjects", - 1086u16 => "cplscrambler-lg", - 1087u16 => "cplscrambler-in", - 1088u16 => "cplscrambler-al", - 1089u16 => "ff-annunc", - 1090u16 => "ff-fms", - 1091u16 => "ff-sm", - 1092u16 => "obrpd", - 1093u16 => "proofd", - 1094u16 => "rootd", - 1095u16 => "nicelink", - 1096u16 => "cnrprotocol", - 1097u16 => "sunclustermgr", - 1098u16 => "rmiactivation", - 1099u16 => "rmiregistry", - 1100u16 => "mctp", - 1101u16 => "pt2-discover", - 1102u16 => "adobeserver-1", - 1103u16 => "adobeserver-2", - 1104u16 => "xrl", - 1105u16 => "ftranhc", - 1106u16 => "isoipsigport-1", - 1107u16 => "isoipsigport-2", - 1108u16 => "ratio-adp", - 1110u16 => "webadmstart", - 1111u16 => "lmsocialserver", - 1112u16 => "icp", - 1113u16 => "ltp-deepspace", - 1114u16 => "mini-sql", - 1115u16 => "ardus-trns", - 1116u16 => "ardus-cntl", - 1117u16 => "ardus-mtrns", - 1118u16 => "sacred", - 1119u16 => "bnetgame", - 1120u16 => "bnetfile", - 1121u16 => "rmpp", - 1122u16 => "availant-mgr", - 1123u16 => "murray", - 1124u16 => "hpvmmcontrol", - 1125u16 => "hpvmmagent", - 1126u16 => "hpvmmdata", - 1127u16 => "kwdb-commn", - 1128u16 => "saphostctrl", - 1129u16 => "saphostctrls", - 1130u16 => "casp", - 1131u16 => "caspssl", - 1132u16 => "kvm-via-ip", - 1133u16 => "dfn", - 1134u16 => "aplx", - 1135u16 => "omnivision", - 1136u16 => "hhb-gateway", - 1137u16 => "trim", - 1138u16 => "encrypted_admin", - 1139u16 => "evm", - 1140u16 => "autonoc", - 1141u16 => "mxomss", - 1142u16 => "edtools", - 1143u16 => "imyx", - 1144u16 => "fuscript", - 1145u16 => "x9-icue", - 1146u16 => "audit-transfer", - 1147u16 => "capioverlan", - 1148u16 => "elfiq-repl", - 1149u16 => "bvtsonar", - 1150u16 => "blaze", - 1151u16 => "unizensus", - 1152u16 => "winpoplanmess", - 1153u16 => "c1222-acse", - 1154u16 => "resacommunity", - 1155u16 => "nfa", - 1156u16 => "iascontrol-oms", - 1157u16 => "iascontrol", - 1158u16 => "dbcontrol-oms", - 1159u16 => "oracle-oms", - 1160u16 => "olsv", - 1161u16 => "health-polling", - 1162u16 => "health-trap", - 1163u16 => "sddp", - 1164u16 => "qsm-proxy", - 1165u16 => "qsm-gui", - 1166u16 => "qsm-remote", - 1167u16 => "cisco-ipsla", - 1168u16 => "vchat", - 1169u16 => "tripwire", - 1170u16 => "atc-lm", - 1171u16 => "atc-appserver", - 1172u16 => "dnap", - 1173u16 => "d-cinema-rrp", - 1174u16 => "fnet-remote-ui", - 1175u16 => "dossier", - 1176u16 => "indigo-server", - 1177u16 => "dkmessenger", - 1178u16 => "sgi-storman", - 1179u16 => "b2n", - 1180u16 => "mc-client", - 1181u16 => "3comnetman", - 1182u16 => "accelenet", - 1183u16 => "llsurfup-http", - 1184u16 => "llsurfup-https", - 1185u16 => "catchpole", - 1186u16 => "mysql-cluster", - 1187u16 => "alias", - 1188u16 => "hp-webadmin", - 1189u16 => "unet", - 1190u16 => "commlinx-avl", - 1191u16 => "gpfs", - 1192u16 => "caids-sensor", - 1193u16 => "fiveacross", - 1194u16 => "openvpn", - 1195u16 => "rsf-1", - 1196u16 => "netmagic", - 1197u16 => "carrius-rshell", - 1198u16 => "cajo-discovery", - 1199u16 => "dmidi", - 1200u16 => "scol", - 1201u16 => "nucleus-sand", - 1202u16 => "caiccipc", - 1203u16 => "ssslic-mgr", - 1204u16 => "ssslog-mgr", - 1205u16 => "accord-mgc", - 1206u16 => "anthony-data", - 1207u16 => "metasage", - 1208u16 => "seagull-ais", - 1209u16 => "ipcd3", - 1210u16 => "eoss", - 1211u16 => "groove-dpp", - 1212u16 => "lupa", - 1213u16 => "mpc-lifenet", - 1214u16 => "kazaa", - 1215u16 => "scanstat-1", - 1216u16 => "etebac5", - 1217u16 => "hpss-ndapi", - 1218u16 => "aeroflight-ads", - 1219u16 => "aeroflight-ret", - 1220u16 => "qt-serveradmin", - 1221u16 => "sweetware-apps", - 1222u16 => "nerv", - 1223u16 => "tgp", - 1224u16 => "vpnz", - 1225u16 => "slinkysearch", - 1226u16 => "stgxfws", - 1227u16 => "dns2go", - 1228u16 => "florence", - 1229u16 => "zented", - 1230u16 => "periscope", - 1231u16 => "menandmice-lpm", - 1232u16 => "first-defense", - 1233u16 => "univ-appserver", - 1234u16 => "search-agent", - 1235u16 => "mosaicsyssvc1", - 1236u16 => "bvcontrol", - 1237u16 => "tsdos390", - 1238u16 => "hacl-qs", - 1239u16 => "nmsd", - 1240u16 => "instantia", - 1241u16 => "nessus", - 1242u16 => "nmasoverip", - 1243u16 => "serialgateway", - 1244u16 => "isbconference1", - 1245u16 => "isbconference2", - 1246u16 => "payrouter", - 1247u16 => "visionpyramid", - 1248u16 => "hermes", - 1249u16 => "mesavistaco", - 1250u16 => "swldy-sias", - 1251u16 => "servergraph", - 1252u16 => "bspne-pcc", - 1253u16 => "q55-pcc", - 1254u16 => "de-noc", - 1255u16 => "de-cache-query", - 1256u16 => "de-server", - 1257u16 => "shockwave2", - 1258u16 => "opennl", - 1259u16 => "opennl-voice", - 1260u16 => "ibm-ssd", - 1261u16 => "mpshrsv", - 1262u16 => "qnts-orb", - 1263u16 => "dka", - 1264u16 => "prat", - 1265u16 => "dssiapi", - 1266u16 => "dellpwrappks", - 1267u16 => "epc", - 1268u16 => "propel-msgsys", - 1269u16 => "watilapp", - 1270u16 => "opsmgr", - 1271u16 => "excw", - 1272u16 => "cspmlockmgr", - 1273u16 => "emc-gateway", - 1274u16 => "t1distproc", - 1275u16 => "ivcollector", - 1277u16 => "miva-mqs", - 1278u16 => "dellwebadmin-1", - 1279u16 => "dellwebadmin-2", - 1280u16 => "pictrography", - 1281u16 => "healthd", - 1282u16 => "emperion", - 1283u16 => "productinfo", - 1284u16 => "iee-qfx", - 1285u16 => "neoiface", - 1286u16 => "netuitive", - 1287u16 => "routematch", - 1288u16 => "navbuddy", - 1289u16 => "jwalkserver", - 1290u16 => "winjaserver", - 1291u16 => "seagulllms", - 1292u16 => "dsdn", - 1293u16 => "pkt-krb-ipsec", - 1294u16 => "cmmdriver", - 1295u16 => "ehtp", - 1296u16 => "dproxy", - 1297u16 => "sdproxy", - 1298u16 => "lpcp", - 1299u16 => "hp-sci", - 1300u16 => "h323hostcallsc", - 1303u16 => "sftsrv", - 1304u16 => "boomerang", - 1305u16 => "pe-mike", - 1306u16 => "re-conn-proto", - 1307u16 => "pacmand", - 1308u16 => "odsi", - 1309u16 => "jtag-server", - 1310u16 => "husky", - 1311u16 => "rxmon", - 1312u16 => "sti-envision", - 1313u16 => "bmc_patroldb", - 1314u16 => "pdps", - 1315u16 => "els", - 1316u16 => "exbit-escp", - 1317u16 => "vrts-ipcserver", - 1318u16 => "krb5gatekeeper", - 1319u16 => "amx-icsp", - 1320u16 => "amx-axbnet", - 1321u16 => "pip", - 1322u16 => "novation", - 1323u16 => "brcd", - 1324u16 => "delta-mcp", - 1325u16 => "dx-instrument", - 1326u16 => "wimsic", - 1327u16 => "ultrex", - 1328u16 => "ewall", - 1329u16 => "netdb-export", - 1330u16 => "streetperfect", - 1331u16 => "intersan", - 1332u16 => "pcia-rxp-b", - 1333u16 => "passwrd-policy", - 1334u16 => "writesrv", - 1335u16 => "digital-notary", - 1336u16 => "ischat", - 1337u16 => "menandmice-dns", - 1338u16 => "wmc-log-svc", - 1339u16 => "kjtsiteserver", - 1340u16 => "naap", - 1341u16 => "qubes", - 1342u16 => "esbroker", - 1343u16 => "re101", - 1344u16 => "icap", - 1345u16 => "vpjp", - 1346u16 => "alta-ana-lm", - 1347u16 => "bbn-mmc", - 1348u16 => "bbn-mmx", - 1349u16 => "sbook", - 1350u16 => "editbench", - 1351u16 => "equationbuilder", - 1352u16 => "lotusnote", - 1353u16 => "relief", - 1354u16 => "XSIP-network", - 1355u16 => "intuitive-edge", - 1356u16 => "cuillamartin", - 1357u16 => "pegboard", - 1358u16 => "connlcli", - 1359u16 => "ftsrv", - 1360u16 => "mimer", - 1361u16 => "linx", - 1362u16 => "timeflies", - 1363u16 => "ndm-requester", - 1364u16 => "ndm-server", - 1365u16 => "adapt-sna", - 1366u16 => "netware-csp", - 1367u16 => "dcs", - 1368u16 => "screencast", - 1369u16 => "gv-us", - 1370u16 => "us-gv", - 1371u16 => "fc-cli", - 1372u16 => "fc-ser", - 1373u16 => "chromagrafx", - 1374u16 => "molly", - 1375u16 => "bytex", - 1376u16 => "ibm-pps", - 1377u16 => "cichlid", - 1378u16 => "elan", - 1379u16 => "dbreporter", - 1380u16 => "telesis-licman", - 1381u16 => "apple-licman", - 1382u16 => "udt_os", - 1383u16 => "gwha", - 1384u16 => "os-licman", - 1385u16 => "atex_elmd", - 1386u16 => "checksum", - 1387u16 => "cadsi-lm", - 1388u16 => "objective-dbc", - 1389u16 => "iclpv-dm", - 1390u16 => "iclpv-sc", - 1391u16 => "iclpv-sas", - 1392u16 => "iclpv-pm", - 1393u16 => "iclpv-nls", - 1394u16 => "iclpv-nlc", - 1395u16 => "iclpv-wsm", - 1396u16 => "dvl-activemail", - 1397u16 => "audio-activmail", - 1398u16 => "video-activmail", - 1399u16 => "cadkey-licman", - 1400u16 => "cadkey-tablet", - 1401u16 => "goldleaf-licman", - 1402u16 => "prm-sm-np", - 1403u16 => "prm-nm-np", - 1404u16 => "igi-lm", - 1405u16 => "ibm-res", - 1406u16 => "netlabs-lm", - 1407u16 => "tibet-server", - 1408u16 => "sophia-lm", - 1409u16 => "here-lm", - 1410u16 => "hiq", - 1411u16 => "af", - 1412u16 => "innosys", - 1413u16 => "innosys-acl", - 1414u16 => "ibm-mqseries", - 1415u16 => "dbstar", - 1416u16 => "novell-lu6.2", - 1417u16 => "timbuktu-srv1", - 1418u16 => "timbuktu-srv2", - 1419u16 => "timbuktu-srv3", - 1420u16 => "timbuktu-srv4", - 1421u16 => "gandalf-lm", - 1422u16 => "autodesk-lm", - 1423u16 => "essbase", - 1424u16 => "hybrid", - 1425u16 => "zion-lm", - 1426u16 => "sais", - 1427u16 => "mloadd", - 1428u16 => "informatik-lm", - 1429u16 => "nms", - 1430u16 => "tpdu", - 1431u16 => "rgtp", - 1432u16 => "blueberry-lm", - 1433u16 => "ms-sql-s", - 1434u16 => "ms-sql-m", - 1435u16 => "ibm-cics", - 1436u16 => "saism", - 1437u16 => "tabula", - 1438u16 => "eicon-server", - 1439u16 => "eicon-x25", - 1440u16 => "eicon-slp", - 1441u16 => "cadis-1", - 1442u16 => "cadis-2", - 1443u16 => "ies-lm", - 1444u16 => "marcam-lm", - 1445u16 => "proxima-lm", - 1446u16 => "ora-lm", - 1447u16 => "apri-lm", - 1448u16 => "oc-lm", - 1449u16 => "peport", - 1450u16 => "dwf", - 1451u16 => "infoman", - 1452u16 => "gtegsc-lm", - 1453u16 => "genie-lm", - 1454u16 => "interhdl_elmd", - 1455u16 => "esl-lm", - 1456u16 => "dca", - 1457u16 => "valisys-lm", - 1458u16 => "nrcabq-lm", - 1459u16 => "proshare1", - 1460u16 => "proshare2", - 1461u16 => "ibm_wrless_lan", - 1462u16 => "world-lm", - 1463u16 => "nucleus", - 1464u16 => "msl_lmd", - 1465u16 => "pipes", - 1466u16 => "oceansoft-lm", - 1467u16 => "csdmbase", - 1468u16 => "csdm", - 1469u16 => "aal-lm", - 1470u16 => "uaiact", - 1471u16 => "csdmbase", - 1472u16 => "csdm", - 1473u16 => "openmath", - 1474u16 => "telefinder", - 1475u16 => "taligent-lm", - 1476u16 => "clvm-cfg", - 1477u16 => "ms-sna-server", - 1478u16 => "ms-sna-base", - 1479u16 => "dberegister", - 1480u16 => "pacerforum", - 1481u16 => "airs", - 1482u16 => "miteksys-lm", - 1483u16 => "afs", - 1484u16 => "confluent", - 1485u16 => "lansource", - 1486u16 => "nms_topo_serv", - 1487u16 => "localinfosrvr", - 1488u16 => "docstor", - 1489u16 => "dmdocbroker", - 1490u16 => "insitu-conf", - 1492u16 => "stone-design-1", - 1493u16 => "netmap_lm", - 1494u16 => "ica", - 1495u16 => "cvc", - 1496u16 => "liberty-lm", - 1497u16 => "rfx-lm", - 1498u16 => "sybase-sqlany", - 1499u16 => "fhc", - 1500u16 => "vlsi-lm", - 1501u16 => "saiscm", - 1502u16 => "shivadiscovery", - 1503u16 => "imtc-mcs", - 1504u16 => "evb-elm", - 1505u16 => "funkproxy", - 1506u16 => "utcd", - 1507u16 => "symplex", - 1508u16 => "diagmond", - 1509u16 => "robcad-lm", - 1510u16 => "mvx-lm", - 1511u16 => "3l-l1", - 1512u16 => "wins", - 1513u16 => "fujitsu-dtc", - 1514u16 => "fujitsu-dtcns", - 1515u16 => "ifor-protocol", - 1516u16 => "vpad", - 1517u16 => "vpac", - 1518u16 => "vpvd", - 1519u16 => "vpvc", - 1520u16 => "atm-zip-office", - 1521u16 => "ncube-lm", - 1522u16 => "ricardo-lm", - 1523u16 => "cichild-lm", - 1524u16 => "ingreslock", - 1525u16 => "prospero-np", - 1526u16 => "pdap-np", - 1527u16 => "tlisrv", - 1529u16 => "coauthor", - 1530u16 => "rap-service", - 1531u16 => "rap-listen", - 1532u16 => "miroconnect", - 1533u16 => "virtual-places", - 1534u16 => "micromuse-lm", - 1535u16 => "ampr-info", - 1536u16 => "ampr-inter", - 1537u16 => "sdsc-lm", - 1538u16 => "3ds-lm", - 1539u16 => "intellistor-lm", - 1540u16 => "rds", - 1541u16 => "rds2", - 1542u16 => "gridgen-elmd", - 1543u16 => "simba-cs", - 1544u16 => "aspeclmd", - 1545u16 => "vistium-share", - 1546u16 => "abbaccuray", - 1547u16 => "laplink", - 1548u16 => "axon-lm", - 1549u16 => "shivahose", - 1550u16 => "3m-image-lm", - 1551u16 => "hecmtl-db", - 1552u16 => "pciarray", - 1553u16 => "sna-cs", - 1554u16 => "caci-lm", - 1555u16 => "livelan", - 1556u16 => "veritas_pbx", - 1557u16 => "arbortext-lm", - 1558u16 => "xingmpeg", - 1559u16 => "web2host", - 1560u16 => "asci-val", - 1561u16 => "facilityview", - 1562u16 => "pconnectmgr", - 1563u16 => "cadabra-lm", - 1564u16 => "pay-per-view", - 1565u16 => "winddlb", - 1566u16 => "corelvideo", - 1567u16 => "jlicelmd", - 1568u16 => "tsspmap", - 1569u16 => "ets", - 1570u16 => "orbixd", - 1571u16 => "rdb-dbs-disp", - 1572u16 => "chip-lm", - 1573u16 => "itscomm-ns", - 1574u16 => "mvel-lm", - 1575u16 => "oraclenames", - 1576u16 => "moldflow-lm", - 1577u16 => "hypercube-lm", - 1578u16 => "jacobus-lm", - 1579u16 => "ioc-sea-lm", - 1580u16 => "tn-tl-r1", - 1581u16 => "mil-2045-47001", - 1582u16 => "msims", - 1583u16 => "simbaexpress", - 1584u16 => "tn-tl-fd2", - 1585u16 => "intv", - 1586u16 => "ibm-abtact", - 1587u16 => "pra_elmd", - 1588u16 => "triquest-lm", - 1589u16 => "vqp", - 1590u16 => "gemini-lm", - 1591u16 => "ncpm-pm", - 1592u16 => "commonspace", - 1593u16 => "mainsoft-lm", - 1594u16 => "sixtrak", - 1595u16 => "radio", - 1596u16 => "radio-sm", - 1597u16 => "orbplus-iiop", - 1598u16 => "picknfs", - 1599u16 => "simbaservices", - 1600u16 => "issd", - 1601u16 => "aas", - 1602u16 => "inspect", - 1603u16 => "picodbc", - 1604u16 => "icabrowser", - 1605u16 => "slp", - 1606u16 => "slm-api", - 1607u16 => "stt", - 1608u16 => "smart-lm", - 1609u16 => "isysg-lm", - 1610u16 => "taurus-wh", - 1611u16 => "ill", - 1612u16 => "netbill-trans", - 1613u16 => "netbill-keyrep", - 1614u16 => "netbill-cred", - 1615u16 => "netbill-auth", - 1616u16 => "netbill-prod", - 1617u16 => "nimrod-agent", - 1618u16 => "skytelnet", - 1619u16 => "xs-openstorage", - 1620u16 => "faxportwinport", - 1621u16 => "softdataphone", - 1622u16 => "ontime", - 1623u16 => "jaleosnd", - 1624u16 => "udp-sr-port", - 1625u16 => "svs-omagent", - 1626u16 => "shockwave", - 1627u16 => "t128-gateway", - 1628u16 => "lontalk-norm", - 1629u16 => "lontalk-urgnt", - 1630u16 => "oraclenet8cman", - 1631u16 => "visitview", - 1632u16 => "pammratc", - 1633u16 => "pammrpc", - 1634u16 => "loaprobe", - 1635u16 => "edb-server1", - 1636u16 => "isdc", - 1637u16 => "islc", - 1638u16 => "ismc", - 1639u16 => "cert-initiator", - 1640u16 => "cert-responder", - 1641u16 => "invision", - 1642u16 => "isis-am", - 1643u16 => "isis-ambc", - 1644u16 => "saiseh", - 1645u16 => "sightline", - 1646u16 => "sa-msg-port", - 1647u16 => "rsap", - 1648u16 => "concurrent-lm", - 1649u16 => "kermit", - 1650u16 => "nkd", - 1651u16 => "shiva_confsrvr", - 1652u16 => "xnmp", - 1653u16 => "alphatech-lm", - 1654u16 => "stargatealerts", - 1655u16 => "dec-mbadmin", - 1656u16 => "dec-mbadmin-h", - 1657u16 => "fujitsu-mmpdc", - 1658u16 => "sixnetudr", - 1659u16 => "sg-lm", - 1660u16 => "skip-mc-gikreq", - 1661u16 => "netview-aix-1", - 1662u16 => "netview-aix-2", - 1663u16 => "netview-aix-3", - 1664u16 => "netview-aix-4", - 1665u16 => "netview-aix-5", - 1666u16 => "netview-aix-6", - 1667u16 => "netview-aix-7", - 1668u16 => "netview-aix-8", - 1669u16 => "netview-aix-9", - 1670u16 => "netview-aix-10", - 1671u16 => "netview-aix-11", - 1672u16 => "netview-aix-12", - 1673u16 => "proshare-mc-1", - 1674u16 => "proshare-mc-2", - 1675u16 => "pdp", - 1676u16 => "netcomm1", - 1677u16 => "groupwise", - 1678u16 => "prolink", - 1679u16 => "darcorp-lm", - 1680u16 => "microcom-sbp", - 1681u16 => "sd-elmd", - 1682u16 => "lanyon-lantern", - 1683u16 => "ncpm-hip", - 1684u16 => "snaresecure", - 1685u16 => "n2nremote", - 1686u16 => "cvmon", - 1687u16 => "nsjtp-ctrl", - 1688u16 => "nsjtp-data", - 1689u16 => "firefox", - 1690u16 => "ng-umds", - 1691u16 => "empire-empuma", - 1692u16 => "sstsys-lm", - 1693u16 => "rrirtr", - 1694u16 => "rrimwm", - 1695u16 => "rrilwm", - 1696u16 => "rrifmm", - 1697u16 => "rrisat", - 1698u16 => "rsvp-encap-1", - 1699u16 => "rsvp-encap-2", - 1700u16 => "mps-raft", - 1701u16 => "l2tp", - 1702u16 => "deskshare", - 1703u16 => "hb-engine", - 1704u16 => "bcs-broker", - 1705u16 => "slingshot", - 1706u16 => "jetform", - 1707u16 => "vdmplay", - 1708u16 => "gat-lmd", - 1709u16 => "centra", - 1710u16 => "impera", - 1711u16 => "pptconference", - 1712u16 => "registrar", - 1713u16 => "conferencetalk", - 1714u16 => "sesi-lm", - 1715u16 => "houdini-lm", - 1716u16 => "xmsg", - 1717u16 => "fj-hdnet", - 1718u16 => "h323gatedisc", - 1719u16 => "h323gatestat", - 1720u16 => "h323hostcall", - 1721u16 => "caicci", - 1722u16 => "hks-lm", - 1723u16 => "pptp", - 1724u16 => "csbphonemaster", - 1725u16 => "iden-ralp", - 1726u16 => "iberiagames", - 1727u16 => "winddx", - 1728u16 => "telindus", - 1729u16 => "citynl", - 1730u16 => "roketz", - 1731u16 => "msiccp", - 1732u16 => "proxim", - 1733u16 => "siipat", - 1734u16 => "cambertx-lm", - 1735u16 => "privatechat", - 1736u16 => "street-stream", - 1737u16 => "ultimad", - 1738u16 => "gamegen1", - 1739u16 => "webaccess", - 1740u16 => "encore", - 1741u16 => "cisco-net-mgmt", - 1742u16 => "3Com-nsd", - 1743u16 => "cinegrfx-lm", - 1744u16 => "ncpm-ft", - 1745u16 => "remote-winsock", - 1746u16 => "ftrapid-1", - 1747u16 => "ftrapid-2", - 1748u16 => "oracle-em1", - 1749u16 => "aspen-services", - 1750u16 => "sslp", - 1751u16 => "swiftnet", - 1752u16 => "lofr-lm", - 1753u16 => "predatar-comms", - 1754u16 => "oracle-em2", - 1755u16 => "ms-streaming", - 1756u16 => "capfast-lmd", - 1757u16 => "cnhrp", - 1758u16 => "tftp-mcast", - 1759u16 => "spss-lm", - 1760u16 => "www-ldap-gw", - 1761u16 => "cft-0", - 1762u16 => "cft-1", - 1763u16 => "cft-2", - 1764u16 => "cft-3", - 1765u16 => "cft-4", - 1766u16 => "cft-5", - 1767u16 => "cft-6", - 1768u16 => "cft-7", - 1769u16 => "bmc-net-adm", - 1770u16 => "bmc-net-svc", - 1771u16 => "vaultbase", - 1772u16 => "essweb-gw", - 1773u16 => "kmscontrol", - 1774u16 => "global-dtserv", - 1775u16 => "vdab", - 1776u16 => "femis", - 1777u16 => "powerguardian", - 1778u16 => "prodigy-intrnet", - 1779u16 => "pharmasoft", - 1780u16 => "dpkeyserv", - 1781u16 => "answersoft-lm", - 1782u16 => "hp-hcip", - 1784u16 => "finle-lm", - 1785u16 => "windlm", - 1786u16 => "funk-logger", - 1787u16 => "funk-license", - 1788u16 => "psmond", - 1789u16 => "hello", - 1790u16 => "nmsp", - 1791u16 => "ea1", - 1792u16 => "ibm-dt-2", - 1793u16 => "rsc-robot", - 1794u16 => "cera-bcm", - 1795u16 => "dpi-proxy", - 1796u16 => "vocaltec-admin", - 1797u16 => "uma", - 1798u16 => "etp", - 1799u16 => "netrisk", - 1800u16 => "ansys-lm", - 1801u16 => "msmq", - 1802u16 => "concomp1", - 1803u16 => "hp-hcip-gwy", - 1804u16 => "enl", - 1805u16 => "enl-name", - 1806u16 => "musiconline", - 1807u16 => "fhsp", - 1808u16 => "oracle-vp2", - 1809u16 => "oracle-vp1", - 1810u16 => "jerand-lm", - 1811u16 => "scientia-sdb", - 1812u16 => "radius", - 1813u16 => "radius-acct", - 1814u16 => "tdp-suite", - 1815u16 => "mmpft", - 1816u16 => "harp", - 1817u16 => "rkb-oscs", - 1818u16 => "etftp", - 1819u16 => "plato-lm", - 1820u16 => "mcagent", - 1821u16 => "donnyworld", - 1822u16 => "es-elmd", - 1823u16 => "unisys-lm", - 1824u16 => "metrics-pas", - 1825u16 => "direcpc-video", - 1826u16 => "ardt", - 1827u16 => "asi", - 1828u16 => "itm-mcell-u", - 1829u16 => "optika-emedia", - 1830u16 => "net8-cman", - 1831u16 => "myrtle", - 1832u16 => "tht-treasure", - 1833u16 => "udpradio", - 1834u16 => "ardusuni", - 1835u16 => "ardusmul", - 1836u16 => "ste-smsc", - 1837u16 => "csoft1", - 1838u16 => "talnet", - 1839u16 => "netopia-vo1", - 1840u16 => "netopia-vo2", - 1841u16 => "netopia-vo3", - 1842u16 => "netopia-vo4", - 1843u16 => "netopia-vo5", - 1844u16 => "direcpc-dll", - 1845u16 => "altalink", - 1846u16 => "tunstall-pnc", - 1847u16 => "slp-notify", - 1848u16 => "fjdocdist", - 1849u16 => "alpha-sms", - 1850u16 => "gsi", - 1851u16 => "ctcd", - 1852u16 => "virtual-time", - 1853u16 => "vids-avtp", - 1854u16 => "buddy-draw", - 1855u16 => "fiorano-rtrsvc", - 1856u16 => "fiorano-msgsvc", - 1857u16 => "datacaptor", - 1858u16 => "privateark", - 1859u16 => "gammafetchsvr", - 1860u16 => "sunscalar-svc", - 1861u16 => "lecroy-vicp", - 1862u16 => "mysql-cm-agent", - 1863u16 => "msnp", - 1864u16 => "paradym-31port", - 1865u16 => "entp", - 1866u16 => "swrmi", - 1867u16 => "udrive", - 1868u16 => "viziblebrowser", - 1869u16 => "transact", - 1870u16 => "sunscalar-dns", - 1871u16 => "canocentral0", - 1872u16 => "canocentral1", - 1873u16 => "fjmpjps", - 1874u16 => "fjswapsnp", - 1875u16 => "westell-stats", - 1876u16 => "ewcappsrv", - 1877u16 => "hp-webqosdb", - 1878u16 => "drmsmc", - 1879u16 => "nettgain-nms", - 1880u16 => "vsat-control", - 1881u16 => "ibm-mqseries2", - 1882u16 => "ecsqdmn", - 1883u16 => "mqtt", - 1884u16 => "idmaps", - 1885u16 => "vrtstrapserver", - 1886u16 => "leoip", - 1887u16 => "filex-lport", - 1888u16 => "ncconfig", - 1889u16 => "unify-adapter", - 1890u16 => "wilkenlistener", - 1891u16 => "childkey-notif", - 1892u16 => "childkey-ctrl", - 1893u16 => "elad", - 1894u16 => "o2server-port", - 1896u16 => "b-novative-ls", - 1897u16 => "metaagent", - 1898u16 => "cymtec-port", - 1899u16 => "mc2studios", - 1900u16 => "ssdp", - 1901u16 => "fjicl-tep-a", - 1902u16 => "fjicl-tep-b", - 1903u16 => "linkname", - 1904u16 => "fjicl-tep-c", - 1905u16 => "sugp", - 1906u16 => "tpmd", - 1907u16 => "intrastar", - 1908u16 => "dawn", - 1909u16 => "global-wlink", - 1910u16 => "ultrabac", - 1911u16 => "mtp", - 1912u16 => "rhp-iibp", - 1913u16 => "armadp", - 1914u16 => "elm-momentum", - 1915u16 => "facelink", - 1916u16 => "persona", - 1917u16 => "noagent", - 1918u16 => "can-nds", - 1919u16 => "can-dch", - 1920u16 => "can-ferret", - 1921u16 => "noadmin", - 1922u16 => "tapestry", - 1923u16 => "spice", - 1924u16 => "xiip", - 1925u16 => "discovery-port", - 1926u16 => "egs", - 1927u16 => "videte-cipc", - 1928u16 => "emsd-port", - 1929u16 => "bandwiz-system", - 1930u16 => "driveappserver", - 1931u16 => "amdsched", - 1932u16 => "ctt-broker", - 1933u16 => "xmapi", - 1934u16 => "xaapi", - 1935u16 => "macromedia-fcs", - 1936u16 => "jetcmeserver", - 1937u16 => "jwserver", - 1938u16 => "jwclient", - 1939u16 => "jvserver", - 1940u16 => "jvclient", - 1941u16 => "dic-aida", - 1942u16 => "res", - 1943u16 => "beeyond-media", - 1944u16 => "close-combat", - 1945u16 => "dialogic-elmd", - 1946u16 => "tekpls", - 1947u16 => "sentinelsrm", - 1948u16 => "eye2eye", - 1949u16 => "ismaeasdaqlive", - 1950u16 => "ismaeasdaqtest", - 1951u16 => "bcs-lmserver", - 1952u16 => "mpnjsc", - 1953u16 => "rapidbase", - 1954u16 => "abr-api", - 1955u16 => "abr-secure", - 1956u16 => "vrtl-vmf-ds", - 1957u16 => "unix-status", - 1958u16 => "dxadmind", - 1959u16 => "simp-all", - 1960u16 => "nasmanager", - 1961u16 => "bts-appserver", - 1962u16 => "biap-mp", - 1963u16 => "webmachine", - 1964u16 => "solid-e-engine", - 1965u16 => "tivoli-npm", - 1966u16 => "slush", - 1967u16 => "sns-quote", - 1968u16 => "lipsinc", - 1969u16 => "lipsinc1", - 1970u16 => "netop-rc", - 1971u16 => "netop-school", - 1972u16 => "intersys-cache", - 1973u16 => "dlsrap", - 1974u16 => "drp", - 1975u16 => "tcoflashagent", - 1976u16 => "tcoregagent", - 1977u16 => "tcoaddressbook", - 1978u16 => "unisql", - 1979u16 => "unisql-java", - 1980u16 => "pearldoc-xact", - 1981u16 => "p2pq", - 1982u16 => "estamp", - 1983u16 => "lhtp", - 1984u16 => "bb", - 1985u16 => "hsrp", - 1986u16 => "licensedaemon", - 1987u16 => "tr-rsrb-p1", - 1988u16 => "tr-rsrb-p2", - 1989u16 => "mshnet", - 1990u16 => "stun-p1", - 1991u16 => "stun-p2", - 1992u16 => "ipsendmsg", - 1993u16 => "snmp-tcp-port", - 1994u16 => "stun-port", - 1995u16 => "perf-port", - 1996u16 => "tr-rsrb-port", - 1997u16 => "gdp-port", - 1998u16 => "x25-svc-port", - 1999u16 => "tcp-id-port", - 2000u16 => "cisco-sccp", - 2001u16 => "dc", - 2002u16 => "globe", - 2003u16 => "brutus", - 2004u16 => "mailbox", - 2005u16 => "berknet", - 2006u16 => "invokator", - 2007u16 => "dectalk", - 2008u16 => "conf", - 2009u16 => "news", - 2010u16 => "search", - 2011u16 => "raid-cc", - 2012u16 => "ttyinfo", - 2013u16 => "raid-am", - 2014u16 => "troff", - 2015u16 => "cypress", - 2016u16 => "bootserver", - 2017u16 => "cypress-stat", - 2018u16 => "terminaldb", - 2019u16 => "whosockami", - 2020u16 => "xinupageserver", - 2021u16 => "servexec", - 2022u16 => "down", - 2023u16 => "xinuexpansion3", - 2024u16 => "xinuexpansion4", - 2025u16 => "ellpack", - 2026u16 => "scrabble", - 2027u16 => "shadowserver", - 2028u16 => "submitserver", - 2029u16 => "hsrpv6", - 2030u16 => "device2", - 2031u16 => "mobrien-chat", - 2032u16 => "blackboard", - 2033u16 => "glogger", - 2034u16 => "scoremgr", - 2035u16 => "imsldoc", - 2036u16 => "e-dpnet", - 2037u16 => "applus", - 2038u16 => "objectmanager", - 2039u16 => "prizma", - 2040u16 => "lam", - 2041u16 => "interbase", - 2042u16 => "isis", - 2043u16 => "isis-bcast", - 2044u16 => "rimsl", - 2045u16 => "cdfunc", - 2046u16 => "sdfunc", - 2047u16 => "dls", - 2048u16 => "dls-monitor", - 2049u16 => "nfs", - 2050u16 => "av-emb-config", - 2051u16 => "epnsdp", - 2052u16 => "clearvisn", - 2053u16 => "lot105-ds-upd", - 2054u16 => "weblogin", - 2055u16 => "iop", - 2056u16 => "omnisky", - 2057u16 => "rich-cp", - 2058u16 => "newwavesearch", - 2059u16 => "bmc-messaging", - 2060u16 => "teleniumdaemon", - 2061u16 => "netmount", - 2062u16 => "icg-swp", - 2063u16 => "icg-bridge", - 2064u16 => "icg-iprelay", - 2065u16 => "dlsrpn", - 2066u16 => "aura", - 2067u16 => "dlswpn", - 2068u16 => "avauthsrvprtcl", - 2069u16 => "event-port", - 2070u16 => "ah-esp-encap", - 2071u16 => "acp-port", - 2072u16 => "msync", - 2073u16 => "gxs-data-port", - 2074u16 => "vrtl-vmf-sa", - 2075u16 => "newlixengine", - 2076u16 => "newlixconfig", - 2077u16 => "tsrmagt", - 2078u16 => "tpcsrvr", - 2079u16 => "idware-router", - 2080u16 => "autodesk-nlm", - 2081u16 => "kme-trap-port", - 2082u16 => "infowave", - 2083u16 => "radsec", - 2084u16 => "sunclustergeo", - 2085u16 => "ada-cip", - 2086u16 => "gnunet", - 2087u16 => "eli", - 2088u16 => "ip-blf", - 2089u16 => "sep", - 2090u16 => "lrp", - 2091u16 => "prp", - 2092u16 => "descent3", - 2093u16 => "nbx-cc", - 2094u16 => "nbx-au", - 2095u16 => "nbx-ser", - 2096u16 => "nbx-dir", - 2097u16 => "jetformpreview", - 2098u16 => "dialog-port", - 2099u16 => "h2250-annex-g", - 2100u16 => "amiganetfs", - 2101u16 => "rtcm-sc104", - 2102u16 => "zephyr-srv", - 2103u16 => "zephyr-clt", - 2104u16 => "zephyr-hm", - 2105u16 => "minipay", - 2106u16 => "mzap", - 2107u16 => "bintec-admin", - 2108u16 => "comcam", - 2109u16 => "ergolight", - 2110u16 => "umsp", - 2111u16 => "dsatp", - 2112u16 => "idonix-metanet", - 2113u16 => "hsl-storm", - 2114u16 => "ariascribe", - 2115u16 => "kdm", - 2116u16 => "ccowcmr", - 2117u16 => "mentaclient", - 2118u16 => "mentaserver", - 2119u16 => "gsigatekeeper", - 2120u16 => "qencp", - 2121u16 => "scientia-ssdb", - 2122u16 => "caupc-remote", - 2123u16 => "gtp-control", - 2124u16 => "elatelink", - 2125u16 => "lockstep", - 2126u16 => "pktcable-cops", - 2127u16 => "index-pc-wb", - 2128u16 => "net-steward", - 2129u16 => "cs-live", - 2130u16 => "xds", - 2131u16 => "avantageb2b", - 2132u16 => "solera-epmap", - 2133u16 => "zymed-zpp", - 2134u16 => "avenue", - 2135u16 => "gris", - 2136u16 => "appworxsrv", - 2137u16 => "connect", - 2138u16 => "unbind-cluster", - 2139u16 => "ias-auth", - 2140u16 => "ias-reg", - 2141u16 => "ias-admind", - 2142u16 => "tdmoip", - 2143u16 => "lv-jc", - 2144u16 => "lv-ffx", - 2145u16 => "lv-pici", - 2146u16 => "lv-not", - 2147u16 => "lv-auth", - 2148u16 => "veritas-ucl", - 2149u16 => "acptsys", - 2150u16 => "dynamic3d", - 2151u16 => "docent", - 2152u16 => "gtp-user", - 2153u16 => "ctlptc", - 2154u16 => "stdptc", - 2155u16 => "brdptc", - 2156u16 => "trp", - 2157u16 => "xnds", - 2158u16 => "touchnetplus", - 2159u16 => "gdbremote", - 2160u16 => "apc-2160", - 2161u16 => "apc-2161", - 2162u16 => "navisphere", - 2163u16 => "navisphere-sec", - 2164u16 => "ddns-v3", - 2165u16 => "x-bone-api", - 2166u16 => "iwserver", - 2167u16 => "raw-serial", - 2168u16 => "easy-soft-mux", - 2169u16 => "brain", - 2170u16 => "eyetv", - 2171u16 => "msfw-storage", - 2172u16 => "msfw-s-storage", - 2173u16 => "msfw-replica", - 2174u16 => "msfw-array", - 2175u16 => "airsync", - 2176u16 => "rapi", - 2177u16 => "qwave", - 2178u16 => "bitspeer", - 2179u16 => "vmrdp", - 2180u16 => "mc-gt-srv", - 2181u16 => "eforward", - 2182u16 => "cgn-stat", - 2183u16 => "cgn-config", - 2184u16 => "nvd", - 2185u16 => "onbase-dds", - 2186u16 => "gtaua", - 2187u16 => "ssmc", - 2188u16 => "radware-rpm", - 2189u16 => "radware-rpm-s", - 2190u16 => "tivoconnect", - 2191u16 => "tvbus", - 2192u16 => "asdis", - 2193u16 => "drwcs", - 2197u16 => "mnp-exchange", - 2198u16 => "onehome-remote", - 2199u16 => "onehome-help", - 2201u16 => "ats", - 2202u16 => "imtc-map", - 2203u16 => "b2-runtime", - 2204u16 => "b2-license", - 2205u16 => "jps", - 2206u16 => "hpocbus", - 2207u16 => "hpssd", - 2208u16 => "hpiod", - 2209u16 => "rimf-ps", - 2210u16 => "noaaport", - 2211u16 => "emwin", - 2212u16 => "leecoposserver", - 2213u16 => "kali", - 2214u16 => "rpi", - 2215u16 => "ipcore", - 2216u16 => "vtu-comms", - 2217u16 => "gotodevice", - 2218u16 => "bounzza", - 2219u16 => "netiq-ncap", - 2220u16 => "netiq", - 2221u16 => "ethernet-ip-s", - 2222u16 => "EtherNet/IP-1", - 2223u16 => "rockwell-csp2", - 2224u16 => "efi-mg", - 2225u16 => "rcip-itu", - 2226u16 => "di-drm", - 2227u16 => "di-msg", - 2228u16 => "ehome-ms", - 2229u16 => "datalens", - 2230u16 => "queueadm", - 2231u16 => "wimaxasncp", - 2232u16 => "ivs-video", - 2233u16 => "infocrypt", - 2234u16 => "directplay", - 2235u16 => "sercomm-wlink", - 2236u16 => "nani", - 2237u16 => "optech-port1-lm", - 2238u16 => "aviva-sna", - 2239u16 => "imagequery", - 2240u16 => "recipe", - 2241u16 => "ivsd", - 2242u16 => "foliocorp", - 2243u16 => "magicom", - 2244u16 => "nmsserver", - 2245u16 => "hao", - 2246u16 => "pc-mta-addrmap", - 2247u16 => "antidotemgrsvr", - 2248u16 => "ums", - 2249u16 => "rfmp", - 2250u16 => "remote-collab", - 2251u16 => "dif-port", - 2252u16 => "njenet-ssl", - 2253u16 => "dtv-chan-req", - 2254u16 => "seispoc", - 2255u16 => "vrtp", - 2256u16 => "pcc-mfp", - 2257u16 => "simple-tx-rx", - 2258u16 => "rcts", - 2260u16 => "apc-2260", - 2261u16 => "comotionmaster", - 2262u16 => "comotionback", - 2263u16 => "ecwcfg", - 2264u16 => "apx500api-1", - 2265u16 => "apx500api-2", - 2266u16 => "mfserver", - 2267u16 => "ontobroker", - 2268u16 => "amt", - 2269u16 => "mikey", - 2270u16 => "starschool", - 2271u16 => "mmcals", - 2272u16 => "mmcal", - 2273u16 => "mysql-im", - 2274u16 => "pcttunnell", - 2275u16 => "ibridge-data", - 2276u16 => "ibridge-mgmt", - 2277u16 => "bluectrlproxy", - 2278u16 => "s3db", - 2279u16 => "xmquery", - 2280u16 => "lnvpoller", - 2281u16 => "lnvconsole", - 2282u16 => "lnvalarm", - 2283u16 => "lnvstatus", - 2284u16 => "lnvmaps", - 2285u16 => "lnvmailmon", - 2286u16 => "nas-metering", - 2287u16 => "dna", - 2288u16 => "netml", - 2289u16 => "dict-lookup", - 2290u16 => "sonus-logging", - 2291u16 => "eapsp", - 2292u16 => "mib-streaming", - 2293u16 => "npdbgmngr", - 2294u16 => "konshus-lm", - 2295u16 => "advant-lm", - 2296u16 => "theta-lm", - 2297u16 => "d2k-datamover1", - 2298u16 => "d2k-datamover2", - 2299u16 => "pc-telecommute", - 2300u16 => "cvmmon", - 2301u16 => "cpq-wbem", - 2302u16 => "binderysupport", - 2303u16 => "proxy-gateway", - 2304u16 => "attachmate-uts", - 2305u16 => "mt-scaleserver", - 2306u16 => "tappi-boxnet", - 2307u16 => "pehelp", - 2308u16 => "sdhelp", - 2309u16 => "sdserver", - 2310u16 => "sdclient", - 2311u16 => "messageservice", - 2312u16 => "wanscaler", - 2313u16 => "iapp", - 2314u16 => "cr-websystems", - 2315u16 => "precise-sft", - 2316u16 => "sent-lm", - 2317u16 => "attachmate-g32", - 2318u16 => "cadencecontrol", - 2319u16 => "infolibria", - 2320u16 => "siebel-ns", - 2321u16 => "rdlap", - 2322u16 => "ofsd", - 2323u16 => "3d-nfsd", - 2324u16 => "cosmocall", - 2325u16 => "ansysli", - 2326u16 => "idcp", - 2327u16 => "xingcsm", - 2328u16 => "netrix-sftm", - 2329u16 => "nvd", - 2330u16 => "tscchat", - 2331u16 => "agentview", - 2332u16 => "rcc-host", - 2333u16 => "snapp", - 2334u16 => "ace-client", - 2335u16 => "ace-proxy", - 2336u16 => "appleugcontrol", - 2337u16 => "ideesrv", - 2338u16 => "norton-lambert", - 2339u16 => "3com-webview", - 2340u16 => "wrs_registry", - 2341u16 => "xiostatus", - 2342u16 => "manage-exec", - 2343u16 => "nati-logos", - 2344u16 => "fcmsys", - 2345u16 => "dbm", - 2346u16 => "redstorm_join", - 2347u16 => "redstorm_find", - 2348u16 => "redstorm_info", - 2349u16 => "redstorm_diag", - 2350u16 => "psbserver", - 2351u16 => "psrserver", - 2352u16 => "pslserver", - 2353u16 => "pspserver", - 2354u16 => "psprserver", - 2355u16 => "psdbserver", - 2356u16 => "gxtelmd", - 2357u16 => "unihub-server", - 2358u16 => "futrix", - 2359u16 => "flukeserver", - 2360u16 => "nexstorindltd", - 2361u16 => "tl1", - 2362u16 => "digiman", - 2363u16 => "mediacntrlnfsd", - 2364u16 => "oi-2000", - 2365u16 => "dbref", - 2366u16 => "qip-login", - 2367u16 => "service-ctrl", - 2368u16 => "opentable", - 2370u16 => "l3-hbmon", - 2371u16 => "rda", - 2372u16 => "lanmessenger", - 2373u16 => "remographlm", - 2374u16 => "hydra", - 2375u16 => "docker", - 2376u16 => "docker-s", - 2377u16 => "swarm", - 2379u16 => "etcd-client", - 2380u16 => "etcd-server", - 2381u16 => "compaq-https", - 2382u16 => "ms-olap3", - 2383u16 => "ms-olap4", - 2384u16 => "sd-request", - 2385u16 => "sd-data", - 2386u16 => "virtualtape", - 2387u16 => "vsamredirector", - 2388u16 => "mynahautostart", - 2389u16 => "ovsessionmgr", - 2390u16 => "rsmtp", - 2391u16 => "3com-net-mgmt", - 2392u16 => "tacticalauth", - 2393u16 => "ms-olap1", - 2394u16 => "ms-olap2", - 2395u16 => "lan900_remote", - 2396u16 => "wusage", - 2397u16 => "ncl", - 2398u16 => "orbiter", - 2399u16 => "fmpro-fdal", - 2400u16 => "opequus-server", - 2401u16 => "cvspserver", - 2402u16 => "taskmaster2000", - 2403u16 => "taskmaster2000", - 2404u16 => "iec-104", - 2405u16 => "trc-netpoll", - 2406u16 => "jediserver", - 2407u16 => "orion", - 2408u16 => "railgun-webaccl", - 2409u16 => "sns-protocol", - 2410u16 => "vrts-registry", - 2411u16 => "netwave-ap-mgmt", - 2412u16 => "cdn", - 2413u16 => "orion-rmi-reg", - 2414u16 => "beeyond", - 2415u16 => "codima-rtp", - 2416u16 => "rmtserver", - 2417u16 => "composit-server", - 2418u16 => "cas", - 2419u16 => "attachmate-s2s", - 2420u16 => "dslremote-mgmt", - 2421u16 => "g-talk", - 2422u16 => "crmsbits", - 2423u16 => "rnrp", - 2424u16 => "kofax-svr", - 2425u16 => "fjitsuappmgr", - 2426u16 => "vcmp", - 2427u16 => "mgcp-gateway", - 2428u16 => "ott", - 2429u16 => "ft-role", - 2430u16 => "venus", - 2431u16 => "venus-se", - 2432u16 => "codasrv", - 2433u16 => "codasrv-se", - 2434u16 => "pxc-epmap", - 2435u16 => "optilogic", - 2436u16 => "topx", - 2437u16 => "unicontrol", - 2438u16 => "msp", - 2439u16 => "sybasedbsynch", - 2440u16 => "spearway", - 2441u16 => "pvsw-inet", - 2442u16 => "netangel", - 2443u16 => "powerclientcsf", - 2444u16 => "btpp2sectrans", - 2445u16 => "dtn1", - 2446u16 => "bues_service", - 2447u16 => "ovwdb", - 2448u16 => "hpppssvr", - 2449u16 => "ratl", - 2450u16 => "netadmin", - 2451u16 => "netchat", - 2452u16 => "snifferclient", - 2453u16 => "madge-ltd", - 2454u16 => "indx-dds", - 2455u16 => "wago-io-system", - 2456u16 => "altav-remmgt", - 2457u16 => "rapido-ip", - 2458u16 => "griffin", - 2459u16 => "xrpl", - 2460u16 => "ms-theater", - 2461u16 => "qadmifoper", - 2462u16 => "qadmifevent", - 2463u16 => "lsi-raid-mgmt", - 2464u16 => "direcpc-si", - 2465u16 => "lbm", - 2466u16 => "lbf", - 2467u16 => "high-criteria", - 2468u16 => "qip-msgd", - 2469u16 => "mti-tcs-comm", - 2470u16 => "taskman-port", - 2471u16 => "seaodbc", - 2472u16 => "c3", - 2473u16 => "aker-cdp", - 2474u16 => "vitalanalysis", - 2475u16 => "ace-server", - 2476u16 => "ace-svr-prop", - 2477u16 => "ssm-cvs", - 2478u16 => "ssm-cssps", - 2479u16 => "ssm-els", - 2480u16 => "powerexchange", - 2481u16 => "giop", - 2482u16 => "giop-ssl", - 2483u16 => "ttc", - 2484u16 => "ttc-ssl", - 2485u16 => "netobjects1", - 2486u16 => "netobjects2", - 2487u16 => "pns", - 2488u16 => "moy-corp", - 2489u16 => "tsilb", - 2490u16 => "qip-qdhcp", - 2491u16 => "conclave-cpp", - 2492u16 => "groove", - 2493u16 => "talarian-mqs", - 2494u16 => "bmc-ar", - 2495u16 => "fast-rem-serv", - 2496u16 => "dirgis", - 2497u16 => "quaddb", - 2498u16 => "odn-castraq", - 2499u16 => "unicontrol", - 2500u16 => "rtsserv", - 2501u16 => "rtsclient", - 2502u16 => "kentrox-prot", - 2503u16 => "nms-dpnss", - 2504u16 => "wlbs", - 2505u16 => "ppcontrol", - 2506u16 => "jbroker", - 2507u16 => "spock", - 2508u16 => "jdatastore", - 2509u16 => "fjmpss", - 2510u16 => "fjappmgrbulk", - 2511u16 => "metastorm", - 2512u16 => "citrixima", - 2513u16 => "citrixadmin", - 2514u16 => "facsys-ntp", - 2515u16 => "facsys-router", - 2516u16 => "maincontrol", - 2517u16 => "call-sig-trans", - 2518u16 => "willy", - 2519u16 => "globmsgsvc", - 2520u16 => "pvsw", - 2521u16 => "adaptecmgr", - 2522u16 => "windb", - 2523u16 => "qke-llc-v3", - 2524u16 => "optiwave-lm", - 2525u16 => "ms-v-worlds", - 2526u16 => "ema-sent-lm", - 2527u16 => "iqserver", - 2528u16 => "ncr_ccl", - 2529u16 => "utsftp", - 2530u16 => "vrcommerce", - 2531u16 => "ito-e-gui", - 2532u16 => "ovtopmd", - 2533u16 => "snifferserver", - 2534u16 => "combox-web-acc", - 2535u16 => "madcap", - 2536u16 => "btpp2audctr1", - 2537u16 => "upgrade", - 2538u16 => "vnwk-prapi", - 2539u16 => "vsiadmin", - 2540u16 => "lonworks", - 2541u16 => "lonworks2", - 2542u16 => "udrawgraph", - 2543u16 => "reftek", - 2544u16 => "novell-zen", - 2545u16 => "sis-emt", - 2546u16 => "vytalvaultbrtp", - 2547u16 => "vytalvaultvsmp", - 2548u16 => "vytalvaultpipe", - 2549u16 => "ipass", - 2550u16 => "ads", - 2551u16 => "isg-uda-server", - 2552u16 => "call-logging", - 2553u16 => "efidiningport", - 2554u16 => "vcnet-link-v10", - 2555u16 => "compaq-wcp", - 2556u16 => "nicetec-nmsvc", - 2557u16 => "nicetec-mgmt", - 2558u16 => "pclemultimedia", - 2559u16 => "lstp", - 2560u16 => "labrat", - 2561u16 => "mosaixcc", - 2562u16 => "delibo", - 2563u16 => "cti-redwood", - 2564u16 => "hp-3000-telnet", - 2565u16 => "coord-svr", - 2566u16 => "pcs-pcw", - 2567u16 => "clp", - 2568u16 => "spamtrap", - 2569u16 => "sonuscallsig", - 2570u16 => "hs-port", - 2571u16 => "cecsvc", - 2572u16 => "ibp", - 2573u16 => "trustestablish", - 2574u16 => "blockade-bpsp", - 2575u16 => "hl7", - 2576u16 => "tclprodebugger", - 2577u16 => "scipticslsrvr", - 2578u16 => "rvs-isdn-dcp", - 2579u16 => "mpfoncl", - 2580u16 => "tributary", - 2581u16 => "argis-te", - 2582u16 => "argis-ds", - 2583u16 => "mon", - 2584u16 => "cyaserv", - 2585u16 => "netx-server", - 2586u16 => "netx-agent", - 2587u16 => "masc", - 2588u16 => "privilege", - 2589u16 => "quartus-tcl", - 2590u16 => "idotdist", - 2591u16 => "maytagshuffle", - 2592u16 => "netrek", - 2593u16 => "mns-mail", - 2594u16 => "dts", - 2595u16 => "worldfusion1", - 2596u16 => "worldfusion2", - 2597u16 => "homesteadglory", - 2598u16 => "citriximaclient", - 2599u16 => "snapd", - 2600u16 => "hpstgmgr", - 2601u16 => "discp-client", - 2602u16 => "discp-server", - 2603u16 => "servicemeter", - 2604u16 => "nsc-ccs", - 2605u16 => "nsc-posa", - 2606u16 => "netmon", - 2607u16 => "connection", - 2608u16 => "wag-service", - 2609u16 => "system-monitor", - 2610u16 => "versa-tek", - 2611u16 => "lionhead", - 2612u16 => "qpasa-agent", - 2613u16 => "smntubootstrap", - 2614u16 => "neveroffline", - 2615u16 => "firepower", - 2616u16 => "appswitch-emp", - 2617u16 => "cmadmin", - 2618u16 => "priority-e-com", - 2619u16 => "bruce", - 2620u16 => "lpsrecommender", - 2621u16 => "miles-apart", - 2622u16 => "metricadbc", - 2623u16 => "lmdp", - 2624u16 => "aria", - 2625u16 => "blwnkl-port", - 2626u16 => "gbjd816", - 2627u16 => "moshebeeri", - 2628u16 => "dict", - 2629u16 => "sitaraserver", - 2630u16 => "sitaramgmt", - 2631u16 => "sitaradir", - 2632u16 => "irdg-post", - 2633u16 => "interintelli", - 2634u16 => "pk-electronics", - 2635u16 => "backburner", - 2636u16 => "solve", - 2637u16 => "imdocsvc", - 2638u16 => "sybaseanywhere", - 2639u16 => "aminet", - 2640u16 => "ami-control", - 2641u16 => "hdl-srv", - 2642u16 => "tragic", - 2643u16 => "gte-samp", - 2644u16 => "travsoft-ipx-t", - 2645u16 => "novell-ipx-cmd", - 2646u16 => "and-lm", - 2647u16 => "syncserver", - 2648u16 => "upsnotifyprot", - 2649u16 => "vpsipport", - 2650u16 => "eristwoguns", - 2651u16 => "ebinsite", - 2652u16 => "interpathpanel", - 2653u16 => "sonus", - 2654u16 => "corel_vncadmin", - 2655u16 => "unglue", - 2656u16 => "kana", - 2657u16 => "sns-dispatcher", - 2658u16 => "sns-admin", - 2659u16 => "sns-query", - 2660u16 => "gcmonitor", - 2661u16 => "olhost", - 2662u16 => "bintec-capi", - 2663u16 => "bintec-tapi", - 2664u16 => "patrol-mq-gm", - 2665u16 => "patrol-mq-nm", - 2666u16 => "extensis", - 2667u16 => "alarm-clock-s", - 2668u16 => "alarm-clock-c", - 2669u16 => "toad", - 2670u16 => "tve-announce", - 2671u16 => "newlixreg", - 2672u16 => "nhserver", - 2673u16 => "firstcall42", - 2674u16 => "ewnn", - 2675u16 => "ttc-etap", - 2676u16 => "simslink", - 2677u16 => "gadgetgate1way", - 2678u16 => "gadgetgate2way", - 2679u16 => "syncserverssl", - 2680u16 => "pxc-sapxom", - 2681u16 => "mpnjsomb", - 2683u16 => "ncdloadbalance", - 2684u16 => "mpnjsosv", - 2685u16 => "mpnjsocl", - 2686u16 => "mpnjsomg", - 2687u16 => "pq-lic-mgmt", - 2688u16 => "md-cg-http", - 2689u16 => "fastlynx", - 2690u16 => "hp-nnm-data", - 2691u16 => "itinternet", - 2692u16 => "admins-lms", - 2694u16 => "pwrsevent", - 2695u16 => "vspread", - 2696u16 => "unifyadmin", - 2697u16 => "oce-snmp-trap", - 2698u16 => "mck-ivpip", - 2699u16 => "csoft-plusclnt", - 2700u16 => "tqdata", - 2701u16 => "sms-rcinfo", - 2702u16 => "sms-xfer", - 2703u16 => "sms-chat", - 2704u16 => "sms-remctrl", - 2705u16 => "sds-admin", - 2706u16 => "ncdmirroring", - 2707u16 => "emcsymapiport", - 2708u16 => "banyan-net", - 2709u16 => "supermon", - 2710u16 => "sso-service", - 2711u16 => "sso-control", - 2712u16 => "aocp", - 2713u16 => "raventbs", - 2714u16 => "raventdm", - 2715u16 => "hpstgmgr2", - 2716u16 => "inova-ip-disco", - 2717u16 => "pn-requester", - 2718u16 => "pn-requester2", - 2719u16 => "scan-change", - 2720u16 => "wkars", - 2721u16 => "smart-diagnose", - 2722u16 => "proactivesrvr", - 2723u16 => "watchdog-nt", - 2724u16 => "qotps", - 2725u16 => "msolap-ptp2", - 2726u16 => "tams", - 2727u16 => "mgcp-callagent", - 2728u16 => "sqdr", - 2729u16 => "tcim-control", - 2730u16 => "nec-raidplus", - 2731u16 => "fyre-messanger", - 2732u16 => "g5m", - 2733u16 => "signet-ctf", - 2734u16 => "ccs-software", - 2735u16 => "netiq-mc", - 2736u16 => "radwiz-nms-srv", - 2737u16 => "srp-feedback", - 2738u16 => "ndl-tcp-ois-gw", - 2739u16 => "tn-timing", - 2740u16 => "alarm", - 2741u16 => "tsb", - 2742u16 => "tsb2", - 2743u16 => "murx", - 2744u16 => "honyaku", - 2745u16 => "urbisnet", - 2746u16 => "cpudpencap", - 2747u16 => "fjippol-swrly", - 2748u16 => "fjippol-polsvr", - 2749u16 => "fjippol-cnsl", - 2750u16 => "fjippol-port1", - 2751u16 => "fjippol-port2", - 2752u16 => "rsisysaccess", - 2753u16 => "de-spot", - 2754u16 => "apollo-cc", - 2755u16 => "expresspay", - 2756u16 => "simplement-tie", - 2757u16 => "cnrp", - 2758u16 => "apollo-status", - 2759u16 => "apollo-gms", - 2760u16 => "sabams", - 2761u16 => "dicom-iscl", - 2762u16 => "dicom-tls", - 2763u16 => "desktop-dna", - 2764u16 => "data-insurance", - 2765u16 => "qip-audup", - 2766u16 => "compaq-scp", - 2767u16 => "uadtc", - 2768u16 => "uacs", - 2769u16 => "exce", - 2770u16 => "veronica", - 2771u16 => "vergencecm", - 2772u16 => "auris", - 2773u16 => "rbakcup1", - 2774u16 => "rbakcup2", - 2775u16 => "smpp", - 2776u16 => "ridgeway1", - 2777u16 => "ridgeway2", - 2778u16 => "gwen-sonya", - 2779u16 => "lbc-sync", - 2780u16 => "lbc-control", - 2781u16 => "whosells", - 2782u16 => "everydayrc", - 2783u16 => "aises", - 2784u16 => "www-dev", - 2785u16 => "aic-np", - 2786u16 => "aic-oncrpc", - 2787u16 => "piccolo", - 2788u16 => "fryeserv", - 2789u16 => "media-agent", - 2790u16 => "plgproxy", - 2791u16 => "mtport-regist", - 2792u16 => "f5-globalsite", - 2793u16 => "initlsmsad", - 2795u16 => "livestats", - 2796u16 => "ac-tech", - 2797u16 => "esp-encap", - 2798u16 => "tmesis-upshot", - 2799u16 => "icon-discover", - 2800u16 => "acc-raid", - 2801u16 => "igcp", - 2802u16 => "veritas-tcp1", - 2803u16 => "btprjctrl", - 2804u16 => "dvr-esm", - 2805u16 => "wta-wsp-s", - 2806u16 => "cspuni", - 2807u16 => "cspmulti", - 2808u16 => "j-lan-p", - 2809u16 => "corbaloc", - 2810u16 => "netsteward", - 2811u16 => "gsiftp", - 2812u16 => "atmtcp", - 2813u16 => "llm-pass", - 2814u16 => "llm-csv", - 2815u16 => "lbc-measure", - 2816u16 => "lbc-watchdog", - 2817u16 => "nmsigport", - 2818u16 => "rmlnk", - 2819u16 => "fc-faultnotify", - 2820u16 => "univision", - 2821u16 => "vrts-at-port", - 2822u16 => "ka0wuc", - 2823u16 => "cqg-netlan", - 2824u16 => "cqg-netlan-1", - 2826u16 => "slc-systemlog", - 2827u16 => "slc-ctrlrloops", - 2828u16 => "itm-lm", - 2829u16 => "silkp1", - 2830u16 => "silkp2", - 2831u16 => "silkp3", - 2832u16 => "silkp4", - 2833u16 => "glishd", - 2834u16 => "evtp", - 2835u16 => "evtp-data", - 2836u16 => "catalyst", - 2837u16 => "repliweb", - 2838u16 => "starbot", - 2839u16 => "nmsigport", - 2840u16 => "l3-exprt", - 2841u16 => "l3-ranger", - 2842u16 => "l3-hawk", - 2843u16 => "pdnet", - 2844u16 => "bpcp-poll", - 2845u16 => "bpcp-trap", - 2846u16 => "aimpp-hello", - 2847u16 => "aimpp-port-req", - 2848u16 => "amt-blc-port", - 2849u16 => "fxp", - 2850u16 => "metaconsole", - 2851u16 => "webemshttp", - 2852u16 => "bears-01", - 2853u16 => "ispipes", - 2854u16 => "infomover", - 2855u16 => "msrp", - 2856u16 => "cesdinv", - 2857u16 => "simctlp", - 2858u16 => "ecnp", - 2859u16 => "activememory", - 2860u16 => "dialpad-voice1", - 2861u16 => "dialpad-voice2", - 2862u16 => "ttg-protocol", - 2863u16 => "sonardata", - 2864u16 => "astronova-main", - 2865u16 => "pit-vpn", - 2866u16 => "iwlistener", - 2867u16 => "esps-portal", - 2868u16 => "npep-messaging", - 2869u16 => "icslap", - 2870u16 => "daishi", - 2871u16 => "msi-selectplay", - 2872u16 => "radix", - 2874u16 => "dxmessagebase1", - 2875u16 => "dxmessagebase2", - 2876u16 => "sps-tunnel", - 2877u16 => "bluelance", - 2878u16 => "aap", - 2879u16 => "ucentric-ds", - 2880u16 => "synapse", - 2881u16 => "ndsp", - 2882u16 => "ndtp", - 2883u16 => "ndnp", - 2884u16 => "flashmsg", - 2885u16 => "topflow", - 2886u16 => "responselogic", - 2887u16 => "aironetddp", - 2888u16 => "spcsdlobby", - 2889u16 => "rsom", - 2890u16 => "cspclmulti", - 2891u16 => "cinegrfx-elmd", - 2892u16 => "snifferdata", - 2893u16 => "vseconnector", - 2894u16 => "abacus-remote", - 2895u16 => "natuslink", - 2896u16 => "ecovisiong6-1", - 2897u16 => "citrix-rtmp", - 2898u16 => "appliance-cfg", - 2899u16 => "powergemplus", - 2900u16 => "quicksuite", - 2901u16 => "allstorcns", - 2902u16 => "netaspi", - 2903u16 => "suitcase", - 2904u16 => "m2ua", - 2905u16 => "m3ua", - 2906u16 => "caller9", - 2907u16 => "webmethods-b2b", - 2908u16 => "mao", - 2909u16 => "funk-dialout", - 2910u16 => "tdaccess", - 2911u16 => "blockade", - 2912u16 => "epicon", - 2913u16 => "boosterware", - 2914u16 => "gamelobby", - 2915u16 => "tksocket", - 2916u16 => "elvin_server", - 2917u16 => "elvin_client", - 2918u16 => "kastenchasepad", - 2919u16 => "roboer", - 2920u16 => "roboeda", - 2921u16 => "cesdcdman", - 2922u16 => "cesdcdtrn", - 2923u16 => "wta-wsp-wtp-s", - 2924u16 => "precise-vip", - 2926u16 => "mobile-file-dl", - 2927u16 => "unimobilectrl", - 2928u16 => "redstone-cpss", - 2929u16 => "amx-webadmin", - 2930u16 => "amx-weblinx", - 2931u16 => "circle-x", - 2932u16 => "incp", - 2933u16 => "4-tieropmgw", - 2934u16 => "4-tieropmcli", - 2935u16 => "qtp", - 2936u16 => "otpatch", - 2937u16 => "pnaconsult-lm", - 2938u16 => "sm-pas-1", - 2939u16 => "sm-pas-2", - 2940u16 => "sm-pas-3", - 2941u16 => "sm-pas-4", - 2942u16 => "sm-pas-5", - 2943u16 => "ttnrepository", - 2944u16 => "megaco-h248", - 2945u16 => "h248-binary", - 2946u16 => "fjsvmpor", - 2947u16 => "gpsd", - 2948u16 => "wap-push", - 2949u16 => "wap-pushsecure", - 2950u16 => "esip", - 2951u16 => "ottp", - 2952u16 => "mpfwsas", - 2953u16 => "ovalarmsrv", - 2954u16 => "ovalarmsrv-cmd", - 2955u16 => "csnotify", - 2956u16 => "ovrimosdbman", - 2957u16 => "jmact5", - 2958u16 => "jmact6", - 2959u16 => "rmopagt", - 2960u16 => "dfoxserver", - 2961u16 => "boldsoft-lm", - 2962u16 => "iph-policy-cli", - 2963u16 => "iph-policy-adm", - 2964u16 => "bullant-srap", - 2965u16 => "bullant-rap", - 2966u16 => "idp-infotrieve", - 2967u16 => "ssc-agent", - 2968u16 => "enpp", - 2969u16 => "essp", - 2970u16 => "index-net", - 2971u16 => "netclip", - 2972u16 => "pmsm-webrctl", - 2973u16 => "svnetworks", - 2974u16 => "signal", - 2975u16 => "fjmpcm", - 2976u16 => "cns-srv-port", - 2977u16 => "ttc-etap-ns", - 2978u16 => "ttc-etap-ds", - 2979u16 => "h263-video", - 2980u16 => "wimd", - 2981u16 => "mylxamport", - 2982u16 => "iwb-whiteboard", - 2983u16 => "netplan", - 2984u16 => "hpidsadmin", - 2985u16 => "hpidsagent", - 2986u16 => "stonefalls", - 2987u16 => "identify", - 2988u16 => "hippad", - 2989u16 => "zarkov", - 2990u16 => "boscap", - 2991u16 => "wkstn-mon", - 2992u16 => "avenyo", - 2993u16 => "veritas-vis1", - 2994u16 => "veritas-vis2", - 2995u16 => "idrs", - 2996u16 => "vsixml", - 2997u16 => "rebol", - 2998u16 => "realsecure", - 2999u16 => "remoteware-un", - 3000u16 => "remoteware-cl", - 3001u16 => "origo-native", - 3002u16 => "remoteware-srv", - 3003u16 => "cgms", - 3004u16 => "csoftragent", - 3005u16 => "geniuslm", - 3006u16 => "ii-admin", - 3007u16 => "lotusmtap", - 3008u16 => "midnight-tech", - 3009u16 => "pxc-ntfy", - 3010u16 => "gw", - 3011u16 => "trusted-web", - 3012u16 => "twsdss", - 3013u16 => "gilatskysurfer", - 3014u16 => "broker_service", - 3015u16 => "nati-dstp", - 3016u16 => "notify_srvr", - 3017u16 => "event_listener", - 3018u16 => "srvc_registry", - 3019u16 => "resource_mgr", - 3020u16 => "cifs", - 3021u16 => "agriserver", - 3022u16 => "csregagent", - 3023u16 => "magicnotes", - 3024u16 => "nds_sso", - 3025u16 => "arepa-raft", - 3026u16 => "agri-gateway", - 3027u16 => "LiebDevMgmt_C", - 3028u16 => "LiebDevMgmt_DM", - 3029u16 => "LiebDevMgmt_A", - 3030u16 => "arepa-cas", - 3031u16 => "eppc", - 3032u16 => "redwood-chat", - 3033u16 => "pdb", - 3034u16 => "osmosis-aeea", - 3035u16 => "fjsv-gssagt", - 3036u16 => "hagel-dump", - 3037u16 => "hp-san-mgmt", - 3038u16 => "santak-ups", - 3039u16 => "cogitate", - 3040u16 => "tomato-springs", - 3041u16 => "di-traceware", - 3042u16 => "journee", - 3043u16 => "brp", - 3044u16 => "epp", - 3045u16 => "responsenet", - 3046u16 => "di-ase", - 3047u16 => "hlserver", - 3048u16 => "pctrader", - 3049u16 => "nsws", - 3050u16 => "gds_db", - 3051u16 => "galaxy-server", - 3052u16 => "apc-3052", - 3053u16 => "dsom-server", - 3054u16 => "amt-cnf-prot", - 3055u16 => "policyserver", - 3056u16 => "cdl-server", - 3057u16 => "goahead-fldup", - 3058u16 => "videobeans", - 3059u16 => "qsoft", - 3060u16 => "interserver", - 3061u16 => "cautcpd", - 3062u16 => "ncacn-ip-tcp", - 3063u16 => "ncadg-ip-udp", - 3064u16 => "rprt", - 3065u16 => "slinterbase", - 3066u16 => "netattachsdmp", - 3067u16 => "fjhpjp", - 3068u16 => "ls3bcast", - 3069u16 => "ls3", - 3070u16 => "mgxswitch", - 3071u16 => "xplat-replicate", - 3072u16 => "csd-monitor", - 3073u16 => "vcrp", - 3074u16 => "xbox", - 3075u16 => "orbix-locator", - 3076u16 => "orbix-config", - 3077u16 => "orbix-loc-ssl", - 3078u16 => "orbix-cfg-ssl", - 3079u16 => "lv-frontpanel", - 3080u16 => "stm_pproc", - 3081u16 => "tl1-lv", - 3082u16 => "tl1-raw", - 3083u16 => "tl1-telnet", - 3084u16 => "itm-mccs", - 3085u16 => "pcihreq", - 3086u16 => "jdl-dbkitchen", - 3087u16 => "asoki-sma", - 3088u16 => "xdtp", - 3089u16 => "ptk-alink", - 3090u16 => "stss", - 3091u16 => "1ci-smcs", - 3093u16 => "rapidmq-center", - 3094u16 => "rapidmq-reg", - 3095u16 => "panasas", - 3096u16 => "ndl-aps", - 3098u16 => "umm-port", - 3099u16 => "chmd", - 3100u16 => "opcon-xps", - 3101u16 => "hp-pxpib", - 3102u16 => "slslavemon", - 3103u16 => "autocuesmi", - 3104u16 => "autocuelog", - 3105u16 => "cardbox", - 3106u16 => "cardbox-http", - 3107u16 => "business", - 3108u16 => "geolocate", - 3109u16 => "personnel", - 3110u16 => "sim-control", - 3111u16 => "wsynch", - 3112u16 => "ksysguard", - 3113u16 => "cs-auth-svr", - 3114u16 => "ccmad", - 3115u16 => "mctet-master", - 3116u16 => "mctet-gateway", - 3117u16 => "mctet-jserv", - 3118u16 => "pkagent", - 3119u16 => "d2000kernel", - 3120u16 => "d2000webserver", - 3121u16 => "pcmk-remote", - 3122u16 => "vtr-emulator", - 3123u16 => "edix", - 3124u16 => "beacon-port", - 3125u16 => "a13-an", - 3127u16 => "ctx-bridge", - 3128u16 => "ndl-aas", - 3129u16 => "netport-id", - 3130u16 => "icpv2", - 3131u16 => "netbookmark", - 3132u16 => "ms-rule-engine", - 3133u16 => "prism-deploy", - 3134u16 => "ecp", - 3135u16 => "peerbook-port", - 3136u16 => "grubd", - 3137u16 => "rtnt-1", - 3138u16 => "rtnt-2", - 3139u16 => "incognitorv", - 3140u16 => "ariliamulti", - 3141u16 => "vmodem", - 3142u16 => "rdc-wh-eos", - 3143u16 => "seaview", - 3144u16 => "tarantella", - 3145u16 => "csi-lfap", - 3146u16 => "bears-02", - 3147u16 => "rfio", - 3148u16 => "nm-game-admin", - 3149u16 => "nm-game-server", - 3150u16 => "nm-asses-admin", - 3151u16 => "nm-assessor", - 3152u16 => "feitianrockey", - 3153u16 => "s8-client-port", - 3154u16 => "ccmrmi", - 3155u16 => "jpegmpeg", - 3156u16 => "indura", - 3157u16 => "e3consultants", - 3158u16 => "stvp", - 3159u16 => "navegaweb-port", - 3160u16 => "tip-app-server", - 3161u16 => "doc1lm", - 3162u16 => "sflm", - 3163u16 => "res-sap", - 3164u16 => "imprs", - 3165u16 => "newgenpay", - 3166u16 => "sossecollector", - 3167u16 => "nowcontact", - 3168u16 => "poweronnud", - 3169u16 => "serverview-as", - 3170u16 => "serverview-asn", - 3171u16 => "serverview-gf", - 3172u16 => "serverview-rm", - 3173u16 => "serverview-icc", - 3174u16 => "armi-server", - 3175u16 => "t1-e1-over-ip", - 3176u16 => "ars-master", - 3177u16 => "phonex-port", - 3178u16 => "radclientport", - 3179u16 => "h2gf-w-2m", - 3180u16 => "mc-brk-srv", - 3181u16 => "bmcpatrolagent", - 3182u16 => "bmcpatrolrnvu", - 3183u16 => "cops-tls", - 3184u16 => "apogeex-port", - 3185u16 => "smpppd", - 3186u16 => "iiw-port", - 3187u16 => "odi-port", - 3188u16 => "brcm-comm-port", - 3189u16 => "pcle-infex", - 3190u16 => "csvr-proxy", - 3191u16 => "csvr-sslproxy", - 3192u16 => "firemonrcc", - 3193u16 => "spandataport", - 3194u16 => "magbind", - 3195u16 => "ncu-1", - 3196u16 => "ncu-2", - 3197u16 => "embrace-dp-s", - 3198u16 => "embrace-dp-c", - 3199u16 => "dmod-workspace", - 3200u16 => "tick-port", - 3201u16 => "cpq-tasksmart", - 3202u16 => "intraintra", - 3203u16 => "netwatcher-mon", - 3204u16 => "netwatcher-db", - 3205u16 => "isns", - 3206u16 => "ironmail", - 3207u16 => "vx-auth-port", - 3208u16 => "pfu-prcallback", - 3209u16 => "netwkpathengine", - 3210u16 => "flamenco-proxy", - 3211u16 => "avsecuremgmt", - 3212u16 => "surveyinst", - 3213u16 => "neon24x7", - 3214u16 => "jmq-daemon-1", - 3215u16 => "jmq-daemon-2", - 3216u16 => "ferrari-foam", - 3217u16 => "unite", - 3218u16 => "smartpackets", - 3219u16 => "wms-messenger", - 3220u16 => "xnm-ssl", - 3221u16 => "xnm-clear-text", - 3222u16 => "glbp", - 3223u16 => "digivote", - 3224u16 => "aes-discovery", - 3225u16 => "fcip-port", - 3226u16 => "isi-irp", - 3227u16 => "dwnmshttp", - 3228u16 => "dwmsgserver", - 3229u16 => "global-cd-port", - 3230u16 => "sftdst-port", - 3231u16 => "vidigo", - 3232u16 => "mdtp", - 3233u16 => "whisker", - 3234u16 => "alchemy", - 3235u16 => "mdap-port", - 3236u16 => "apparenet-ts", - 3237u16 => "apparenet-tps", - 3238u16 => "apparenet-as", - 3239u16 => "apparenet-ui", - 3240u16 => "triomotion", - 3241u16 => "sysorb", - 3242u16 => "sdp-id-port", - 3243u16 => "timelot", - 3244u16 => "onesaf", - 3245u16 => "vieo-fe", - 3246u16 => "dvt-system", - 3247u16 => "dvt-data", - 3248u16 => "procos-lm", - 3249u16 => "ssp", - 3250u16 => "hicp", - 3251u16 => "sysscanner", - 3252u16 => "dhe", - 3253u16 => "pda-data", - 3254u16 => "pda-sys", - 3255u16 => "semaphore", - 3256u16 => "cpqrpm-agent", - 3257u16 => "cpqrpm-server", - 3258u16 => "ivecon-port", - 3259u16 => "epncdp2", - 3260u16 => "iscsi-target", - 3261u16 => "winshadow", - 3262u16 => "necp", - 3263u16 => "ecolor-imager", - 3264u16 => "ccmail", - 3265u16 => "altav-tunnel", - 3266u16 => "ns-cfg-server", - 3267u16 => "ibm-dial-out", - 3268u16 => "msft-gc", - 3269u16 => "msft-gc-ssl", - 3270u16 => "verismart", - 3271u16 => "csoft-prev", - 3272u16 => "user-manager", - 3273u16 => "sxmp", - 3274u16 => "ordinox-server", - 3275u16 => "samd", - 3276u16 => "maxim-asics", - 3277u16 => "awg-proxy", - 3278u16 => "lkcmserver", - 3279u16 => "admind", - 3280u16 => "vs-server", - 3281u16 => "sysopt", - 3282u16 => "datusorb", - 3283u16 => "Apple Remote Desktop (Net Assistant)", - 3284u16 => "4talk", - 3285u16 => "plato", - 3286u16 => "e-net", - 3287u16 => "directvdata", - 3288u16 => "cops", - 3289u16 => "enpc", - 3290u16 => "caps-lm", - 3291u16 => "sah-lm", - 3292u16 => "cart-o-rama", - 3293u16 => "fg-fps", - 3294u16 => "fg-gip", - 3295u16 => "dyniplookup", - 3296u16 => "rib-slm", - 3297u16 => "cytel-lm", - 3298u16 => "deskview", - 3299u16 => "pdrncs", - 3300u16 => "ceph", - 3302u16 => "mcs-fastmail", - 3303u16 => "opsession-clnt", - 3304u16 => "opsession-srvr", - 3305u16 => "odette-ftp", - 3306u16 => "mysql", - 3307u16 => "opsession-prxy", - 3308u16 => "tns-server", - 3309u16 => "tns-adv", - 3310u16 => "dyna-access", - 3311u16 => "mcns-tel-ret", - 3312u16 => "appman-server", - 3313u16 => "uorb", - 3314u16 => "uohost", - 3315u16 => "cdid", - 3316u16 => "aicc-cmi", - 3317u16 => "vsaiport", - 3318u16 => "ssrip", - 3319u16 => "sdt-lmd", - 3320u16 => "officelink2000", - 3321u16 => "vnsstr", - 3326u16 => "sftu", - 3327u16 => "bbars", - 3328u16 => "egptlm", - 3329u16 => "hp-device-disc", - 3330u16 => "mcs-calypsoicf", - 3331u16 => "mcs-messaging", - 3332u16 => "mcs-mailsvr", - 3333u16 => "dec-notes", - 3334u16 => "directv-web", - 3335u16 => "directv-soft", - 3336u16 => "directv-tick", - 3337u16 => "directv-catlg", - 3338u16 => "anet-b", - 3339u16 => "anet-l", - 3340u16 => "anet-m", - 3341u16 => "anet-h", - 3342u16 => "webtie", - 3343u16 => "ms-cluster-net", - 3344u16 => "bnt-manager", - 3345u16 => "influence", - 3346u16 => "trnsprntproxy", - 3347u16 => "phoenix-rpc", - 3348u16 => "pangolin-laser", - 3349u16 => "chevinservices", - 3350u16 => "findviatv", - 3351u16 => "btrieve", - 3352u16 => "ssql", - 3353u16 => "fatpipe", - 3354u16 => "suitjd", - 3355u16 => "ordinox-dbase", - 3356u16 => "upnotifyps", - 3357u16 => "adtech-test", - 3358u16 => "mpsysrmsvr", - 3359u16 => "wg-netforce", - 3360u16 => "kv-server", - 3361u16 => "kv-agent", - 3362u16 => "dj-ilm", - 3363u16 => "nati-vi-server", - 3364u16 => "creativeserver", - 3365u16 => "contentserver", - 3366u16 => "creativepartnr", - 3372u16 => "tip2", - 3373u16 => "lavenir-lm", - 3374u16 => "cluster-disc", - 3375u16 => "vsnm-agent", - 3376u16 => "cdbroker", - 3377u16 => "cogsys-lm", - 3378u16 => "wsicopy", - 3379u16 => "socorfs", - 3380u16 => "sns-channels", - 3381u16 => "geneous", - 3382u16 => "fujitsu-neat", - 3383u16 => "esp-lm", - 3384u16 => "hp-clic", - 3385u16 => "qnxnetman", - 3386u16 => "gprs-data", - 3387u16 => "backroomnet", - 3388u16 => "cbserver", - 3389u16 => "ms-wbt-server", - 3390u16 => "dsc", - 3391u16 => "savant", - 3392u16 => "efi-lm", - 3393u16 => "d2k-tapestry1", - 3394u16 => "d2k-tapestry2", - 3395u16 => "dyna-lm", - 3396u16 => "printer_agent", - 3397u16 => "cloanto-lm", - 3398u16 => "mercantile", - 3399u16 => "csms", - 3400u16 => "csms2", - 3401u16 => "filecast", - 3402u16 => "fxaengine-net", - 3405u16 => "nokia-ann-ch1", - 3406u16 => "nokia-ann-ch2", - 3407u16 => "ldap-admin", - 3408u16 => "BESApi", - 3409u16 => "networklens", - 3410u16 => "networklenss", - 3411u16 => "biolink-auth", - 3412u16 => "xmlblaster", - 3413u16 => "svnet", - 3414u16 => "wip-port", - 3415u16 => "bcinameservice", - 3416u16 => "commandport", - 3417u16 => "csvr", - 3418u16 => "rnmap", - 3419u16 => "softaudit", - 3420u16 => "ifcp-port", - 3421u16 => "bmap", - 3422u16 => "rusb-sys-port", - 3423u16 => "xtrm", - 3424u16 => "xtrms", - 3425u16 => "agps-port", - 3426u16 => "arkivio", - 3427u16 => "websphere-snmp", - 3428u16 => "twcss", - 3429u16 => "gcsp", - 3430u16 => "ssdispatch", - 3431u16 => "ndl-als", - 3432u16 => "osdcp", - 3433u16 => "opnet-smp", - 3434u16 => "opencm", - 3435u16 => "pacom", - 3436u16 => "gc-config", - 3437u16 => "autocueds", - 3438u16 => "spiral-admin", - 3439u16 => "hri-port", - 3440u16 => "ans-console", - 3441u16 => "connect-client", - 3442u16 => "connect-server", - 3443u16 => "ov-nnm-websrv", - 3444u16 => "denali-server", - 3445u16 => "monp", - 3446u16 => "3comfaxrpc", - 3447u16 => "directnet", - 3448u16 => "dnc-port", - 3449u16 => "hotu-chat", - 3450u16 => "castorproxy", - 3451u16 => "asam", - 3452u16 => "sabp-signal", - 3453u16 => "pscupd", - 3454u16 => "mira", - 3455u16 => "prsvp", - 3456u16 => "vat", - 3457u16 => "vat-control", - 3458u16 => "d3winosfi", - 3459u16 => "integral", - 3460u16 => "edm-manager", - 3461u16 => "edm-stager", - 3462u16 => "edm-std-notify", - 3463u16 => "edm-adm-notify", - 3464u16 => "edm-mgr-sync", - 3465u16 => "edm-mgr-cntrl", - 3466u16 => "workflow", - 3467u16 => "rcst", - 3468u16 => "ttcmremotectrl", - 3469u16 => "pluribus", - 3470u16 => "jt400", - 3471u16 => "jt400-ssl", - 3472u16 => "jaugsremotec-1", - 3473u16 => "jaugsremotec-2", - 3474u16 => "ttntspauto", - 3475u16 => "genisar-port", - 3476u16 => "nppmp", - 3477u16 => "ecomm", - 3478u16 => "stun-behavior", - 3479u16 => "twrpc", - 3480u16 => "plethora", - 3481u16 => "cleanerliverc", - 3482u16 => "vulture", - 3483u16 => "slim-devices", - 3484u16 => "gbs-stp", - 3485u16 => "celatalk", - 3486u16 => "ifsf-hb-port", - 3487u16 => "ltctcp", - 3488u16 => "fs-rh-srv", - 3489u16 => "dtp-dia", - 3490u16 => "colubris", - 3491u16 => "swr-port", - 3492u16 => "tvdumtray-port", - 3493u16 => "nut", - 3494u16 => "ibm3494", - 3495u16 => "seclayer-tcp", - 3496u16 => "seclayer-tls", - 3497u16 => "ipether232port", - 3498u16 => "dashpas-port", - 3499u16 => "sccip-media", - 3500u16 => "rtmp-port", - 3501u16 => "isoft-p2p", - 3502u16 => "avinstalldisc", - 3503u16 => "lsp-ping", - 3504u16 => "ironstorm", - 3505u16 => "ccmcomm", - 3506u16 => "apc-3506", - 3507u16 => "nesh-broker", - 3508u16 => "interactionweb", - 3509u16 => "vt-ssl", - 3510u16 => "xss-port", - 3511u16 => "webmail-2", - 3512u16 => "aztec", - 3513u16 => "arcpd", - 3514u16 => "must-p2p", - 3515u16 => "must-backplane", - 3516u16 => "smartcard-port", - 3517u16 => "802-11-iapp", - 3518u16 => "artifact-msg", - 3519u16 => "nvmsgd", - 3520u16 => "galileolog", - 3521u16 => "mc3ss", - 3522u16 => "nssocketport", - 3523u16 => "odeumservlink", - 3524u16 => "ecmport", - 3525u16 => "eisport", - 3526u16 => "starquiz-port", - 3527u16 => "beserver-msg-q", - 3528u16 => "jboss-iiop", - 3529u16 => "jboss-iiop-ssl", - 3530u16 => "gf", - 3531u16 => "joltid", - 3532u16 => "raven-rmp", - 3533u16 => "raven-rdp", - 3534u16 => "urld-port", - 3535u16 => "ms-la", - 3536u16 => "snac", - 3537u16 => "ni-visa-remote", - 3538u16 => "ibm-diradm", - 3539u16 => "ibm-diradm-ssl", - 3540u16 => "pnrp-port", - 3541u16 => "voispeed-port", - 3542u16 => "hacl-monitor", - 3543u16 => "qftest-lookup", - 3544u16 => "teredo", - 3545u16 => "camac", - 3547u16 => "symantec-sim", - 3548u16 => "interworld", - 3549u16 => "tellumat-nms", - 3550u16 => "ssmpp", - 3551u16 => "apcupsd", - 3552u16 => "taserver", - 3553u16 => "rbr-discovery", - 3554u16 => "questnotify", - 3555u16 => "razor", - 3556u16 => "sky-transport", - 3557u16 => "personalos-001", - 3558u16 => "mcp-port", - 3559u16 => "cctv-port", - 3560u16 => "iniserve-port", - 3561u16 => "bmc-onekey", - 3562u16 => "sdbproxy", - 3563u16 => "watcomdebug", - 3564u16 => "esimport", - 3565u16 => "m2pa", - 3566u16 => "quest-data-hub", - 3567u16 => "dof-eps", - 3568u16 => "dof-tunnel-sec", - 3569u16 => "mbg-ctrl", - 3570u16 => "mccwebsvr-port", - 3571u16 => "megardsvr-port", - 3572u16 => "megaregsvrport", - 3573u16 => "tag-ups-1", - 3574u16 => "dmaf-server", - 3575u16 => "ccm-port", - 3576u16 => "cmc-port", - 3577u16 => "config-port", - 3578u16 => "data-port", - 3579u16 => "ttat3lb", - 3580u16 => "nati-svrloc", - 3581u16 => "kfxaclicensing", - 3582u16 => "press", - 3583u16 => "canex-watch", - 3584u16 => "u-dbap", - 3585u16 => "emprise-lls", - 3586u16 => "emprise-lsc", - 3587u16 => "p2pgroup", - 3588u16 => "sentinel", - 3589u16 => "isomair", - 3590u16 => "wv-csp-sms", - 3591u16 => "gtrack-server", - 3592u16 => "gtrack-ne", - 3593u16 => "bpmd", - 3594u16 => "mediaspace", - 3595u16 => "shareapp", - 3596u16 => "iw-mmogame", - 3597u16 => "a14", - 3598u16 => "a15", - 3599u16 => "quasar-server", - 3600u16 => "trap-daemon", - 3601u16 => "visinet-gui", - 3602u16 => "infiniswitchcl", - 3603u16 => "int-rcv-cntrl", - 3604u16 => "bmc-jmx-port", - 3605u16 => "comcam-io", - 3606u16 => "splitlock", - 3607u16 => "precise-i3", - 3608u16 => "trendchip-dcp", - 3609u16 => "cpdi-pidas-cm", - 3610u16 => "echonet", - 3611u16 => "six-degrees", - 3612u16 => "dataprotector", - 3613u16 => "alaris-disc", - 3614u16 => "sigma-port", - 3615u16 => "start-network", - 3616u16 => "cd3o-protocol", - 3617u16 => "sharp-server", - 3618u16 => "aairnet-1", - 3619u16 => "aairnet-2", - 3620u16 => "ep-pcp", - 3621u16 => "ep-nsp", - 3622u16 => "ff-lr-port", - 3623u16 => "haipe-discover", - 3624u16 => "dist-upgrade", - 3625u16 => "volley", - 3626u16 => "bvcdaemon-port", - 3627u16 => "jamserverport", - 3628u16 => "ept-machine", - 3629u16 => "escvpnet", - 3630u16 => "cs-remote-db", - 3631u16 => "cs-services", - 3632u16 => "distcc", - 3633u16 => "wacp", - 3634u16 => "hlibmgr", - 3635u16 => "sdo", - 3636u16 => "servistaitsm", - 3637u16 => "scservp", - 3638u16 => "ehp-backup", - 3639u16 => "xap-ha", - 3640u16 => "netplay-port1", - 3641u16 => "netplay-port2", - 3642u16 => "juxml-port", - 3643u16 => "audiojuggler", - 3644u16 => "ssowatch", - 3645u16 => "cyc", - 3646u16 => "xss-srv-port", - 3647u16 => "splitlock-gw", - 3648u16 => "fjcp", - 3649u16 => "nmmp", - 3650u16 => "prismiq-plugin", - 3651u16 => "xrpc-registry", - 3652u16 => "vxcrnbuport", - 3653u16 => "tsp", - 3654u16 => "vaprtm", - 3655u16 => "abatemgr", - 3656u16 => "abatjss", - 3657u16 => "immedianet-bcn", - 3658u16 => "ps-ams", - 3659u16 => "apple-sasl", - 3660u16 => "can-nds-ssl", - 3661u16 => "can-ferret-ssl", - 3662u16 => "pserver", - 3663u16 => "dtp", - 3664u16 => "ups-engine", - 3665u16 => "ent-engine", - 3666u16 => "eserver-pap", - 3667u16 => "infoexch", - 3668u16 => "dell-rm-port", - 3669u16 => "casanswmgmt", - 3670u16 => "smile", - 3671u16 => "efcp", - 3672u16 => "lispworks-orb", - 3673u16 => "mediavault-gui", - 3674u16 => "wininstall-ipc", - 3675u16 => "calltrax", - 3676u16 => "va-pacbase", - 3677u16 => "roverlog", - 3678u16 => "ipr-dglt", - 3679u16 => "Escale (Newton Dock)", - 3680u16 => "npds-tracker", - 3681u16 => "bts-x73", - 3682u16 => "cas-mapi", - 3683u16 => "bmc-ea", - 3684u16 => "faxstfx-port", - 3685u16 => "dsx-agent", - 3686u16 => "tnmpv2", - 3687u16 => "simple-push", - 3688u16 => "simple-push-s", - 3689u16 => "daap", - 3690u16 => "svn", - 3691u16 => "magaya-network", - 3692u16 => "intelsync", - 3693u16 => "easl", - 3695u16 => "bmc-data-coll", - 3696u16 => "telnetcpcd", - 3697u16 => "nw-license", - 3698u16 => "sagectlpanel", - 3699u16 => "kpn-icw", - 3700u16 => "lrs-paging", - 3701u16 => "netcelera", - 3702u16 => "ws-discovery", - 3703u16 => "adobeserver-3", - 3704u16 => "adobeserver-4", - 3705u16 => "adobeserver-5", - 3706u16 => "rt-event", - 3707u16 => "rt-event-s", - 3708u16 => "sun-as-iiops", - 3709u16 => "ca-idms", - 3710u16 => "portgate-auth", - 3711u16 => "edb-server2", - 3712u16 => "sentinel-ent", - 3713u16 => "tftps", - 3714u16 => "delos-dms", - 3715u16 => "anoto-rendezv", - 3716u16 => "wv-csp-sms-cir", - 3717u16 => "wv-csp-udp-cir", - 3718u16 => "opus-services", - 3719u16 => "itelserverport", - 3720u16 => "ufastro-instr", - 3721u16 => "xsync", - 3722u16 => "xserveraid", - 3723u16 => "sychrond", - 3724u16 => "blizwow", - 3725u16 => "na-er-tip", - 3726u16 => "array-manager", - 3727u16 => "e-mdu", - 3728u16 => "e-woa", - 3729u16 => "fksp-audit", - 3730u16 => "client-ctrl", - 3731u16 => "smap", - 3732u16 => "m-wnn", - 3733u16 => "multip-msg", - 3734u16 => "synel-data", - 3735u16 => "pwdis", - 3736u16 => "rs-rmi", - 3737u16 => "xpanel", - 3738u16 => "versatalk", - 3739u16 => "launchbird-lm", - 3740u16 => "heartbeat", - 3741u16 => "wysdma", - 3742u16 => "cst-port", - 3743u16 => "ipcs-command", - 3744u16 => "sasg", - 3745u16 => "gw-call-port", - 3746u16 => "linktest", - 3747u16 => "linktest-s", - 3748u16 => "webdata", - 3749u16 => "cimtrak", - 3750u16 => "cbos-ip-port", - 3751u16 => "gprs-cube", - 3752u16 => "vipremoteagent", - 3753u16 => "nattyserver", - 3754u16 => "timestenbroker", - 3755u16 => "sas-remote-hlp", - 3756u16 => "canon-capt", - 3757u16 => "grf-port", - 3758u16 => "apw-registry", - 3759u16 => "exapt-lmgr", - 3760u16 => "adtempusclient", - 3761u16 => "gsakmp", - 3762u16 => "gbs-smp", - 3763u16 => "xo-wave", - 3764u16 => "mni-prot-rout", - 3765u16 => "rtraceroute", - 3766u16 => "sitewatch-s", - 3767u16 => "listmgr-port", - 3768u16 => "rblcheckd", - 3769u16 => "haipe-otnk", - 3770u16 => "cindycollab", - 3771u16 => "paging-port", - 3772u16 => "ctp", - 3773u16 => "ctdhercules", - 3774u16 => "zicom", - 3775u16 => "ispmmgr", - 3776u16 => "dvcprov-port", - 3777u16 => "jibe-eb", - 3778u16 => "c-h-it-port", - 3779u16 => "cognima", - 3780u16 => "nnp", - 3781u16 => "abcvoice-port", - 3782u16 => "iso-tp0s", - 3783u16 => "bim-pem", - 3784u16 => "bfd-control", - 3785u16 => "bfd-echo", - 3786u16 => "upstriggervsw", - 3787u16 => "fintrx", - 3788u16 => "isrp-port", - 3789u16 => "remotedeploy", - 3790u16 => "quickbooksrds", - 3791u16 => "tvnetworkvideo", - 3792u16 => "sitewatch", - 3793u16 => "dcsoftware", - 3794u16 => "jaus", - 3795u16 => "myblast", - 3796u16 => "spw-dialer", - 3797u16 => "idps", - 3798u16 => "minilock", - 3799u16 => "radius-dynauth", - 3800u16 => "pwgpsi", - 3801u16 => "ibm-mgr", - 3802u16 => "vhd", - 3803u16 => "soniqsync", - 3804u16 => "iqnet-port", - 3805u16 => "tcpdataserver", - 3806u16 => "wsmlb", - 3807u16 => "spugna", - 3808u16 => "sun-as-iiops-ca", - 3809u16 => "apocd", - 3810u16 => "wlanauth", - 3811u16 => "amp", - 3812u16 => "neto-wol-server", - 3813u16 => "rap-ip", - 3814u16 => "neto-dcs", - 3815u16 => "lansurveyorxml", - 3816u16 => "sunlps-http", - 3817u16 => "tapeware", - 3818u16 => "crinis-hb", - 3819u16 => "epl-slp", - 3820u16 => "scp", - 3821u16 => "pmcp", - 3822u16 => "acp-discovery", - 3823u16 => "acp-conduit", - 3824u16 => "acp-policy", - 3825u16 => "ffserver", - 3826u16 => "warmux", - 3827u16 => "netmpi", - 3828u16 => "neteh", - 3829u16 => "neteh-ext", - 3830u16 => "cernsysmgmtagt", - 3831u16 => "dvapps", - 3832u16 => "xxnetserver", - 3833u16 => "aipn-auth", - 3834u16 => "spectardata", - 3835u16 => "spectardb", - 3836u16 => "markem-dcp", - 3837u16 => "mkm-discovery", - 3838u16 => "sos", - 3839u16 => "amx-rms", - 3840u16 => "flirtmitmir", - 3841u16 => "shiprush-db-svr", - 3842u16 => "nhci", - 3843u16 => "quest-agent", - 3844u16 => "rnm", - 3845u16 => "v-one-spp", - 3846u16 => "an-pcp", - 3847u16 => "msfw-control", - 3848u16 => "item", - 3849u16 => "spw-dnspreload", - 3850u16 => "qtms-bootstrap", - 3851u16 => "spectraport", - 3852u16 => "sse-app-config", - 3853u16 => "sscan", - 3854u16 => "stryker-com", - 3855u16 => "opentrac", - 3856u16 => "informer", - 3857u16 => "trap-port", - 3858u16 => "trap-port-mom", - 3859u16 => "nav-port", - 3860u16 => "sasp", - 3861u16 => "winshadow-hd", - 3862u16 => "giga-pocket", - 3863u16 => "asap-tcp", - 3864u16 => "asap-tcp-tls", - 3865u16 => "xpl", - 3866u16 => "dzdaemon", - 3867u16 => "dzoglserver", - 3868u16 => "diameter", - 3869u16 => "ovsam-mgmt", - 3870u16 => "ovsam-d-agent", - 3871u16 => "avocent-adsap", - 3872u16 => "oem-agent", - 3873u16 => "fagordnc", - 3874u16 => "sixxsconfig", - 3875u16 => "pnbscada", - 3876u16 => "dl_agent", - 3877u16 => "xmpcr-interface", - 3878u16 => "fotogcad", - 3879u16 => "appss-lm", - 3880u16 => "igrs", - 3881u16 => "idac", - 3882u16 => "msdts1", - 3883u16 => "vrpn", - 3884u16 => "softrack-meter", - 3885u16 => "topflow-ssl", - 3886u16 => "nei-management", - 3887u16 => "ciphire-data", - 3888u16 => "ciphire-serv", - 3889u16 => "dandv-tester", - 3890u16 => "ndsconnect", - 3891u16 => "rtc-pm-port", - 3892u16 => "pcc-image-port", - 3893u16 => "cgi-starapi", - 3894u16 => "syam-agent", - 3895u16 => "syam-smc", - 3896u16 => "sdo-tls", - 3897u16 => "sdo-ssh", - 3898u16 => "senip", - 3899u16 => "itv-control", - 3900u16 => "udt_os", - 3901u16 => "nimsh", - 3902u16 => "nimaux", - 3903u16 => "charsetmgr", - 3904u16 => "omnilink-port", - 3905u16 => "mupdate", - 3906u16 => "topovista-data", - 3907u16 => "imoguia-port", - 3908u16 => "hppronetman", - 3909u16 => "surfcontrolcpa", - 3910u16 => "prnrequest", - 3911u16 => "prnstatus", - 3912u16 => "gbmt-stars", - 3913u16 => "listcrt-port", - 3914u16 => "listcrt-port-2", - 3915u16 => "agcat", - 3916u16 => "wysdmc", - 3917u16 => "aftmux", - 3918u16 => "pktcablemmcops", - 3919u16 => "hyperip", - 3920u16 => "exasoftport1", - 3921u16 => "herodotus-net", - 3922u16 => "sor-update", - 3923u16 => "symb-sb-port", - 3924u16 => "mpl-gprs-port", - 3925u16 => "zmp", - 3926u16 => "winport", - 3927u16 => "natdataservice", - 3928u16 => "netboot-pxe", - 3929u16 => "smauth-port", - 3930u16 => "syam-webserver", - 3931u16 => "msr-plugin-port", - 3932u16 => "dyn-site", - 3933u16 => "plbserve-port", - 3934u16 => "sunfm-port", - 3935u16 => "sdp-portmapper", - 3936u16 => "mailprox", - 3937u16 => "dvbservdsc", - 3938u16 => "dbcontrol_agent", - 3939u16 => "aamp", - 3940u16 => "xecp-node", - 3941u16 => "homeportal-web", - 3942u16 => "srdp", - 3943u16 => "tig", - 3944u16 => "sops", - 3945u16 => "emcads", - 3946u16 => "backupedge", - 3947u16 => "ccp", - 3948u16 => "apdap", - 3949u16 => "drip", - 3950u16 => "namemunge", - 3951u16 => "pwgippfax", - 3952u16 => "i3-sessionmgr", - 3953u16 => "xmlink-connect", - 3954u16 => "adrep", - 3955u16 => "p2pcommunity", - 3956u16 => "gvcp", - 3957u16 => "mqe-broker", - 3958u16 => "mqe-agent", - 3959u16 => "treehopper", - 3960u16 => "bess", - 3961u16 => "proaxess", - 3962u16 => "sbi-agent", - 3963u16 => "thrp", - 3964u16 => "sasggprs", - 3965u16 => "ati-ip-to-ncpe", - 3966u16 => "bflckmgr", - 3967u16 => "ppsms", - 3968u16 => "ianywhere-dbns", - 3969u16 => "landmarks", - 3970u16 => "lanrevagent", - 3971u16 => "lanrevserver", - 3972u16 => "iconp", - 3973u16 => "progistics", - 3974u16 => "citysearch", - 3975u16 => "airshot", - 3976u16 => "opswagent", - 3977u16 => "opswmanager", - 3978u16 => "secure-cfg-svr", - 3979u16 => "smwan", - 3981u16 => "starfish", - 3982u16 => "eis", - 3983u16 => "eisp", - 3984u16 => "mapper-nodemgr", - 3985u16 => "mapper-mapethd", - 3986u16 => "mapper-ws_ethd", - 3987u16 => "centerline", - 3988u16 => "dcs-config", - 3989u16 => "bv-queryengine", - 3990u16 => "bv-is", - 3991u16 => "bv-smcsrv", - 3992u16 => "bv-ds", - 3993u16 => "bv-agent", - 3995u16 => "iss-mgmt-ssl", - 3996u16 => "abcsoftware", - 3997u16 => "agentsease-db", - 3998u16 => "dnx", - 3999u16 => "nvcnet", - 4000u16 => "terabase", - 4001u16 => "newoak", - 4002u16 => "pxc-spvr-ft", - 4003u16 => "pxc-splr-ft", - 4004u16 => "pxc-roid", - 4005u16 => "pxc-pin", - 4006u16 => "pxc-spvr", - 4007u16 => "pxc-splr", - 4008u16 => "netcheque", - 4009u16 => "chimera-hwm", - 4010u16 => "samsung-unidex", - 4011u16 => "altserviceboot", - 4012u16 => "pda-gate", - 4013u16 => "acl-manager", - 4014u16 => "taiclock", - 4015u16 => "talarian-mcast1", - 4016u16 => "talarian-mcast2", - 4017u16 => "talarian-mcast3", - 4018u16 => "talarian-mcast4", - 4019u16 => "talarian-mcast5", - 4020u16 => "trap", - 4021u16 => "nexus-portal", - 4022u16 => "dnox", - 4023u16 => "esnm-zoning", - 4024u16 => "tnp1-port", - 4025u16 => "partimage", - 4026u16 => "as-debug", - 4027u16 => "bxp", - 4028u16 => "dtserver-port", - 4029u16 => "ip-qsig", - 4030u16 => "jdmn-port", - 4031u16 => "suucp", - 4032u16 => "vrts-auth-port", - 4033u16 => "sanavigator", - 4034u16 => "ubxd", - 4035u16 => "wap-push-http", - 4036u16 => "wap-push-https", - 4037u16 => "ravehd", - 4038u16 => "fazzt-ptp", - 4039u16 => "fazzt-admin", - 4040u16 => "yo-main", - 4041u16 => "houston", - 4042u16 => "ldxp", - 4043u16 => "nirp", - 4044u16 => "ltp", - 4045u16 => "npp", - 4046u16 => "acp-proto", - 4047u16 => "ctp-state", - 4049u16 => "wafs", - 4050u16 => "cisco-wafs", - 4051u16 => "cppdp", - 4052u16 => "interact", - 4053u16 => "ccu-comm-1", - 4054u16 => "ccu-comm-2", - 4055u16 => "ccu-comm-3", - 4056u16 => "lms", - 4057u16 => "wfm", - 4058u16 => "kingfisher", - 4059u16 => "dlms-cosem", - 4060u16 => "dsmeter_iatc", - 4061u16 => "ice-location", - 4062u16 => "ice-slocation", - 4063u16 => "ice-router", - 4064u16 => "ice-srouter", - 4065u16 => "avanti_cdp", - 4066u16 => "pmas", - 4067u16 => "idp", - 4068u16 => "ipfltbcst", - 4069u16 => "minger", - 4070u16 => "tripe", - 4071u16 => "aibkup", - 4072u16 => "zieto-sock", - 4073u16 => "iRAPP", - 4074u16 => "cequint-cityid", - 4075u16 => "perimlan", - 4076u16 => "seraph", - 4078u16 => "cssp", - 4079u16 => "santools", - 4080u16 => "lorica-in", - 4081u16 => "lorica-in-sec", - 4082u16 => "lorica-out", - 4083u16 => "lorica-out-sec", - 4085u16 => "ezmessagesrv", - 4087u16 => "applusservice", - 4088u16 => "npsp", - 4089u16 => "opencore", - 4090u16 => "omasgport", - 4091u16 => "ewinstaller", - 4092u16 => "ewdgs", - 4093u16 => "pvxpluscs", - 4094u16 => "sysrqd", - 4095u16 => "xtgui", - 4096u16 => "bre", - 4097u16 => "patrolview", - 4098u16 => "drmsfsd", - 4099u16 => "dpcp", - 4100u16 => "igo-incognito", - 4101u16 => "brlp-0", - 4102u16 => "brlp-1", - 4103u16 => "brlp-2", - 4104u16 => "brlp-3", - 4105u16 => "shofar", - 4106u16 => "synchronite", - 4107u16 => "j-ac", - 4108u16 => "accel", - 4109u16 => "izm", - 4110u16 => "g2tag", - 4111u16 => "xgrid", - 4112u16 => "apple-vpns-rp", - 4113u16 => "aipn-reg", - 4114u16 => "jomamqmonitor", - 4115u16 => "cds", - 4116u16 => "smartcard-tls", - 4117u16 => "hillrserv", - 4118u16 => "netscript", - 4119u16 => "assuria-slm", - 4120u16 => "minirem", - 4121u16 => "e-builder", - 4122u16 => "fprams", - 4123u16 => "z-wave", - 4124u16 => "tigv2", - 4125u16 => "opsview-envoy", - 4126u16 => "ddrepl", - 4127u16 => "unikeypro", - 4128u16 => "nufw", - 4129u16 => "nuauth", - 4130u16 => "fronet", - 4131u16 => "stars", - 4132u16 => "nuts_dem", - 4133u16 => "nuts_bootp", - 4134u16 => "nifty-hmi", - 4135u16 => "cl-db-attach", - 4136u16 => "cl-db-request", - 4137u16 => "cl-db-remote", - 4138u16 => "nettest", - 4139u16 => "thrtx", - 4140u16 => "cedros_fds", - 4141u16 => "oirtgsvc", - 4142u16 => "oidocsvc", - 4143u16 => "oidsr", - 4145u16 => "vvr-control", - 4146u16 => "tgcconnect", - 4147u16 => "vrxpservman", - 4148u16 => "hhb-handheld", - 4149u16 => "agslb", - 4150u16 => "PowerAlert-nsa", - 4151u16 => "menandmice_noh", - 4152u16 => "idig_mux", - 4153u16 => "mbl-battd", - 4154u16 => "atlinks", - 4155u16 => "bzr", - 4156u16 => "stat-results", - 4157u16 => "stat-scanner", - 4158u16 => "stat-cc", - 4159u16 => "nss", - 4160u16 => "jini-discovery", - 4161u16 => "omscontact", - 4162u16 => "omstopology", - 4163u16 => "silverpeakpeer", - 4164u16 => "silverpeakcomm", - 4165u16 => "altcp", - 4166u16 => "joost", - 4167u16 => "ddgn", - 4168u16 => "pslicser", - 4169u16 => "iadt", - 4170u16 => "d-cinema-csp", - 4171u16 => "ml-svnet", - 4172u16 => "pcoip", - 4174u16 => "smcluster", - 4175u16 => "bccp", - 4176u16 => "tl-ipcproxy", - 4177u16 => "wello", - 4178u16 => "storman", - 4179u16 => "MaxumSP", - 4180u16 => "httpx", - 4181u16 => "macbak", - 4182u16 => "pcptcpservice", - 4183u16 => "cyborgnet", - 4184u16 => "universe_suite", - 4185u16 => "wcpp", - 4186u16 => "boxbackupstore", - 4187u16 => "csc_proxy", - 4188u16 => "vatata", - 4189u16 => "pcep", - 4190u16 => "sieve", - 4192u16 => "azeti", - 4193u16 => "pvxplusio", - 4195u16 => "aws-wsp", - 4197u16 => "hctl", - 4199u16 => "eims-admin", - 4300u16 => "corelccam", - 4301u16 => "d-data", - 4302u16 => "d-data-control", - 4303u16 => "srcp", - 4304u16 => "owserver", - 4305u16 => "batman", - 4306u16 => "pinghgl", - 4307u16 => "trueconf", - 4308u16 => "compx-lockview", - 4309u16 => "dserver", - 4310u16 => "mirrtex", - 4311u16 => "p6ssmc", - 4312u16 => "pscl-mgt", - 4313u16 => "perrla", - 4314u16 => "choiceview-agt", - 4316u16 => "choiceview-clt", - 4317u16 => "opentelemetry", - 4320u16 => "fdt-rcatp", - 4321u16 => "rwhois", - 4322u16 => "trim-event", - 4323u16 => "trim-ice", - 4325u16 => "geognosisman", - 4326u16 => "geognosis", - 4327u16 => "jaxer-web", - 4328u16 => "jaxer-manager", - 4329u16 => "publiqare-sync", - 4330u16 => "dey-sapi", - 4331u16 => "ktickets-rest", - 4332u16 => "getty-focus", - 4333u16 => "ahsp", - 4334u16 => "netconf-ch-ssh", - 4335u16 => "netconf-ch-tls", - 4336u16 => "restconf-ch-tls", - 4340u16 => "gaia", - 4343u16 => "unicall", - 4344u16 => "vinainstall", - 4345u16 => "m4-network-as", - 4346u16 => "elanlm", - 4347u16 => "lansurveyor", - 4348u16 => "itose", - 4349u16 => "fsportmap", - 4350u16 => "net-device", - 4351u16 => "plcy-net-svcs", - 4352u16 => "pjlink", - 4353u16 => "f5-iquery", - 4354u16 => "qsnet-trans", - 4355u16 => "qsnet-workst", - 4356u16 => "qsnet-assist", - 4357u16 => "qsnet-cond", - 4358u16 => "qsnet-nucl", - 4359u16 => "omabcastltkm", - 4360u16 => "matrix_vnet", - 4368u16 => "wxbrief", - 4369u16 => "epmd", - 4370u16 => "elpro_tunnel", - 4371u16 => "l2c-control", - 4372u16 => "l2c-data", - 4373u16 => "remctl", - 4374u16 => "psi-ptt", - 4375u16 => "tolteces", - 4376u16 => "bip", - 4377u16 => "cp-spxsvr", - 4378u16 => "cp-spxdpy", - 4379u16 => "ctdb", - 4389u16 => "xandros-cms", - 4390u16 => "wiegand", - 4391u16 => "apwi-imserver", - 4392u16 => "apwi-rxserver", - 4393u16 => "apwi-rxspooler", - 4395u16 => "omnivisionesx", - 4396u16 => "fly", - 4400u16 => "ds-srv", - 4401u16 => "ds-srvr", - 4402u16 => "ds-clnt", - 4403u16 => "ds-user", - 4404u16 => "ds-admin", - 4405u16 => "ds-mail", - 4406u16 => "ds-slp", - 4407u16 => "nacagent", - 4408u16 => "slscc", - 4409u16 => "netcabinet-com", - 4410u16 => "itwo-server", - 4411u16 => "found", - 4413u16 => "avi-nms", - 4414u16 => "updog", - 4415u16 => "brcd-vr-req", - 4416u16 => "pjj-player", - 4417u16 => "workflowdir", - 4419u16 => "cbp", - 4420u16 => "nvme", - 4421u16 => "scaleft", - 4422u16 => "tsepisp", - 4423u16 => "thingkit", - 4425u16 => "netrockey6", - 4426u16 => "beacon-port-2", - 4427u16 => "drizzle", - 4428u16 => "omviserver", - 4429u16 => "omviagent", - 4430u16 => "rsqlserver", - 4431u16 => "wspipe", - 4432u16 => "l-acoustics", - 4433u16 => "vop", - 4442u16 => "saris", - 4443u16 => "pharos", - 4444u16 => "nv-video", - 4445u16 => "upnotifyp", - 4446u16 => "n1-fwp", - 4447u16 => "n1-rmgmt", - 4448u16 => "asc-slmd", - 4449u16 => "privatewire", - 4450u16 => "camp", - 4451u16 => "ctisystemmsg", - 4452u16 => "ctiprogramload", - 4453u16 => "nssalertmgr", - 4454u16 => "nssagentmgr", - 4455u16 => "prchat-user", - 4456u16 => "prchat-server", - 4457u16 => "prRegister", - 4458u16 => "mcp", - 4460u16 => "ntske", - 4484u16 => "hpssmgmt", - 4485u16 => "assyst-dr", - 4486u16 => "icms", - 4487u16 => "prex-tcp", - 4488u16 => "awacs-ice", - 4500u16 => "ipsec-nat-t", - 4535u16 => "ehs", - 4536u16 => "ehs-ssl", - 4537u16 => "wssauthsvc", - 4538u16 => "swx-gate", - 4545u16 => "worldscores", - 4546u16 => "sf-lm", - 4547u16 => "lanner-lm", - 4548u16 => "synchromesh", - 4549u16 => "aegate", - 4550u16 => "gds-adppiw-db", - 4551u16 => "ieee-mih", - 4552u16 => "menandmice-mon", - 4553u16 => "icshostsvc", - 4554u16 => "msfrs", - 4555u16 => "rsip", - 4556u16 => "dtn-bundle", - 4559u16 => "hylafax", - 4563u16 => "amahi-anywhere", - 4566u16 => "kwtc", - 4567u16 => "tram", - 4568u16 => "bmc-reporting", - 4569u16 => "iax", - 4570u16 => "deploymentmap", - 4573u16 => "cardifftec-back", - 4590u16 => "rid", - 4591u16 => "l3t-at-an", - 4593u16 => "ipt-anri-anri", - 4594u16 => "ias-session", - 4595u16 => "ias-paging", - 4596u16 => "ias-neighbor", - 4597u16 => "a21-an-1xbs", - 4598u16 => "a16-an-an", - 4599u16 => "a17-an-an", - 4600u16 => "piranha1", - 4601u16 => "piranha2", - 4602u16 => "mtsserver", - 4603u16 => "menandmice-upg", - 4604u16 => "irp", - 4605u16 => "sixchat", - 4606u16 => "sixid", - 4646u16 => "dots-signal", - 4658u16 => "playsta2-app", - 4659u16 => "playsta2-lob", - 4660u16 => "smaclmgr", - 4661u16 => "kar2ouche", - 4662u16 => "oms", - 4663u16 => "noteit", - 4664u16 => "ems", - 4665u16 => "contclientms", - 4666u16 => "eportcomm", - 4667u16 => "mmacomm", - 4668u16 => "mmaeds", - 4669u16 => "eportcommdata", - 4670u16 => "light", - 4671u16 => "acter", - 4672u16 => "rfa", - 4673u16 => "cxws", - 4674u16 => "appiq-mgmt", - 4675u16 => "dhct-status", - 4676u16 => "dhct-alerts", - 4677u16 => "bcs", - 4678u16 => "traversal", - 4679u16 => "mgesupervision", - 4680u16 => "mgemanagement", - 4681u16 => "parliant", - 4682u16 => "finisar", - 4683u16 => "spike", - 4684u16 => "rfid-rp1", - 4685u16 => "autopac", - 4686u16 => "msp-os", - 4687u16 => "nst", - 4688u16 => "mobile-p2p", - 4689u16 => "altovacentral", - 4690u16 => "prelude", - 4691u16 => "mtn", - 4692u16 => "conspiracy", - 4700u16 => "netxms-agent", - 4701u16 => "netxms-mgmt", - 4702u16 => "netxms-sync", - 4703u16 => "npqes-test", - 4704u16 => "assuria-ins", - 4711u16 => "trinity-dist", - 4725u16 => "truckstar", - 4727u16 => "fcis", - 4728u16 => "capmux", - 4730u16 => "gearman", - 4731u16 => "remcap", - 4733u16 => "resorcs", - 4737u16 => "ipdr-sp", - 4738u16 => "solera-lpn", - 4739u16 => "ipfix", - 4740u16 => "ipfixs", - 4741u16 => "lumimgrd", - 4742u16 => "sicct", - 4743u16 => "openhpid", - 4744u16 => "ifsp", - 4745u16 => "fmp", - 4749u16 => "profilemac", - 4750u16 => "ssad", - 4751u16 => "spocp", - 4752u16 => "snap", - 4753u16 => "simon", - 4756u16 => "RDCenter", - 4774u16 => "converge", - 4784u16 => "bfd-multi-ctl", - 4786u16 => "smart-install", - 4787u16 => "sia-ctrl-plane", - 4788u16 => "xmcp", - 4800u16 => "iims", - 4801u16 => "iwec", - 4802u16 => "ilss", - 4803u16 => "notateit", - 4827u16 => "htcp", - 4837u16 => "varadero-0", - 4838u16 => "varadero-1", - 4839u16 => "varadero-2", - 4840u16 => "opcua-tcp", - 4841u16 => "quosa", - 4842u16 => "gw-asv", - 4843u16 => "opcua-tls", - 4844u16 => "gw-log", - 4845u16 => "wcr-remlib", - 4846u16 => "contamac_icm", - 4847u16 => "wfc", - 4848u16 => "appserv-http", - 4849u16 => "appserv-https", - 4850u16 => "sun-as-nodeagt", - 4851u16 => "derby-repli", - 4867u16 => "unify-debug", - 4868u16 => "phrelay", - 4869u16 => "phrelaydbg", - 4870u16 => "cc-tracking", - 4871u16 => "wired", - 4876u16 => "tritium-can", - 4877u16 => "lmcs", - 4879u16 => "wsdl-event", - 4880u16 => "hislip", - 4883u16 => "wmlserver", - 4884u16 => "hivestor", - 4885u16 => "abbs", - 4888u16 => "xcap-portal", - 4889u16 => "xcap-control", - 4894u16 => "lyskom", - 4899u16 => "radmin-port", - 4900u16 => "hfcs", - 4901u16 => "flr_agent", - 4902u16 => "magiccontrol", - 4912u16 => "lutap", - 4913u16 => "lutcp", - 4914u16 => "bones", - 4915u16 => "frcs", - 4940u16 => "eq-office-4940", - 4941u16 => "eq-office-4941", - 4942u16 => "eq-office-4942", - 4949u16 => "munin", - 4950u16 => "sybasesrvmon", - 4951u16 => "pwgwims", - 4952u16 => "sagxtsds", - 4953u16 => "dbsyncarbiter", - 4969u16 => "ccss-qmm", - 4970u16 => "ccss-qsm", - 4971u16 => "burp", - 4984u16 => "webyast", - 4985u16 => "gerhcs", - 4986u16 => "mrip", - 4987u16 => "smar-se-port1", - 4988u16 => "smar-se-port2", - 4989u16 => "parallel", - 4990u16 => "busycal", - 4991u16 => "vrt", - 4999u16 => "hfcs-manager", - 5000u16 => "commplex-main", - 5001u16 => "commplex-link", - 5002u16 => "rfe", - 5003u16 => "fmpro-internal", - 5004u16 => "avt-profile-1", - 5005u16 => "avt-profile-2", - 5006u16 => "wsm-server", - 5007u16 => "wsm-server-ssl", - 5008u16 => "synapsis-edge", - 5009u16 => "winfs", - 5010u16 => "telelpathstart", - 5011u16 => "telelpathattack", - 5012u16 => "nsp", - 5013u16 => "fmpro-v6", - 5015u16 => "fmwp", - 5020u16 => "zenginkyo-1", - 5021u16 => "zenginkyo-2", - 5022u16 => "mice", - 5023u16 => "htuilsrv", - 5024u16 => "scpi-telnet", - 5025u16 => "scpi-raw", - 5026u16 => "strexec-d", - 5027u16 => "strexec-s", - 5028u16 => "qvr", - 5029u16 => "infobright", - 5030u16 => "surfpass", - 5032u16 => "signacert-agent", - 5033u16 => "jtnetd-server", - 5034u16 => "jtnetd-status", - 5042u16 => "asnaacceler8db", - 5043u16 => "swxadmin", - 5044u16 => "lxi-evntsvc", - 5045u16 => "osp", - 5048u16 => "texai", - 5049u16 => "ivocalize", - 5050u16 => "mmcc", - 5051u16 => "ita-agent", - 5052u16 => "ita-manager", - 5053u16 => "rlm", - 5054u16 => "rlm-admin", - 5055u16 => "unot", - 5056u16 => "intecom-ps1", - 5057u16 => "intecom-ps2", - 5059u16 => "sds", - 5060u16 => "sip", - 5061u16 => "sips", - 5062u16 => "na-localise", - 5063u16 => "csrpc", - 5064u16 => "ca-1", - 5065u16 => "ca-2", - 5066u16 => "stanag-5066", - 5067u16 => "authentx", - 5068u16 => "bitforestsrv", - 5069u16 => "i-net-2000-npr", - 5070u16 => "vtsas", - 5071u16 => "powerschool", - 5072u16 => "ayiya", - 5073u16 => "tag-pm", - 5074u16 => "alesquery", - 5075u16 => "pvaccess", - 5080u16 => "onscreen", - 5081u16 => "sdl-ets", - 5082u16 => "qcp", - 5083u16 => "qfp", - 5084u16 => "llrp", - 5085u16 => "encrypted-llrp", - 5086u16 => "aprigo-cs", - 5087u16 => "biotic", - 5093u16 => "sentinel-lm", - 5094u16 => "hart-ip", - 5099u16 => "sentlm-srv2srv", - 5100u16 => "socalia", - 5101u16 => "talarian-tcp", - 5102u16 => "oms-nonsecure", - 5103u16 => "actifio-c2c", - 5106u16 => "actifioudsagent", - 5107u16 => "actifioreplic", - 5111u16 => "taep-as-svc", - 5112u16 => "pm-cmdsvr", - 5114u16 => "ev-services", - 5115u16 => "autobuild", - 5117u16 => "gradecam", - 5120u16 => "barracuda-bbs", - 5133u16 => "nbt-pc", - 5134u16 => "ppactivation", - 5135u16 => "erp-scale", - 5137u16 => "ctsd", - 5145u16 => "rmonitor_secure", - 5146u16 => "social-alarm", - 5150u16 => "atmp", - 5151u16 => "esri_sde", - 5152u16 => "sde-discovery", - 5154u16 => "bzflag", - 5155u16 => "asctrl-agent", - 5156u16 => "rugameonline", - 5157u16 => "mediat", - 5161u16 => "snmpssh", - 5162u16 => "snmpssh-trap", - 5163u16 => "sbackup", - 5164u16 => "vpa", - 5165u16 => "ife_icorp", - 5166u16 => "winpcs", - 5167u16 => "scte104", - 5168u16 => "scte30", - 5172u16 => "pcoip-mgmt", - 5190u16 => "aol", - 5191u16 => "aol-1", - 5192u16 => "aol-2", - 5193u16 => "aol-3", - 5194u16 => "cpscomm", - 5195u16 => "ampl-lic", - 5196u16 => "ampl-tableproxy", - 5197u16 => "tunstall-lwp", - 5200u16 => "targus-getdata", - 5201u16 => "targus-getdata1", - 5202u16 => "targus-getdata2", - 5203u16 => "targus-getdata3", - 5209u16 => "nomad", - 5215u16 => "noteza", - 5221u16 => "3exmp", - 5222u16 => "xmpp-client", - 5223u16 => "hpvirtgrp", - 5224u16 => "hpvirtctrl", - 5225u16 => "hp-server", - 5226u16 => "hp-status", - 5227u16 => "perfd", - 5228u16 => "hpvroom", - 5229u16 => "jaxflow", - 5230u16 => "jaxflow-data", - 5231u16 => "crusecontrol", - 5232u16 => "csedaemon", - 5233u16 => "enfs", - 5234u16 => "eenet", - 5235u16 => "galaxy-network", - 5236u16 => "padl2sim", - 5237u16 => "mnet-discovery", - 5245u16 => "downtools", - 5248u16 => "caacws", - 5249u16 => "caaclang2", - 5250u16 => "soagateway", - 5251u16 => "caevms", - 5252u16 => "movaz-ssc", - 5253u16 => "kpdp", - 5254u16 => "logcabin", - 5264u16 => "3com-njack-1", - 5265u16 => "3com-njack-2", - 5269u16 => "xmpp-server", - 5270u16 => "cartographerxmp", - 5271u16 => "cuelink", - 5272u16 => "pk", - 5280u16 => "xmpp-bosh", - 5281u16 => "undo-lm", - 5282u16 => "transmit-port", - 5298u16 => "presence", - 5299u16 => "nlg-data", - 5300u16 => "hacl-hb", - 5301u16 => "hacl-gs", - 5302u16 => "hacl-cfg", - 5303u16 => "hacl-probe", - 5304u16 => "hacl-local", - 5305u16 => "hacl-test", - 5306u16 => "sun-mc-grp", - 5307u16 => "sco-aip", - 5308u16 => "cfengine", - 5309u16 => "jprinter", - 5310u16 => "outlaws", - 5312u16 => "permabit-cs", - 5313u16 => "rrdp", - 5314u16 => "opalis-rbt-ipc", - 5315u16 => "hacl-poll", - 5316u16 => "hpbladems", - 5317u16 => "hpdevms", - 5318u16 => "pkix-cmc", - 5320u16 => "bsfserver-zn", - 5321u16 => "bsfsvr-zn-ssl", - 5343u16 => "kfserver", - 5344u16 => "xkotodrcp", - 5349u16 => "stun-behaviors", - 5352u16 => "dns-llq", - 5353u16 => "mdns", - 5354u16 => "mdnsresponder", - 5355u16 => "llmnr", - 5356u16 => "ms-smlbiz", - 5357u16 => "wsdapi", - 5358u16 => "wsdapi-s", - 5359u16 => "ms-alerter", - 5360u16 => "ms-sideshow", - 5361u16 => "ms-s-sideshow", - 5362u16 => "serverwsd2", - 5363u16 => "net-projection", - 5397u16 => "stresstester", - 5398u16 => "elektron-admin", - 5399u16 => "securitychase", - 5400u16 => "excerpt", - 5401u16 => "excerpts", - 5402u16 => "mftp", - 5403u16 => "hpoms-ci-lstn", - 5404u16 => "hpoms-dps-lstn", - 5405u16 => "netsupport", - 5406u16 => "systemics-sox", - 5407u16 => "foresyte-clear", - 5408u16 => "foresyte-sec", - 5409u16 => "salient-dtasrv", - 5410u16 => "salient-usrmgr", - 5411u16 => "actnet", - 5412u16 => "continuus", - 5413u16 => "wwiotalk", - 5414u16 => "statusd", - 5415u16 => "ns-server", - 5416u16 => "sns-gateway", - 5417u16 => "sns-agent", - 5418u16 => "mcntp", - 5419u16 => "dj-ice", - 5420u16 => "cylink-c", - 5421u16 => "netsupport2", - 5422u16 => "salient-mux", - 5423u16 => "virtualuser", - 5424u16 => "beyond-remote", - 5425u16 => "br-channel", - 5426u16 => "devbasic", - 5427u16 => "sco-peer-tta", - 5428u16 => "telaconsole", - 5429u16 => "base", - 5430u16 => "radec-corp", - 5431u16 => "park-agent", - 5432u16 => "postgresql", - 5433u16 => "pyrrho", - 5434u16 => "sgi-arrayd", - 5435u16 => "sceanics", - 5443u16 => "spss", - 5445u16 => "smbdirect", - 5450u16 => "tiepie", - 5453u16 => "surebox", - 5454u16 => "apc-5454", - 5455u16 => "apc-5455", - 5456u16 => "apc-5456", - 5461u16 => "silkmeter", - 5462u16 => "ttl-publisher", - 5463u16 => "ttlpriceproxy", - 5464u16 => "quailnet", - 5465u16 => "netops-broker", - 5470u16 => "apsolab-col", - 5471u16 => "apsolab-cols", - 5472u16 => "apsolab-tag", - 5473u16 => "apsolab-tags", - 5475u16 => "apsolab-data", - 5500u16 => "fcp-addr-srvr1", - 5501u16 => "fcp-addr-srvr2", - 5502u16 => "fcp-srvr-inst1", - 5503u16 => "fcp-srvr-inst2", - 5504u16 => "fcp-cics-gw1", - 5505u16 => "checkoutdb", - 5506u16 => "amc", - 5507u16 => "psl-management", - 5550u16 => "cbus", - 5553u16 => "sgi-eventmond", - 5554u16 => "sgi-esphttp", - 5555u16 => "personal-agent", - 5556u16 => "freeciv", - 5557u16 => "farenet", - 5565u16 => "dp-bura", - 5566u16 => "westec-connect", - 5567u16 => "dof-dps-mc-sec", - 5568u16 => "sdt", - 5569u16 => "rdmnet-ctrl", - 5573u16 => "sdmmp", - 5574u16 => "lsi-bobcat", - 5575u16 => "ora-oap", - 5579u16 => "fdtracks", - 5580u16 => "tmosms0", - 5581u16 => "tmosms1", - 5582u16 => "fac-restore", - 5583u16 => "tmo-icon-sync", - 5584u16 => "bis-web", - 5585u16 => "bis-sync", - 5586u16 => "att-mt-sms", - 5597u16 => "ininmessaging", - 5598u16 => "mctfeed", - 5599u16 => "esinstall", - 5600u16 => "esmmanager", - 5601u16 => "esmagent", - 5602u16 => "a1-msc", - 5603u16 => "a1-bs", - 5604u16 => "a3-sdunode", - 5605u16 => "a4-sdunode", - 5618u16 => "efr", - 5627u16 => "ninaf", - 5628u16 => "htrust", - 5629u16 => "symantec-sfdb", - 5630u16 => "precise-comm", - 5631u16 => "pcanywheredata", - 5632u16 => "pcanywherestat", - 5633u16 => "beorl", - 5634u16 => "xprtld", - 5635u16 => "sfmsso", - 5636u16 => "sfm-db-server", - 5637u16 => "cssc", - 5638u16 => "flcrs", - 5639u16 => "ics", - 5646u16 => "vfmobile", - 5666u16 => "nrpe", - 5670u16 => "filemq", - 5671u16 => "amqps", - 5672u16 => "amqp", - 5673u16 => "jms", - 5674u16 => "hyperscsi-port", - 5675u16 => "v5ua", - 5676u16 => "raadmin", - 5677u16 => "questdb2-lnchr", - 5678u16 => "rrac", - 5679u16 => "dccm", - 5680u16 => "auriga-router", - 5681u16 => "ncxcp", - 5683u16 => "coap", - 5684u16 => "coaps", - 5688u16 => "ggz", - 5689u16 => "qmvideo", - 5693u16 => "rbsystem", - 5696u16 => "kmip", - 5700u16 => "supportassist", - 5705u16 => "storageos", - 5713u16 => "proshareaudio", - 5714u16 => "prosharevideo", - 5715u16 => "prosharedata", - 5716u16 => "prosharerequest", - 5717u16 => "prosharenotify", - 5718u16 => "dpm", - 5719u16 => "dpm-agent", - 5720u16 => "ms-licensing", - 5721u16 => "dtpt", - 5722u16 => "msdfsr", - 5723u16 => "omhs", - 5724u16 => "omsdk", - 5725u16 => "ms-ilm", - 5726u16 => "ms-ilm-sts", - 5727u16 => "asgenf", - 5728u16 => "io-dist-data", - 5729u16 => "openmail", - 5730u16 => "unieng", - 5741u16 => "ida-discover1", - 5742u16 => "ida-discover2", - 5743u16 => "watchdoc-pod", - 5744u16 => "watchdoc", - 5745u16 => "fcopy-server", - 5746u16 => "fcopys-server", - 5747u16 => "tunatic", - 5748u16 => "tunalyzer", - 5750u16 => "rscd", - 5755u16 => "openmailg", - 5757u16 => "x500ms", - 5766u16 => "openmailns", - 5767u16 => "s-openmail", - 5768u16 => "openmailpxy", - 5769u16 => "spramsca", - 5770u16 => "spramsd", - 5771u16 => "netagent", - 5777u16 => "starfield-io", - 5780u16 => "vts-rpc", - 5781u16 => "3par-evts", - 5782u16 => "3par-mgmt", - 5783u16 => "3par-mgmt-ssl", - 5785u16 => "3par-rcopy", - 5793u16 => "xtreamx", - 5813u16 => "icmpd", - 5814u16 => "spt-automation", - 5841u16 => "shiprush-d-ch", - 5842u16 => "reversion", - 5859u16 => "wherehoo", - 5863u16 => "ppsuitemsg", - 5868u16 => "diameters", - 5883u16 => "jute", - 5900u16 => "rfb", - 5910u16 => "cm", - 5911u16 => "cpdlc", - 5912u16 => "fis", - 5913u16 => "ads-c", - 5963u16 => "indy", - 5968u16 => "mppolicy-v5", - 5969u16 => "mppolicy-mgr", - 5984u16 => "couchdb", - 5985u16 => "wsman", - 5986u16 => "wsmans", - 5987u16 => "wbem-rmi", - 5988u16 => "wbem-http", - 5989u16 => "wbem-https", - 5990u16 => "wbem-exp-https", - 5991u16 => "nuxsl", - 5992u16 => "consul-insight", - 5993u16 => "cim-rs", - 5999u16 => "cvsup", - 6064u16 => "ndl-ahp-svc", - 6065u16 => "winpharaoh", - 6066u16 => "ewctsp", - 6068u16 => "gsmp-ancp", - 6069u16 => "trip", - 6070u16 => "messageasap", - 6071u16 => "ssdtp", - 6072u16 => "diagnose-proc", - 6073u16 => "directplay8", - 6074u16 => "max", - 6075u16 => "dpm-acm", - 6076u16 => "msft-dpm-cert", - 6077u16 => "iconstructsrv", - 6084u16 => "reload-config", - 6085u16 => "konspire2b", - 6086u16 => "pdtp", - 6087u16 => "ldss", - 6088u16 => "doglms", - 6099u16 => "raxa-mgmt", - 6100u16 => "synchronet-db", - 6101u16 => "synchronet-rtc", - 6102u16 => "synchronet-upd", - 6103u16 => "rets", - 6104u16 => "dbdb", - 6105u16 => "primaserver", - 6106u16 => "mpsserver", - 6107u16 => "etc-control", - 6108u16 => "sercomm-scadmin", - 6109u16 => "globecast-id", - 6110u16 => "softcm", - 6111u16 => "spc", - 6112u16 => "dtspcd", - 6113u16 => "dayliteserver", - 6114u16 => "wrspice", - 6115u16 => "xic", - 6116u16 => "xtlserv", - 6117u16 => "daylitetouch", - 6121u16 => "spdy", - 6122u16 => "bex-webadmin", - 6123u16 => "backup-express", - 6124u16 => "pnbs", - 6130u16 => "damewaremobgtwy", - 6133u16 => "nbt-wol", - 6140u16 => "pulsonixnls", - 6141u16 => "meta-corp", - 6142u16 => "aspentec-lm", - 6143u16 => "watershed-lm", - 6144u16 => "statsci1-lm", - 6145u16 => "statsci2-lm", - 6146u16 => "lonewolf-lm", - 6147u16 => "montage-lm", - 6148u16 => "ricardo-lm", - 6149u16 => "tal-pod", - 6159u16 => "efb-aci", - 6160u16 => "ecmp", - 6161u16 => "patrol-ism", - 6162u16 => "patrol-coll", - 6163u16 => "pscribe", - 6200u16 => "lm-x", - 6209u16 => "qmtps", - 6222u16 => "radmind", - 6241u16 => "jeol-nsdtp-1", - 6242u16 => "jeol-nsdtp-2", - 6243u16 => "jeol-nsdtp-3", - 6244u16 => "jeol-nsdtp-4", - 6251u16 => "tl1-raw-ssl", - 6252u16 => "tl1-ssh", - 6253u16 => "crip", - 6267u16 => "gld", - 6268u16 => "grid", - 6269u16 => "grid-alt", - 6300u16 => "bmc-grx", - 6301u16 => "bmc_ctd_ldap", - 6306u16 => "ufmp", - 6315u16 => "scup", - 6316u16 => "abb-escp", - 6317u16 => "nav-data-cmd", - 6320u16 => "repsvc", - 6321u16 => "emp-server1", - 6322u16 => "emp-server2", - 6324u16 => "hrd-ncs", - 6325u16 => "dt-mgmtsvc", - 6326u16 => "dt-vra", - 6343u16 => "sflow", - 6344u16 => "streletz", - 6346u16 => "gnutella-svc", - 6347u16 => "gnutella-rtr", - 6350u16 => "adap", - 6355u16 => "pmcs", - 6360u16 => "metaedit-mu", - 6370u16 => "metaedit-se", - 6379u16 => "redis", - 6382u16 => "metatude-mds", - 6389u16 => "clariion-evr01", - 6390u16 => "metaedit-ws", - 6417u16 => "faxcomservice", - 6418u16 => "syserverremote", - 6419u16 => "svdrp", - 6420u16 => "nim-vdrshell", - 6421u16 => "nim-wan", - 6432u16 => "pgbouncer", - 6440u16 => "heliosd", - 6442u16 => "tarp", - 6443u16 => "sun-sr-https", - 6444u16 => "sge_qmaster", - 6445u16 => "sge_execd", - 6446u16 => "mysql-proxy", - 6455u16 => "skip-cert-recv", - 6456u16 => "skip-cert-send", - 6464u16 => "ieee11073-20701", - 6471u16 => "lvision-lm", - 6480u16 => "sun-sr-http", - 6481u16 => "servicetags", - 6482u16 => "ldoms-mgmt", - 6483u16 => "SunVTS-RMI", - 6484u16 => "sun-sr-jms", - 6485u16 => "sun-sr-iiop", - 6486u16 => "sun-sr-iiops", - 6487u16 => "sun-sr-iiop-aut", - 6488u16 => "sun-sr-jmx", - 6489u16 => "sun-sr-admin", - 6500u16 => "boks", - 6501u16 => "boks_servc", - 6502u16 => "boks_servm", - 6503u16 => "boks_clntd", - 6505u16 => "badm_priv", - 6506u16 => "badm_pub", - 6507u16 => "bdir_priv", - 6508u16 => "bdir_pub", - 6509u16 => "mgcs-mfp-port", - 6510u16 => "mcer-port", - 6513u16 => "netconf-tls", - 6514u16 => "syslog-tls", - 6515u16 => "elipse-rec", - 6543u16 => "lds-distrib", - 6544u16 => "lds-dump", - 6547u16 => "apc-6547", - 6548u16 => "apc-6548", - 6549u16 => "apc-6549", - 6550u16 => "fg-sysupdate", - 6551u16 => "sum", - 6556u16 => "checkmk-agent", - 6558u16 => "xdsxdm", - 6566u16 => "sane-port", - 6568u16 => "canit_store", - 6579u16 => "affiliate", - 6580u16 => "parsec-master", - 6581u16 => "parsec-peer", - 6582u16 => "parsec-game", - 6583u16 => "joaJewelSuite", - 6600u16 => "mshvlm", - 6601u16 => "mstmg-sstp", - 6602u16 => "wsscomfrmwk", - 6619u16 => "odette-ftps", - 6620u16 => "kftp-data", - 6621u16 => "kftp", - 6622u16 => "mcftp", - 6623u16 => "ktelnet", - 6624u16 => "datascaler-db", - 6625u16 => "datascaler-ctl", - 6626u16 => "wago-service", - 6627u16 => "nexgen", - 6628u16 => "afesc-mc", - 6629u16 => "nexgen-aux", - 6632u16 => "mxodbc-connect", - 6640u16 => "ovsdb", - 6653u16 => "openflow", - 6655u16 => "pcs-sf-ui-man", - 6656u16 => "emgmsg", - 6670u16 => "vocaltec-gold", - 6671u16 => "p4p-portal", - 6672u16 => "vision_server", - 6673u16 => "vision_elmd", - 6678u16 => "vfbp", - 6679u16 => "osaut", - 6687u16 => "clever-ctrace", - 6688u16 => "clever-tcpip", - 6689u16 => "tsa", - 6690u16 => "cleverdetect", - 6697u16 => "ircs-u", - 6701u16 => "kti-icad-srvr", - 6702u16 => "e-design-net", - 6703u16 => "e-design-web", - 6714u16 => "ibprotocol", - 6715u16 => "fibotrader-com", - 6716u16 => "princity-agent", - 6767u16 => "bmc-perf-agent", - 6768u16 => "bmc-perf-mgrd", - 6769u16 => "adi-gxp-srvprt", - 6770u16 => "plysrv-http", - 6771u16 => "plysrv-https", - 6777u16 => "ntz-tracker", - 6778u16 => "ntz-p2p-storage", - 6785u16 => "dgpf-exchg", - 6786u16 => "smc-jmx", - 6787u16 => "smc-admin", - 6788u16 => "smc-http", - 6789u16 => "radg", - 6790u16 => "hnmp", - 6791u16 => "hnm", - 6801u16 => "acnet", - 6817u16 => "pentbox-sim", - 6831u16 => "ambit-lm", - 6841u16 => "netmo-default", - 6842u16 => "netmo-http", - 6850u16 => "iccrushmore", - 6868u16 => "acctopus-cc", - 6888u16 => "muse", - 6900u16 => "rtimeviewer", - 6901u16 => "jetstream", - 6924u16 => "split-ping", - 6935u16 => "ethoscan", - 6936u16 => "xsmsvc", - 6946u16 => "bioserver", - 6951u16 => "otlp", - 6961u16 => "jmact3", - 6962u16 => "jmevt2", - 6963u16 => "swismgr1", - 6964u16 => "swismgr2", - 6965u16 => "swistrap", - 6966u16 => "swispol", - 6969u16 => "acmsoda", - 6970u16 => "conductor", - 6997u16 => "MobilitySrv", - 6998u16 => "iatp-highpri", - 6999u16 => "iatp-normalpri", - 7000u16 => "afs3-fileserver", - 7001u16 => "afs3-callback", - 7002u16 => "afs3-prserver", - 7003u16 => "afs3-vlserver", - 7004u16 => "afs3-kaserver", - 7005u16 => "afs3-volser", - 7006u16 => "afs3-errors", - 7007u16 => "afs3-bos", - 7008u16 => "afs3-update", - 7009u16 => "afs3-rmtsys", - 7010u16 => "ups-onlinet", - 7011u16 => "talon-disc", - 7012u16 => "talon-engine", - 7013u16 => "microtalon-dis", - 7014u16 => "microtalon-com", - 7015u16 => "talon-webserver", - 7016u16 => "spg", - 7017u16 => "grasp", - 7018u16 => "fisa-svc", - 7019u16 => "doceri-ctl", - 7020u16 => "dpserve", - 7021u16 => "dpserveadmin", - 7022u16 => "ctdp", - 7023u16 => "ct2nmcs", - 7024u16 => "vmsvc", - 7025u16 => "vmsvc-2", - 7026u16 => "loreji-panel", - 7030u16 => "op-probe", - 7031u16 => "iposplanet", - 7070u16 => "arcp", - 7071u16 => "iwg1", - 7072u16 => "iba-cfg", - 7073u16 => "martalk", - 7080u16 => "empowerid", - 7099u16 => "lazy-ptop", - 7100u16 => "font-service", - 7101u16 => "elcn", - 7117u16 => "rothaga", - 7121u16 => "virprot-lm", - 7128u16 => "scenidm", - 7129u16 => "scenccs", - 7161u16 => "cabsm-comm", - 7162u16 => "caistoragemgr", - 7163u16 => "cacsambroker", - 7164u16 => "fsr", - 7165u16 => "doc-server", - 7166u16 => "aruba-server", - 7167u16 => "casrmagent", - 7168u16 => "cnckadserver", - 7169u16 => "ccag-pib", - 7170u16 => "nsrp", - 7171u16 => "drm-production", - 7172u16 => "metalbend", - 7173u16 => "zsecure", - 7174u16 => "clutild", - 7200u16 => "fodms", - 7201u16 => "dlip", - 7202u16 => "pon-ictp", - 7215u16 => "PS-Server", - 7216u16 => "PS-Capture-Pro", - 7227u16 => "ramp", - 7228u16 => "citrixupp", - 7229u16 => "citrixuppg", - 7234u16 => "asa-gateways", - 7236u16 => "display", - 7237u16 => "pads", - 7244u16 => "frc-hicp", - 7262u16 => "cnap", - 7272u16 => "watchme-7272", - 7273u16 => "oma-rlp", - 7274u16 => "oma-rlp-s", - 7275u16 => "oma-ulp", - 7276u16 => "oma-ilp", - 7277u16 => "oma-ilp-s", - 7278u16 => "oma-dcdocbs", - 7279u16 => "ctxlic", - 7280u16 => "itactionserver1", - 7281u16 => "itactionserver2", - 7282u16 => "mzca-action", - 7283u16 => "genstat", - 7365u16 => "lcm-server", - 7391u16 => "mindfilesys", - 7392u16 => "mrssrendezvous", - 7393u16 => "nfoldman", - 7394u16 => "fse", - 7395u16 => "winqedit", - 7397u16 => "hexarc", - 7400u16 => "rtps-discovery", - 7401u16 => "rtps-dd-ut", - 7402u16 => "rtps-dd-mt", - 7410u16 => "ionixnetmon", - 7411u16 => "daqstream", - 7421u16 => "mtportmon", - 7426u16 => "pmdmgr", - 7427u16 => "oveadmgr", - 7428u16 => "ovladmgr", - 7429u16 => "opi-sock", - 7430u16 => "xmpv7", - 7431u16 => "pmd", - 7437u16 => "faximum", - 7443u16 => "oracleas-https", - 7471u16 => "sttunnel", - 7473u16 => "rise", - 7474u16 => "neo4j", - 7478u16 => "openit", - 7491u16 => "telops-lmd", - 7500u16 => "silhouette", - 7501u16 => "ovbus", - 7508u16 => "adcp", - 7509u16 => "acplt", - 7510u16 => "ovhpas", - 7511u16 => "pafec-lm", - 7542u16 => "saratoga", - 7543u16 => "atul", - 7544u16 => "nta-ds", - 7545u16 => "nta-us", - 7546u16 => "cfs", - 7547u16 => "cwmp", - 7548u16 => "tidp", - 7549u16 => "nls-tl", - 7551u16 => "controlone-con", - 7560u16 => "sncp", - 7563u16 => "cfw", - 7566u16 => "vsi-omega", - 7569u16 => "dell-eql-asm", - 7570u16 => "aries-kfinder", - 7574u16 => "coherence", - 7588u16 => "sun-lm", - 7606u16 => "mipi-debug", - 7624u16 => "indi", - 7626u16 => "simco", - 7627u16 => "soap-http", - 7628u16 => "zen-pawn", - 7629u16 => "xdas", - 7630u16 => "hawk", - 7631u16 => "tesla-sys-msg", - 7633u16 => "pmdfmgt", - 7648u16 => "cuseeme", - 7663u16 => "rome", - 7672u16 => "imqstomp", - 7673u16 => "imqstomps", - 7674u16 => "imqtunnels", - 7675u16 => "imqtunnel", - 7676u16 => "imqbrokerd", - 7677u16 => "sun-user-https", - 7680u16 => "pando-pub", - 7683u16 => "dmt", - 7687u16 => "bolt", - 7689u16 => "collaber", - 7697u16 => "klio", - 7700u16 => "em7-secom", - 7707u16 => "sync-em7", - 7708u16 => "scinet", - 7720u16 => "medimageportal", - 7724u16 => "nsdeepfreezectl", - 7725u16 => "nitrogen", - 7726u16 => "freezexservice", - 7727u16 => "trident-data", - 7728u16 => "osvr", - 7734u16 => "smip", - 7738u16 => "aiagent", - 7741u16 => "scriptview", - 7742u16 => "msss", - 7743u16 => "sstp-1", - 7744u16 => "raqmon-pdu", - 7747u16 => "prgp", - 7775u16 => "inetfs", - 7777u16 => "cbt", - 7778u16 => "interwise", - 7779u16 => "vstat", - 7781u16 => "accu-lmgr", - 7786u16 => "minivend", - 7787u16 => "popup-reminders", - 7789u16 => "office-tools", - 7794u16 => "q3ade", - 7797u16 => "pnet-conn", - 7798u16 => "pnet-enc", - 7799u16 => "altbsdp", - 7800u16 => "asr", - 7801u16 => "ssp-client", - 7810u16 => "rbt-wanopt", - 7845u16 => "apc-7845", - 7846u16 => "apc-7846", - 7847u16 => "csoauth", - 7869u16 => "mobileanalyzer", - 7870u16 => "rbt-smc", - 7871u16 => "mdm", - 7878u16 => "owms", - 7880u16 => "pss", - 7887u16 => "ubroker", - 7900u16 => "mevent", - 7901u16 => "tnos-sp", - 7902u16 => "tnos-dp", - 7903u16 => "tnos-dps", - 7913u16 => "qo-secure", - 7932u16 => "t2-drm", - 7933u16 => "t2-brm", - 7962u16 => "generalsync", - 7967u16 => "supercell", - 7979u16 => "micromuse-ncps", - 7980u16 => "quest-vista", - 7981u16 => "sossd-collect", - 7982u16 => "sossd-agent", - 7997u16 => "pushns", - 7999u16 => "irdmi2", - 8000u16 => "irdmi", - 8001u16 => "vcom-tunnel", - 8002u16 => "teradataordbms", - 8003u16 => "mcreport", - 8004u16 => "p2pevolvenet", - 8005u16 => "mxi", - 8006u16 => "wpl-analytics", - 8007u16 => "warppipe", - 8008u16 => "http-alt", - 8009u16 => "nvme-disc", - 8015u16 => "cfg-cloud", - 8016u16 => "ads-s", - 8019u16 => "qbdb", - 8020u16 => "intu-ec-svcdisc", - 8021u16 => "intu-ec-client", - 8022u16 => "oa-system", - 8023u16 => "arca-api", - 8025u16 => "ca-audit-da", - 8026u16 => "ca-audit-ds", - 8027u16 => "papachi-p2p-srv", - 8032u16 => "pro-ed", - 8033u16 => "mindprint", - 8034u16 => "vantronix-mgmt", - 8040u16 => "ampify", - 8041u16 => "enguity-xccetp", - 8042u16 => "fs-agent", - 8043u16 => "fs-server", - 8044u16 => "fs-mgmt", - 8051u16 => "rocrail", - 8052u16 => "senomix01", - 8053u16 => "senomix02", - 8054u16 => "senomix03", - 8055u16 => "senomix04", - 8056u16 => "senomix05", - 8057u16 => "senomix06", - 8058u16 => "senomix07", - 8059u16 => "senomix08", - 8066u16 => "toad-bi-appsrvr", - 8067u16 => "infi-async", - 8070u16 => "ucs-isc", - 8074u16 => "gadugadu", - 8077u16 => "mles", - 8080u16 => "http-alt", - 8081u16 => "sunproxyadmin", - 8082u16 => "us-cli", - 8083u16 => "us-srv", - 8084u16 => "websnp", - 8086u16 => "d-s-n", - 8087u16 => "simplifymedia", - 8088u16 => "radan-http", - 8090u16 => "opsmessaging", - 8091u16 => "jamlink", - 8097u16 => "sac", - 8100u16 => "xprint-server", - 8101u16 => "ldoms-migr", - 8102u16 => "kz-migr", - 8115u16 => "mtl8000-matrix", - 8116u16 => "cp-cluster", - 8117u16 => "purityrpc", - 8118u16 => "privoxy", - 8121u16 => "apollo-data", - 8122u16 => "apollo-admin", - 8128u16 => "paycash-online", - 8129u16 => "paycash-wbp", - 8130u16 => "indigo-vrmi", - 8131u16 => "indigo-vbcp", - 8132u16 => "dbabble", - 8140u16 => "puppet", - 8148u16 => "isdd", - 8153u16 => "quantastor", - 8160u16 => "patrol", - 8161u16 => "patrol-snmp", - 8162u16 => "lpar2rrd", - 8181u16 => "intermapper", - 8182u16 => "vmware-fdm", - 8183u16 => "proremote", - 8184u16 => "itach", - 8190u16 => "gcp-rphy", - 8191u16 => "limnerpressure", - 8192u16 => "spytechphone", - 8194u16 => "blp1", - 8195u16 => "blp2", - 8199u16 => "vvr-data", - 8200u16 => "trivnet1", - 8201u16 => "trivnet2", - 8204u16 => "lm-perfworks", - 8205u16 => "lm-instmgr", - 8206u16 => "lm-dta", - 8207u16 => "lm-sserver", - 8208u16 => "lm-webwatcher", - 8230u16 => "rexecj", - 8243u16 => "synapse-nhttps", - 8270u16 => "robot-remote", - 8276u16 => "pando-sec", - 8280u16 => "synapse-nhttp", - 8282u16 => "libelle", - 8292u16 => "blp3", - 8293u16 => "hiperscan-id", - 8294u16 => "blp4", - 8300u16 => "tmi", - 8301u16 => "amberon", - 8313u16 => "hub-open-net", - 8320u16 => "tnp-discover", - 8321u16 => "tnp", - 8322u16 => "garmin-marine", - 8351u16 => "server-find", - 8376u16 => "cruise-enum", - 8377u16 => "cruise-swroute", - 8378u16 => "cruise-config", - 8379u16 => "cruise-diags", - 8380u16 => "cruise-update", - 8383u16 => "m2mservices", - 8400u16 => "cvd", - 8401u16 => "sabarsd", - 8402u16 => "abarsd", - 8403u16 => "admind", - 8404u16 => "svcloud", - 8405u16 => "svbackup", - 8415u16 => "dlpx-sp", - 8416u16 => "espeech", - 8417u16 => "espeech-rtp", - 8423u16 => "aritts", - 8442u16 => "cybro-a-bus", - 8443u16 => "pcsync-https", - 8444u16 => "pcsync-http", - 8445u16 => "copy", - 8450u16 => "npmp", - 8457u16 => "nexentamv", - 8470u16 => "cisco-avp", - 8471u16 => "pim-port", - 8472u16 => "otv", - 8473u16 => "vp2p", - 8474u16 => "noteshare", - 8500u16 => "fmtp", - 8501u16 => "cmtp-mgt", - 8502u16 => "ftnmtp", - 8554u16 => "rtsp-alt", - 8555u16 => "d-fence", - 8567u16 => "dof-tunnel", - 8600u16 => "asterix", - 8610u16 => "canon-mfnp", - 8611u16 => "canon-bjnp1", - 8612u16 => "canon-bjnp2", - 8613u16 => "canon-bjnp3", - 8614u16 => "canon-bjnp4", - 8615u16 => "imink", - 8665u16 => "monetra", - 8666u16 => "monetra-admin", - 8675u16 => "msi-cps-rm", - 8686u16 => "sun-as-jmxrmi", - 8688u16 => "openremote-ctrl", - 8699u16 => "vnyx", - 8710u16 => "semi-grpc", - 8711u16 => "nvc", - 8733u16 => "ibus", - 8750u16 => "dey-keyneg", - 8763u16 => "mc-appserver", - 8764u16 => "openqueue", - 8765u16 => "ultraseek-http", - 8766u16 => "amcs", - 8767u16 => "core-of-source", - 8768u16 => "sandpolis", - 8769u16 => "oktaauthenticat", - 8770u16 => "dpap", - 8778u16 => "uec", - 8786u16 => "msgclnt", - 8787u16 => "msgsrvr", - 8793u16 => "acd-pm", - 8800u16 => "sunwebadmin", - 8804u16 => "truecm", - 8873u16 => "dxspider", - 8880u16 => "cddbp-alt", - 8881u16 => "galaxy4d", - 8883u16 => "secure-mqtt", - 8888u16 => "ddi-tcp-1", - 8889u16 => "ddi-tcp-2", - 8890u16 => "ddi-tcp-3", - 8891u16 => "ddi-tcp-4", - 8892u16 => "ddi-tcp-5", - 8893u16 => "ddi-tcp-6", - 8894u16 => "ddi-tcp-7", - 8899u16 => "ospf-lite", - 8900u16 => "jmb-cds1", - 8901u16 => "jmb-cds2", - 8908u16 => "dpp", - 8910u16 => "manyone-http", - 8911u16 => "manyone-xml", - 8912u16 => "wcbackup", - 8913u16 => "dragonfly", - 8937u16 => "twds", - 8953u16 => "ub-dns-control", - 8954u16 => "cumulus-admin", - 8980u16 => "nod-provider", - 8989u16 => "sunwebadmins", - 8990u16 => "http-wmap", - 8991u16 => "https-wmap", - 8997u16 => "oracle-ms-ens", - 8998u16 => "canto-roboflow", - 8999u16 => "bctp", - 9000u16 => "cslistener", - 9001u16 => "etlservicemgr", - 9002u16 => "dynamid", - 9005u16 => "golem", - 9008u16 => "ogs-server", - 9009u16 => "pichat", - 9010u16 => "sdr", - 9020u16 => "tambora", - 9021u16 => "panagolin-ident", - 9022u16 => "paragent", - 9023u16 => "swa-1", - 9024u16 => "swa-2", - 9025u16 => "swa-3", - 9026u16 => "swa-4", - 9050u16 => "versiera", - 9051u16 => "fio-cmgmt", - 9060u16 => "CardWeb-IO", - 9080u16 => "glrpc", - 9083u16 => "emc-pp-mgmtsvc", - 9084u16 => "aurora", - 9085u16 => "ibm-rsyscon", - 9086u16 => "net2display", - 9087u16 => "classic", - 9088u16 => "sqlexec", - 9089u16 => "sqlexec-ssl", - 9090u16 => "websm", - 9091u16 => "xmltec-xmlmail", - 9092u16 => "XmlIpcRegSvc", - 9093u16 => "copycat", - 9100u16 => "pdl-datastream", - 9101u16 => "bacula-dir", - 9102u16 => "bacula-fd", - 9103u16 => "bacula-sd", - 9104u16 => "peerwire", - 9105u16 => "xadmin", - 9106u16 => "astergate", - 9107u16 => "astergatefax", - 9111u16 => "hexxorecore", - 9119u16 => "mxit", - 9122u16 => "grcmp", - 9123u16 => "grcp", - 9131u16 => "dddp", - 9160u16 => "apani1", - 9161u16 => "apani2", - 9162u16 => "apani3", - 9163u16 => "apani4", - 9164u16 => "apani5", - 9191u16 => "sun-as-jpda", - 9200u16 => "wap-wsp", - 9201u16 => "wap-wsp-wtp", - 9202u16 => "wap-wsp-s", - 9203u16 => "wap-wsp-wtp-s", - 9204u16 => "wap-vcard", - 9205u16 => "wap-vcal", - 9206u16 => "wap-vcard-s", - 9207u16 => "wap-vcal-s", - 9208u16 => "rjcdb-vcards", - 9209u16 => "almobile-system", - 9210u16 => "oma-mlp", - 9211u16 => "oma-mlp-s", - 9212u16 => "serverviewdbms", - 9213u16 => "serverstart", - 9214u16 => "ipdcesgbs", - 9215u16 => "insis", - 9216u16 => "acme", - 9217u16 => "fsc-port", - 9222u16 => "teamcoherence", - 9255u16 => "mon", - 9278u16 => "pegasus", - 9279u16 => "pegasus-ctl", - 9280u16 => "pgps", - 9281u16 => "swtp-port1", - 9282u16 => "swtp-port2", - 9283u16 => "callwaveiam", - 9284u16 => "visd", - 9285u16 => "n2h2server", - 9287u16 => "cumulus", - 9292u16 => "armtechdaemon", - 9293u16 => "storview", - 9294u16 => "armcenterhttp", - 9295u16 => "armcenterhttps", - 9300u16 => "vrace", - 9306u16 => "sphinxql", - 9310u16 => "sapms", - 9312u16 => "sphinxapi", - 9318u16 => "secure-ts", - 9321u16 => "guibase", - 9339u16 => "gnmi-gnoi", - 9343u16 => "mpidcmgr", - 9344u16 => "mphlpdmc", - 9345u16 => "rancher", - 9346u16 => "ctechlicensing", - 9374u16 => "fjdmimgr", - 9380u16 => "boxp", - 9387u16 => "d2dconfig", - 9388u16 => "d2ddatatrans", - 9389u16 => "adws", - 9390u16 => "otp", - 9396u16 => "fjinvmgr", - 9397u16 => "mpidcagt", - 9400u16 => "sec-t4net-srv", - 9401u16 => "sec-t4net-clt", - 9402u16 => "sec-pc2fax-srv", - 9418u16 => "git", - 9443u16 => "tungsten-https", - 9444u16 => "wso2esb-console", - 9445u16 => "mindarray-ca", - 9450u16 => "sntlkeyssrvr", - 9500u16 => "ismserver", - 9535u16 => "mngsuite", - 9536u16 => "laes-bf", - 9555u16 => "trispen-sra", - 9559u16 => "p4runtime", - 9592u16 => "ldgateway", - 9593u16 => "cba8", - 9594u16 => "msgsys", - 9595u16 => "pds", - 9596u16 => "mercury-disc", - 9597u16 => "pd-admin", - 9598u16 => "vscp", - 9599u16 => "robix", - 9600u16 => "micromuse-ncpw", - 9612u16 => "streamcomm-ds", - 9614u16 => "iadt-tls", - 9616u16 => "erunbook_agent", - 9617u16 => "erunbook_server", - 9618u16 => "condor", - 9628u16 => "odbcpathway", - 9629u16 => "uniport", - 9630u16 => "peoctlr", - 9631u16 => "peocoll", - 9640u16 => "pqsflows", - 9666u16 => "zoomcp", - 9667u16 => "xmms2", - 9668u16 => "tec5-sdctp", - 9694u16 => "client-wakeup", - 9695u16 => "ccnx", - 9700u16 => "board-roar", - 9747u16 => "l5nas-parchan", - 9750u16 => "board-voip", - 9753u16 => "rasadv", - 9762u16 => "tungsten-http", - 9800u16 => "davsrc", - 9801u16 => "sstp-2", - 9802u16 => "davsrcs", - 9875u16 => "sapv1", - 9876u16 => "sd", - 9877u16 => "x510", - 9888u16 => "cyborg-systems", - 9889u16 => "gt-proxy", - 9898u16 => "monkeycom", - 9900u16 => "iua", - 9909u16 => "domaintime", - 9911u16 => "sype-transport", - 9925u16 => "xybrid-cloud", - 9929u16 => "nping-echo", - 9950u16 => "apc-9950", - 9951u16 => "apc-9951", - 9952u16 => "apc-9952", - 9953u16 => "acis", - 9954u16 => "hinp", - 9955u16 => "alljoyn-stm", - 9966u16 => "odnsp", - 9978u16 => "xybrid-rt", - 9979u16 => "visweather", - 9981u16 => "pumpkindb", - 9987u16 => "dsm-scm-target", - 9988u16 => "nsesrvr", - 9990u16 => "osm-appsrvr", - 9991u16 => "osm-oev", - 9992u16 => "palace-1", - 9993u16 => "palace-2", - 9994u16 => "palace-3", - 9995u16 => "palace-4", - 9996u16 => "palace-5", - 9997u16 => "palace-6", - 9998u16 => "distinct32", - 9999u16 => "distinct", - 10000u16 => "ndmp", - 10001u16 => "scp-config", - 10002u16 => "documentum", - 10003u16 => "documentum_s", - 10004u16 => "emcrmirccd", - 10005u16 => "emcrmird", - 10006u16 => "netapp-sync", - 10007u16 => "mvs-capacity", - 10008u16 => "octopus", - 10009u16 => "swdtp-sv", - 10010u16 => "rxapi", - 10020u16 => "abb-hw", - 10050u16 => "zabbix-agent", - 10051u16 => "zabbix-trapper", - 10055u16 => "qptlmd", - 10080u16 => "amanda", - 10081u16 => "famdc", - 10100u16 => "itap-ddtp", - 10101u16 => "ezmeeting-2", - 10102u16 => "ezproxy-2", - 10103u16 => "ezrelay", - 10104u16 => "swdtp", - 10107u16 => "bctp-server", - 10110u16 => "nmea-0183", - 10113u16 => "netiq-endpoint", - 10114u16 => "netiq-qcheck", - 10115u16 => "netiq-endpt", - 10116u16 => "netiq-voipa", - 10117u16 => "iqrm", - 10125u16 => "cimple", - 10128u16 => "bmc-perf-sd", - 10129u16 => "bmc-gms", - 10160u16 => "qb-db-server", - 10161u16 => "snmptls", - 10162u16 => "snmptls-trap", - 10200u16 => "trisoap", - 10201u16 => "rsms", - 10252u16 => "apollo-relay", - 10260u16 => "axis-wimp-port", - 10261u16 => "tile-ml", - 10288u16 => "blocks", - 10321u16 => "cosir", - 10443u16 => "cirrossp", - 10540u16 => "MOS-lower", - 10541u16 => "MOS-upper", - 10542u16 => "MOS-aux", - 10543u16 => "MOS-soap", - 10544u16 => "MOS-soap-opt", - 10548u16 => "serverdocs", - 10631u16 => "printopia", - 10800u16 => "gap", - 10805u16 => "lpdg", - 10809u16 => "nbd", - 10860u16 => "helix", - 10880u16 => "bveapi", - 10933u16 => "octopustentacle", - 10990u16 => "rmiaux", - 11000u16 => "irisa", - 11001u16 => "metasys", - 11095u16 => "weave", - 11103u16 => "origo-sync", - 11104u16 => "netapp-icmgmt", - 11105u16 => "netapp-icdata", - 11106u16 => "sgi-lk", - 11109u16 => "sgi-dmfmgr", - 11110u16 => "sgi-soap", - 11111u16 => "vce", - 11112u16 => "dicom", - 11161u16 => "suncacao-snmp", - 11162u16 => "suncacao-jmxmp", - 11163u16 => "suncacao-rmi", - 11164u16 => "suncacao-csa", - 11165u16 => "suncacao-websvc", - 11172u16 => "oemcacao-jmxmp", - 11173u16 => "t5-straton", - 11174u16 => "oemcacao-rmi", - 11175u16 => "oemcacao-websvc", - 11201u16 => "smsqp", - 11202u16 => "dcsl-backup", - 11208u16 => "wifree", - 11211u16 => "memcache", - 11235u16 => "xcompute", - 11319u16 => "imip", - 11320u16 => "imip-channels", - 11321u16 => "arena-server", - 11367u16 => "atm-uhas", - 11371u16 => "hkp", - 11489u16 => "asgcypresstcps", - 11600u16 => "tempest-port", - 11623u16 => "emc-xsw-dconfig", - 11720u16 => "h323callsigalt", - 11723u16 => "emc-xsw-dcache", - 11751u16 => "intrepid-ssl", - 11796u16 => "lanschool", - 11876u16 => "xoraya", - 11967u16 => "sysinfo-sp", - 11971u16 => "tibsd", - 12000u16 => "entextxid", - 12001u16 => "entextnetwk", - 12002u16 => "entexthigh", - 12003u16 => "entextmed", - 12004u16 => "entextlow", - 12005u16 => "dbisamserver1", - 12006u16 => "dbisamserver2", - 12007u16 => "accuracer", - 12008u16 => "accuracer-dbms", - 12010u16 => "edbsrvr", - 12012u16 => "vipera", - 12013u16 => "vipera-ssl", - 12109u16 => "rets-ssl", - 12121u16 => "nupaper-ss", - 12168u16 => "cawas", - 12172u16 => "hivep", - 12300u16 => "linogridengine", - 12302u16 => "rads", - 12321u16 => "warehouse-sss", - 12322u16 => "warehouse", - 12345u16 => "italk", - 12753u16 => "tsaf", - 12865u16 => "netperf", - 13160u16 => "i-zipqd", - 13216u16 => "bcslogc", - 13217u16 => "rs-pias", - 13218u16 => "emc-vcas-tcp", - 13223u16 => "powwow-client", - 13224u16 => "powwow-server", - 13400u16 => "doip-data", - 13720u16 => "bprd", - 13721u16 => "bpdbm", - 13722u16 => "bpjava-msvc", - 13724u16 => "vnetd", - 13782u16 => "bpcd", - 13783u16 => "vopied", - 13785u16 => "nbdb", - 13786u16 => "nomdb", - 13818u16 => "dsmcc-config", - 13819u16 => "dsmcc-session", - 13820u16 => "dsmcc-passthru", - 13821u16 => "dsmcc-download", - 13822u16 => "dsmcc-ccp", - 13823u16 => "bmdss", - 13894u16 => "ucontrol", - 13929u16 => "dta-systems", - 13930u16 => "medevolve", - 14000u16 => "scotty-ft", - 14001u16 => "sua", - 14033u16 => "sage-best-com1", - 14034u16 => "sage-best-com2", - 14141u16 => "vcs-app", - 14142u16 => "icpp", - 14143u16 => "icpps", - 14145u16 => "gcm-app", - 14149u16 => "vrts-tdd", - 14150u16 => "vcscmd", - 14154u16 => "vad", - 14250u16 => "cps", - 14414u16 => "ca-web-update", - 14500u16 => "xpra", - 14936u16 => "hde-lcesrvr-1", - 14937u16 => "hde-lcesrvr-2", - 15000u16 => "hydap", - 15002u16 => "onep-tls", - 15345u16 => "xpilot", - 15363u16 => "3link", - 15555u16 => "cisco-snat", - 15660u16 => "bex-xr", - 15740u16 => "ptp", - 15999u16 => "programmar", - 16000u16 => "fmsas", - 16001u16 => "fmsascon", - 16002u16 => "gsms", - 16020u16 => "jwpc", - 16021u16 => "jwpc-bin", - 16161u16 => "sun-sea-port", - 16162u16 => "solaris-audit", - 16309u16 => "etb4j", - 16310u16 => "pduncs", - 16311u16 => "pdefmns", - 16360u16 => "netserialext1", - 16361u16 => "netserialext2", - 16367u16 => "netserialext3", - 16368u16 => "netserialext4", - 16384u16 => "connected", - 16385u16 => "rdgs", - 16619u16 => "xoms", - 16665u16 => "axon-tunnel", - 16789u16 => "cadsisvr", - 16900u16 => "newbay-snc-mc", - 16950u16 => "sgcip", - 16991u16 => "intel-rci-mp", - 16992u16 => "amt-soap-http", - 16993u16 => "amt-soap-https", - 16994u16 => "amt-redir-tcp", - 16995u16 => "amt-redir-tls", - 17007u16 => "isode-dua", - 17184u16 => "vestasdlp", - 17185u16 => "soundsvirtual", - 17219u16 => "chipper", - 17220u16 => "avtp", - 17221u16 => "avdecc", - 17223u16 => "isa100-gci", - 17225u16 => "trdp-md", - 17234u16 => "integrius-stp", - 17235u16 => "ssh-mgmt", - 17500u16 => "db-lsp", - 17555u16 => "ailith", - 17729u16 => "ea", - 17754u16 => "zep", - 17755u16 => "zigbee-ip", - 17756u16 => "zigbee-ips", - 17777u16 => "sw-orion", - 18000u16 => "biimenu", - 18104u16 => "radpdf", - 18136u16 => "racf", - 18181u16 => "opsec-cvp", - 18182u16 => "opsec-ufp", - 18183u16 => "opsec-sam", - 18184u16 => "opsec-lea", - 18185u16 => "opsec-omi", - 18186u16 => "ohsc", - 18187u16 => "opsec-ela", - 18241u16 => "checkpoint-rtm", - 18242u16 => "iclid", - 18243u16 => "clusterxl", - 18262u16 => "gv-pf", - 18463u16 => "ac-cluster", - 18634u16 => "rds-ib", - 18635u16 => "rds-ip", - 18668u16 => "vdmmesh", - 18769u16 => "ique", - 18881u16 => "infotos", - 18888u16 => "apc-necmp", - 19000u16 => "igrid", - 19007u16 => "scintilla", - 19020u16 => "j-link", - 19191u16 => "opsec-uaa", - 19194u16 => "ua-secureagent", - 19220u16 => "cora", - 19283u16 => "keysrvr", - 19315u16 => "keyshadow", - 19398u16 => "mtrgtrans", - 19410u16 => "hp-sco", - 19411u16 => "hp-sca", - 19412u16 => "hp-sessmon", - 19539u16 => "fxuptp", - 19540u16 => "sxuptp", - 19541u16 => "jcp", - 19790u16 => "faircom-db", - 19998u16 => "iec-104-sec", - 19999u16 => "dnp-sec", - 20000u16 => "dnp", - 20001u16 => "microsan", - 20002u16 => "commtact-http", - 20003u16 => "commtact-https", - 20005u16 => "openwebnet", - 20013u16 => "ss-idi", - 20014u16 => "opendeploy", - 20034u16 => "nburn_id", - 20046u16 => "tmophl7mts", - 20048u16 => "mountd", - 20049u16 => "nfsrdma", - 20057u16 => "avesterra", - 20167u16 => "tolfab", - 20202u16 => "ipdtp-port", - 20222u16 => "ipulse-ics", - 20480u16 => "emwavemsg", - 20670u16 => "track", - 20999u16 => "athand-mmp", - 21000u16 => "irtrans", - 21010u16 => "notezilla-lan", - 21212u16 => "trinket-agent", - 21213u16 => "cohesity-agent", - 21221u16 => "aigairserver", - 21553u16 => "rdm-tfs", - 21554u16 => "dfserver", - 21590u16 => "vofr-gateway", - 21800u16 => "tvpm", - 21845u16 => "webphone", - 21846u16 => "netspeak-is", - 21847u16 => "netspeak-cs", - 21848u16 => "netspeak-acd", - 21849u16 => "netspeak-cps", - 22000u16 => "snapenetio", - 22001u16 => "optocontrol", - 22002u16 => "optohost002", - 22003u16 => "optohost003", - 22004u16 => "optohost004", - 22005u16 => "optohost004", - 22125u16 => "dcap", - 22128u16 => "gsidcap", - 22222u16 => "easyengine", - 22273u16 => "wnn6", - 22305u16 => "cis", - 22333u16 => "showcockpit-net", - 22335u16 => "shrewd-control", - 22343u16 => "cis-secure", - 22347u16 => "wibukey", - 22350u16 => "codemeter", - 22351u16 => "codemeter-cmwan", - 22537u16 => "caldsoft-backup", - 22555u16 => "vocaltec-wconf", - 22763u16 => "talikaserver", - 22800u16 => "aws-brf", - 22951u16 => "brf-gw", - 23000u16 => "inovaport1", - 23001u16 => "inovaport2", - 23002u16 => "inovaport3", - 23003u16 => "inovaport4", - 23004u16 => "inovaport5", - 23005u16 => "inovaport6", - 23053u16 => "gntp", - 23294u16 => "5afe-dir", - 23333u16 => "elxmgmt", - 23400u16 => "novar-dbase", - 23401u16 => "novar-alarm", - 23402u16 => "novar-global", - 23456u16 => "aequus", - 23457u16 => "aequus-alt", - 23546u16 => "areaguard-neo", - 24000u16 => "med-ltp", - 24001u16 => "med-fsp-rx", - 24002u16 => "med-fsp-tx", - 24003u16 => "med-supp", - 24004u16 => "med-ovw", - 24005u16 => "med-ci", - 24006u16 => "med-net-svc", - 24242u16 => "filesphere", - 24249u16 => "vista-4gl", - 24321u16 => "ild", - 24323u16 => "vrmg-ip", - 24386u16 => "intel_rci", - 24465u16 => "tonidods", - 24554u16 => "binkp", - 24577u16 => "bilobit", - 24666u16 => "sdtvwcam", - 24676u16 => "canditv", - 24677u16 => "flashfiler", - 24678u16 => "proactivate", - 24680u16 => "tcc-http", - 24754u16 => "cslg", - 24922u16 => "find", - 25000u16 => "icl-twobase1", - 25001u16 => "icl-twobase2", - 25002u16 => "icl-twobase3", - 25003u16 => "icl-twobase4", - 25004u16 => "icl-twobase5", - 25005u16 => "icl-twobase6", - 25006u16 => "icl-twobase7", - 25007u16 => "icl-twobase8", - 25008u16 => "icl-twobase9", - 25009u16 => "icl-twobase10", - 25576u16 => "sauterdongle", - 25604u16 => "idtp", - 25793u16 => "vocaltec-hos", - 25900u16 => "tasp-net", - 25901u16 => "niobserver", - 25902u16 => "nilinkanalyst", - 25903u16 => "niprobe", - 26000u16 => "quake", - 26133u16 => "scscp", - 26208u16 => "wnn6-ds", - 26257u16 => "cockroach", - 26260u16 => "ezproxy", - 26261u16 => "ezmeeting", - 26262u16 => "k3software-svr", - 26263u16 => "k3software-cli", - 26486u16 => "exoline-tcp", - 26487u16 => "exoconfig", - 26489u16 => "exonet", - 27010u16 => "flex-lmadmin", - 27017u16 => "mongodb", - 27345u16 => "imagepump", - 27442u16 => "jesmsjc", - 27504u16 => "kopek-httphead", - 27782u16 => "ars-vista", - 27876u16 => "astrolink", - 27999u16 => "tw-auth-key", - 28000u16 => "nxlmd", - 28001u16 => "pqsp", - 28010u16 => "gruber-cashreg", - 28200u16 => "voxelstorm", - 28240u16 => "siemensgsm", - 28589u16 => "bosswave", - 29000u16 => "saltd-licensing", - 29167u16 => "otmp", - 29999u16 => "bingbang", - 30000u16 => "ndmps", - 30001u16 => "pago-services1", - 30002u16 => "pago-services2", - 30003u16 => "amicon-fpsu-ra", - 30100u16 => "rwp", - 30260u16 => "kingdomsonline", - 30400u16 => "gs-realtime", - 30999u16 => "ovobs", - 31016u16 => "ka-sddp", - 31020u16 => "autotrac-acp", - 31337u16 => "back-orifice", - 31400u16 => "pace-licensed", - 31416u16 => "xqosd", - 31457u16 => "tetrinet", - 31620u16 => "lm-mon", - 31685u16 => "dsx_monitor", - 31765u16 => "gamesmith-port", - 31948u16 => "iceedcp_tx", - 31949u16 => "iceedcp_rx", - 32034u16 => "iracinghelper", - 32249u16 => "t1distproc60", - 32400u16 => "plex", - 32483u16 => "apm-link", - 32635u16 => "sec-ntb-clnt", - 32636u16 => "DMExpress", - 32767u16 => "filenet-powsrm", - 32768u16 => "filenet-tms", - 32769u16 => "filenet-rpc", - 32770u16 => "filenet-nch", - 32771u16 => "filenet-rmi", - 32772u16 => "filenet-pa", - 32773u16 => "filenet-cm", - 32774u16 => "filenet-re", - 32775u16 => "filenet-pch", - 32776u16 => "filenet-peior", - 32777u16 => "filenet-obrok", - 32801u16 => "mlsn", - 32811u16 => "retp", - 32896u16 => "idmgratm", - 33000u16 => "wg-endpt-comms", - 33060u16 => "mysqlx", - 33123u16 => "aurora-balaena", - 33331u16 => "diamondport", - 33333u16 => "dgi-serv", - 33334u16 => "speedtrace", - 33434u16 => "traceroute", - 33656u16 => "snip-slave", - 33890u16 => "digilent-adept", - 34249u16 => "turbonote-2", - 34378u16 => "p-net-local", - 34379u16 => "p-net-remote", - 34567u16 => "dhanalakshmi", - 34962u16 => "profinet-rt", - 34963u16 => "profinet-rtm", - 34964u16 => "profinet-cm", - 34980u16 => "ethercat", - 35000u16 => "heathview", - 35001u16 => "rt-viewer", - 35002u16 => "rt-sound", - 35003u16 => "rt-devicemapper", - 35004u16 => "rt-classmanager", - 35005u16 => "rt-labtracker", - 35006u16 => "rt-helper", - 35100u16 => "axio-disc", - 35354u16 => "kitim", - 35355u16 => "altova-lm", - 35356u16 => "guttersnex", - 35357u16 => "openstack-id", - 36001u16 => "allpeers", - 36524u16 => "febooti-aw", - 36602u16 => "observium-agent", - 36700u16 => "mapx", - 36865u16 => "kastenxpipe", - 37475u16 => "neckar", - 37483u16 => "gdrive-sync", - 37601u16 => "eftp", - 37654u16 => "unisys-eportal", - 38000u16 => "ivs-database", - 38001u16 => "ivs-insertion", - 38002u16 => "cresco-control", - 38201u16 => "galaxy7-data", - 38202u16 => "fairview", - 38203u16 => "agpolicy", - 38800u16 => "sruth", - 38865u16 => "secrmmsafecopya", - 39681u16 => "turbonote-1", - 40000u16 => "safetynetp", - 40404u16 => "sptx", - 40841u16 => "cscp", - 40842u16 => "csccredir", - 40843u16 => "csccfirewall", - 41111u16 => "fs-qos", - 41121u16 => "tentacle", - 41230u16 => "z-wave-s", - 41794u16 => "crestron-cip", - 41795u16 => "crestron-ctp", - 41796u16 => "crestron-cips", - 41797u16 => "crestron-ctps", - 42508u16 => "candp", - 42509u16 => "candrp", - 42510u16 => "caerpc", - 43000u16 => "recvr-rc", - 43188u16 => "reachout", - 43189u16 => "ndm-agent-port", - 43190u16 => "ip-provision", - 43191u16 => "noit-transport", - 43210u16 => "shaperai", - 43439u16 => "eq3-update", - 43440u16 => "ew-mgmt", - 43441u16 => "ciscocsdb", - 44123u16 => "z-wave-tunnel", - 44321u16 => "pmcd", - 44322u16 => "pmcdproxy", - 44323u16 => "pmwebapi", - 44444u16 => "cognex-dataman", - 44445u16 => "acronis-backup", - 44553u16 => "rbr-debug", - 44818u16 => "EtherNet/IP-2", - 44900u16 => "m3da", - 45000u16 => "asmp", - 45001u16 => "asmps", - 45002u16 => "rs-status", - 45045u16 => "synctest", - 45054u16 => "invision-ag", - 45514u16 => "cloudcheck", - 45678u16 => "eba", - 45824u16 => "dai-shell", - 45825u16 => "qdb2service", - 45966u16 => "ssr-servermgr", - 46336u16 => "inedo", - 46998u16 => "spremotetablet", - 46999u16 => "mediabox", - 47000u16 => "mbus", - 47001u16 => "winrm", - 47557u16 => "dbbrowse", - 47624u16 => "directplaysrvr", - 47806u16 => "ap", - 47808u16 => "bacnet", - 48000u16 => "nimcontroller", - 48001u16 => "nimspooler", - 48002u16 => "nimhub", - 48003u16 => "nimgtw", - 48004u16 => "nimbusdb", - 48005u16 => "nimbusdbctrl", - 48048u16 => "juka", - 48049u16 => "3gpp-cbsp", - 48050u16 => "weandsf", - 48128u16 => "isnetserv", - 48129u16 => "blp5", - 48556u16 => "com-bardac-dw", - 48619u16 => "iqobject", - 48653u16 => "robotraconteur", - 49000u16 => "matahari", - 49001u16 => "nusrp", - 49150u16 => "inspider", -}; diff --git a/src/db/tls.rs b/src/db/tls.rs new file mode 100644 index 0000000..6bfda5c --- /dev/null +++ b/src/db/tls.rs @@ -0,0 +1,39 @@ +use anyhow::Result; +use serde::Deserialize; +use std::{collections::HashMap, sync::OnceLock}; + +use crate::config::db::TLS_OID_MAP_JSON; + +/// Structure representing the TLS OID mappings. +#[derive(Debug, Deserialize)] +pub struct TlsOidMap { + /// Mapping of OID to signature algorithm names. + pub sig: HashMap, + /// Mapping of OID to public key algorithm names. + pub pubkey: HashMap, +} + +/// Global static instance of the TLS OID map, initialized once. +pub static TLS_OID_MAP: OnceLock = OnceLock::new(); + +/// Get a reference to the initialized TLS OID map. +pub fn tls_oid_map() -> &'static TlsOidMap { + TLS_OID_MAP.get().expect("TLS_OID_MAP not initialized") +} + +/// Initialize the TLS OID map from the bundled JSON data. +pub fn init_tls_oid_map() -> Result<()> { + let map: TlsOidMap = serde_json::from_str(&TLS_OID_MAP_JSON).expect("invalid nrev-tls-oid-map.json"); + TLS_OID_MAP.set(map).map_err(|_| anyhow::anyhow!("Failed to set TLS_OID_MAP in OnceLock"))?; + Ok(()) +} + +/// Get the name of a TLS version given its numeric representation. +pub fn oid_sig_name(oid: &str) -> String { + tls_oid_map().sig.get(oid).cloned().unwrap_or_else(|| oid.to_string()) +} + +/// Get the name of a public key algorithm given its OID. +pub fn oid_pubkey_name(oid: &str) -> String { + tls_oid_map().pubkey.get(oid).cloned().unwrap_or_else(|| oid.to_string()) +} diff --git a/src/dep/mod.rs b/src/dep/mod.rs deleted file mode 100644 index 0e95fb0..0000000 --- a/src/dep/mod.rs +++ /dev/null @@ -1,39 +0,0 @@ -#[cfg(not(target_os = "windows"))] -mod unix; -use std::{error::Error, fmt}; - -#[cfg(not(target_os = "windows"))] -pub use self::unix::*; - -#[cfg(target_os = "windows")] -mod windows; -#[cfg(target_os = "windows")] -pub use self::windows::*; - -// Custom error type for dependency check -#[derive(Debug)] -pub struct DependencyError { - pub dependency: String, - pub message: String, -} - -impl DependencyError { - pub fn new(dependency: &str, message: &str) -> Self { - Self { - dependency: String::from(dependency), - message: String::from(message), - } - } -} - -impl fmt::Display for DependencyError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "{}: {}", self.dependency, self.message) - } -} - -impl Error for DependencyError { - fn description(&self) -> &str { - &self.message - } -} diff --git a/src/dep/unix.rs b/src/dep/unix.rs deleted file mode 100644 index 51e39d1..0000000 --- a/src/dep/unix.rs +++ /dev/null @@ -1,5 +0,0 @@ -use super::DependencyError; - -pub fn check_dependencies() -> Result<(), DependencyError> { - Ok(()) -} diff --git a/src/dep/windows.rs b/src/dep/windows.rs deleted file mode 100644 index 06e5767..0000000 --- a/src/dep/windows.rs +++ /dev/null @@ -1,48 +0,0 @@ -use super::DependencyError; -use winreg::enums::HKEY_LOCAL_MACHINE; -use winreg::RegKey; - -const NPCAP_SOFTWARE_NAME: &str = "Npcap"; - -pub fn check_dependencies() -> Result<(), DependencyError> { - if npcap_installed() { - Ok(()) - } else { - Err(DependencyError::new("Npcap", "Npcap is not installed. \nOn Windows, Npcap is required for some features. \nPlease install Npcap from https://npcap.com/#download")) - } -} - -pub fn get_os_bit() -> String { - if cfg!(target_pointer_width = "32") { - return "32-bit".to_owned(); - } else if cfg!(target_pointer_width = "64") { - return "64-bit".to_owned(); - } else { - return "unknown".to_owned(); - } -} - -// Get software installation status -pub fn software_installed(software_name: String) -> bool { - let hklm: RegKey = RegKey::predef(HKEY_LOCAL_MACHINE); - let os_bit: String = get_os_bit(); - let npcap_key: RegKey = if os_bit == "32-bit" { - match hklm.open_subkey(format!("SOFTWARE\\{}", software_name)) { - Ok(key) => key, - Err(_) => return false, - } - } else { - match hklm.open_subkey(format!("SOFTWARE\\WOW6432Node\\{}", software_name)) { - Ok(key) => key, - Err(_) => return false, - } - }; - let _version: String = npcap_key.get_value("").unwrap_or(String::new()); - true -} - -/// Check if npcap is installed. -/// This function only check if npcap is installed, not check version. -pub fn npcap_installed() -> bool { - software_installed(NPCAP_SOFTWARE_NAME.to_owned()) -} diff --git a/src/dns/domain.rs b/src/dns/domain.rs deleted file mode 100644 index f8b7e7f..0000000 --- a/src/dns/domain.rs +++ /dev/null @@ -1,21 +0,0 @@ -use serde::{Deserialize, Serialize}; -use std::net::IpAddr; - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct CertEntry { - pub id: u64, - pub issuer_ca_id: u32, - pub issuer_name: String, - pub common_name: String, - pub name_value: String, - pub not_before: String, - pub not_after: String, - pub serial_number: String, - pub entry_timestamp: String, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct Domain { - pub domain_name: String, - pub ips: Vec, -} diff --git a/src/dns/mod.rs b/src/dns/mod.rs index 0b3da16..475902c 100644 --- a/src/dns/mod.rs +++ b/src/dns/mod.rs @@ -1,300 +1,70 @@ -pub mod domain; -pub mod result; -pub mod scanner; -use std::net::IpAddr; -use std::time::Duration; +use std::{net::IpAddr, time::Duration}; +use anyhow::Result; +use serde::{Deserialize, Serialize}; -#[cfg(not(any(unix, target_os = "windows")))] -use hickory_resolver::config::{ResolverConfig, ResolverOpts}; -use hickory_resolver::Resolver; +use crate::endpoint::Host; -use futures::stream::{self, StreamExt}; +pub mod resolver; +pub mod probe; -use hickory_resolver::AsyncResolver; -use std::collections::HashMap; -use std::str::FromStr; -use std::thread; - -#[cfg(not(target_os = "windows"))] -const DEFAULT_TIMEOUT: Duration = Duration::from_millis(200); -#[cfg(not(target_os = "windows"))] -const DEFAULT_TIMEOUT_GLOBAL: Duration = Duration::from_millis(1000); -#[cfg(target_os = "windows")] -const DEFAULT_TIMEOUT: Duration = Duration::from_millis(20); -#[cfg(target_os = "windows")] -const DEFAULT_TIMEOUT_GLOBAL: Duration = Duration::from_millis(1000); - -pub fn lookup_host_name(host_name: &str) -> Option { - let ip_vec: Vec = resolve_domain(host_name); - let mut ipv6_vec: Vec = vec![]; - for ip in ip_vec { - match ip { - IpAddr::V4(_) => { - return Some(ip); - } - IpAddr::V6(_) => { - ipv6_vec.push(ip); - } - } - } - if ipv6_vec.len() > 0 { - return Some(ipv6_vec[0]); - } else { - None - } -} - -pub async fn lookup_host_name_async(host_name: String) -> Option { - let ip_vec: Vec = resolve_domain_async(host_name).await; - let mut ipv6_vec: Vec = vec![]; - for ip in ip_vec { - match ip { - IpAddr::V4(_) => { - return Some(ip); - } - IpAddr::V6(_) => { - ipv6_vec.push(ip); - } - } - } - if ipv6_vec.len() > 0 { - return Some(ipv6_vec[0]); - } else { - None - } -} - -pub fn lookup_ip_addr(ip_addr: &IpAddr) -> Option { - let names: Vec = resolve_ip(ip_addr); - if names.len() > 0 { - return Some(names[0].clone()); - } else { - return None; - } -} - -pub async fn lookup_ip_addr_async(ip_addr: String) -> String { - let ips: Vec = resolve_ip_async(ip_addr).await; - if ips.len() > 0 { - return ips[0].clone(); - } else { - return String::new(); - } -} - -#[cfg(any(unix, target_os = "windows"))] -fn resolve_domain(host_name: &str) -> Vec { - let mut ips: Vec = vec![]; - let resolver = Resolver::from_system_conf().unwrap(); - match resolver.lookup_ip(host_name) { - Ok(lip) => { - for ip in lip.iter() { - ips.push(ip); - } - } - Err(_) => {} - } - ips -} - -#[cfg(not(any(unix, target_os = "windows")))] -fn resolve_domain(host_name: &str) -> Vec { - let mut ips: Vec = vec![]; - let resolver = Resolver::new(ResolverConfig::default(), ResolverOpts::default()).unwrap(); - match resolver.lookup_ip(host_name) { - Ok(lip) => { - for ip in lip.iter() { - ips.push(ip); - } - } - Err(_) => {} - } - ips -} - -#[cfg(any(unix, target_os = "windows"))] -fn resolve_ip(ip_addr: &IpAddr) -> Vec { - let mut names: Vec = vec![]; - let mut system_conf = hickory_resolver::system_conf::read_system_conf().unwrap(); - if crate::ip::is_global_addr(ip_addr) { - system_conf.1.timeout = DEFAULT_TIMEOUT_GLOBAL; +/// Lookup a host by name or IP address string. +pub async fn lookup_host(host: &str, timeout: Duration) -> Result { + if let Ok(ip) = host.parse::() { + // Reverse lookup for IP address + let hostname = reverse_lookup(ip, timeout).await.unwrap_or_else(|| ip.to_string()); + Ok(Host { hostname: Some(hostname), ip: ip }) } else { - system_conf.1.timeout = DEFAULT_TIMEOUT; - } - let resolver = Resolver::new(system_conf.0, system_conf.1).unwrap(); - match resolver.reverse_lookup(*ip_addr) { - Ok(rlookup) => { - for record in rlookup.as_lookup().record_iter() { - match record.data() { - Some(data) => { - let name = data.to_string(); - if name.ends_with(".") { - names.push(name[0..name.len() - 1].to_string()); - } else { - names.push(name); - } - } - None => {} - } - } - names - } - Err(_) => { - return names; - } - } -} - -#[cfg(not(any(unix, target_os = "windows")))] -fn resolve_ip(ip_addr: IpAddr) -> Vec { - let mut names: Vec = vec![]; - let resolver = Resolver::new(ResolverConfig::default(), ResolverOpts::default()).unwrap(); - match resolver.reverse_lookup(ip_addr) { - Ok(rlookup) => { - for record in rlookup.as_lookup().record_iter() { - match record.data() { - Some(data) => { - let name = data.to_string(); - if name.ends_with(".") { - names.push(name[0..name.len() - 1].to_string()); - } else { - names.push(name); - } - } - None => {} - } - } - names - } - Err(_) => { - return names; + // Resolve hostname to IP address + let ips = lookup_ip(host, timeout).await.unwrap_or_default(); + match ips.first() { + Some(ip) => Ok(Host { hostname: Some(host.to_string()), ip: *ip }), + None => Err(anyhow::anyhow!("failed to resolve host")), } } } -#[cfg(any(unix, target_os = "windows"))] -async fn resolve_domain_async(host_name: String) -> Vec { - let mut ips: Vec = vec![]; - let resolver = AsyncResolver::tokio_from_system_conf().unwrap(); - match resolver.lookup_ip(host_name).await { - Ok(lip) => { - for ip in lip.iter() { - ips.push(ip); - } - } - Err(_) => {} - } - ips +/// Lookup a domain and return its associated IP addresses. +pub async fn lookup_domain(hostname: &str, timeout: Duration) -> Domain { + let ips = lookup_ip(hostname, timeout).await.unwrap_or_default(); + Domain { name: hostname.to_string(), ips } } -#[cfg(not(any(unix, target_os = "windows")))] -async fn resolve_domain_async(host_name: String) -> Vec { - let mut ips: Vec = vec![]; - let resolver = - AsyncResolver::tokio(ResolverConfig::default(), ResolverOpts::default()).unwrap(); - match resolver.lookup_ip(host_name).await { - Ok(lip) => { - for ip in lip.iter() { - ips.push(ip); - } - } - Err(_) => {} +/// Perform a DNS lookup for the given hostname with a timeout. +pub async fn lookup_ip(hostname: &str, timeout: Duration) -> Option> { + let resolver = resolver::get_resolver().ok()?; + match tokio::time::timeout( + timeout, + async move { resolver.lookup_ip(hostname).await } + ).await { + Ok(Ok(ips)) => Some(ips.iter().collect()), + _ => None, } - ips } -#[cfg(any(unix, target_os = "windows"))] -async fn resolve_ip_async(ip_addr: String) -> Vec { - let ip_addr: IpAddr = IpAddr::from_str(ip_addr.as_str()).unwrap(); - let mut names: Vec = vec![]; - let mut system_conf = hickory_resolver::system_conf::read_system_conf().unwrap(); - if crate::ip::is_global_addr(&ip_addr) { - system_conf.1.timeout = DEFAULT_TIMEOUT_GLOBAL; - } else { - system_conf.1.timeout = DEFAULT_TIMEOUT; +/// Perform a reverse DNS lookup for the given IP address with a timeout. +pub async fn reverse_lookup(ip: IpAddr, timeout: Duration) -> Option { + let resolver = resolver::get_resolver().ok()?; + match tokio::time::timeout( + timeout, + async move { resolver.reverse_lookup(ip).await } + ).await { + Ok(Ok(names)) => names.iter().next().map(|n| n.to_string()), + _ => None, } - let resolver = AsyncResolver::tokio(system_conf.0, system_conf.1); - match resolver.reverse_lookup(ip_addr).await { - Ok(rlookup) => { - for record in rlookup.as_lookup().record_iter() { - match record.data() { - Some(data) => { - let name = data.to_string(); - if name.ends_with(".") { - names.push(name[0..name.len() - 1].to_string()); - } else { - names.push(name); - } - } - None => {} - } - } - names - } - Err(_) => { - return names; - } - } -} - -#[cfg(not(any(unix, target_os = "windows")))] -async fn resolve_ip_async(ip_addr: String) -> Vec { - let mut names: Vec = vec![]; - let resolver = - AsyncResolver::tokio(ResolverConfig::default(), ResolverOpts::default()).unwrap(); - match resolver - .reverse_lookup(IpAddr::from_str(ip_addr.as_str()).unwrap()) - .await - { - Ok(rlookup) => { - for record in rlookup.as_lookup().record_iter() { - match record.data() { - Some(data) => { - let name = data.to_string(); - if name.ends_with(".") { - names.push(name[0..name.len() - 1].to_string()); - } else { - names.push(name); - } - } - None => {} - } - } - names - } - Err(_) => { - return names; - } - } -} - -pub async fn lookup_ips_async(ips: Vec) -> HashMap { - let mut tasks = stream::iter(ips) - .map(|ip| async move { - let names = resolve_ip_async(ip.to_string()).await; - (ip, names) - }) - .buffer_unordered(10); - let mut results: HashMap = HashMap::new(); - while let Some(result) = tasks.next().await { - results.insert( - result.0, - result.1.first().unwrap_or(&String::new()).to_string(), - ); - } - results -} - -pub fn lookup_ips(ips: Vec) -> HashMap { - let rt: tokio::runtime::Runtime = tokio::runtime::Runtime::new().unwrap(); - let handle = thread::spawn(move || rt.block_on(async { lookup_ips_async(ips).await })); - handle.join().unwrap() } -pub fn lookup_host(host: &str) -> Vec { - resolve_domain(host) +/// A domain with its associated IP addresses +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct Domain { + pub name: String, + pub ips: Vec, } -pub fn lookup_addr(addr: &IpAddr) -> Vec { - resolve_ip(addr) +/// Result of domain scan +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct DomainScanResult { + /// List of scanned domains + pub domains: Vec, + /// Time from start to end of scan. + pub scan_time: Duration, } diff --git a/src/dns/probe.rs b/src/dns/probe.rs new file mode 100644 index 0000000..90ef6f2 --- /dev/null +++ b/src/dns/probe.rs @@ -0,0 +1,158 @@ +use futures::stream::{self, StreamExt}; +use rand::{distributions::Alphanumeric, Rng}; +use tokio::time::timeout; +use std::sync::Arc; +use std::{net::IpAddr, time::Instant}; +use std::time::Duration; +use anyhow::Result; +use tracing_indicatif::span_ext::IndicatifSpanExt; + +use crate::dns::{Domain, DomainScanResult}; + +/// Settings for domain scanning +pub struct DomainScanSetting { + /// Base Domain Name of scan target. + pub base_domain: String, + /// Word-list of name + pub word_list: Vec, + /// Timeout setting of domain scan. + pub timeout: Duration, + /// Resolve timeout setting of domain scan. + pub resolve_timeout: Duration, + /// Concurrent limit of domain scan. + pub concurrent_limit: usize, +} + +impl DomainScanSetting { + /// Create a new DomainScanSetting with default timeouts and concurrency. + pub fn new(base_domain: String, word_list: Vec) -> Self { + Self { + base_domain, + word_list, + timeout: Duration::from_secs(10), + resolve_timeout: Duration::from_secs(2), + concurrent_limit: 100, + } + } +} + +/// Domain Scanner +pub struct DomainScanner { + pub settings: DomainScanSetting, +} + +impl DomainScanner { + /// Create a new DomainScanner with the given settings. + pub fn new(settings: DomainScanSetting) -> Self { + Self { settings } + } + /// Run the domain scan and return the results. + pub async fn run(&self) -> Result { + scan_subdomain(&self.settings).await + } +} + +/// Normalize a domain label by trimming trailing dots and converting to lowercase. +fn normalize_label(s: &str) -> String { + s.trim_end_matches('.').to_ascii_lowercase() +} + +/// Check if the base domain has wildcard DNS records. +async fn is_wildcard_domain(resolver: &hickory_resolver::TokioResolver, base: &str, rt: Duration) -> bool { + let rand_label: String = rand::thread_rng() + .sample_iter(&Alphanumeric).take(10).map(char::from).collect(); + let test = format!("{}.{}", rand_label, base); + match timeout(rt, resolver.lookup_ip(test)).await { + Ok(Ok(lip)) => !lip.as_lookup().is_empty(), + _ => false, + } +} + +/// Scan subdomains based on the provided settings. +pub async fn scan_subdomain(setting: &DomainScanSetting) -> Result { + let base = normalize_label(&setting.base_domain); + + let target_domains: Vec = setting.word_list + .iter() + .map(|w| format!("{}.{}", normalize_label(w), base)) + .collect(); + + let resolver = Arc::new(super::resolver::get_resolver()?); + + let wildcard = is_wildcard_domain(&resolver, &base, setting.resolve_timeout).await; + + let header_span = tracing::info_span!("subdomain_scan"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message(&format!("Subdomain Scan ({})", base)); + header_span.pb_set_length(target_domains.len() as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + + let start_time = Instant::now(); + + // Parallel resolution stream + let results = stream::iter(target_domains) + .map(|domain_name| { + let resolver = resolver.clone(); + let rt = setting.resolve_timeout; + async move { + let mut d = Domain { name: domain_name.clone(), ips: Vec::new() }; + match timeout(rt, resolver.lookup_ip(domain_name)).await { + Ok(Ok(lip)) => { + let mut uniq: Vec = lip.iter().collect(); + uniq.sort(); + uniq.dedup(); + d.ips = uniq; + } + _ => {} + } + d + } + }) + .buffer_unordered(setting.concurrent_limit); + + // Collect results with timeout handling + tokio::pin!(results); + let deadline = start_time + setting.timeout; + let mut domains: Vec = Vec::new(); + + loop { + let now = Instant::now(); + if now >= deadline { break; } + let remaining = deadline - now; + + tokio::select! { + _ = tokio::time::sleep(remaining) => { + // Deadline reached: return what has been collected so far + break; + } + maybe = results.next() => { + match maybe { + Some(d) => { + if !d.ips.is_empty() { + domains.push(d); + } + header_span.pb_inc(1); + } + None => break, // All done + } + } + } + } + + drop(header_span); + + if wildcard { + if let Some(first) = domains.first().map(|d| d.ips.clone()) { + let all_same = domains.iter().all(|d| d.ips == first); + if all_same { domains.clear(); } + } + } + + domains.sort_by(|a, b| a.name.cmp(&b.name)); + + Ok(DomainScanResult { + domains, + scan_time: start_time.elapsed().min(setting.timeout), + }) +} diff --git a/src/dns/resolver.rs b/src/dns/resolver.rs new file mode 100644 index 0000000..6e1592c --- /dev/null +++ b/src/dns/resolver.rs @@ -0,0 +1,19 @@ +use anyhow::Result; +use hickory_resolver::TokioResolver; + +/// Get a DNS resolver instance +#[cfg(any(unix, target_os = "windows"))] +pub fn get_resolver() -> Result { + // Use system DNS configuration + match TokioResolver::builder_tokio() { + Ok(resolver) => Ok(resolver.build()), + Err(e) => Err(anyhow::anyhow!("Failed to create TokioAsyncResolver: {}", e)), + } +} + +#[cfg(not(any(unix, target_os = "windows")))] +pub fn get_resolver() -> Result { + use hickory_resolver::name_server::TokioConnectionProvider; + let builder = TokioResolver::builder_with_config(ResolverConfig::default(), TokioConnectionProvider::default()); + return Ok(builder.build()); +} diff --git a/src/dns/result.rs b/src/dns/result.rs deleted file mode 100644 index 8588f16..0000000 --- a/src/dns/result.rs +++ /dev/null @@ -1,28 +0,0 @@ -use crate::scan::result::ScanStatus; - -use super::domain::Domain; -use serde::{Deserialize, Serialize}; -use std::time::Duration; - -/// Result of domain scan -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct DomainScanResult { - /// HashMap of domain. - /// - /// (Domain, IP Addresses) - pub domains: Vec, - /// Time from start to end of scan. - pub scan_time: Duration, - /// Scan job status - pub scan_status: ScanStatus, -} - -impl DomainScanResult { - pub fn new() -> DomainScanResult { - DomainScanResult { - domains: vec![], - scan_time: Duration::from_millis(0), - scan_status: ScanStatus::Error(String::from("Scan not started")), - } - } -} diff --git a/src/dns/scanner.rs b/src/dns/scanner.rs deleted file mode 100644 index b7d5e1e..0000000 --- a/src/dns/scanner.rs +++ /dev/null @@ -1,210 +0,0 @@ -use super::domain::Domain; -use super::result::DomainScanResult; -use futures::{stream, StreamExt}; -use std::net::IpAddr; -use std::sync::mpsc::{channel, Receiver, Sender}; -use std::sync::{Arc, Mutex}; -use std::time::{Duration, Instant}; -use tokio::time::timeout; - -#[cfg(not(any(unix, target_os = "windows")))] -use hickory_resolver::config::{ResolverConfig, ResolverOpts}; -use hickory_resolver::AsyncResolver; - -use crate::scan::result::ScanStatus; - -/// Structure for domain scan -/// -/// Should be constructed using DomainScanner::new -#[derive(Clone)] -pub struct DomainScanner { - /// Base Domain Name of scan target. - pub base_domain: String, - /// Word-list of name - pub word_list: Vec, - /// Timeout setting of domain scan. - pub timeout: Duration, - /// Resolve timeout setting of domain scan. - pub resolve_timeout: Duration, - /// Concurrent limit of domain scan. - pub concurrent_limit: usize, - /// Result of domain scan. - pub scan_result: DomainScanResult, - /// Sender for progress messaging - tx: Arc>>, - /// Receiver for progress messaging - rx: Arc>>, -} - -impl DomainScanner { - /// Construct new UriScanner - pub fn new() -> Result { - let (tx, rx) = channel(); - let domain_scanner = DomainScanner { - base_domain: String::new(), - word_list: vec![], - timeout: Duration::from_millis(30000), - resolve_timeout: Duration::from_millis(1000), - concurrent_limit: 100, - scan_result: DomainScanResult::new(), - tx: Arc::new(Mutex::new(tx)), - rx: Arc::new(Mutex::new(rx)), - }; - Ok(domain_scanner) - } - /// Set base Domain of scan target. - pub fn set_base_domain(&mut self, base_domain: String) { - self.base_domain = base_domain; - } - /// Add word to word-list - pub fn add_word(&mut self, word: String) { - self.word_list.push(word); - } - /// Set word-list - pub fn set_word_list(&mut self, word_list: Vec<&str>) { - self.word_list.clear(); - for word in word_list { - self.word_list.push(word.to_string()) - } - } - /// Set scan timeout - pub fn set_timeout(&mut self, timeout: Duration) { - self.timeout = timeout; - } - async fn scan_domain(&self) -> Result, ()> { - match timeout( - self.timeout, - scan_subdomain( - self.base_domain.clone(), - self.word_list.clone(), - &self.tx, - self.resolve_timeout, - self.concurrent_limit, - ), - ) - .await - { - Ok(domains) => { - return Ok(domains); - } - Err(_) => { - return Err(()); - } - } - } - /// Run scan with current settings. - /// - /// Results are stored in DomainScanner::scan_result - pub async fn run_scan(&mut self) { - let start_time = Instant::now(); - let res = self.scan_domain().await; - match res { - Ok(domains) => { - self.scan_result.domains = domains; - self.scan_result.scan_status = ScanStatus::Done; - } - Err(_) => { - self.scan_result.scan_status = ScanStatus::Timeout; - } - } - self.scan_result.scan_time = Instant::now().duration_since(start_time); - } - /// Return scan result. - pub fn get_result(&mut self) -> DomainScanResult { - return self.scan_result.clone(); - } - /// Run scan and return result - pub async fn scan(&mut self) -> DomainScanResult { - self.run_scan().await; - self.scan_result.clone() - } - /// Get progress receiver - pub fn get_progress_receiver(&self) -> Arc>> { - self.rx.clone() - } -} - -#[cfg(any(unix, target_os = "windows"))] -async fn resolve_domain(host_name: String) -> Vec { - let mut ips: Vec = vec![]; - let resolver = AsyncResolver::tokio_from_system_conf().unwrap(); - match resolver.lookup_ip(host_name).await { - Ok(lip) => { - for ip in lip.iter() { - ips.push(ip); - } - } - Err(_) => {} - } - ips -} - -#[cfg(not(any(unix, target_os = "windows")))] -async fn resolve_domain(host_name: String) -> Vec { - let mut ips: Vec = vec![]; - let resolver = - AsyncResolver::tokio(ResolverConfig::default(), ResolverOpts::default()).unwrap(); - match resolver.lookup_ip(host_name).await { - Ok(lip) => { - for ip in lip.iter() { - ips.push(ip); - } - } - Err(_) => {} - } - ips -} - -async fn scan_subdomain( - base_domain: String, - word_list: Vec, - ptx: &Arc>>, - resolve_timeout: Duration, - concurrent_limit: usize, -) -> Vec { - let mut result: Vec = vec![]; - let scan_results: Arc>> = Arc::new(Mutex::new(vec![])); - let mut target_domains: Vec = vec![]; - for word in word_list { - target_domains.push(format!("{}.{}", word, base_domain)); - } - let results = stream::iter(target_domains) - .map(|domain| async move { - let mut d: Domain = Domain { - domain_name: domain.clone(), - ips: vec![], - }; - match timeout(resolve_timeout, resolve_domain(domain.clone())).await { - Ok(ips) => { - d.ips = ips; - match ptx.lock() { - Ok(lr) => match lr.send(domain) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - } - Err(_) => match ptx.lock() { - Ok(lr) => match lr.send(domain) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - }, - } - d - }) - .buffer_unordered(concurrent_limit); - results - .for_each(|domain| async { - if domain.ips.len() > 0 { - scan_results.lock().unwrap().push(domain); - } - }) - .await; - for domain in scan_results.lock().unwrap().iter() { - result.push(domain.to_owned()); - } - result -} diff --git a/src/endpoint.rs b/src/endpoint.rs new file mode 100644 index 0000000..9257c5a --- /dev/null +++ b/src/endpoint.rs @@ -0,0 +1,496 @@ +use std::net::{IpAddr, SocketAddr}; +use std::collections::BTreeMap; +use netdev::MacAddr; +use serde::{Serialize, Deserialize}; + +mod ports_vec { + use super::*; + use serde::{Serializer, Deserializer}; + + #[derive(Serialize, Deserialize)] + struct Item { + pub port: Port, + #[serde(flatten)] + pub rest: PortResult, + } + + pub fn serialize(map: &BTreeMap, s: S) -> Result + where S: Serializer { + let vec: Vec<&PortResult> = map.values().collect(); + vec.serialize(s) + } + + pub fn deserialize<'de, D>(d: D) -> Result, D::Error> + where D: Deserializer<'de> { + let vec = >::deserialize(d)?; + Ok(vec.into_iter().map(|pr| (pr.port, pr)).collect()) + } +} + +/// Transport protocol type +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, Ord, PartialOrd)] +#[serde(rename_all = "lowercase")] +pub enum TransportProtocol { + Tcp, + Udp, + Quic, +} + +impl TransportProtocol { + /// Create a TransportProtocol from a string representation. + pub fn from_str(s: &str) -> Option { + match s.to_lowercase().as_str() { + "tcp" => Some(TransportProtocol::Tcp), + "udp" => Some(TransportProtocol::Udp), + "quic" => Some(TransportProtocol::Quic), + _ => None, + } + } + /// Get the string representation of the TransportProtocol. + pub fn as_str(&self) -> &'static str { + match self { + TransportProtocol::Tcp => "tcp", + TransportProtocol::Udp => "udp", + TransportProtocol::Quic => "quic", + } + } +} + +/// Network port with transport protocol +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, Ord, PartialOrd)] +pub struct Port { + pub number: u16, + pub transport: TransportProtocol, +} + +impl Port { + /// Create a new Port instance. + pub fn new(number: u16, transport: TransportProtocol) -> Self { + Self { number, transport } + } + /// Get the SocketAddr for the given IP address and this port. + pub fn socket_addr(&self, ip: IpAddr) -> SocketAddr { + SocketAddr::new(ip, self.number) + } +} + +impl From<(u16, TransportProtocol)> for Port { + fn from(t: (u16, TransportProtocol)) -> Self { Self { number: t.0, transport: t.1 } } +} +impl std::fmt::Display for Port { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}:{}", match self.transport { TransportProtocol::Tcp=>"tcp", TransportProtocol::Udp=>"udp", TransportProtocol::Quic=>"quic" }, self.number) + } +} + +/// Port state +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[serde(rename_all = "lowercase")] +pub enum PortState { + Open, + Closed, + Filtered, +} + +impl PortState { + /// Create a PortState from a string representation. + pub fn from_str(s: &str) -> Option { + match s.to_lowercase().as_str() { + "open" => Some(PortState::Open), + "closed" => Some(PortState::Closed), + "filtered" => Some(PortState::Filtered), + _ => None, + } + } + /// Get the string representation of the PortState. + pub fn as_str(&self) -> &'static str { + match self { + PortState::Open => "open", + PortState::Closed => "closed", + PortState::Filtered => "filtered", + } + } +} + +/// Node type +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum NodeType { + Gateway, + Hop, + Destination, +} + +impl NodeType { + /// Create a NodeType from a string representation. + pub fn from_str(s: &str) -> Option { + match s.to_lowercase().as_str() { + "gateway" => Some(NodeType::Gateway), + "hop" => Some(NodeType::Hop), + "destination" => Some(NodeType::Destination), + _ => None, + } + } + /// Get the string representation of the NodeType. + pub fn as_str(&self) -> &'static str { + match self { + NodeType::Gateway => "gateway", + NodeType::Hop => "hop", + NodeType::Destination => "destination", + } + } + /// Get the display name of the NodeType. + pub fn name(&self) -> String { + match *self { + NodeType::Gateway => String::from("Gateway"), + NodeType::Hop => String::from("Hop"), + NodeType::Destination => String::from("Destination"), + } + } +} + +/// Service information detected on a port +#[derive(Debug, Clone, Default, Serialize, Deserialize)] +pub struct ServiceInfo { + pub name: Option, + pub product: Option, + pub version: Option, + pub quic_version: Option, + pub banner: Option, + pub raw: Option, + pub cpes: Vec, + pub tls_info: Option, +} + +/// TLS information extracted from a TLS handshake +#[derive(Debug, Clone, Default, Serialize, Deserialize)] +pub struct TlsInfo { + pub version: Option, + pub cipher_suite: Option, + pub alpn: Option, + pub sni: Option, + pub subject: Option, + pub issuer: Option, + /// Not before date in RFC2822 format + pub not_before: Option, + /// Not after date in RFC2822 format + pub not_after: Option, + pub san_list: Vec, + pub serial_hex: Option, + /// Signature algorithm name + pub sig_algorithm: Option, + /// Public key algorithm name + pub pubkey_algorithm: Option, +} + +/// Result of probing a specific port +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct PortResult { + pub port: Port, + pub state: PortState, + pub rtt_ms: Option, + #[serde(default)] + pub service: ServiceInfo, +} + +/// OS guess information +#[derive(Debug, Clone, Default, Serialize, Deserialize)] +pub struct OsGuess { + pub family: Option, + pub confidence: Option, + pub ttl_observed: Option, +} + +impl OsGuess { + pub fn with_family(self, family: String) -> Self { + Self { + family: Some(family), + confidence: None, + ttl_observed: None, + } + } + pub fn with_confidence(self, confidence: f32) -> Self { + Self { + family: self.family, + confidence: Some(confidence), + ttl_observed: self.ttl_observed, + } + } + pub fn with_ttl_observed(self, ttl: u8) -> Self { + Self { + family: self.family, + confidence: self.confidence, + ttl_observed: Some(ttl), + } + } +} + +/// Representation of a host (IP address and optional hostname) +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Host { + pub ip: IpAddr, + pub hostname: Option, +} + +impl Default for Host { + fn default() -> Self { + Self { + ip: IpAddr::V4(std::net::Ipv4Addr::UNSPECIFIED), + hostname: None, + } + } +} + +impl Host { + /// Create a new Host instance. + pub fn new(ip: IpAddr) -> Self { + Self { ip, ..Default::default() } + } + /// Create a new Host instance with the specified hostname. + pub fn with_hostname(ip: IpAddr, hostname: String) -> Self { + Self { ip, hostname: Some(hostname), ..Default::default() } + } +} + +/// Representation of an endpoint with IP, hostname, MAC address, tags, and ports +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Endpoint { + pub ip: IpAddr, + pub hostname: Option, + pub mac_addr: Option, + pub tags: Vec, + pub ports: Vec, +} + +impl Default for Endpoint { + fn default() -> Self { + Self { + ip: IpAddr::V4(std::net::Ipv4Addr::UNSPECIFIED), + hostname: None, + mac_addr: None, + tags: Vec::new(), + ports: Vec::new(), + } + } +} + +impl Endpoint { + /// Create a new Endpoint instance. + pub fn new(ip: IpAddr) -> Self { + Self { ip, ..Default::default() } + } + /// Create a new Endpoint instance with the specified hostname. + pub fn with_hostname(ip: IpAddr, hostname: String) -> Self { + Self { ip, hostname: Some(hostname), ..Default::default() } + } + /// Add a port to the endpoint if it does not already exist. + pub fn upsert_port(&mut self, port: Port) { + if !self.ports.contains(&port) { + self.ports.push(port); + } + } + /// Merge another Endpoint into this one, combining tags and ports. + pub fn merge(&mut self, other: Endpoint) { + if self.hostname.is_none() { self.hostname = other.hostname; } + if self.mac_addr.is_none() { self.mac_addr = other.mac_addr; } + + for t in other.tags { + if !self.tags.contains(&t) { + self.tags.push(t); + } + } + + for p in other.ports { + if !self.ports.contains(&p) { + self.ports.push(p); + } + } + } + /// Get the SocketAddr instances for the specified transport protocol. + pub fn socket_addrs(&self, transport: TransportProtocol) -> Vec { + self.ports + .iter() + .filter(|p| p.transport == transport) + .map(|p| p.socket_addr(self.ip)) + .collect() + } +} + +/// Result of scanning an endpoint, including ports and OS guess +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct EndpointResult { + pub ip: IpAddr, + pub hostname: Option, + pub mac_addr: Option, + pub vendor_name: Option, + pub os: OsGuess, + #[serde(default)] + pub tags: Vec, + #[serde(default, with = "ports_vec")] + pub ports: BTreeMap, + pub cpes: Vec, +} + +impl Default for EndpointResult { + fn default() -> Self { + Self { + ip: IpAddr::V4(std::net::Ipv4Addr::UNSPECIFIED), + hostname: None, + mac_addr: None, + vendor_name: None, + os: OsGuess::default(), + tags: Vec::new(), + ports: BTreeMap::new(), + cpes: Vec::new(), + } + } +} + +impl EndpointResult { + /// Create a new EndpointResult instance. + pub fn new(ip: IpAddr) -> Self { + Self { ip, ..Default::default() } + } + /// Create a new EndpointResult instance with the specified hostname. + pub fn with_hostname(ip: IpAddr, hostname: String) -> Self { + Self { ip, hostname: Some(hostname), ..Default::default() } + } + /// Add or update a PortResult in the endpoint's ports map. + pub fn upsert_port(&mut self, pr: PortResult) { + self.ports.insert(pr.port, pr); + } + /// Merge another EndpointResult into this one, combining tags, ports, and OS guess. + pub fn merge(&mut self, other: EndpointResult) { + if self.hostname.is_none() { self.hostname = other.hostname; } + if self.mac_addr.is_none() { self.mac_addr = other.mac_addr; } + if self.vendor_name.is_none() { self.vendor_name = other.vendor_name; } + + //self.cpes = other.cpes; + let incoming: Vec = other + .cpes + .into_iter() + .filter(|c| !self.cpes.contains(c)) + .collect(); + + self.cpes.extend(incoming); + + if other.os.confidence.unwrap_or(0.0) > self.os.confidence.unwrap_or(0.0) { + self.os = other.os; + } else if self.os.ttl_observed.is_none() && other.os.ttl_observed.is_some() { + self.os.ttl_observed = other.os.ttl_observed; + } + + for t in other.tags { + if !self.tags.contains(&t) { + self.tags.push(t); + } + } + + for (k, v) in other.ports { + // check service data exists + if let Some(existing) = self.ports.get_mut(&k) { + if existing.service.banner.is_none() { + self.ports.insert(k, v); + } + } else { + self.ports.insert(k, v); + } + } + } + /// Get the SocketAddr instances for the specified transport protocol. + pub fn socket_addrs(&self, transport: TransportProtocol) -> Vec { + self.ports + .keys() + .filter(|p| p.transport == transport) + .map(|p| p.socket_addr(self.ip)) + .collect() + } + /// Convert to a simpler Endpoint representation. + pub fn to_endpoint(&self) -> Endpoint { + Endpoint { + ip: self.ip, + hostname: self.hostname.clone(), + mac_addr: self.mac_addr, + tags: self.tags.clone(), + ports: self.ports.keys().cloned().collect(), + } + } + /// Get a list of open ports. + pub fn get_open_ports(&self) -> Vec { + self.ports + .iter() + .filter(|(_, v)| v.state == PortState::Open) + .map(|(k, _)| *k) + .collect() + } + /// Get an active Endpoint if there are any open ports. + pub fn active_endpoint(&self) -> Option { + let open_ports = self.get_open_ports(); + if open_ports.is_empty() { + None + } else { + Some(Endpoint { + ip: self.ip, + hostname: self.hostname.clone(), + mac_addr: self.mac_addr, + tags: self.tags.clone(), + ports: open_ports, + }) + } + } +} + +impl From for EndpointResult { + fn from(ip: IpAddr) -> Self { EndpointResult::new(ip) } +} + +#[cfg(test)] +mod tests { + use super::*; + use serde_json::{to_string_pretty, from_str}; + + #[test] + fn ports_roundtrip() { + let mut ep = EndpointResult::new("93.184.216.34".parse().unwrap()); + ep.upsert_port(PortResult { + port: Port::new(80, TransportProtocol::Tcp), + state: PortState::Open, + rtt_ms: Some(23), + service: ServiceInfo { + name: Some("http".into()), + ..Default::default() + }, + }); + ep.upsert_port(PortResult { + port: Port::new(443, TransportProtocol::Tcp), + state: PortState::Open, + rtt_ms: None, + service: ServiceInfo { + name: Some("https".into()), + tls_info: Some(TlsInfo { + version: Some("TLS 1.2".into()), + cipher_suite: Some("TLS_AES_128_GCM_SHA256".into()), + alpn: Some("h2".into()), + sni: Some("example.com".into()), + subject: Some("CN=example.com".into()), + issuer: Some("CN=Example CA".into()), + not_before: Some("2023-01-01T00:00:00Z".into()), + not_after: Some("2024-01-01T00:00:00Z".into()), + san_list: vec!["example.com".into(), "www.example.com".into()], + serial_hex: Some("1234567890abcdef".into()), + sig_algorithm: Some("sha256WithRSAEncryption".into()), + pubkey_algorithm: Some("RSA".into()), + }), + ..Default::default() + }, + }); + + let json = to_string_pretty(&ep).unwrap(); + + assert!(json.contains("\"ports\": [")); + + let back: EndpointResult = from_str(&json).unwrap(); + assert_eq!(back.ports.len(), 2); + assert!(back.ports.contains_key(&Port::new(80, TransportProtocol::Tcp))); + assert!(back.ports.contains_key(&Port::new(443, TransportProtocol::Tcp))); + } +} diff --git a/src/fp/mod.rs b/src/fp/mod.rs deleted file mode 100644 index 792f3ae..0000000 --- a/src/fp/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod setting; diff --git a/src/fp/setting.rs b/src/fp/setting.rs deleted file mode 100644 index d98f900..0000000 --- a/src/fp/setting.rs +++ /dev/null @@ -1,57 +0,0 @@ -use crate::protocol::Protocol; -use serde::{Deserialize, Serialize}; -use std::net::IpAddr; - -#[derive(Deserialize, Serialize, Clone, Copy, Debug, PartialEq, Eq)] -pub enum FingerprintType { - IcmpEcho, - IcmpTimestamp, - IcmpAddressMask, - IcmpInformation, - IcmpUnreachable, - TcpSynAck, - TcpRstAck, - TcpEcn, -} - -impl FingerprintType { - pub fn protocol(&self) -> Protocol { - match self { - FingerprintType::IcmpEcho => Protocol::ICMP, - FingerprintType::IcmpTimestamp => Protocol::ICMP, - FingerprintType::IcmpAddressMask => Protocol::ICMP, - FingerprintType::IcmpInformation => Protocol::ICMP, - FingerprintType::IcmpUnreachable => Protocol::UDP, - FingerprintType::TcpSynAck => Protocol::TCP, - FingerprintType::TcpRstAck => Protocol::TCP, - FingerprintType::TcpEcn => Protocol::TCP, - } - } -} - -#[derive(Deserialize, Serialize, Clone, Debug)] -pub struct FingerprintSetting { - pub if_index: u32, - pub dst_hostname: String, - pub dst_ip: IpAddr, - pub protocol: Protocol, - pub fingerprint_type: FingerprintType, - pub count: u32, - pub receive_timeout: u64, - pub probe_timeout: u64, -} - -impl Default for FingerprintSetting { - fn default() -> Self { - Self { - if_index: 0, - dst_hostname: "localhost".to_string(), - dst_ip: IpAddr::V4(std::net::Ipv4Addr::LOCALHOST), - protocol: Protocol::ICMP, - fingerprint_type: FingerprintType::IcmpEcho, - count: 1, - receive_timeout: 1000, - probe_timeout: 30000, - } - } -} diff --git a/src/fs.rs b/src/fs.rs deleted file mode 100644 index 9a35ff9..0000000 --- a/src/fs.rs +++ /dev/null @@ -1,6 +0,0 @@ -use std::fs; -use std::path::PathBuf; - -pub fn save_text(file_path: &PathBuf, contents_text: String) -> Result<(), std::io::Error> { - fs::write(file_path, contents_text) -} diff --git a/src/handler/check.rs b/src/handler/check.rs deleted file mode 100644 index 7ad01dd..0000000 --- a/src/handler/check.rs +++ /dev/null @@ -1,15 +0,0 @@ -use crate::dep; -use clap::ArgMatches; - -pub fn check_dependencies(_arg: &ArgMatches) { - match dep::check_dependencies() { - Ok(_) => { - println!("All dependencies are installed."); - std::process::exit(0); - } - Err(e) => { - println!("Error: {}", e); - std::process::exit(1); - } - } -} diff --git a/src/handler/dns.rs b/src/handler/dns.rs deleted file mode 100644 index a8b2529..0000000 --- a/src/handler/dns.rs +++ /dev/null @@ -1,191 +0,0 @@ -use crate::db; -use crate::dns::domain::Domain; -use crate::dns::{result::DomainScanResult, scanner::DomainScanner}; -use crate::util::tree::node_label; -use clap::ArgMatches; -use indicatif::{ProgressBar, ProgressDrawTarget}; -use std::path::PathBuf; -use std::{thread, time::Duration}; -use termtree::Tree; -use tokio::runtime::Runtime; - -use crate::output; - -pub fn handle_subdomain_scan(args: &ArgMatches) { - output::log_with_time("Initiating subdomain scan...", "INFO"); - let host_args = match args.subcommand_matches("subdomain") { - Some(matches) => matches, - None => return, - }; - let target: String = match host_args.get_one::("target") { - Some(target) => target.to_owned(), - None => return, - }; - - let domain_ips: Vec = crate::dns::lookup_host(&target); - if domain_ips.is_empty() { - output::log_with_time("Failed to resolve domain", "ERROR"); - return; - } - let target_domain: Domain = crate::dns::domain::Domain { - domain_name: target, - ips: domain_ips, - }; - - let timeout = match host_args.get_one::("timeout") { - Some(timeout) => Duration::from_millis(*timeout), - None => Duration::from_secs(30), - }; - - let word_list: Vec = match host_args.get_one::("wordlist") { - Some(file_path) => match std::fs::read_to_string(&file_path) { - Ok(contents) => { - let mut word_list: Vec = Vec::new(); - for word in contents.lines() { - let word = word.trim(); - if word.is_empty() { - continue; - } - word_list.push(word.to_owned()); - } - word_list - } - Err(_) => vec![], - }, - None => db::get_subdomain(), - }; - - let mut domain_scanner = match DomainScanner::new() { - Ok(scanner) => scanner, - Err(e) => panic!("Error creating scanner: {}", e), - }; - domain_scanner.set_base_domain(target_domain.domain_name.clone()); - domain_scanner.word_list = word_list; - domain_scanner.set_timeout(timeout); - - print_option(&domain_scanner); - - // Display progress with indicatif - if !crate::app::is_quiet_mode() { - println!("[Progress]"); - } - let bar = ProgressBar::new(domain_scanner.word_list.len() as u64); - if crate::app::is_quiet_mode() { - bar.set_draw_target(ProgressDrawTarget::hidden()); - } - bar.enable_steady_tick(Duration::from_millis(120)); - bar.set_style(output::get_progress_style()); - bar.set_position(0); - bar.set_message("SubdomainScan"); - - let rx = domain_scanner.get_progress_receiver(); - let rt = Runtime::new().unwrap(); - // Run scan - let handle = thread::spawn(move || rt.block_on(async { domain_scanner.scan().await })); - // Print progress - while let Ok(_domain) = rx.lock().unwrap().recv() { - bar.inc(1); - } - bar.finish_with_message("SubdomainScan"); - let result: DomainScanResult = handle.join().unwrap(); - // Print results - if args.get_flag("json") { - let json_result = serde_json::to_string_pretty(&result).unwrap(); - println!("{}", json_result); - } else { - show_domainscan_result(&result, target_domain); - } - output::log_with_time(&format!("Scan completed in {:?}", result.scan_time), "INFO"); - match args.get_one::("save") { - Some(file_path) => { - match crate::fs::save_text(file_path, serde_json::to_string_pretty(&result).unwrap()) { - Ok(_) => { - output::log_with_time( - &format!("Saved to {}", file_path.to_string_lossy()), - "INFO", - ); - } - Err(e) => { - output::log_with_time(&format!("Failed to save: {}", e), "ERROR"); - } - } - } - None => {} - } -} - -fn print_option(setting: &DomainScanner) { - if crate::app::is_quiet_mode() { - return; - } - println!(); - let mut tree = Tree::new(node_label("SubdomainScan Config", None, None)); - let mut setting_tree = Tree::new(node_label("Settings", None, None)); - setting_tree.push(node_label( - "Words", - Some(&setting.word_list.len().to_string()), - None, - )); - setting_tree.push(node_label( - "Timeout", - Some(&format!("{:?}", setting.timeout)), - None, - )); - setting_tree.push(node_label( - "Resolve timeout", - Some(&format!("{:?}", setting.resolve_timeout)), - None, - )); - setting_tree.push(node_label( - "Concurrent limit", - Some(&setting.concurrent_limit.to_string()), - None, - )); - tree.push(setting_tree); - let mut target_tree = Tree::new(node_label("Target", None, None)); - target_tree.push(node_label("Domain Name", Some(&setting.base_domain), None)); - tree.push(target_tree); - println!("{}", tree); -} - -fn show_domainscan_result(scan_result: &DomainScanResult, target_domain: Domain) { - if !crate::app::is_quiet_mode() { - println!(); - } - let mut tree = Tree::new(node_label( - &format!("SubdomainScan Result - {}", target_domain.domain_name), - None, - None, - )); - let mut domain_tree = Tree::new(node_label(&target_domain.domain_name, None, None)); - let mut ipv4_tree = Tree::new(node_label("IPv4 Addresses", None, None)); - let mut ipv6_tree = Tree::new(node_label("IPv6 Addresses", None, None)); - for ip in &target_domain.ips { - if ip.is_ipv4() { - ipv4_tree.push(node_label(&ip.to_string(), None, None)); - } else { - ipv6_tree.push(node_label(&ip.to_string(), None, None)); - } - } - domain_tree.push(ipv4_tree); - domain_tree.push(ipv6_tree); - let mut subdomains_tree = Tree::new(node_label("Subdomains", None, None)); - for domain in &scan_result.domains { - let mut subdomain_tree = Tree::new(node_label(&domain.domain_name, None, None)); - let mut ipv4_tree = Tree::new(node_label("IPv4 Addresses", None, None)); - let mut ipv6_tree = Tree::new(node_label("IPv6 Addresses", None, None)); - for ip in &domain.ips { - if ip.is_ipv4() { - ipv4_tree.push(node_label(&ip.to_string(), None, None)); - } else { - ipv6_tree.push(node_label(&ip.to_string(), None, None)); - } - } - subdomain_tree.push(ipv4_tree); - subdomain_tree.push(ipv6_tree); - subdomains_tree.push(subdomain_tree); - } - domain_tree.push(subdomains_tree); - tree.push(domain_tree); - println!("{}", tree); -} diff --git a/src/handler/host.rs b/src/handler/host.rs deleted file mode 100644 index 1475e69..0000000 --- a/src/handler/host.rs +++ /dev/null @@ -1,266 +0,0 @@ -use crate::host::Host; -use crate::json::host::HostScanResult; -use crate::scan::result::ScanResult; -use crate::scan::scanner::HostScanner; -use crate::scan::setting::{HostScanSetting, HostScanType}; -use crate::util::tree::node_label; -use clap::ArgMatches; -use indicatif::{ProgressBar, ProgressDrawTarget}; -use ipnet::Ipv4Net; -use netdev::Interface; -use std::collections::HashMap; -use std::net::{IpAddr, Ipv4Addr}; -use std::path::PathBuf; -use std::str::FromStr; -use std::thread; -use std::time::Duration; -use termtree::Tree; - -use crate::output; - -pub fn handle_hostscan(args: &ArgMatches) { - output::log_with_time("Initiating host scan...", "INFO"); - let host_args = match args.subcommand_matches("host") { - Some(matches) => matches, - None => return, - }; - let target: String = match host_args.get_one::("target") { - Some(target) => target.to_owned(), - None => return, - }; - let scan_type: HostScanType = match host_args.get_one::("protocol") { - Some(protocol) => HostScanType::from_str(protocol), - None => HostScanType::IcmpPingScan, - }; - let timeout = match host_args.get_one::("timeout") { - Some(timeout) => Duration::from_millis(*timeout), - None => Duration::from_millis(10000), - }; - let port: u16 = match host_args.get_one::("port") { - Some(port) => *port, - None => 80 as u16, - }; - let default_waittime: Duration = Duration::from_millis(200); - let wait_time = match host_args.get_one::("waittime") { - Some(wait_time) => Duration::from_millis(*wait_time), - None => default_waittime, - }; - let send_rate = match host_args.get_one::("rate") { - Some(send_rate) => Duration::from_millis(*send_rate), - None => Duration::from_millis(0), - }; - let target_ips: Vec = match Ipv4Net::from_str(&target) { - Ok(ipv4net) => { - // convert hosts to Vec - ipv4net.hosts().map(|x| IpAddr::V4(x)).collect() - } - Err(_) => { - match Ipv4Addr::from_str(&target) { - Ok(ip_addr) => Ipv4Net::new(ip_addr, 24) - .unwrap() - .hosts() - .map(|x| IpAddr::V4(x)) - .collect(), - Err(_) => { - // Check if target is host-list file - match std::fs::read_to_string(&target) { - Ok(hosts) => { - let mut ips: Vec = Vec::new(); - for host in hosts.lines() { - let host = host.trim(); - if host.is_empty() { - continue; - } - match IpAddr::from_str(host) { - Ok(ip) => ips.push(ip), - Err(_) => continue, - } - } - ips - } - Err(_) => vec![], - } - } - } - } - }; - // Add scan target - let mut targets: Vec = Vec::new(); - for ip in target_ips { - let host: Host = Host::new(ip, String::new()).with_ports(vec![port]); - targets.push(host); - } - let interface: Interface = if let Some(if_name) = args.get_one::("interface") { - match crate::interface::get_interface_by_name(if_name.to_string()) { - Some(iface) => iface, - None => return, - } - } else { - match netdev::get_default_interface() { - Ok(iface) => iface, - Err(_) => return, - } - }; - let mut scan_setting = HostScanSetting::default() - .set_if_index(interface.index) - .set_scan_type(scan_type) - .set_targets(targets) - .set_timeout(timeout) - .set_wait_time(wait_time) - .set_send_rate(send_rate); - // Print options - print_option(&target, &scan_setting, &interface); - if !host_args.get_flag("random") { - scan_setting.randomize_ports(); - scan_setting.randomize_hosts(); - } - if !crate::app::is_quiet_mode() { - println!("[Progress]"); - } - // Display progress with indicatif - let bar = ProgressBar::new(scan_setting.targets.len() as u64); - if crate::app::is_quiet_mode() { - bar.set_draw_target(ProgressDrawTarget::hidden()); - } - //bar.enable_steady_tick(120); - bar.set_style(output::get_progress_style()); - bar.set_position(0); - bar.set_message("HostScan"); - let host_scanner = HostScanner::new(scan_setting); - let rx = host_scanner.get_progress_receiver(); - // Run scan - let handle = thread::spawn(move || host_scanner.scan()); - // Print progress - while let Ok(_host) = rx.lock().unwrap().recv() { - bar.inc(1); - } - let mut hostscan_result: ScanResult = handle.join().unwrap(); - bar.finish_with_message(format!("HostScan ({:?})", hostscan_result.scan_time)); - if hostscan_result.hosts.len() == 0 { - output::log_with_time("No results found", "INFO"); - return; - } - hostscan_result.sort_ports(); - hostscan_result.sort_hosts(); - let os_family_map: HashMap = - crate::db::get_fingerprint_map(&hostscan_result.fingerprints); - for host in &mut hostscan_result.hosts { - host.os_family = os_family_map - .get(&host.ip_addr) - .unwrap_or(&String::new()) - .to_string(); - } - let result: HostScanResult = HostScanResult::from_scan_result(&hostscan_result); - // Print results - if args.get_flag("json") { - let json_result = serde_json::to_string_pretty(&result).unwrap(); - println!("{}", json_result); - } else { - show_hostscan_result(&result); - } - output::log_with_time("Scan completed", "INFO"); - match args.get_one::("save") { - Some(file_path) => { - match crate::fs::save_text(file_path, serde_json::to_string_pretty(&result).unwrap()) { - Ok(_) => { - output::log_with_time( - &format!("Saved to {}", file_path.to_string_lossy()), - "INFO", - ); - } - Err(e) => { - output::log_with_time(&format!("Failed to save: {}", e), "ERROR"); - } - } - } - None => {} - } -} - -fn print_option(target: &str, setting: &HostScanSetting, interface: &Interface) { - if crate::app::is_quiet_mode() { - return; - } - println!(); - let mut tree = Tree::new(node_label("HostScan Config", None, None)); - let mut setting_tree = Tree::new(node_label("Settings", None, None)); - setting_tree.push(node_label( - "Protocol", - Some(setting.protocol.to_str()), - None, - )); - setting_tree.push(node_label( - "ScanType", - Some(setting.scan_type.to_str()), - None, - )); - setting_tree.push(node_label("InterfaceName", Some(&interface.name), None)); - setting_tree.push(node_label( - "Timeout", - Some(&format!("{:?}", setting.timeout)), - None, - )); - setting_tree.push(node_label( - "WaitTime", - Some(&format!("{:?}", setting.wait_time)), - None, - )); - setting_tree.push(node_label( - "SendRate", - Some(&format!("{:?}", setting.send_rate)), - None, - )); - tree.push(setting_tree); - let mut target_tree = Tree::new(node_label("Target", None, None)); - match Ipv4Net::from_str(&target) { - Ok(ipv4net) => { - target_tree.push(node_label("Network", Some(&ipv4net.to_string()), None)); - } - Err(_) => match Ipv4Addr::from_str(&target) { - Ok(ip_addr) => { - let net = Ipv4Net::new(ip_addr, 24).unwrap(); - target_tree.push(node_label("Network", Some(&net.to_string()), None)); - } - Err(_) => { - target_tree.push(node_label("List", Some(target), None)); - } - }, - } - tree.push(target_tree); - println!("{}", tree); -} - -fn show_hostscan_result(hostscan_result: &HostScanResult) { - if !crate::app::is_quiet_mode() { - println!(); - } - let oui_map: HashMap = crate::db::get_oui_detail_map(); - let mut tree = Tree::new(node_label("HostScan Result", None, None)); - let mut hosts_tree = Tree::new(node_label("Hosts", None, None)); - for host in &hostscan_result.hosts { - let mut host_tree = Tree::new(node_label(&host.ip_addr.to_string(), None, None)); - host_tree.push(node_label("Host Name", Some(&host.hostname), None)); - host_tree.push(node_label("TTL", Some(&host.ttl.to_string()), None)); - host_tree.push(node_label("OS Family", Some(&host.os_family), None)); - if !crate::ip::is_global_addr(&host.ip_addr) { - let vendor_name = if host.mac_addr.address().len() > 16 { - let prefix8 = host.mac_addr.address()[0..8].to_uppercase(); - oui_map.get(&prefix8).unwrap_or(&String::new()).to_string() - } else { - oui_map - .get(&host.mac_addr.address()) - .unwrap_or(&String::new()) - .to_string() - }; - host_tree.push(node_label( - "MAC Address", - Some(&host.mac_addr.to_string()), - None, - )); - host_tree.push(node_label("Vendor Name", Some(&vendor_name), None)); - } - hosts_tree.push(host_tree); - } - tree.push(hosts_tree); - println!("{}", tree); -} diff --git a/src/handler/interface.rs b/src/handler/interface.rs deleted file mode 100644 index 005226a..0000000 --- a/src/handler/interface.rs +++ /dev/null @@ -1,181 +0,0 @@ -use std::path::PathBuf; - -use crate::output; -use crate::util::tree::node_label; -use clap::ArgMatches; -use netdev::mac::MacAddr; -use netdev::Interface; -use termtree::Tree; - -pub fn show_default_interface(args: &ArgMatches) { - let iface: Interface = match netdev::get_default_interface() { - Ok(interface) => interface, - Err(_) => { - println!("Failed to get default interface"); - return; - } - }; - if args.get_flag("json") { - let json_result = serde_json::to_string_pretty(&iface).unwrap(); - println!("{}", json_result); - } else { - show_interface_tree(&iface); - } - match args.get_one::("save") { - Some(file_path) => { - match crate::fs::save_text(file_path, serde_json::to_string_pretty(&iface).unwrap()) { - Ok(_) => { - output::log_with_time( - &format!("Saved to {}", file_path.to_string_lossy()), - "INFO", - ); - } - Err(e) => { - output::log_with_time(&format!("Failed to save: {}", e), "ERROR"); - } - } - } - None => {} - } -} - -pub fn show_interfaces(args: &ArgMatches) { - let interfaces: Vec = netdev::get_interfaces(); - if args.get_flag("json") { - let json_result = serde_json::to_string_pretty(&interfaces).unwrap(); - println!("{}", json_result); - } else { - show_interfaces_tree(&interfaces); - } - match args.get_one::("save") { - Some(file_path) => { - match crate::fs::save_text( - file_path, - serde_json::to_string_pretty(&interfaces).unwrap(), - ) { - Ok(_) => { - output::log_with_time( - &format!("Saved to {}", file_path.to_string_lossy()), - "INFO", - ); - } - Err(e) => { - output::log_with_time(&format!("Failed to save: {}", e), "ERROR"); - } - } - } - None => {} - } -} - -pub fn show_interface_tree(iface: &Interface) { - let mut tree = Tree::new(node_label("Interface", None, None)); - tree.push(node_label("Index", Some(&iface.index.to_string()), None)); - tree.push(node_label("Name", Some(&iface.name), None)); - if let Some(friendly_name) = &iface.friendly_name { - tree.push(node_label("Friendly Name", Some(friendly_name), None)); - } - if let Some(desc) = &iface.description { - tree.push(node_label("Description", Some(desc), None)); - } - tree.push(node_label("Type", Some(&iface.if_type.name()), None)); - tree.push(node_label( - "MAC", - Some(&iface.mac_addr.unwrap_or(MacAddr::zero()).to_string()), - None, - )); - let mut ipv4_tree = Tree::new(node_label("IPv4 Addresses", None, None)); - for ipv4 in &iface.ipv4 { - ipv4_tree.push(node_label(&ipv4.addr().to_string(), None, None)); - } - tree.push(ipv4_tree); - - let mut ipv6_tree = Tree::new(node_label("IPv6 Addresses", None, None)); - for ipv6 in &iface.ipv6 { - ipv6_tree.push(node_label(&ipv6.addr().to_string(), None, None)); - } - tree.push(ipv6_tree); - - if let Some(gateway) = &iface.gateway { - let mut gateway_tree = Tree::new(node_label("Gateway", None, None)); - gateway_tree.push(node_label("MAC", Some(&gateway.mac_addr.to_string()), None)); - let mut ipv4_tree = Tree::new(node_label("IPv4 Addresses", None, None)); - for ipv4 in &gateway.ipv4 { - ipv4_tree.push(node_label(&ipv4.to_string(), None, None)); - } - gateway_tree.push(ipv4_tree); - let mut ipv6_tree = Tree::new(node_label("IPv6 Addresses", None, None)); - for ipv6 in &gateway.ipv6 { - ipv6_tree.push(node_label(&ipv6.to_string(), None, None)); - } - gateway_tree.push(ipv6_tree); - tree.push(gateway_tree); - } - if iface.dns_servers.len() > 0 { - let mut dns_tree = Tree::new(node_label("DNS Servers", None, None)); - for server_addr in &iface.dns_servers { - dns_tree.push(node_label(&server_addr.to_string(), None, None)); - } - tree.push(dns_tree); - } - - println!("{}", tree); -} - -pub fn show_interfaces_tree(interfaces: &Vec) { - let mut tree = Tree::new(node_label("Interfaces", None, None)); - for iface in interfaces { - let mut iface_tree = Tree::new(node_label(&iface.name, None, None)); - iface_tree.push(node_label("Index", Some(&iface.index.to_string()), None)); - iface_tree.push(node_label("Name", Some(&iface.name), None)); - if let Some(friendly_name) = &iface.friendly_name { - iface_tree.push(node_label("Friendly Name", Some(friendly_name), None)); - } - if let Some(desc) = &iface.description { - iface_tree.push(node_label("Description", Some(desc), None)); - } - iface_tree.push(node_label("Type", Some(&iface.if_type.name()), None)); - iface_tree.push(node_label( - "MAC", - Some(&iface.mac_addr.unwrap_or(MacAddr::zero()).to_string()), - None, - )); - let mut ipv4_tree = Tree::new(node_label("IPv4 Addresses", None, None)); - for ipv4 in &iface.ipv4 { - ipv4_tree.push(node_label(&ipv4.addr().to_string(), None, None)); - } - iface_tree.push(ipv4_tree); - - let mut ipv6_tree = Tree::new(node_label("IPv6 Addresses", None, None)); - for ipv6 in &iface.ipv6 { - ipv6_tree.push(node_label(&ipv6.addr().to_string(), None, None)); - } - iface_tree.push(ipv6_tree); - - if let Some(gateway) = &iface.gateway { - let mut gateway_tree = Tree::new(node_label("Gateway", None, None)); - gateway_tree.push(node_label("MAC", Some(&gateway.mac_addr.to_string()), None)); - let mut ipv4_tree = Tree::new(node_label("IPv4 Addresses", None, None)); - for ipv4 in &gateway.ipv4 { - ipv4_tree.push(node_label(&ipv4.to_string(), None, None)); - } - gateway_tree.push(ipv4_tree); - let mut ipv6_tree = Tree::new(node_label("IPv6 Addresses", None, None)); - for ipv6 in &gateway.ipv6 { - ipv6_tree.push(node_label(&ipv6.to_string(), None, None)); - } - gateway_tree.push(ipv6_tree); - iface_tree.push(gateway_tree); - } - - if iface.dns_servers.len() > 0 { - let mut dns_tree = Tree::new(node_label("DNS Servers", None, None)); - for server_addr in &iface.dns_servers { - dns_tree.push(node_label(&server_addr.to_string(), None, None)); - } - iface_tree.push(dns_tree); - } - tree.push(iface_tree); - } - println!("{}", tree); -} diff --git a/src/handler/mod.rs b/src/handler/mod.rs deleted file mode 100644 index 2bb7ec5..0000000 --- a/src/handler/mod.rs +++ /dev/null @@ -1,226 +0,0 @@ -pub mod check; -pub mod dns; -pub mod host; -pub mod interface; -pub mod neighbor; -pub mod ping; -pub mod port; -pub mod trace; - -use crate::db::model::OsFamilyFingerprint; -use crate::host::Host; -use crate::json::port::PortScanResult; -use crate::scan::result::ScanResult; -use crate::scan::scanner::{PortScanner, ServiceDetector}; -use crate::scan::setting::{PortScanSetting, PortScanType, ServiceProbeSetting}; -use clap::ArgMatches; -use indicatif::{ProgressBar, ProgressDrawTarget}; -use netdev::mac::MacAddr; -use std::collections::HashMap; -use std::net::IpAddr; -use std::path::PathBuf; -use std::thread; -use std::time::Duration; - -use crate::output; - -pub fn default_probe(target_host: &str, args: &ArgMatches) { - output::log_with_time("Initiating port scan...", "INFO"); - let target_host_name: String; - let target_ip_addr: IpAddr; - if crate::host::is_valid_ip_addr(target_host) { - target_ip_addr = target_host.parse().unwrap(); - target_host_name = - crate::dns::lookup_ip_addr(&target_ip_addr).unwrap_or(target_host.to_string()); - } else { - target_host_name = target_host.to_string(); - target_ip_addr = match crate::dns::lookup_host_name(target_host) { - Some(ip) => ip, - None => return, - }; - } - let target_ports: Vec = if args.get_flag("full") { - // Use full ports (1-65535) - (1..=65535).collect() - } else { - // Use default 1000 ports - crate::db::get_default_ports() - }; - let interface: netdev::Interface = if let Some(if_name) = args.get_one::("interface") { - match crate::interface::get_interface_by_name(if_name.to_string()) { - Some(iface) => iface, - None => return, - } - } else { - match netdev::get_default_interface() { - Ok(iface) => iface, - Err(_) => return, - } - }; - // Check reachability by ping (one-shot) - let default_waittime: Duration; - if args.get_flag("noping") { - default_waittime = Duration::from_millis(200); - } else { - match crate::handler::ping::initial_ping( - interface.index, - target_ip_addr, - target_host_name.clone(), - ) { - Ok(rtt) => { - default_waittime = crate::util::setting::caluculate_wait_time(rtt); - } - Err(e) => { - output::log_with_time( - &format!("{} You can disable this initial ping by --noping", e), - "ERROR", - ); - return; - } - } - } - let target_host: Host = - Host::new(target_ip_addr, target_host_name.clone()).with_ports(target_ports); - let mut result: PortScanResult = PortScanResult::new(target_ip_addr, target_host_name); - let mut scan_setting = PortScanSetting::default() - .set_if_index(interface.index) - .set_scan_type(PortScanType::TcpSynScan) - .add_target(target_host.clone()) - .set_timeout(Duration::from_millis(10000)) - .set_wait_time(default_waittime) - .set_send_rate(Duration::from_millis(0)); - // Print options - port::print_option(&scan_setting, &interface); - // Randomize ports and hosts - scan_setting.randomize_ports(); - scan_setting.randomize_hosts(); - if !crate::app::is_quiet_mode() { - println!("[Progress]"); - } - // Display progress with indicatif - let bar = ProgressBar::new(scan_setting.targets[0].ports.len() as u64); - if crate::app::is_quiet_mode() { - bar.set_draw_target(ProgressDrawTarget::hidden()); - } - //bar.enable_steady_tick(120); - bar.set_style(output::get_progress_style()); - bar.set_position(0); - bar.set_message("PortScan"); - let port_scanner = PortScanner::new(scan_setting); - let rx = port_scanner.get_progress_receiver(); - // Run port scan - let handle = thread::spawn(move || port_scanner.scan()); - // Print port scan progress - while let Ok(_socket_addr) = rx.lock().unwrap().recv() { - bar.inc(1); - } - let mut portscan_result: ScanResult = handle.join().unwrap(); - bar.finish_with_message(format!("PortScan ({:?})", portscan_result.scan_time)); - - if portscan_result.hosts.len() == 0 { - output::log_with_time("No results found", "INFO"); - return; - } - - portscan_result.sort_ports(); - portscan_result.sort_hosts(); - - // Set port scan result to host - result.host.ports = portscan_result.hosts[0].get_open_ports(); - - // Run service detection - let probe_setting: ServiceProbeSetting = ServiceProbeSetting::default( - target_host.ip_addr, - target_host.hostname, - portscan_result.hosts[0].get_open_port_numbers(), - ); - let service_detector = ServiceDetector::new(probe_setting); - let service_rx = service_detector.get_progress_receiver(); - let bar = ProgressBar::new(portscan_result.hosts[0].get_open_port_numbers().len() as u64); - if crate::app::is_quiet_mode() { - bar.set_draw_target(ProgressDrawTarget::hidden()); - } - bar.enable_steady_tick(Duration::from_millis(120)); - bar.set_style(output::get_progress_style()); - bar.set_position(0); - bar.set_message("ServiceDetection"); - let sd_start_time = std::time::Instant::now(); - let service_handle = thread::spawn(move || service_detector.run()); - // Print progress - while let Ok(_socket_addr) = service_rx.lock().unwrap().recv() { - bar.inc(1); - } - let sd_elapsed_time = sd_start_time.elapsed(); - bar.finish_with_message(format!("ServiceDetection ({:?})", sd_elapsed_time)); - let service_result = service_handle.join().unwrap(); - // Set service detection result to host - for port in &mut result.host.ports { - if let Some(result) = service_result.get(&port.number) { - port.service_name = result.service_name.clone(); - port.service_version = result.service_detail.clone().unwrap_or(String::new()); - } - } - // OS detection - if result.host.get_open_port_numbers().len() > 0 { - if let Some(fingerprint) = portscan_result - .get_syn_ack_fingerprint(result.host.ip_addr, result.host.get_open_port_numbers()[0]) - { - let os_fingerprint: OsFamilyFingerprint = - crate::db::verify_os_family_fingerprint(&fingerprint); - result.host.os_family = os_fingerprint.os_family; - } - } - // Set vendor name - if !crate::ip::is_global_addr(&result.host.ip_addr) { - if let Some(h) = portscan_result.get_host(result.host.ip_addr) { - if h.mac_addr != MacAddr::zero() { - let oui_map: HashMap = crate::db::get_oui_detail_map(); - let vendor_name = if h.mac_addr.address().len() > 16 { - let prefix8 = h.mac_addr.address()[0..8].to_uppercase(); - oui_map.get(&prefix8).unwrap_or(&String::new()).to_string() - } else { - oui_map - .get(&h.mac_addr.address()) - .unwrap_or(&String::new()) - .to_string() - }; - result.host.mac_addr = h.mac_addr; - result.host.vendor_name = vendor_name; - } - } - } - result.host.ttl = portscan_result.hosts[0].ttl; - result.port_scan_time = portscan_result.scan_time; - result.service_detection_time = sd_elapsed_time; - result.total_scan_time = portscan_result.scan_time + sd_elapsed_time; - result.scan_status = portscan_result.scan_status; - // Print results - if args.get_flag("json") { - let json_result = serde_json::to_string_pretty(&result).unwrap(); - println!("{}", json_result); - } else { - port::show_portscan_result(&result.host); - } - - output::log_with_time( - &format!("Total elapsed time {:?} ", result.total_scan_time), - "INFO", - ); - - match args.get_one::("save") { - Some(file_path) => { - match crate::fs::save_text(file_path, serde_json::to_string_pretty(&result).unwrap()) { - Ok(_) => { - output::log_with_time( - &format!("Saved to {}", file_path.to_string_lossy()), - "INFO", - ); - } - Err(e) => { - output::log_with_time(&format!("Failed to save: {}", e), "ERROR"); - } - } - } - None => {} - } -} diff --git a/src/handler/neighbor.rs b/src/handler/neighbor.rs deleted file mode 100644 index a6d4600..0000000 --- a/src/handler/neighbor.rs +++ /dev/null @@ -1,234 +0,0 @@ -use crate::neighbor::resolver::DeviceResolver; -use crate::neighbor::result::DeviceResolveResult; -use crate::neighbor::setting::AddressResolveSetting; -use crate::output; -use crate::util::tree::node_label; -use clap::ArgMatches; -use netdev::Interface; -use std::net::IpAddr; -use std::path::PathBuf; -use std::str::FromStr; -use std::thread; -use std::time::Duration; -use termtree::Tree; - -pub fn handle_neighbor_discovery(args: &ArgMatches) { - let nei_args = match args.subcommand_matches("nei") { - Some(matches) => matches, - None => return, - }; - let target: String = match nei_args.get_one::("target") { - Some(target) => target.to_owned(), - None => return, - }; - let dst_ip: IpAddr = match IpAddr::from_str(&target) { - Ok(ip_addr) => ip_addr, - Err(_) => { - output::log_with_time("Invalid IP Address", "ERROR"); - return; - } - }; - match dst_ip { - IpAddr::V4(_) => { - output::log_with_time("Initiating ARP...", "INFO"); - } - IpAddr::V6(_) => { - output::log_with_time("Initiating NDP...", "INFO"); - } - } - let interface: netdev::Interface = if let Some(if_name) = args.get_one::("interface") { - match crate::interface::get_interface_by_name(if_name.to_string()) { - Some(iface) => iface, - None => return, - } - } else { - match netdev::get_default_interface() { - Ok(iface) => iface, - Err(_) => return, - } - }; - let count: u32 = match nei_args.get_one::("count") { - Some(count) => *count, - None => 1, - }; - let timeout = match nei_args.get_one::("timeout") { - Some(timeout) => Duration::from_millis(*timeout), - None => Duration::from_secs(30), - }; - let wait_time = match nei_args.get_one::("waittime") { - Some(wait_time) => Duration::from_millis(*wait_time), - None => Duration::from_secs(1), - }; - let send_rate = match nei_args.get_one::("rate") { - Some(send_rate) => Duration::from_millis(*send_rate), - None => Duration::from_secs(1), - }; - let mut setting: AddressResolveSetting = match dst_ip { - IpAddr::V4(ipv4) => AddressResolveSetting::arp(&interface, ipv4, count).unwrap(), - IpAddr::V6(ipv6) => AddressResolveSetting::ndp(&interface, ipv6, count).unwrap(), - }; - setting.probe_timeout = timeout; - setting.receive_timeout = wait_time; - setting.send_rate = send_rate; - print_option(&setting, &interface); - let resolver: DeviceResolver = DeviceResolver::new(setting).unwrap(); - let rx = resolver.get_progress_receiver(); - let handle = thread::spawn(move || resolver.resolve()); - for r in rx.lock().unwrap().iter() { - if r.probe_status.kind == crate::probe::ProbeStatusKind::Done { - output::log_with_time( - &format!( - "{} [{:?}] {} Bytes from MAC:{}, IP:{}, RTT:{:?}", - r.seq, r.protocol, r.received_packet_size, r.mac_addr, r.ip_addr, r.rtt - ), - "INFO", - ); - } else { - output::log_with_time( - &format!("{} [{:?}] {}", r.seq, r.protocol, r.probe_status.message), - "ERROR", - ); - } - } - match handle.join() { - Ok(resolve_result) => match resolve_result { - Ok(r) => { - // Print results - if args.get_flag("json") { - let json_result = serde_json::to_string_pretty(&r).unwrap(); - println!("{}", json_result); - } else { - show_resolve_result(&r); - } - match args.get_one::("save") { - Some(file_path) => { - match crate::fs::save_text( - file_path, - serde_json::to_string_pretty(&r).unwrap(), - ) { - Ok(_) => { - output::log_with_time( - &format!("Saved to {}", file_path.to_string_lossy()), - "INFO", - ); - } - Err(e) => { - output::log_with_time(&format!("Failed to save: {}", e), "ERROR"); - } - } - } - None => {} - } - if r.probe_status.kind == crate::probe::ProbeStatusKind::Done { - output::log_with_time("Resolve Success", "INFO"); - } else { - output::log_with_time( - &format!("Resolve Failed: {}", r.probe_status.message), - "ERROR", - ); - } - } - Err(e) => { - output::log_with_time(&format!("Resolve Failed: {}", e), "ERROR"); - } - }, - Err(e) => { - output::log_with_time(&format!("Resolve Failed: {:?}", e), "ERROR"); - } - } -} - -fn print_option(setting: &AddressResolveSetting, interface: &Interface) { - if crate::app::is_quiet_mode() { - return; - } - println!(); - // Options - let mut tree = Tree::new(node_label("NeighborResolve Config", None, None)); - let mut setting_tree = Tree::new(node_label("Settings", None, None)); - setting_tree.push(node_label("Interface", Some(interface.name.as_str()), None)); - setting_tree.push(node_label( - "Protocol", - Some(format!("{:?}", setting.protocol).as_str()), - None, - )); - setting_tree.push(node_label( - "Count", - Some(setting.count.to_string().as_str()), - None, - )); - setting_tree.push(node_label( - "Timeout", - Some(format!("{:?}", setting.probe_timeout).as_str()), - None, - )); - setting_tree.push(node_label( - "Wait Time", - Some(format!("{:?}", setting.receive_timeout).as_str()), - None, - )); - setting_tree.push(node_label( - "Send Rate", - Some(format!("{:?}", setting.send_rate).as_str()), - None, - )); - tree.push(setting_tree); - // Target - let mut target_tree = Tree::new(node_label("Target", None, None)); - target_tree.push(node_label( - "IP Address", - Some(setting.dst_ip.to_string().as_str()), - None, - )); - tree.push(target_tree); - println!("{}", tree); -} - -fn show_resolve_result(resolve_result: &DeviceResolveResult) { - if !crate::app::is_quiet_mode() { - println!(); - } - let mut tree = Tree::new(node_label("NeighborResolve Result", None, None)); - // Responses - let mut responses_tree = Tree::new(node_label("Responses", None, None)); - for response in &resolve_result.results { - let source_ip_addr: String = if response.ip_addr.to_string() != response.host_name - && !response.host_name.is_empty() - { - format!("{}({})", response.host_name, response.ip_addr) - } else { - response.ip_addr.to_string() - }; - let mut response_tree = Tree::new(node_label( - "Sequence", - Some(response.seq.to_string().as_str()), - None, - )); - response_tree.push(node_label( - "MAC Address", - Some(&response.mac_addr.address()), - None, - )); - response_tree.push(node_label("IP Address", Some(&source_ip_addr), None)); - response_tree.push(node_label( - "Protocol", - Some(format!("{:?}", response.protocol).as_str()), - None, - )); - response_tree.push(node_label( - "Received Bytes", - Some(response.received_packet_size.to_string().as_str()), - None, - )); - response_tree.push(node_label( - "RTT", - Some(format!("{:?}", response.rtt).as_str()), - None, - )); - - responses_tree.push(response_tree); - } - tree.push(responses_tree); - - println!("{}", tree); -} diff --git a/src/handler/ping.rs b/src/handler/ping.rs deleted file mode 100644 index 31918ab..0000000 --- a/src/handler/ping.rs +++ /dev/null @@ -1,517 +0,0 @@ -use crate::output; -use crate::ping::{pinger::Pinger, result::PingResult, setting::PingSetting}; -use crate::protocol::Protocol; -use crate::util::tree::node_label; -use clap::ArgMatches; -use netdev::Interface; -use std::net::{IpAddr, SocketAddr}; -use std::path::PathBuf; -use std::str::FromStr; -use std::thread; -use std::time::Duration; -use termtree::Tree; - -pub fn oneshot_ping( - if_index: u32, - dst_ip: IpAddr, - protocol: Protocol, - port: Option, -) -> Result { - let interface: Interface = match crate::interface::get_interface_by_index(if_index) { - Some(interface) => interface, - None => return Err("Failed to get interface information".to_string()), - }; - let setting: PingSetting = match protocol { - Protocol::ICMP => PingSetting::icmp_ping(&interface, dst_ip, 1).unwrap(), - Protocol::TCP => PingSetting::tcp_ping(&interface, dst_ip, port.unwrap_or(80), 1).unwrap(), - Protocol::UDP => PingSetting::udp_ping(&interface, dst_ip, 1).unwrap(), - _ => { - return Err("Unsupported protoco".to_string()); - } - }; - let pinger: Pinger = match Pinger::new(setting) { - Ok(pinger) => pinger, - Err(e) => return Err(format!("Failed to create pinger: {}", e)), - }; - match pinger.ping() { - Ok(ping_result) => { - if ping_result.probe_status.kind == crate::probe::ProbeStatusKind::Done { - Ok(ping_result) - } else { - Err(format!( - "Failed to ping: {}", - ping_result.probe_status.message - )) - } - } - Err(e) => Err(format!("Failed to ping: {}", e)), - } -} - -pub fn initial_ping( - if_index: u32, - target_ip_addr: IpAddr, - target_host_name: String, -) -> Result { - // 1. Check reachability by ICMP ping (one-shot) - match super::ping::oneshot_ping(if_index, target_ip_addr, Protocol::ICMP, None) { - Ok(ping_result) => { - let response = &ping_result.stat.responses[0]; - if target_host_name != target_ip_addr.to_string() { - output::log_with_time( - &format!( - "[ICMP] {}({}) is up. RTT:{:?}", - target_host_name, target_ip_addr, response.rtt - ), - "INFO", - ); - } else { - output::log_with_time( - &format!("[ICMP] {} is up. RTT:{:?}", target_ip_addr, response.rtt), - "INFO", - ); - } - return Ok(crate::sys::time::ceil_duration_millis( - response.rtt.mul_f64(1.5), - )); - } - Err(e) => { - output::log_with_time(&format!("[ICMP] {}", e), "ERROR"); - output::log_with_time( - &format!( - "[ICMP] {}({}) is down or unreachable.", - target_host_name, target_ip_addr - ), - "ERROR", - ); - } - } - // 2. Check reachability by UDP ping (one-shot) - match super::ping::oneshot_ping(if_index, target_ip_addr, Protocol::UDP, None) { - Ok(ping_result) => { - let response = &ping_result.stat.responses[0]; - if target_host_name != target_ip_addr.to_string() { - output::log_with_time( - &format!( - "[UDP] {}({}) is up. RTT:{:?}", - target_host_name, target_ip_addr, response.rtt - ), - "INFO", - ); - } else { - output::log_with_time( - &format!("[UDP] {} is up. RTT:{:?}", target_ip_addr, response.rtt), - "INFO", - ); - } - return Ok(crate::sys::time::ceil_duration_millis( - response.rtt.mul_f64(1.5), - )); - } - Err(e) => { - output::log_with_time(&format!("[UDP] {}", e), "ERROR"); - output::log_with_time( - &format!( - "[UDP] {}({}) is down or unreachable.", - target_host_name, target_ip_addr - ), - "ERROR", - ); - } - } - // 3. Check reachability by TCP ping (one-shot) - match super::ping::oneshot_ping(if_index, target_ip_addr, Protocol::TCP, Some(80)) { - Ok(ping_result) => { - let response = &ping_result.stat.responses[0]; - if target_host_name != target_ip_addr.to_string() { - output::log_with_time( - &format!( - "[TCP] {}({}) is up. RTT:{:?}", - target_host_name, target_ip_addr, response.rtt - ), - "INFO", - ); - } else { - output::log_with_time( - &format!("[TCP] {} is up. RTT:{:?}", target_ip_addr, response.rtt), - "INFO", - ); - } - return Ok(crate::sys::time::ceil_duration_millis( - response.rtt.mul_f64(1.5), - )); - } - Err(e) => { - output::log_with_time(&format!("[TCP] {}", e), "ERROR"); - output::log_with_time( - &format!( - "[TCP] {}({}) is down or unreachable.", - target_host_name, target_ip_addr - ), - "ERROR", - ); - } - } - Err(format!( - "Failed to initial ping to {}({})", - target_host_name, target_ip_addr - )) -} - -pub fn handle_ping(args: &ArgMatches) { - output::log_with_time("Initiating ping...", "INFO"); - let ping_args = match args.subcommand_matches("ping") { - Some(matches) => matches, - None => return, - }; - let interface: netdev::Interface = if let Some(if_name) = args.get_one::("interface") { - match crate::interface::get_interface_by_name(if_name.to_string()) { - Some(iface) => iface, - None => return, - } - } else { - match netdev::get_default_interface() { - Ok(iface) => iface, - Err(_) => return, - } - }; - let target: String = match ping_args.get_one::("target") { - Some(target) => target.to_owned(), - None => return, - }; - let count: u32 = match ping_args.get_one::("count") { - Some(count) => *count, - None => 4, - }; - let maxhop: u8 = match ping_args.get_one::("maxhop") { - Some(maxhop) => *maxhop, - None => 64, - }; - let mut protocol: Protocol = match ping_args.get_one::("protocol") { - Some(target) => match Protocol::from_str(&target) { - Some(protocol) => protocol, - None => { - output::log_with_time("Invalid protocol", "ERROR"); - return; - } - }, - None => Protocol::ICMP, - }; - let mut port: u16 = match ping_args.get_one::("port") { - Some(port) => *port, - None => 80, - }; - let dst_ip: IpAddr = match IpAddr::from_str(&target) { - Ok(ip_addr) => ip_addr, - Err(_) => match SocketAddr::from_str(&target) { - Ok(socket_addr) => { - port = socket_addr.port(); - if protocol == Protocol::ICMP { - protocol = Protocol::TCP; - } - socket_addr.ip() - } - Err(_) => match crate::dns::lookup_host_name(&target) { - Some(ip_addr) => ip_addr, - None => { - output::log_with_time("Failed to resolve domain", "ERROR"); - return; - } - }, - }, - }; - let timeout = match ping_args.get_one::("timeout") { - Some(timeout) => Duration::from_millis(*timeout), - None => Duration::from_secs(30), - }; - let wait_time = match ping_args.get_one::("waittime") { - Some(wait_time) => Duration::from_millis(*wait_time), - None => Duration::from_secs(1), - }; - let send_rate = match ping_args.get_one::("rate") { - Some(send_rate) => Duration::from_millis(*send_rate), - None => Duration::from_secs(1), - }; - let mut setting: PingSetting = match protocol { - Protocol::ICMP => PingSetting::icmp_ping(&interface, dst_ip, count).unwrap(), - Protocol::TCP => PingSetting::tcp_ping(&interface, dst_ip, port, count).unwrap(), - Protocol::UDP => PingSetting::udp_ping(&interface, dst_ip, count).unwrap(), - _ => { - output::log_with_time("Unsupported protocol", "ERROR"); - return; - } - }; - setting.dst_hostname = target - .split(":") - .collect::>() - .get(0) - .unwrap() - .to_string(); - setting.hop_limit = maxhop; - setting.receive_timeout = wait_time; - setting.probe_timeout = timeout; - setting.send_rate = send_rate; - - let target_addr: String = - if setting.dst_ip.to_string() != setting.dst_hostname && !setting.dst_hostname.is_empty() { - format!("{}({})", setting.dst_hostname, setting.dst_ip) - } else { - setting.dst_ip.to_string() - }; - - print_option(&setting, &interface); - - let pinger: Pinger = Pinger::new(setting).unwrap(); - let rx = pinger.get_progress_receiver(); - let handle = thread::spawn(move || pinger.ping()); - for r in rx.lock().unwrap().iter() { - let source: String = if r.ip_addr.to_string() != r.host_name && !r.host_name.is_empty() { - format!("{}({})", r.host_name, r.ip_addr) - } else { - r.ip_addr.to_string() - }; - if r.probe_status.kind == crate::probe::ProbeStatusKind::Done { - if let Some(port) = r.port_number { - output::log_with_time( - &format!( - "{} [{:?}] {} Bytes from {}:{}, HOP:{}, TTL:{}, RTT:{:?}", - r.seq, - r.protocol, - r.received_packet_size, - source, - port, - r.hop, - r.ttl, - r.rtt - ), - "INFO", - ); - } else { - output::log_with_time( - &format!( - "{} [{:?}] {} Bytes from {}, HOP:{}, TTL:{}, RTT:{:?}", - r.seq, r.protocol, r.received_packet_size, source, r.hop, r.ttl, r.rtt - ), - "INFO", - ); - } - } else { - if let Some(port) = r.port_number { - output::log_with_time( - &format!( - "{} [{:?}] {}:{} {}", - r.seq, r.protocol, source, port, r.probe_status.message - ), - "ERROR", - ); - } else { - output::log_with_time( - &format!( - "{} [{:?}] {} {}", - r.seq, r.protocol, source, r.probe_status.message - ), - "ERROR", - ); - } - } - } - match handle.join() { - Ok(ping_result) => match ping_result { - Ok(ping_result) => { - if ping_result.probe_status.kind == crate::probe::ProbeStatusKind::Done { - // Print results - if args.get_flag("json") { - let json_result = serde_json::to_string_pretty(&ping_result).unwrap(); - println!("{}", json_result); - } else { - show_ping_result(&ping_result, target_addr); - } - match args.get_one::("save") { - Some(file_path) => { - match crate::fs::save_text( - file_path, - serde_json::to_string_pretty(&ping_result).unwrap(), - ) { - Ok(_) => { - output::log_with_time( - &format!("Saved to {}", file_path.to_string_lossy()), - "INFO", - ); - } - Err(e) => { - output::log_with_time( - &format!("Failed to save: {}", e), - "ERROR", - ); - } - } - } - None => {} - } - } else { - output::log_with_time( - &format!("Failed to ping: {}", ping_result.probe_status.message), - "ERROR", - ); - } - } - Err(e) => println!("{:?}", e), - }, - Err(e) => println!("{:?}", e), - } -} - -fn print_option(setting: &PingSetting, interface: &Interface) { - if crate::app::is_quiet_mode() { - return; - } - println!(); - // Options - let mut tree = Tree::new(node_label("Ping Config", None, None)); - let mut setting_tree = Tree::new(node_label("Settings", None, None)); - setting_tree.push(node_label("Interface", Some(interface.name.as_str()), None)); - setting_tree.push(node_label( - "Protocol", - Some(format!("{:?}", setting.protocol).as_str()), - None, - )); - setting_tree.push(node_label( - "Count", - Some(setting.count.to_string().as_str()), - None, - )); - setting_tree.push(node_label( - "Hop Limit", - Some(setting.hop_limit.to_string().as_str()), - None, - )); - setting_tree.push(node_label( - "Timeout", - Some(format!("{:?}", setting.probe_timeout).as_str()), - None, - )); - setting_tree.push(node_label( - "Wait Time", - Some(format!("{:?}", setting.receive_timeout).as_str()), - None, - )); - setting_tree.push(node_label( - "Send Rate", - Some(format!("{:?}", setting.send_rate).as_str()), - None, - )); - tree.push(setting_tree); - // Target - let mut target_tree = Tree::new(node_label("Target", None, None)); - target_tree.push(node_label( - "IP Address", - Some(setting.dst_ip.to_string().as_str()), - None, - )); - if setting.dst_ip.to_string() != setting.dst_hostname && !setting.dst_hostname.is_empty() { - target_tree.push(node_label("Host Name", Some(&setting.dst_hostname), None)); - } - if let Some(port) = setting.dst_port { - target_tree.push(node_label("Port", Some(port.to_string().as_str()), None)); - } - tree.push(target_tree); - println!("{}", tree); -} - -fn show_ping_result(ping_result: &PingResult, target_addr: String) { - if !crate::app::is_quiet_mode() { - println!(); - } - let mut tree = Tree::new(node_label( - &format!("Ping Result - {}", target_addr), - None, - None, - )); - // Responses - let mut responses_tree = Tree::new(node_label("Responses", None, None)); - for response in &ping_result.stat.responses { - let mut response_tree = Tree::new(node_label( - "Sequence", - Some(response.seq.to_string().as_str()), - None, - )); - response_tree.push(node_label( - "IP Address", - Some(&response.ip_addr.to_string()), - None, - )); - response_tree.push(node_label( - "Protocol", - Some(format!("{:?}", response.protocol).as_str()), - None, - )); - response_tree.push(node_label( - "Received Bytes", - Some(response.received_packet_size.to_string().as_str()), - None, - )); - response_tree.push(node_label( - "HOP", - Some(response.hop.to_string().as_str()), - None, - )); - response_tree.push(node_label( - "TTL", - Some(response.ttl.to_string().as_str()), - None, - )); - response_tree.push(node_label( - "RTT", - Some(format!("{:?}", response.rtt).as_str()), - None, - )); - - responses_tree.push(response_tree); - } - tree.push(responses_tree); - - // Statistics - let mut stat_tree = Tree::new(node_label("Statistics", None, None)); - stat_tree.push(node_label( - "Transmitted", - Some(format!("{}", ping_result.stat.transmitted_count).as_str()), - None, - )); - stat_tree.push(node_label( - "Received", - Some(format!("{}", ping_result.stat.received_count).as_str()), - None, - )); - stat_tree.push(node_label( - "Loss", - Some( - format!( - "{}%", - 100.0 - - (ping_result.stat.received_count as f64 - / ping_result.stat.transmitted_count as f64) - * 100.0 - ) - .as_str(), - ), - None, - )); - stat_tree.push(node_label( - "Min", - Some(format!("{:?}", ping_result.stat.min).as_str()), - None, - )); - stat_tree.push(node_label( - "Max", - Some(format!("{:?}", ping_result.stat.max).as_str()), - None, - )); - stat_tree.push(node_label( - "Avg", - Some(format!("{:?}", ping_result.stat.avg).as_str()), - None, - )); - tree.push(stat_tree); - - println!("{}", tree); -} diff --git a/src/handler/port.rs b/src/handler/port.rs deleted file mode 100644 index 472f263..0000000 --- a/src/handler/port.rs +++ /dev/null @@ -1,385 +0,0 @@ -use crate::db::model::OsFamilyFingerprint; -use crate::host::{Host, PortStatus}; -use crate::json::port::PortScanResult; -use crate::output; -use crate::scan::result::ScanResult; -use crate::scan::scanner::{PortScanner, ServiceDetector}; -use crate::scan::setting::{PortScanSetting, PortScanType, ServiceProbeSetting}; -use crate::util::tree::node_label; -use clap::ArgMatches; -use indicatif::{ProgressBar, ProgressDrawTarget}; -use netdev::mac::MacAddr; -use netdev::Interface; -use std::collections::HashMap; -use std::net::IpAddr; -use std::path::PathBuf; -use std::thread; -use std::time::Duration; -use termtree::Tree; - -pub fn handle_portscan(args: &ArgMatches) { - output::log_with_time("Initiating port scan...", "INFO"); - let port_args = match args.subcommand_matches("port") { - Some(matches) => matches, - None => return, - }; - let target: String = match port_args.get_one::("target") { - Some(target) => target.to_owned(), - None => return, - }; - let target_host_name: String; - let target_ip_addr: IpAddr; - let target_ports: Vec; - if crate::host::is_valid_ip_addr(&target) { - target_ip_addr = target.parse().unwrap(); - target_host_name = crate::dns::lookup_ip_addr(&target_ip_addr).unwrap_or(target.clone()); - } else { - target_host_name = target.clone(); - target_ip_addr = match crate::dns::lookup_host_name(&target) { - Some(ip) => ip, - None => return, - }; - } - if port_args.contains_id("ports") { - // Use specific ports (delimiter: ',') - target_ports = port_args - .get_many::("ports") - .unwrap_or_default() - .copied() - .collect(); - } else if port_args.contains_id("range") { - // Use specific range (delimiter: '-') - // 0: start, 1: end - let range: Vec = port_args - .get_many::("range") - .unwrap_or_default() - .copied() - .collect(); - target_ports = (range[0]..=range[1]).collect(); - } else if port_args.get_flag("wellknown") { - // Use well-known ports - target_ports = crate::db::get_wellknown_ports(); - } else { - if port_args.get_flag("full") { - // Use full ports (1-65535) - target_ports = (1..=65535).collect(); - } else { - // Use default 1000 ports - target_ports = crate::db::get_default_ports(); - } - } - let interface: netdev::Interface = if let Some(if_name) = args.get_one::("interface") { - match crate::interface::get_interface_by_name(if_name.to_string()) { - Some(iface) => iface, - None => return, - } - } else { - match netdev::get_default_interface() { - Ok(iface) => iface, - Err(_) => return, - } - }; - // Check reachability by ping (one-shot) - let default_waittime: Duration; - if port_args.get_flag("noping") { - default_waittime = Duration::from_millis(200); - } else { - match crate::handler::ping::initial_ping( - interface.index, - target_ip_addr, - target_host_name.clone(), - ) { - Ok(rtt) => { - default_waittime = crate::util::setting::caluculate_wait_time(rtt); - } - Err(e) => { - output::log_with_time( - &format!("{} You can disable this initial ping by --noping", e), - "ERROR", - ); - return; - } - } - } - let scan_type: PortScanType = match port_args.get_one::("scantype") { - Some(scan_type) => match scan_type.as_str() { - "CONNECT" => PortScanType::TcpConnectScan, - _ => PortScanType::TcpSynScan, - }, - None => PortScanType::TcpSynScan, - }; - let timeout = match port_args.get_one::("timeout") { - Some(timeout) => Duration::from_millis(*timeout), - None => Duration::from_millis(10000), - }; - let wait_time = match port_args.get_one::("waittime") { - Some(wait_time) => Duration::from_millis(*wait_time), - None => default_waittime, - }; - let send_rate = match port_args.get_one::("rate") { - Some(send_rate) => Duration::from_millis(*send_rate), - None => Duration::from_millis(0), - }; - let target_host: Host = - Host::new(target_ip_addr, target_host_name.clone()).with_ports(target_ports); - let mut result: PortScanResult = PortScanResult::new(target_ip_addr, target_host_name); - let mut scan_setting = PortScanSetting::default() - .set_if_index(interface.index) - .set_scan_type(scan_type) - .add_target(target_host.clone()) - .set_timeout(timeout) - .set_wait_time(wait_time) - .set_send_rate(send_rate); - // Print options - print_option(&scan_setting, &interface); - if !port_args.get_flag("random") { - scan_setting.randomize_ports(); - scan_setting.randomize_hosts(); - } - if !crate::app::is_quiet_mode() { - println!("[Progress]"); - } - // Display progress with indicatif - let bar = ProgressBar::new(scan_setting.targets[0].ports.len() as u64); - if crate::app::is_quiet_mode() { - bar.set_draw_target(ProgressDrawTarget::hidden()); - } - //bar.enable_steady_tick(120); - bar.set_style(output::get_progress_style()); - bar.set_position(0); - bar.set_message("PortScan"); - let port_scanner = PortScanner::new(scan_setting); - let rx = port_scanner.get_progress_receiver(); - // Run port scan - let handle = thread::spawn(move || port_scanner.scan()); - // Print port scan progress - while let Ok(_socket_addr) = rx.lock().unwrap().recv() { - bar.inc(1); - } - let mut portscan_result: ScanResult = handle.join().unwrap(); - bar.finish_with_message(format!("PortScan ({:?})", portscan_result.scan_time)); - - if portscan_result.hosts.len() == 0 { - output::log_with_time("No results found", "INFO"); - return; - } - - portscan_result.sort_ports(); - portscan_result.sort_hosts(); - - // Set port scan result to host - result.host.ports = portscan_result.hosts[0].get_open_ports(); - - // Run service detection - let probe_setting: ServiceProbeSetting = ServiceProbeSetting::default( - target_host.ip_addr, - target_host.hostname, - portscan_result.hosts[0].get_open_port_numbers(), - ); - let service_detector = ServiceDetector::new(probe_setting); - let service_rx = service_detector.get_progress_receiver(); - let bar = ProgressBar::new(portscan_result.hosts[0].get_open_port_numbers().len() as u64); - if crate::app::is_quiet_mode() { - bar.set_draw_target(ProgressDrawTarget::hidden()); - } - bar.enable_steady_tick(Duration::from_millis(120)); - bar.set_style(output::get_progress_style()); - bar.set_position(0); - bar.set_message("ServiceDetection"); - let sd_start_time = std::time::Instant::now(); - let service_handle = thread::spawn(move || service_detector.run()); - // Print progress - while let Ok(_socket_addr) = service_rx.lock().unwrap().recv() { - bar.inc(1); - } - let sd_elapsed_time = sd_start_time.elapsed(); - bar.finish_with_message(format!("ServiceDetection ({:?})", sd_elapsed_time)); - let service_result = service_handle.join().unwrap(); - // Set service detection result to host - for port in &mut result.host.ports { - if let Some(result) = service_result.get(&port.number) { - port.service_name = result.service_name.clone(); - port.service_version = result.service_detail.clone().unwrap_or(String::new()); - } - } - // OS detection - if result.host.get_open_port_numbers().len() > 0 { - if let Some(fingerprint) = portscan_result - .get_syn_ack_fingerprint(result.host.ip_addr, result.host.get_open_port_numbers()[0]) - { - let os_fingerprint: OsFamilyFingerprint = - crate::db::verify_os_family_fingerprint(&fingerprint); - result.host.os_family = os_fingerprint.os_family; - } - } - // Set vendor name - if !crate::ip::is_global_addr(&result.host.ip_addr) { - if let Some(h) = portscan_result.get_host(result.host.ip_addr) { - if h.mac_addr != MacAddr::zero() { - let oui_map: HashMap = crate::db::get_oui_detail_map(); - let vendor_name = if h.mac_addr.address().len() > 16 { - let prefix8 = h.mac_addr.address()[0..8].to_uppercase(); - oui_map.get(&prefix8).unwrap_or(&String::new()).to_string() - } else { - oui_map - .get(&h.mac_addr.address()) - .unwrap_or(&String::new()) - .to_string() - }; - result.host.mac_addr = h.mac_addr; - result.host.vendor_name = vendor_name; - } - } - } - result.host.ttl = portscan_result.hosts[0].ttl; - result.port_scan_time = portscan_result.scan_time; - result.service_detection_time = sd_elapsed_time; - result.total_scan_time = portscan_result.scan_time + sd_elapsed_time; - result.scan_status = portscan_result.scan_status; - // Print results - if args.get_flag("json") { - let json_result = serde_json::to_string_pretty(&result).unwrap(); - println!("{}", json_result); - } else { - show_portscan_result(&result.host); - } - - output::log_with_time( - &format!("Total elapsed time {:?} ", result.total_scan_time), - "INFO", - ); - - match args.get_one::("save") { - Some(file_path) => { - match crate::fs::save_text(file_path, serde_json::to_string_pretty(&result).unwrap()) { - Ok(_) => { - output::log_with_time( - &format!("Saved to {}", file_path.to_string_lossy()), - "INFO", - ); - } - Err(e) => { - output::log_with_time(&format!("Failed to save: {}", e), "ERROR"); - } - } - } - None => {} - } -} - -pub fn print_option(setting: &PortScanSetting, interface: &Interface) { - if crate::app::is_quiet_mode() { - return; - } - println!(); - let mut tree = Tree::new(node_label("PortScan Config", None, None)); - let mut setting_tree = Tree::new(node_label("Settings", None, None)); - setting_tree.push(node_label( - "Protocol", - Some(setting.protocol.to_str()), - None, - )); - setting_tree.push(node_label( - "ScanType", - Some(setting.scan_type.to_str()), - None, - )); - setting_tree.push(node_label("InterfaceName", Some(&interface.name), None)); - setting_tree.push(node_label( - "Timeout", - Some(format!("{:?}", setting.timeout).as_str()), - None, - )); - setting_tree.push(node_label( - "WaitTime", - Some(format!("{:?}", setting.wait_time).as_str()), - None, - )); - setting_tree.push(node_label( - "SendRate", - Some(format!("{:?}", setting.send_rate).as_str()), - None, - )); - tree.push(setting_tree); - - let mut target_tree = Tree::new(node_label("Target", None, None)); - for target in &setting.targets { - target_tree.push(node_label( - "IP Address", - Some(&target.ip_addr.to_string()), - None, - )); - if target.ip_addr.to_string() != target.hostname && !target.hostname.is_empty() { - target_tree.push(node_label("Host Name", Some(&target.hostname), None)); - } - if target.ports.len() > 10 { - target_tree.push(node_label( - "Port", - Some(format!("{} port(s)", target.ports.len()).as_str()), - None, - )); - } else { - target_tree.push(node_label( - "Port", - Some(format!("{:?}", target.get_ports()).as_str()), - None, - )); - } - } - tree.push(target_tree); - println!("{}", tree); -} - -pub fn show_portscan_result(host: &Host) { - if !crate::app::is_quiet_mode() { - println!(); - } - let target_addr: String = - if host.ip_addr.to_string() != host.hostname && !host.hostname.is_empty() { - format!("{}({})", host.hostname, host.ip_addr) - } else { - host.ip_addr.to_string() - }; - let mut tree = Tree::new(node_label( - &format!("PortScan Result - {}", target_addr), - None, - None, - )); - let mut host_tree = Tree::new(node_label("Host Info", None, None)); - host_tree.push(node_label( - "IP Address", - Some(&host.ip_addr.to_string()), - None, - )); - host_tree.push(node_label("Host Name", Some(&host.hostname), None)); - if host.mac_addr != MacAddr::zero() { - host_tree.push(node_label( - "MAC Address", - Some(&host.mac_addr.to_string()), - None, - )); - } - if !host.vendor_name.is_empty() { - host_tree.push(node_label("Vendor Name", Some(&host.vendor_name), None)); - } - if !host.os_family.is_empty() { - host_tree.push(node_label("OS Family", Some(&host.os_family), None)); - } - let mut port_info_tree = Tree::new(node_label("Port Info", None, None)); - for port in &host.ports { - if port.status == PortStatus::Open { - let mut port_tree = Tree::new(node_label(&port.number.to_string(), None, None)); - port_tree.push(node_label("Status", Some(&port.status.name()), None)); - port_tree.push(node_label("Service Name", Some(&port.service_name), None)); - port_tree.push(node_label( - "Service Detail", - Some(&port.service_version), - None, - )); - port_info_tree.push(port_tree); - } - } - host_tree.push(port_info_tree); - tree.push(host_tree); - println!("{}", tree); -} diff --git a/src/handler/trace.rs b/src/handler/trace.rs deleted file mode 100644 index bb39a5e..0000000 --- a/src/handler/trace.rs +++ /dev/null @@ -1,300 +0,0 @@ -use crate::config::DEFAULT_BASE_TARGET_UDP_PORT; -use crate::output; -use crate::ping::result::TracerouteResult; -use crate::probe::ProbeStatusKind; -use crate::trace::setting::TraceSetting; -use crate::trace::tracer::Tracer; -use crate::util::tree::node_label; -use clap::ArgMatches; -use netdev::Interface; -use std::net::{IpAddr, SocketAddr}; -use std::path::PathBuf; -use std::str::FromStr; -use std::thread; -use std::time::Duration; -use termtree::Tree; - -pub fn handle_traceroute(args: &ArgMatches) { - output::log_with_time("Initiating traceroute...", "INFO"); - let trace_args = match args.subcommand_matches("trace") { - Some(matches) => matches, - None => return, - }; - let interface: Interface = if let Some(if_name) = args.get_one::("interface") { - match crate::interface::get_interface_by_name(if_name.to_string()) { - Some(iface) => iface, - None => return, - } - } else { - match netdev::get_default_interface() { - Ok(iface) => iface, - Err(_) => return, - } - }; - let target: String = match trace_args.get_one::("target") { - Some(target) => target.to_owned(), - None => return, - }; - let mut port: u16 = match trace_args.get_one::("port") { - Some(port) => *port, - None => DEFAULT_BASE_TARGET_UDP_PORT, - }; - let maxhop: u8 = match trace_args.get_one::("maxhop") { - Some(maxhop) => *maxhop, - None => 64, - }; - let dst_ip: IpAddr = match IpAddr::from_str(&target) { - Ok(ip_addr) => ip_addr, - Err(_) => match SocketAddr::from_str(&target) { - Ok(socket_addr) => { - port = socket_addr.port(); - socket_addr.ip() - } - Err(_) => match crate::dns::lookup_host_name(&target) { - Some(ip_addr) => ip_addr, - None => { - output::log_with_time("Failed to resolve domain", "ERROR"); - return; - } - }, - }, - }; - let timeout = match trace_args.get_one::("timeout") { - Some(timeout) => Duration::from_millis(*timeout), - None => Duration::from_secs(30), - }; - let wait_time = match trace_args.get_one::("waittime") { - Some(wait_time) => Duration::from_millis(*wait_time), - None => Duration::from_secs(1), - }; - let send_rate = match trace_args.get_one::("rate") { - Some(send_rate) => Duration::from_millis(*send_rate), - None => Duration::from_secs(1), - }; - let mut setting: TraceSetting = TraceSetting::udp_trace(&interface, dst_ip).unwrap(); - setting.dst_hostname = target - .split(":") - .collect::>() - .get(0) - .unwrap() - .to_string(); - setting.dst_port = port; - setting.hop_limit = maxhop; - setting.receive_timeout = wait_time; - setting.probe_timeout = timeout; - setting.send_rate = send_rate; - - let target_addr: String = - if setting.dst_ip.to_string() != setting.dst_hostname && !setting.dst_hostname.is_empty() { - format!("{}({})", setting.dst_hostname, setting.dst_ip) - } else { - setting.dst_ip.to_string() - }; - - print_option(&setting, &interface); - - let tracer: Tracer = Tracer::new(setting).unwrap(); - let rx = tracer.get_progress_receiver(); - let handle = thread::spawn(move || tracer.trace()); - for r in rx.lock().unwrap().iter() { - if r.probe_status.kind == crate::probe::ProbeStatusKind::Done { - output::log_with_time( - &format!( - "{} {} Bytes from {}, HOP:{}, TTL:{}, RTT:{:?}, NodeType: {}", - r.seq, - r.received_packet_size, - r.ip_addr, - r.hop, - r.ttl, - r.rtt, - r.node_type.name() - ), - "INFO", - ); - } else { - output::log_with_time(&format!("{} {}", r.seq, r.probe_status.message), "ERROR"); - } - } - match handle.join() { - Ok(trace_result) => match trace_result { - Ok(trace_result) => { - // Print results - if args.get_flag("json") { - let json_result = serde_json::to_string_pretty(&trace_result).unwrap(); - println!("{}", json_result); - } else { - show_trace_result(&trace_result, target_addr); - } - output::log_with_time( - &format!("Traceroute completed in: {:?}", trace_result.elapsed_time), - "INFO", - ); - match args.get_one::("save") { - Some(file_path) => { - match crate::fs::save_text( - file_path, - serde_json::to_string_pretty(&trace_result).unwrap(), - ) { - Ok(_) => { - output::log_with_time( - &format!("Saved to {}", file_path.to_string_lossy()), - "INFO", - ); - } - Err(e) => { - output::log_with_time(&format!("Failed to save: {}", e), "ERROR"); - } - } - } - None => {} - } - } - Err(e) => println!("{:?}", e), - }, - Err(e) => println!("{:?}", e), - } -} - -fn print_option(setting: &TraceSetting, interface: &Interface) { - if crate::app::is_quiet_mode() { - return; - } - println!(); - // Options - let mut tree = Tree::new(node_label("Traceroute Config", None, None)); - let mut setting_tree = Tree::new(node_label("Settings", None, None)); - setting_tree.push(node_label("Interface", Some(interface.name.as_str()), None)); - setting_tree.push(node_label( - "Protocol", - Some(format!("{:?}", setting.protocol).as_str()), - None, - )); - setting_tree.push(node_label( - "Hop Limit", - Some(setting.hop_limit.to_string().as_str()), - None, - )); - setting_tree.push(node_label( - "Timeout", - Some(format!("{:?}", setting.probe_timeout).as_str()), - None, - )); - setting_tree.push(node_label( - "Wait Time", - Some(format!("{:?}", setting.receive_timeout).as_str()), - None, - )); - setting_tree.push(node_label( - "Send Rate", - Some(format!("{:?}", setting.send_rate).as_str()), - None, - )); - tree.push(setting_tree); - // Target - let mut target_tree = Tree::new(node_label("Target", None, None)); - target_tree.push(node_label( - "IP Address", - Some(setting.dst_ip.to_string().as_str()), - None, - )); - if setting.dst_ip.to_string() != setting.dst_hostname && !setting.dst_hostname.is_empty() { - target_tree.push(node_label("Host Name", Some(&setting.dst_hostname), None)); - } - target_tree.push(node_label( - "Port", - Some(setting.dst_port.to_string().as_str()), - None, - )); - tree.push(target_tree); - println!("{}", tree); -} - -fn show_trace_result(trace_result: &TracerouteResult, target_addr: String) { - if !crate::app::is_quiet_mode() { - println!(); - } - let mut tree = Tree::new(node_label( - &format!("Traceroute Result - {}", target_addr), - None, - None, - )); - // Responses - let mut responses_tree = Tree::new(node_label("Responses", None, None)); - for response in &trace_result.nodes { - match response.probe_status.kind { - ProbeStatusKind::Done => { - let mut response_tree = Tree::new(node_label( - "Sequence", - Some(response.seq.to_string().as_str()), - None, - )); - response_tree.push(node_label( - "Status", - Some(&response.probe_status.kind.name()), - None, - )); - response_tree.push(node_label( - "IP Address", - Some(&response.ip_addr.to_string()), - None, - )); - response_tree.push(node_label( - "Protocol", - Some(format!("{:?}", response.protocol).as_str()), - None, - )); - response_tree.push(node_label( - "Received Bytes", - Some(response.received_packet_size.to_string().as_str()), - None, - )); - response_tree.push(node_label( - "HOP", - Some(response.hop.to_string().as_str()), - None, - )); - response_tree.push(node_label( - "TTL", - Some(response.ttl.to_string().as_str()), - None, - )); - response_tree.push(node_label( - "RTT", - Some(format!("{:?}", response.rtt).as_str()), - None, - )); - response_tree.push(node_label( - "NodeType", - Some(&response.node_type.name()), - None, - )); - responses_tree.push(response_tree); - } - _ => { - let mut response_tree = Tree::new(node_label( - "Sequence", - Some(response.seq.to_string().as_str()), - None, - )); - response_tree.push(node_label( - "Status", - Some(&response.probe_status.kind.name()), - None, - )); - response_tree.push(node_label( - "Message", - Some(&response.probe_status.message), - None, - )); - responses_tree.push(response_tree); - } - } - } - tree.push(responses_tree); - tree.push(node_label( - "Status", - Some(&trace_result.probe_status.kind.name()), - None, - )); - println!("{}", tree); -} diff --git a/src/host.rs b/src/host.rs deleted file mode 100644 index f045c7f..0000000 --- a/src/host.rs +++ /dev/null @@ -1,162 +0,0 @@ -use netdev::mac::MacAddr; -use serde::{Deserialize, Serialize}; -use std::net::IpAddr; - -use crate::dns; - -/// Status of the scanned port -#[derive(Deserialize, Serialize, Clone, Copy, Debug, PartialEq)] -pub enum PortStatus { - Open, - Closed, - Filtered, - Unknown, -} - -impl PortStatus { - pub fn id(&self) -> String { - match *self { - PortStatus::Open => String::from("open"), - PortStatus::Closed => String::from("closed"), - PortStatus::Filtered => String::from("filtered"), - PortStatus::Unknown => String::from("unknown"), - } - } - pub fn name(&self) -> String { - match *self { - PortStatus::Open => String::from("Open"), - PortStatus::Closed => String::from("Closed"), - PortStatus::Filtered => String::from("Filtered"), - PortStatus::Unknown => String::from("Unknown"), - } - } -} - -/// Port Information -#[derive(Deserialize, Serialize, Clone, Debug, PartialEq)] -pub struct Port { - /// Port number - pub number: u16, - /// Port status - pub status: PortStatus, - /// Service name - pub service_name: String, - /// Service version - pub service_version: String, -} - -impl Port { - pub fn new(number: u16) -> Self { - Self { - number: number, - status: PortStatus::Unknown, - service_name: String::new(), - service_version: String::new(), - } - } -} - -/// Host Information -#[derive(Deserialize, Serialize, Clone, Debug, PartialEq)] -pub struct Host { - /// IP address of the host - pub ip_addr: IpAddr, - /// Host name - pub hostname: String, - /// List of ports - pub ports: Vec, - /// MAC address of the host - pub mac_addr: MacAddr, - /// Vendor name - pub vendor_name: String, - /// OS Family - pub os_family: String, - /// TTL - pub ttl: u8, -} - -impl Host { - pub fn new(ip_addr: IpAddr, hostname: String) -> Self { - Self { - ip_addr: ip_addr, - hostname: hostname, - ports: Vec::new(), - mac_addr: MacAddr::zero(), - vendor_name: String::new(), - os_family: String::new(), - ttl: 0, - } - } - pub fn with_port_range(mut self, start: u16, end: u16) -> Self { - for port in start..end { - self.ports.push(Port::new(port)); - } - self - } - pub fn with_ports(mut self, ports: Vec) -> Self { - for port in ports { - self.ports.push(Port::new(port)); - } - self - } - pub fn get_ports(&self) -> Vec { - self.ports.iter().map(|port| port.number).collect() - } - pub fn get_open_port_numbers(&self) -> Vec { - self.ports - .iter() - .filter(|port| port.status == PortStatus::Open) - .map(|port| port.number) - .collect() - } - pub fn get_open_ports(&self) -> Vec { - self.ports - .iter() - .filter(|port| port.status == PortStatus::Open) - .map(|port| port.clone()) - .collect() - } -} - -/// Node type -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum NodeType { - DefaultGateway, - Relay, - Destination, -} - -impl NodeType { - pub fn id(&self) -> String { - match *self { - NodeType::DefaultGateway => String::from("default_gateway"), - NodeType::Relay => String::from("relay"), - NodeType::Destination => String::from("destination"), - } - } - pub fn name(&self) -> String { - match *self { - NodeType::DefaultGateway => String::from("DefaultGateway"), - NodeType::Relay => String::from("Relay"), - NodeType::Destination => String::from("Destination"), - } - } -} - -// Check if the target is an IP address -pub fn is_valid_ip_addr(target: &str) -> bool { - match target.parse::() { - Ok(_) => true, - Err(_) => false, - } -} - -// Check if the target is a valid hostname -pub fn is_valid_hostname(target: &str) -> bool { - dns::lookup_host_name(target).is_some() -} - -// Check if the target is valid -pub fn is_valid_target(target: &str) -> bool { - is_valid_ip_addr(target) || is_valid_hostname(target) -} diff --git a/src/interface/mod.rs b/src/interface.rs similarity index 80% rename from src/interface/mod.rs rename to src/interface.rs index 49e16db..e595889 100644 --- a/src/interface/mod.rs +++ b/src/interface.rs @@ -5,6 +5,7 @@ use std::{ net::{IpAddr, Ipv4Addr, Ipv6Addr}, }; +/// Get interface information by IP address. pub fn get_interface_by_ip(ip_addr: IpAddr) -> Option { for iface in netdev::interface::get_interfaces() { for ip in iface.ipv4.clone() { @@ -21,6 +22,7 @@ pub fn get_interface_by_ip(ip_addr: IpAddr) -> Option { return None; } +/// Get interface information by index. pub fn get_interface_by_index(index: u32) -> Option { for iface in netdev::interface::get_interfaces() { if iface.index == index { @@ -30,6 +32,7 @@ pub fn get_interface_by_index(index: u32) -> Option { return None; } +/// Get interface information by name. pub fn get_interface_by_name(name: String) -> Option { for iface in netdev::interface::get_interfaces() { if iface.name == name { @@ -39,31 +42,35 @@ pub fn get_interface_by_name(name: String) -> Option { return None; } -pub fn get_interface_ipv4(iface: &Interface) -> Option { +/// Get the first IPv4 address of the interface. +pub fn get_interface_ipv4(iface: &Interface) -> Option { for ip in iface.ipv4.clone() { - return Some(IpAddr::V4(ip.addr())); + return Some(ip.addr()); } return None; } -pub fn get_interface_global_ipv6(iface: &Interface) -> Option { +/// Get the first global IPv6 address of the interface. +pub fn get_interface_global_ipv6(iface: &Interface) -> Option { for ip in iface.ipv6.clone() { if nex::net::ip::is_global_ipv6(&ip.addr()) { - return Some(IpAddr::V6(ip.addr())); + return Some(ip.addr()); } } return None; } -pub fn get_interface_local_ipv6(iface: &Interface) -> Option { +/// Get the first local IPv6 address of the interface. +pub fn get_interface_local_ipv6(iface: &Interface) -> Option { for ip in iface.ipv6.clone() { if !nex::net::ip::is_global_ipv6(&ip.addr()) { - return Some(IpAddr::V6(ip.addr())); + return Some(ip.addr()); } } return None; } +/// Get all IP addresses of the interface as strings. pub fn get_interface_ips(iface: &Interface) -> Vec { let mut ips: Vec = Vec::new(); for ip in iface.ipv4.clone() { @@ -75,6 +82,7 @@ pub fn get_interface_ips(iface: &Interface) -> Vec { ips } +/// Get all local IP addresses on the specified interface. pub fn get_local_ips(if_index: u32) -> HashSet { let interface = get_interface_by_index(if_index).unwrap(); let mut ips: HashSet = HashSet::new(); @@ -90,6 +98,7 @@ pub fn get_local_ips(if_index: u32) -> HashSet { ips } +/// Get all local IP addresses on the default interface. pub fn get_default_local_ips() -> HashSet { // Default interface IP addresses let default_interface = netdev::get_default_interface().unwrap(); @@ -106,6 +115,7 @@ pub fn get_default_local_ips() -> HashSet { ips } +/// Get all local IP addresses on the specified interface. pub fn get_interface_local_ips(iface: &Interface) -> HashSet { let mut ips: HashSet = HashSet::new(); for ip in iface.ipv4.clone() { @@ -120,6 +130,7 @@ pub fn get_interface_local_ips(iface: &Interface) -> HashSet { ips } +/// Get a map of all local IP addresses to their corresponding interface names. pub fn get_local_ip_map() -> HashMap { let mut ip_map: HashMap = HashMap::new(); for iface in netdev::interface::get_interfaces() { @@ -144,6 +155,7 @@ pub fn get_usable_interfaces() -> Vec { usable_interfaces } +/// Get the MAC address of the interface, or MacAddr::zero() if not available. pub fn get_interface_macaddr(iface: &Interface) -> MacAddr { match &iface.mac_addr { Some(mac_addr) => mac_addr.clone(), @@ -151,9 +163,10 @@ pub fn get_interface_macaddr(iface: &Interface) -> MacAddr { } } +/// Get the MAC address of the gateway, or MacAddr::zero() if not available. pub fn get_gateway_macaddr(iface: &Interface) -> MacAddr { match &iface.gateway { Some(gateway) => gateway.mac_addr.clone(), None => MacAddr::zero(), } -} +} \ No newline at end of file diff --git a/src/ip/mod.rs b/src/ip/mod.rs deleted file mode 100644 index 28ec06e..0000000 --- a/src/ip/mod.rs +++ /dev/null @@ -1,18 +0,0 @@ -use std::net::IpAddr; - -pub fn is_global_addr(ip_addr: &IpAddr) -> bool { - match ip_addr { - IpAddr::V4(ipv4) => nex::net::ip::is_global_ipv4(&ipv4), - IpAddr::V6(ipv6) => nex::net::ip::is_global_ipv6(&ipv6), - } -} - -pub fn guess_initial_ttl(ttl: u8) -> u8 { - if ttl <= 64 { - 64 - } else if 64 < ttl && ttl <= 128 { - 128 - } else { - 255 - } -} diff --git a/src/json/host.rs b/src/json/host.rs deleted file mode 100644 index 7678123..0000000 --- a/src/json/host.rs +++ /dev/null @@ -1,37 +0,0 @@ -use std::time::Duration; - -use serde::{Deserialize, Serialize}; - -use crate::{ - host::Host, - scan::result::{ScanResult, ScanStatus}, -}; - -/// Result of hostscan -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct HostScanResult { - /// List of scanned Host info and their respective ports - pub hosts: Vec, - /// Time taken to scan - pub scan_time: Duration, - /// Status of the scan task - pub scan_status: ScanStatus, -} - -impl HostScanResult { - /// Constructs a new PortScanResult - pub fn new() -> HostScanResult { - HostScanResult { - hosts: vec![], - scan_time: Duration::from_millis(0), - scan_status: ScanStatus::Error("Scan not started".to_string()), - } - } - pub fn from_scan_result(scan_result: &ScanResult) -> HostScanResult { - HostScanResult { - hosts: scan_result.hosts.clone(), - scan_time: scan_result.scan_time.clone(), - scan_status: scan_result.scan_status.clone(), - } - } -} diff --git a/src/json/mod.rs b/src/json/mod.rs deleted file mode 100644 index 4322a91..0000000 --- a/src/json/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod host; -pub mod port; diff --git a/src/json/port.rs b/src/json/port.rs deleted file mode 100644 index 49ae324..0000000 --- a/src/json/port.rs +++ /dev/null @@ -1,33 +0,0 @@ -use std::{net::IpAddr, time::Duration}; - -use serde::{Deserialize, Serialize}; - -use crate::{host::Host, scan::result::ScanStatus}; - -/// Result of portscan -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct PortScanResult { - /// Scanned Host info and their respective ports - pub host: Host, - /// Time taken to scan - pub port_scan_time: Duration, - /// Service detection time - pub service_detection_time: Duration, - /// Total scan time - pub total_scan_time: Duration, - /// Status of the scan task - pub scan_status: ScanStatus, -} - -impl PortScanResult { - /// Constructs a new PortScanResult - pub fn new(ip_addr: IpAddr, hostname: String) -> PortScanResult { - PortScanResult { - host: Host::new(ip_addr, hostname), - port_scan_time: Duration::new(0, 0), - service_detection_time: Duration::new(0, 0), - total_scan_time: Duration::new(0, 0), - scan_status: ScanStatus::Error("Scan not started".to_string()), - } - } -} diff --git a/src/log.rs b/src/log.rs new file mode 100644 index 0000000..ca37e20 --- /dev/null +++ b/src/log.rs @@ -0,0 +1,85 @@ +use anyhow::Result; +use tracing::level_filters::LevelFilter; +use std::fs::File; +use tracing_indicatif::IndicatifLayer; +use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; +use tracing_subscriber::{fmt, prelude::*, registry, filter::Targets}; + +use crate::cli::Cli; +use crate::time::LocalTimeOnly; + +/// Initialize the logger based on command-line arguments. +pub fn init_logger(cli_args: &Cli) -> Result<()> { + let indicatif_layer = IndicatifLayer::new(); + + // Format layer for console output (using a writer that coexists with the indicator) + let console_fmt = fmt::layer() + .with_target(false) + .with_timer(LocalTimeOnly) + .with_writer(indicatif_layer.get_stderr_writer()); + + // Console log filter + let console_filter = Targets::new() + .with_default(LevelFilter::OFF) + .with_target("nrev", cli_args.log_level.to_level_filter()); + + if !cli_args.no_stdout { + if cli_args.quiet { + // Quiet mode: suppress all logs except errors + let quiet_filter = LevelFilter::ERROR; + + registry() + .with(indicatif_layer) + .with(console_fmt.with_filter(quiet_filter)) + .init(); + return Ok(()); + } + + if !cli_args.log_file { + // Registry-based layer stacking + registry() + .with(indicatif_layer) + .with(console_fmt.with_filter(console_filter)) + .init(); + return Ok(()); + } + } + + // Determine log file path + let log_file_path = cli_args.log_file_path.clone() + .unwrap_or_else(|| crate::config::get_user_file_path("nrev.log").unwrap()); + + // Open log file in append mode + let file = File::options().create(true).append(true).open(&log_file_path)?; + + // File-specific fmt layer + let file_fmt = fmt::layer() + .with_ansi(false) + .with_target(false) + .with_timer(LocalTimeOnly) + .with_writer(file); + + #[cfg(debug_assertions)] + { + // debug: log_level for screen, ERROR only for file + let file_filter = LevelFilter::ERROR; + + registry() + .with(indicatif_layer) + .with(console_fmt.with_filter(console_filter)) + .with(file_fmt.with_filter(file_filter)) + .init(); + } + + #[cfg(not(debug_assertions))] + { + // release: no output to screen, ERROR only for file + let file_filter = LevelFilter::ERROR; + + registry() + .with(file_fmt.with_filter(file_filter)) + .init(); + } + + Ok(()) +} diff --git a/src/main.rs b/src/main.rs index 8bb433c..1b930bd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,448 +1,103 @@ -// Core +pub mod cli; +pub mod cmd; pub mod config; -pub mod db; -pub mod dep; +pub mod endpoint; pub mod dns; -pub mod fp; -pub mod fs; -pub mod host; +pub mod scan; +pub mod output; +pub mod capture; pub mod interface; -pub mod ip; -pub mod json; -pub mod neighbor; pub mod packet; -pub mod pcap; +pub mod time; +pub mod log; +pub mod service; +pub mod db; +pub mod os; pub mod ping; -pub mod probe; pub mod protocol; -pub mod scan; -pub mod sys; -pub mod tls; -pub mod trace; +pub mod probe; pub mod util; -// CLI -pub mod app; -pub mod handler; -pub mod output; +pub mod nei; +pub mod trace; -use app::{AppCommands, CRATE_REPOSITORY}; -use clap::{crate_description, crate_name, crate_version, value_parser}; -use clap::{Arg, ArgMatches, Command}; -use std::env; -use std::path::PathBuf; +use clap::Parser; +use cli::{Cli, Command}; -fn main() { - let args: Vec = env::args().collect(); - if args.len() < 2 { - app::show_app_desc(); - std::process::exit(0); - } - let arg_matches: ArgMatches = parse_args(); - match app::set_quiet_mode(arg_matches.get_flag("quiet")) { - Ok(_) => {} - Err(e) => { - println!("Failed to set quiet mode.{}", e); - std::process::exit(1); - } - } - let subcommand_name = arg_matches.subcommand_name().unwrap_or(""); - let app_command = AppCommands::from_str(subcommand_name); - app::show_banner_with_starttime(); - check_deps(); - match app_command { - Some(AppCommands::PortScan) => { - handler::port::handle_portscan(&arg_matches); - } - Some(AppCommands::HostScan) => { - handler::host::handle_hostscan(&arg_matches); - } - Some(AppCommands::Ping) => { - handler::ping::handle_ping(&arg_matches); - } - Some(AppCommands::Trace) => { - handler::trace::handle_traceroute(&arg_matches); - } - Some(AppCommands::Subdomain) => { - handler::dns::handle_subdomain_scan(&arg_matches); +use crate::db::DbInitializer; + +#[tokio::main] +async fn main() { + // Parse command line arguments + let cli = Cli::parse(); + // Initialize logger + let _ = log::init_logger(&cli); + // Start nrev + let start_time = std::time::Instant::now(); + tracing::info!("nrev v{} started", env!("CARGO_PKG_VERSION")); + + match cli.command { + Command::Port(args) => { + DbInitializer::with_all().init().await; + let r = cmd::port::run(args, cli.no_stdout, cli.output).await; + match r { + Ok(_) => {}, + Err(e) => tracing::error!("Port scan failed: {}", e), + } } - Some(AppCommands::Neighbor) => { - handler::neighbor::handle_neighbor_discovery(&arg_matches); + Command::Host(args) => { + let db_ini = DbInitializer::new(); + db_ini.with_os_db().with_oui_db().init().await; + + let r = cmd::host::run(args, cli.no_stdout, cli.output).await; + match r { + Ok(_) => {}, + Err(e) => tracing::error!("Host scan failed: {}", e), + } } - Some(AppCommands::Interfaces) => { - handler::interface::show_interfaces(&arg_matches); + Command::Ping(args) => { + let db_ini = DbInitializer::new(); + db_ini.with_os_db().with_oui_db().init().await; + + let r = cmd::ping::run(args, cli.no_stdout, cli.output).await; + match r { + Ok(_) => {}, + Err(e) => tracing::error!("Ping failed: {}", e), + } } - Some(AppCommands::Interface) => { - handler::interface::show_default_interface(&arg_matches); + Command::Trace(args) => { + let db_ini = DbInitializer::new(); + db_ini.with_oui_db().init().await; + + let r = cmd::trace::run(args, cli.no_stdout, cli.output).await; + match r { + Ok(_) => {}, + Err(e) => tracing::error!("Trace failed: {}", e), + } } - Some(AppCommands::CheckDependencies) => { - handler::check::check_dependencies(&arg_matches); + Command::Nei(args) => { + let db_ini = DbInitializer::new(); + db_ini.with_oui_db().init().await; + + let r = cmd::nei::run(args, cli.no_stdout, cli.output).await; + match r { + Ok(_) => {}, + Err(e) => tracing::error!("Neighbor discovery failed: {}", e), + } } - None => match arg_matches.get_one::("target") { - Some(target_host) => { - if crate::host::is_valid_target(target_host) { - handler::default_probe(target_host, &arg_matches); - } else { - app::show_error_with_help(&format!("Invalid target: {}", target_host)); - } + Command::Domain(args) => { + let r = cmd::domain::run(args, cli.no_stdout, cli.output).await; + match r { + Ok(_) => {}, + Err(e) => tracing::error!("Domain scan failed: {}", e), } - None => { - app::show_error_with_help("No target specified"); + } + Command::Interface(args) => { + let r = cmd::interface::show(&args); + match r { + Ok(_) => {}, + Err(e) => tracing::error!("Show interfaces failed: {}", e), } - }, - } -} - -fn parse_args() -> ArgMatches { - let app_description: &str = crate_description!(); - let app: Command = Command::new(crate_name!()) - .version(crate_version!()) - .about(format!("{} \n{}", app_description, CRATE_REPOSITORY)) - .allow_external_subcommands(true) - .arg(Arg::new("target") - .help("Specify the target host. IP address or Hostname") - .short('t') - .long("target") - .value_name("target") - .display_order(1) - .value_parser(value_parser!(String)) - ) - .arg(Arg::new("interface") - .help("Specify the network interface") - .short('i') - .long("interface") - .value_name("interface_name") - .display_order(2) - .value_parser(value_parser!(String)) - ) - .arg(Arg::new("noping") - .help("Disable initial ping") - .long("noping") - .num_args(0) - ) - .arg(Arg::new("full") - .help("Scan all ports (1-65535)") - .short('F') - .long("full") - .num_args(0) - ) - .arg(Arg::new("json") - .help("Displays results in JSON format.") - .short('j') - .long("json") - .num_args(0) - ) - .arg(Arg::new("save") - .help("Save scan result in JSON format - Example: -o result.json") - .short('o') - .long("save") - .value_name("file_path") - .value_parser(value_parser!(PathBuf)) - ) - .arg(Arg::new("quiet") - .help("Quiet mode. Suppress output. Only show final results.") - .short('q') - .long("quiet") - .num_args(0) - ) - .subcommand(Command::new("port") - .about("Scan port. nrev port --help for more information") - .arg(Arg::new("target") - .help("Specify the target. IP address or Hostname") - .value_name("target") - .value_parser(value_parser!(String)) - .required(true) - ) - .arg(Arg::new("ports") - .help("Specify the ports. Example: 80,443,8080") - .short('p') - .long("ports") - .value_name("ports") - .value_delimiter(',') - .value_parser(value_parser!(u16)) - ) - .arg(Arg::new("range") - .help("Specify the port range. Example: 1-100") - .short('r') - .long("range") - .value_name("range") - .value_delimiter('-') - .value_parser(value_parser!(u16)) - ) - .arg(Arg::new("scantype") - .help("Specify the scan-type") - .short('T') - .long("scantype") - .value_name("scantype") - .value_parser(value_parser!(String)) - ) - .arg(Arg::new("service") - .help("Enable service detection") - .short('S') - .long("service") - .num_args(0) - ) - .arg(Arg::new("random") - .help("Don't randomize targets. By default, nrev randomizes the order of targets.") - .short('R') - .long("random") - .num_args(0) - ) - .arg(Arg::new("wellknown") - .help("Use well-known ports") - .short('W') - .long("wellknown") - .num_args(0) - ) - .arg(Arg::new("full") - .help("Scan all ports (1-65535)") - .short('F') - .long("full") - .num_args(0) - ) - .arg(Arg::new("noping") - .help("Disable initial ping") - .long("noping") - .num_args(0) - ) - .arg(Arg::new("timeout") - .help("Set timeout in ms - Example: --timeout 10000") - .long("timeout") - .value_name("timeout") - .value_parser(value_parser!(u64)) - ) - .arg(Arg::new("waittime") - .help("Set wait-time in ms (default:100ms) - Example: -w 200") - .short('w') - .long("waittime") - .value_name("waittime") - .value_parser(value_parser!(u64)) - ) - .arg(Arg::new("rate") - .help("Set send-rate in ms - Example: --rate 1") - .long("rate") - .value_name("duration") - .value_parser(value_parser!(u64)) - ) - ) - .subcommand(Command::new("host") - .about("Scan host in specified network or host-list. nrev host --help for more information") - .arg(Arg::new("target") - .help("Specify the target network") - .value_name("target") - .required(true) - ) - .arg(Arg::new("protocol") - .help("Specify the protocol") - .short('P') - .long("protocol") - .value_name("protocol_name") - .value_parser(value_parser!(String)) - ) - .arg(Arg::new("port") - .help("Specify the port. Example: --port 80") - .short('p') - .long("port") - .value_name("port") - .value_parser(value_parser!(u16)) - ) - .arg(Arg::new("random") - .help("Don't randomize targets. By default, nrev randomizes the order of targets.") - .short('R') - .long("random") - .num_args(0) - ) - .arg(Arg::new("timeout") - .help("Set timeout in ms - Example: --timeout 10000") - .long("timeout") - .value_name("timeout") - .value_parser(value_parser!(u64)) - ) - .arg(Arg::new("waittime") - .help("Set wait-time in ms (default:100ms) - Example: -w 200") - .short('w') - .long("waittime") - .value_name("waittime") - .value_parser(value_parser!(u64)) - ) - .arg(Arg::new("rate") - .help("Set send-rate in ms - Example: --rate 1") - .long("rate") - .value_name("duration") - .value_parser(value_parser!(u64)) - ) - ) - .subcommand(Command::new("ping") - .about("Ping to specified host. nrev ping --help for more information") - .arg(Arg::new("target") - .help("Specify the target. IP address or Hostname") - .value_name("target") - .required(true) - ) - .arg(Arg::new("count") - .help("Set number of requests or pings to be sent") - .short('c') - .long("count") - .value_name("count") - .value_parser(value_parser!(u32)) - ) - .arg(Arg::new("port") - .help("Specify the port. Example: 80") - .short('p') - .long("port") - .value_name("port") - .value_parser(value_parser!(u16)) - .required(false) - ) - .arg(Arg::new("maxhop") - .help("Set max hop(TTL) for ping or traceroute") - .long("maxhop") - .value_name("maxhop") - .value_parser(value_parser!(u8)) - ) - .arg(Arg::new("protocol") - .help("Specify the protocol") - .short('P') - .long("protocol") - .value_name("protocol_name") - .value_parser(value_parser!(String)) - ) - .arg(Arg::new("timeout") - .help("Set timeout in ms - Example: --timeout 10000") - .long("timeout") - .value_name("timeout") - .value_parser(value_parser!(u64)) - ) - .arg(Arg::new("waittime") - .help("Set wait-time in ms (default:100ms) - Example: -w 200") - .short('w') - .long("waittime") - .value_name("waittime") - .value_parser(value_parser!(u64)) - ) - .arg(Arg::new("rate") - .help("Set send-rate in ms - Example: --rate 100") - .long("rate") - .value_name("duration") - .value_parser(value_parser!(u64)) - ) - ) - .subcommand(Command::new("trace") - .about("Traceroute to specified host. nrev trace --help for more information") - .arg(Arg::new("target") - .help("Specify the target. IP address or Hostname") - .value_name("target") - .required(true) - ) - .arg(Arg::new("port") - .help("Specify the port. Example: 33435") - .short('p') - .long("port") - .value_name("port") - .value_parser(value_parser!(u16)) - .required(false) - ) - .arg(Arg::new("maxhop") - .help("Set max hop(TTL) for ping or traceroute") - .long("maxhop") - .value_name("maxhop") - .value_parser(value_parser!(u8)) - ) - .arg(Arg::new("timeout") - .help("Set timeout in ms - Example: --timeout 10000") - .long("timeout") - .value_name("timeout") - .value_parser(value_parser!(u64)) - ) - .arg(Arg::new("waittime") - .help("Set wait-time in ms (default:100ms) - Example: -w 200") - .short('w') - .long("waittime") - .value_name("waittime") - .value_parser(value_parser!(u64)) - ) - .arg(Arg::new("rate") - .help("Set send-rate in ms - Example: --rate 100") - .long("rate") - .value_name("duration") - .value_parser(value_parser!(u64)) - ) - ) - .subcommand(Command::new("subdomain") - .about("Find subdomains. nrev subdomain --help for more information") - .arg(Arg::new("target") - .help("Specify the target apex-domain") - .value_name("target") - .required(true) - ) - .arg(Arg::new("wordlist") - .help("Specify the wordlist file path") - .short('w') - .long("wordlist") - .value_name("file_path") - .value_parser(value_parser!(PathBuf)) - ) - .arg(Arg::new("timeout") - .help("Set timeout in ms - Example: --timeout 10000") - .long("timeout") - .value_name("timeout") - .value_parser(value_parser!(u64)) - ) - ) - .subcommand(Command::new("nei") - .about("Resolve IP address to MAC address") - .arg(Arg::new("target") - .help("Specify the target IP address") - .value_name("target") - .required(true) - ) - .arg(Arg::new("count") - .help("Set number of requests or pings to be sent") - .short('c') - .long("count") - .value_name("count") - .value_parser(value_parser!(u32)) - ) - .arg(Arg::new("timeout") - .help("Set timeout in ms - Example: --timeout 10000") - .long("timeout") - .value_name("timeout") - .value_parser(value_parser!(u64)) - ) - .arg(Arg::new("waittime") - .help("Set wait-time in ms (default:100ms) - Example: -w 200") - .short('w') - .long("waittime") - .value_name("waittime") - .value_parser(value_parser!(u64)) - ) - .arg(Arg::new("rate") - .help("Set send-rate in ms - Example: --rate 1") - .long("rate") - .value_name("duration") - .value_parser(value_parser!(u64)) - ) - ) - .subcommand(Command::new("interfaces") - .about("Show network interfaces") - ) - .subcommand(Command::new("interface") - .about("Show default network interface") - ) - .subcommand(Command::new("check") - .about("Check dependencies (Windows only)") - ) - ; - app.get_matches() -} - -fn check_deps() { - match crate::dep::check_dependencies() { - Ok(_) => {} - Err(e) => { - println!("Dependency error:"); - println!("{}", e); - println!("Exiting..."); - std::process::exit(1); } } + tracing::info!("nrev v{} completed in {:?}", env!("CARGO_PKG_VERSION"), start_time.elapsed()); } diff --git a/src/nei/arp.rs b/src/nei/arp.rs new file mode 100644 index 0000000..43e3ab5 --- /dev/null +++ b/src/nei/arp.rs @@ -0,0 +1,88 @@ +use anyhow::Result; +use netdev::Interface; +use nex::packet::{ + arp::ArpOperation, + frame::{Frame, ParseOption}, +}; +use std::{net::{IpAddr, Ipv4Addr}, time::{Duration, Instant}}; +use futures::stream::StreamExt; +use futures::future::poll_fn; +use nex::datalink::async_io::{async_channel, AsyncChannel}; +use crate::nei::NeighborDiscoveryResult; + +/// Send an ARP request to the specified IPv4 address on the given interface and wait for a reply. +pub async fn send_arp(ipv4_addr: Ipv4Addr, iface: &Interface, recv_timeout: Duration) -> Result { + let next_hop = crate::util::ip::next_hop_ip(iface, IpAddr::V4(ipv4_addr)) + .ok_or_else(|| anyhow::anyhow!("No next hop found for {}", ipv4_addr))?; + + // Create sender + let config = nex::datalink::Config { + write_buffer_size: 4096, + read_buffer_size: 4096, + read_timeout: Some(recv_timeout), + write_timeout: None, + channel_type: nex::datalink::ChannelType::Layer2, + bpf_fd_attempts: 1000, + linux_fanout: None, + promiscuous: false, + }; + + let AsyncChannel::Ethernet(mut tx, mut rx) = async_channel(&iface, config)? + else { + unreachable!(); + }; + + let arp_packet = crate::packet::arp::build_arp_packet(iface, next_hop); + + let start_time = Instant::now(); + + match poll_fn(|cx| tx.poll_send(cx, &arp_packet)).await { + Ok(_) => { + }, + Err(e) => eprintln!("Failed to send packet: {}", e), + } + + loop { + match tokio::time::timeout(recv_timeout, rx.next()).await { + Ok(Some(Ok(packet))) => { + let frame = Frame::from_buf(&packet, ParseOption::default()).unwrap(); + match &frame.datalink { + Some(dlink) => { + if let Some(arp) = &dlink.arp { + if arp.operation == ArpOperation::Reply + && arp.sender_proto_addr == next_hop + { + let rtt = Instant::now().duration_since(start_time); + let ndp_result = NeighborDiscoveryResult { + mac_addr: arp.sender_hw_addr, + vendor: super::lookup_vendor(&arp.sender_hw_addr), + ip_addr: IpAddr::V4(arp.sender_proto_addr), + hostname: None, + rtt, + protocol: crate::protocol::Protocol::Arp, + if_name: iface.name.clone(), + if_friendly_name: iface.friendly_name.clone(), + if_index: iface.index, + }; + return Ok(ndp_result); + } + } + } + None => continue, + } + } + Ok(Some(Err(e))) => { + tracing::error!("Failed to receive packet: {}", e); + anyhow::bail!("Failed to receive packet: {}", e); + }, + Ok(None) => { + tracing::error!("Channel closed"); + anyhow::bail!("Channel closed"); + }, + Err(_) => { + tracing::error!("Request timeout"); + anyhow::bail!("Request timeout"); + } + } + } +} diff --git a/src/nei/mod.rs b/src/nei/mod.rs new file mode 100644 index 0000000..eee8259 --- /dev/null +++ b/src/nei/mod.rs @@ -0,0 +1,54 @@ +pub mod arp; +pub mod ndp; + +use serde::{Deserialize, Serialize}; +use netdev::mac::MacAddr; +use std::{net::{IpAddr, Ipv4Addr}, time::Duration}; + +use crate::protocol::Protocol; + +/// Result of Neighbor Discovery +#[derive(Deserialize, Serialize, Debug, Clone)] +pub struct NeighborDiscoveryResult { + pub mac_addr: MacAddr, + pub vendor: Option, + pub ip_addr: IpAddr, + pub hostname: Option, + /// Round Trip Time (microsecond) + pub rtt: Duration, + /// Protocol + pub protocol: Protocol, + pub if_name: String, + pub if_friendly_name: Option, + pub if_index: u32, +} + +impl NeighborDiscoveryResult { + /// Construct a new NeighborDiscoveryResult instance + pub fn new() -> NeighborDiscoveryResult { + NeighborDiscoveryResult { + mac_addr: MacAddr::zero(), + vendor: None, + ip_addr: IpAddr::V4(Ipv4Addr::UNSPECIFIED), + hostname: None, + rtt: Duration::from_millis(0), + protocol: Protocol::Icmp, + if_name: String::new(), + if_friendly_name: None, + if_index: 0, + } + } +} + +/// Lookup the vendor name for a given MAC address using the OUI database. +pub fn lookup_vendor(mac: &MacAddr) -> Option { + let oui_db = crate::db::oui::oui_db(); + if let Some(oui) = oui_db.lookup_mac(mac) { + if let Some(vendor_detail) = &oui.vendor_detail { + return Some(vendor_detail.clone()); + } else { + return Some(oui.vendor.clone()); + } + } + None +} diff --git a/src/nei/ndp.rs b/src/nei/ndp.rs new file mode 100644 index 0000000..5ea0b2f --- /dev/null +++ b/src/nei/ndp.rs @@ -0,0 +1,114 @@ +use anyhow::Result; +use netdev::Interface; +use nex::packet::{ + frame::{Frame, ParseOption}, + icmpv6::Icmpv6Type, +}; +use std::{net::{IpAddr, Ipv6Addr}, time::{Duration, Instant}}; +use futures::stream::StreamExt; +use futures::future::poll_fn; +use nex::datalink::async_io::{async_channel, AsyncChannel}; +use crate::nei::NeighborDiscoveryResult; + +/// Send an NDP (Neighbor Discovery Protocol) request to the specified IPv6 address on the given interface and wait for a reply. +pub async fn send_ndp(ipv6_addr: Ipv6Addr, iface: &Interface, recv_timeout: Duration) -> Result { + let src_ip = iface + .ipv6 + .iter() + .map(|n| n.addr()) + .find(|ip| ip.segments()[0] == 0xfe80) + .unwrap_or_else(|| iface.ipv6[0].addr()); + let next_hop = crate::util::ip::next_hop_ip(iface, IpAddr::V6(ipv6_addr)) + .ok_or_else(|| anyhow::anyhow!("No next hop found for {}", ipv6_addr))?; + + // Create sender + let config = nex::datalink::Config { + write_buffer_size: 4096, + read_buffer_size: 4096, + read_timeout: Some(recv_timeout), + write_timeout: None, + channel_type: nex::datalink::ChannelType::Layer2, + bpf_fd_attempts: 1000, + linux_fanout: None, + promiscuous: false, + }; + + let AsyncChannel::Ethernet(mut tx, mut rx) = async_channel(&iface, config)? + else { + unreachable!(); + }; + + let arp_packet = crate::packet::ndp::build_ndp_packet(iface, next_hop); + + let start_time = Instant::now(); + + match poll_fn(|cx| tx.poll_send(cx, &arp_packet)).await { + Ok(_) => { + }, + Err(e) => eprintln!("Failed to send packet: {}", e), + } + + loop { + match tokio::time::timeout(recv_timeout, rx.next()).await { + Ok(Some(Ok(packet))) => { + let mut parse_option = ParseOption::default(); + if iface.is_tun() { + parse_option.from_ip_packet = true; + parse_option.offset = if iface.is_loopback() { 14 } else { 0 }; + } + + if let Some(frame) = Frame::from_buf(&packet, parse_option) { + if let Some(ip_layer) = &frame.ip { + if let Some(icmpv6) = &ip_layer.icmpv6 { + if icmpv6.icmpv6_type == Icmpv6Type::NeighborAdvertisement { + if let Some(ipv6_hdr) = &ip_layer.ipv6 { + if let Some(dlink) = &frame.datalink { + if let Some(eth) = &dlink.ethernet { + // eth.source is the MAC address of the device that replied + if ipv6_hdr.destination == src_ip + && ipv6_hdr.source == ipv6_addr + { + let rtt = Instant::now().duration_since(start_time); + let ndp_result = NeighborDiscoveryResult { + mac_addr: eth.source, + vendor: super::lookup_vendor(ð.source), + ip_addr: IpAddr::V6(ipv6_hdr.source), + hostname: None, + rtt, + protocol: crate::protocol::Protocol::Ndp, + if_name: iface.name.clone(), + if_friendly_name: iface.friendly_name.clone(), + if_index: iface.index, + }; + return Ok(ndp_result); + + } else { + eprintln!( + "Received NDP reply from unexpected source: {}", + ipv6_hdr.source + ); + continue; + } + } + } + } + } + } + } + } + } + Ok(Some(Err(e))) => { + tracing::error!("Failed to receive packet: {}", e); + anyhow::bail!("Failed to receive packet: {}", e); + }, + Ok(None) => { + tracing::error!("Channel closed"); + anyhow::bail!("Channel closed"); + }, + Err(_) => { + tracing::error!("Request timeout"); + anyhow::bail!("Request timeout"); + } + } + } +} diff --git a/src/neighbor/mod.rs b/src/neighbor/mod.rs deleted file mode 100644 index 6fa8815..0000000 --- a/src/neighbor/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod resolver; -pub mod result; -pub mod setting; diff --git a/src/neighbor/resolver.rs b/src/neighbor/resolver.rs deleted file mode 100644 index 7de7411..0000000 --- a/src/neighbor/resolver.rs +++ /dev/null @@ -1,363 +0,0 @@ -use netdev::interface::Interface; -use nex::datalink::{RawReceiver, RawSender}; -use nex::packet::arp::ArpOperation; -use nex::packet::frame::{Frame, ParseOption}; -use nex::packet::icmpv6::Icmpv6Type; -use std::net::IpAddr; -use std::sync::mpsc::{channel, Receiver, Sender}; -use std::sync::{Arc, Mutex}; -use std::time::{Duration, Instant}; - -use super::result::DeviceResolveResult; -use super::setting::AddressResolveSetting; -use crate::host::NodeType; -use crate::packet::setting::PacketBuildSetting; -use crate::probe::{ProbeResult, ProbeStatus}; -use crate::protocol::Protocol; - -/// Device Resolver structure. -/// -/// Supports ARP and NDP. -pub struct DeviceResolver { - /// Probe Setting - pub probe_setting: AddressResolveSetting, - /// Sender for progress messaging - tx: Arc>>, - /// Receiver for progress messaging - rx: Arc>>, -} - -impl DeviceResolver { - /// Create new DeviceResolver instance with setting - pub fn new(setting: AddressResolveSetting) -> Result { - // Check interface - if crate::interface::get_interface_by_index(setting.if_index).is_none() { - return Err(format!( - "Pinger::new: unable to get interface. index: {}", - setting.if_index - )); - } - let (tx, rx) = channel(); - let pinger = DeviceResolver { - probe_setting: setting, - tx: Arc::new(Mutex::new(tx)), - rx: Arc::new(Mutex::new(rx)), - }; - return Ok(pinger); - } - /// Run arp/ndp - pub fn resolve(&self) -> Result { - run_resolver(&self.probe_setting, &self.tx) - } - /// Get progress receiver - pub fn get_progress_receiver(&self) -> Arc>> { - self.rx.clone() - } -} - -fn run_resolver( - setting: &AddressResolveSetting, - msg_tx: &Arc>>, -) -> Result { - let interface: Interface = match crate::interface::get_interface_by_index(setting.if_index) { - Some(interface) => interface, - None => { - return Err(format!( - "run_ping: unable to get interface by index {}", - setting.if_index - )) - } - }; - let config = nex::datalink::Config { - write_buffer_size: 4096, - read_buffer_size: 4096, - read_timeout: Some(setting.receive_timeout), - write_timeout: None, - channel_type: nex::datalink::ChannelType::Layer2, - bpf_fd_attempts: 1000, - linux_fanout: None, - promiscuous: false, - }; - // Create a channel to send/receive packet - let (mut tx, mut rx) = match nex::datalink::channel(&interface, config) { - Ok(nex::datalink::Channel::Ethernet(tx, rx)) => (tx, rx), - Ok(_) => return Err("run_ping: unable to create channel".to_string()), - Err(e) => return Err(format!("run_ping: unable to create channel: {}", e)), - }; - match setting.protocol { - crate::protocol::Protocol::ARP => { - let result = run_arp(&mut tx, &mut rx, setting, msg_tx); - return Ok(result); - } - crate::protocol::Protocol::NDP => { - let result = run_ndp(&mut tx, &mut rx, setting, msg_tx); - return Ok(result); - } - _ => { - return Err("run_ping: unsupported protocol".to_string()); - } - } -} - -pub(crate) fn run_arp( - tx: &mut Box, - rx: &mut Box, - setting: &AddressResolveSetting, - msg_tx: &Arc>>, -) -> DeviceResolveResult { - let mut result = DeviceResolveResult::new(); - result.protocol = Protocol::ARP; - let mut parse_option: ParseOption = ParseOption::default(); - if setting.tunnel { - let payload_offset = if setting.loopback { 14 } else { 0 }; - parse_option.from_ip_packet = true; - parse_option.offset = payload_offset; - } - result.start_time = crate::sys::time::get_sysdate(); - let start_time = Instant::now(); - let mut responses: Vec = Vec::new(); - let packet_setting: PacketBuildSetting = - PacketBuildSetting::from_address_resolve_settomg(setting); - let arp_packet: Vec = crate::packet::arp::build_arp_packet(packet_setting.clone()); - for seq in 1..setting.count + 1 { - let send_time = Instant::now(); - match tx.send(&arp_packet) { - Some(_) => {} - None => {} - } - loop { - match rx.next() { - Ok(packet) => { - let recv_time: Duration = Instant::now().duration_since(send_time); - let frame: Frame = Frame::from_bytes(&packet, parse_option.clone()); - // Datalink - if let Some(datalink_layer) = &frame.datalink { - // Ethernet - if let Some(_ethernet_header) = &datalink_layer.ethernet { - // ARP - if let Some(arp_header) = &datalink_layer.arp { - if IpAddr::V4(arp_header.sender_proto_addr) != setting.dst_ip - || IpAddr::V4(arp_header.target_proto_addr) - != packet_setting.src_ip - { - continue; - } - if arp_header.operation == ArpOperation::Reply { - let probe_result: ProbeResult = ProbeResult { - seq: seq, - mac_addr: arp_header.sender_hw_addr, - ip_addr: setting.dst_ip, - host_name: setting.dst_hostname.clone(), - port_number: None, - port_status: None, - ttl: 0, - hop: 0, - rtt: recv_time, - probe_status: ProbeStatus::new(), - protocol: Protocol::ARP, - node_type: NodeType::Destination, - sent_packet_size: arp_packet.len(), - received_packet_size: packet.len(), - }; - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - } - } - } - Err(_e) => { - let probe_result = ProbeResult::timeout( - seq, - setting.dst_ip, - setting.dst_hostname.clone(), - Protocol::ARP, - arp_packet.len(), - ); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - let wait_time: Duration = Instant::now().duration_since(send_time); - if wait_time > setting.receive_timeout { - let probe_result = ProbeResult::timeout( - seq, - setting.dst_ip, - setting.dst_hostname.clone(), - Protocol::ARP, - arp_packet.len(), - ); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - if seq < setting.count { - std::thread::sleep(setting.send_rate); - } - } - let probe_time = Instant::now().duration_since(start_time); - result.end_time = crate::sys::time::get_sysdate(); - result.elapsed_time = probe_time; - if responses.len() > 0 { - result.probe_status = ProbeStatus::new(); - } else { - result.probe_status = ProbeStatus::with_error_message("No response".to_string()); - } - result.results = responses; - result -} - -pub(crate) fn run_ndp( - tx: &mut Box, - rx: &mut Box, - setting: &AddressResolveSetting, - msg_tx: &Arc>>, -) -> DeviceResolveResult { - let mut result = DeviceResolveResult::new(); - result.protocol = Protocol::NDP; - let mut parse_option: ParseOption = ParseOption::default(); - if setting.tunnel { - let payload_offset = if setting.loopback { 14 } else { 0 }; - parse_option.from_ip_packet = true; - parse_option.offset = payload_offset; - } - result.start_time = crate::sys::time::get_sysdate(); - let start_time = Instant::now(); - let mut responses: Vec = Vec::new(); - let packet_setting: PacketBuildSetting = - PacketBuildSetting::from_address_resolve_settomg(setting); - let ndp_packet: Vec = crate::packet::ndp::build_ndp_packet(packet_setting.clone()); - for seq in 1..setting.count + 1 { - let send_time = Instant::now(); - match tx.send(&ndp_packet) { - Some(_) => {} - None => {} - } - loop { - match rx.next() { - Ok(packet) => { - let recv_time: Duration = Instant::now().duration_since(send_time); - let frame: Frame = Frame::from_bytes(&packet, parse_option.clone()); - // Datalink - if let Some(datalink_layer) = &frame.datalink { - // Ethernet - if let Some(ethernet_header) = &datalink_layer.ethernet { - if let Some(ip_layer) = &frame.ip { - // IPv6 - if let Some(ipv6_header) = &ip_layer.ipv6 { - if IpAddr::V6(ipv6_header.source) != setting.dst_ip - || IpAddr::V6(ipv6_header.destination) - != packet_setting.src_ip - { - continue; - } - // ICMPv6 - if let Some(icmpv6_header) = &ip_layer.icmpv6 { - if icmpv6_header.icmpv6_type - == Icmpv6Type::NeighborAdvertisement - { - let probe_result: ProbeResult = ProbeResult { - seq: seq, - mac_addr: ethernet_header.source, - ip_addr: setting.dst_ip, - host_name: setting.dst_hostname.clone(), - port_number: None, - port_status: None, - ttl: ipv6_header.hop_limit, - hop: crate::ip::guess_initial_ttl( - ipv6_header.hop_limit, - ) - ipv6_header.hop_limit, - rtt: recv_time, - probe_status: ProbeStatus::new(), - protocol: Protocol::NDP, - node_type: NodeType::Destination, - sent_packet_size: ndp_packet.len(), - received_packet_size: packet.len(), - }; - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - } - } - } - } - } - Err(_e) => { - let probe_result = ProbeResult::timeout( - seq, - setting.dst_ip, - setting.dst_hostname.clone(), - Protocol::NDP, - ndp_packet.len(), - ); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - let wait_time: Duration = Instant::now().duration_since(send_time); - if wait_time > setting.receive_timeout { - let probe_result = ProbeResult::timeout( - seq, - setting.dst_ip, - setting.dst_hostname.clone(), - Protocol::NDP, - ndp_packet.len(), - ); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - if seq < setting.count { - std::thread::sleep(setting.send_rate); - } - } - let probe_time = Instant::now().duration_since(start_time); - result.end_time = crate::sys::time::get_sysdate(); - result.elapsed_time = probe_time; - if responses.len() > 0 { - result.probe_status = ProbeStatus::new(); - } else { - result.probe_status = ProbeStatus::with_error_message("No response".to_string()); - } - result.results = responses; - result -} diff --git a/src/neighbor/result.rs b/src/neighbor/result.rs deleted file mode 100644 index fbfc3de..0000000 --- a/src/neighbor/result.rs +++ /dev/null @@ -1,32 +0,0 @@ -use crate::{ - probe::{ProbeResult, ProbeStatus}, - protocol::Protocol, -}; -use serde::{Deserialize, Serialize}; -use std::time::Duration; - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct DeviceResolveResult { - pub results: Vec, - pub probe_status: ProbeStatus, - /// start-time in RFC 3339 and ISO 8601 date and time string - pub start_time: String, - /// end-time in RFC 3339 and ISO 8601 date and time string - pub end_time: String, - /// Elapsed time - pub elapsed_time: Duration, - pub protocol: Protocol, -} - -impl DeviceResolveResult { - pub fn new() -> DeviceResolveResult { - DeviceResolveResult { - results: Vec::new(), - probe_status: ProbeStatus::new(), - start_time: String::new(), - end_time: String::new(), - elapsed_time: Duration::from_millis(0), - protocol: Protocol::ARP, - } - } -} diff --git a/src/neighbor/setting.rs b/src/neighbor/setting.rs deleted file mode 100644 index 143461f..0000000 --- a/src/neighbor/setting.rs +++ /dev/null @@ -1,89 +0,0 @@ -use crate::protocol::Protocol; -use netdev::Interface; -use serde::{Deserialize, Serialize}; -use std::net::{Ipv4Addr, Ipv6Addr}; -use std::{net::IpAddr, time::Duration}; - -#[derive(Deserialize, Serialize, Clone, Debug)] -pub struct AddressResolveSetting { - pub if_index: u32, - pub dst_hostname: String, - pub dst_ip: IpAddr, - pub protocol: Protocol, - pub count: u32, - pub receive_timeout: Duration, - pub probe_timeout: Duration, - pub send_rate: Duration, - pub tunnel: bool, - pub loopback: bool, -} - -impl Default for AddressResolveSetting { - fn default() -> Self { - Self { - if_index: 0, - dst_hostname: "localhost".to_string(), - dst_ip: IpAddr::V4(Ipv4Addr::LOCALHOST), - protocol: Protocol::ARP, - count: 1, - receive_timeout: Duration::from_secs(1), - probe_timeout: Duration::from_secs(30), - send_rate: Duration::from_secs(1), - tunnel: false, - loopback: false, - } - } -} - -impl AddressResolveSetting { - pub fn arp( - interface: &Interface, - dst_ipv4_addr: Ipv4Addr, - count: u32, - ) -> Result { - if interface.is_tun() { - return Err(format!("ARP: tun interface is not supported")); - } - if interface.is_loopback() { - return Err(format!("ARP: loopback interface is not supported")); - } - let setting = AddressResolveSetting { - if_index: interface.index, - dst_ip: IpAddr::V4(dst_ipv4_addr), - dst_hostname: dst_ipv4_addr.to_string(), - count: count, - protocol: Protocol::ARP, - receive_timeout: Duration::from_secs(1), - probe_timeout: Duration::from_secs(30), - send_rate: Duration::from_secs(1), - tunnel: false, - loopback: false, - }; - Ok(setting) - } - pub fn ndp( - interface: &Interface, - dst_ipv6_addr: Ipv6Addr, - count: u32, - ) -> Result { - if interface.is_tun() { - return Err(format!("NDP: tun interface is not supported")); - } - if interface.is_loopback() { - return Err(format!("NDP: loopback interface is not supported")); - } - let setting = AddressResolveSetting { - if_index: interface.index, - dst_ip: IpAddr::V6(dst_ipv6_addr), - dst_hostname: dst_ipv6_addr.to_string(), - count: count, - protocol: Protocol::NDP, - receive_timeout: Duration::from_secs(1), - probe_timeout: Duration::from_secs(30), - send_rate: Duration::from_secs(1), - tunnel: false, - loopback: false, - }; - Ok(setting) - } -} diff --git a/src/os/mod.rs b/src/os/mod.rs new file mode 100644 index 0000000..a03d1ed --- /dev/null +++ b/src/os/mod.rs @@ -0,0 +1,327 @@ +pub mod probe; + +use nex::packet::{frame::Frame, tcp::{TcpHeader, TcpOptionKind}}; +use serde::{Deserialize, Serialize}; +use anyhow::Result; +use crate::{output::port::OsProbeResult, probe::ProbeSetting}; + +/// OS Detector using TCP SYN packets +pub struct OsDetector { + pub settings: ProbeSetting, +} + +impl OsDetector { + /// Construct a new OsDetector instance + pub fn new(settings: ProbeSetting) -> Self { + Self { settings } + } + + /// Run the OS detection probe and return the results. + pub async fn run(&self) -> Result { + probe::tcp::run_os_probe(self.settings.clone()).await + } +} + +/// Metadata about the OS database +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct Meta { + pub name: String, + pub version: String, +} + +/// A record in the OS signature database +#[derive(Serialize, Deserialize, Debug)] +struct OsSigRecord { + signature: SignatureKey, + cpe: Vec, +} + +/// TCP/IP signature keys for matching +#[derive(Serialize, Deserialize, Debug, Default)] +struct SignatureKey { + order_key: Option, + set_key: Option, + win_bucket: Option>, +} + +/// The OS database structure +#[derive(Serialize, Deserialize)] +pub struct OsDb { + meta: Meta, + signatures: Vec, +} + +/// Signature features extracted from a packet frame +#[derive(Debug)] +pub struct SignatureFeatures { + pub order_key: String, + pub set_key: String, + pub window: u16, + pub ttl_class: Option, +} + +/// Result of OS matching +pub struct OsMatchResult { + pub family: String, + pub confidence: u8, + pub evidence: String, + pub cpes: Vec, +} + +impl OsMatchResult { + pub fn new() -> Self { + OsMatchResult { + family: String::new(), + confidence: 0, + evidence: String::new(), + cpes: Vec::new(), + } + } +} + +/// OS class with initial TTL and description +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct OsClassTtl { + pub os_class: OsClass, + pub os_description: String, + pub initial_ttl: u8, +} + +/// OS classes for classification +#[derive(Serialize, Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash)] +pub enum OsClass { + UnixLike, + Windows, +} + +impl OsClass { + pub fn as_str(&self) -> &str { + match self { + OsClass::UnixLike => "UnixLike", + OsClass::Windows => "Windows", + } + } +} + +/// Extracts TCP options from a Frame and compresses NOP options. +fn tcp_option_tokens(tcp: &TcpHeader) -> Vec<&'static str> { + let mut toks = Vec::with_capacity(tcp.options.len()); + + for opt in &tcp.options { + let t = match opt.kind() { + TcpOptionKind::MSS => "MSS", + TcpOptionKind::SACK_PERMITTED => "SACK", + TcpOptionKind::TIMESTAMPS => "TS", + TcpOptionKind::WSCALE => "WS", + TcpOptionKind::NOP => "NOP", + _ => continue, + }; + toks.push(t); + } + toks +} + +/// Compress consecutive NOP options in TCP header +fn tcp_option_token_set(tcp: &TcpHeader) -> Vec<&'static str> { + let mut toks = Vec::with_capacity(tcp.options.len()); + + for opt in &tcp.options { + let t = match opt.kind() { + TcpOptionKind::MSS => "MSS", + TcpOptionKind::SACK_PERMITTED => "SACK", + TcpOptionKind::TIMESTAMPS => "TS", + TcpOptionKind::WSCALE => "WS", + TcpOptionKind::NOP => "NOP", + _ => continue, + }; + toks.push(t); + } + + // Compress consecutive NOPs + let mut out = Vec::with_capacity(toks.len()); + let mut prev_nop = false; + for t in toks { + if t == "NOP" { + if !prev_nop { + out.push(t) + } + prev_nop = true; + } else { + prev_nop = false; + out.push(t); + } + } + out +} + +/// Create an order key string from TCP option tokens +fn order_key(tokens: &[&str]) -> String { + tokens.join(",") +} + +/// Create a set key string from TCP option tokens +fn set_key(tokens: &[&str]) -> String { + // Order options by priority, then alphabetically + const PRI: [&str; 5] = ["MSS", "SACK", "TS", "WS", "NOP"]; + use std::collections::BTreeSet; + + let set: BTreeSet<&str> = tokens.iter().copied().collect(); + let mut head: Vec<&str> = PRI.iter().copied().filter(|t| set.contains(*t)).collect(); + let mut tail: Vec<&str> = set + .difference(&PRI.iter().copied().collect()) + .copied() + .collect(); + tail.sort_unstable(); + head.extend(tail); + format!("{{{}}}", head.join(",")) +} + +/// Initial TTL class based on IPv4 or IPv6 header +fn ttl_class_from_packet(frame: &Frame) -> Option { + // Extract TTL from IPv4 or Hop Limit from IPv6 + if let Some(ip) = &frame.ip { + if let Some(ipv4) = &ip.ipv4 { + let ttl = ipv4.ttl; + return Some(match ttl { + 0..=64 => 64, + 65..=128 => 128, + _ => 255, + }); + } + if let Some(ipv6) = &ip.ipv6 { + let h = ipv6.hop_limit; + return Some(match h { + 0..=64 => 64, + 65..=128 => 128, + _ => 255, + }); + } + } + None +} + +/// Extract signature features from a Frame +pub fn extract_signature(frame: &Frame) -> Option { + if let Some(transport) = &frame.transport { + if let Some(tcp) = &transport.tcp { + let tokens = tcp_option_tokens(tcp); + let token_set = tcp_option_token_set(tcp); + let sig = SignatureFeatures { + order_key: order_key(&tokens), + set_key: set_key(&token_set), + window: tcp.window, + ttl_class: ttl_class_from_packet(frame), + }; + return Some(sig); + } + } + None +} + +/// Derive a human-readable OS family name from CPE strings +fn family_from_cpe(cpes: &[String]) -> String { + // Extract vendor and product from a CPE string + for c in cpes { + if let Some(rest) = c.strip_prefix("cpe:/") { + // /o:vendor:product:... + let mut parts = rest.split(':'); + let _part_type = parts.next(); // 'o' or 'a' or 'h' + if let (Some(vendor), Some(product)) = (parts.next(), parts.next()) { + return format!("{} {}", vendor, product); + } + } + } + String::new() +} + +fn score_signature(sig: &SignatureKey, feat: &SignatureFeatures) -> (u8, Vec<&'static str>) { + let mut score: u8 = 0; + let mut evid: Vec<&'static str> = Vec::new(); + + if let Some(ok) = &sig.order_key { + if ok == &feat.order_key { + score = score.saturating_add(60); + evid.push("order"); + } + } + if let Some(sk) = &sig.set_key { + if sk == &feat.set_key { + score = score.saturating_add(40); + evid.push("set"); + } + } + if let Some(buckets) = &sig.win_bucket { + if buckets.iter().any(|&w| w == feat.window) { + score = score.saturating_add(20); + evid.push("win"); + } + } + if let Some(_ttl) = feat.ttl_class { + score = score.saturating_add(10); + evid.push("ttl?"); + } + + (score, evid) +} + +pub fn match_tcpip_signatures(frame: &Frame) -> Option { + let os_db: &'static OsDb = crate::db::os::os_db(); + let feat = extract_signature(frame)?; + + let mut best: Option<(u8, &OsSigRecord, Vec<&'static str>)> = None; + + for rec in &os_db.signatures { + if rec.signature.order_key.is_none() + && rec.signature.set_key.is_none() + && rec.signature.win_bucket.is_none() + { + continue; + } + + let (score, evid) = score_signature(&rec.signature, &feat); + let replace = match &best { + None => true, + Some((best_score, _best_rec, best_evid)) => { + score > *best_score || (score == *best_score && evid.len() > best_evid.len()) + } + }; + if replace { + best = Some((score, rec, evid)); + } + } + + let (score, rec, evid) = best?; + if score < 40 { + return None; + } + + // Build the result + let mut out = OsMatchResult::new(); + out.cpes = rec.cpe.clone(); + out.family = family_from_cpe(&out.cpes); + out.confidence = score.min(100); + out.evidence = { + let mut parts = Vec::new(); + if evid.contains(&"order") { + parts.push(format!("order={}", feat.order_key)); + } + if evid.contains(&"set") { + parts.push(format!("set={}", feat.set_key)); + } + if evid.contains(&"win") { + parts.push(format!("win={}", feat.window)); + } + if let Some(ttl) = feat.ttl_class { + if evid.contains(&"ttl?") { + parts.push(format!("ttl~{}", ttl)); + } + } + if parts.is_empty() { + "heuristic".to_string() + } else { + parts.join(", ") + } + }; + + Some(out) +} diff --git a/src/os/probe/mod.rs b/src/os/probe/mod.rs new file mode 100644 index 0000000..fcb722b --- /dev/null +++ b/src/os/probe/mod.rs @@ -0,0 +1 @@ +pub mod tcp; diff --git a/src/os/probe/tcp.rs b/src/os/probe/tcp.rs new file mode 100644 index 0000000..5f93e9f --- /dev/null +++ b/src/os/probe/tcp.rs @@ -0,0 +1,163 @@ +use futures::stream::StreamExt; +use futures::future::poll_fn; +use nex::datalink::async_io::{async_channel, AsyncChannel}; +use nex::packet::frame::{Frame, ParseOption}; +use tracing_indicatif::span_ext::IndicatifSpanExt; +use std::collections::BTreeMap; +use anyhow::Result; +use crate::config::default::DEFAULT_LOCAL_TCP_PORT; +use crate::endpoint::{EndpointResult, OsGuess, Port, PortResult, PortState, ServiceInfo, TransportProtocol}; +use crate::output::port::OsProbeResult; +use crate::probe::ProbeSetting; + +/// Run OS detection probe using TCP SYN packets and return the results. +pub async fn run_os_probe( + setting: ProbeSetting, +) -> Result { + let mut result = OsProbeResult::new(); + let interface = match crate::interface::get_interface_by_index(setting.if_index) { + Some(interface) => interface, + None => return Err(anyhow::anyhow!("Interface not found")), + }; + // Create sender + let config = nex::datalink::Config { + write_buffer_size: 4096, + read_buffer_size: 4096, + read_timeout: Some(setting.wait_time), + write_timeout: None, + channel_type: nex::datalink::ChannelType::Layer2, + bpf_fd_attempts: 1000, + linux_fanout: None, + promiscuous: false, + }; + + let AsyncChannel::Ethernet(mut tx, mut rx) = async_channel(&interface, config)? + else { + unreachable!(); + }; + + let mut parse_option: ParseOption = ParseOption::default(); + if interface.is_tun() || (cfg!(any(target_os = "macos", target_os = "ios")) && interface.is_loopback()) { + let payload_offset = if interface.is_loopback() { 14 } else { 0 }; + parse_option.from_ip_packet = true; + parse_option.offset = payload_offset; + } + let start_time = std::time::Instant::now(); + for target in setting.target_endpoints { + let header_span = tracing::info_span!("os_probe"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message(&format!("OS Probe ({})", target.ip)); + header_span.pb_set_length(target.ports.len() as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + + let mut detected: bool = false; + for port in &target.ports { + let packet = + crate::packet::tcp::build_tcp_syn_packet(&interface, target.ip, port.number, false); + + // Send a packet using poll_fn. + match poll_fn(|cx| tx.poll_send(cx, &packet)).await { + Ok(_) => { + // TODO! + } + Err(e) => tracing::error!("Failed to send packet: {}", e), + } + loop { + match tokio::time::timeout(setting.wait_time, rx.next()).await { + Ok(Some(Ok(packet))) => { + let frame = match Frame::from_buf(&packet, parse_option.clone()) { + Some(frame) => frame, + None => { + eprintln!("Failed to parse packet: {:?}", packet); + continue; + } + }; + if frame.ip.is_none() || frame.transport.is_none() { + continue; + } + let ttl: u8; + let ip = frame.ip.as_ref().unwrap(); + if let Some(ipv4) = &ip.ipv4 { + if ipv4.source != target.ip { + continue; + } + ttl = ipv4.ttl; + } else if let Some(ipv6) = &ip.ipv6 { + if ipv6.source != target.ip { + continue; + } + ttl = ipv6.hop_limit; + } else { + continue; + } + if let Some(transport) = &frame.transport { + if let Some(tcp) = &transport.tcp { + if tcp.destination != DEFAULT_LOCAL_TCP_PORT { + continue; + } + if tcp.options.len() == 0 { + continue; + } + } else { + continue; + } + } else { + continue; + } + tracing::debug!("Matching frame...: {:?}", frame.transport.as_ref().unwrap().tcp); + match crate::os::match_tcpip_signatures(&frame) { + Some(os_match) => { + let port_result = PortResult { + port: Port::new(port.number, TransportProtocol::Tcp), + state: PortState::Open, + service: ServiceInfo::default(), + rtt_ms: None, + }; + let endpoint_result = EndpointResult { + ip: target.ip, + hostname: target.hostname.clone(), + ports: BTreeMap::from([(port_result.port.clone(), port_result)]), + mac_addr: target.mac_addr, + vendor_name: None, + os: OsGuess { + family: Some(os_match.family), + confidence: Some(os_match.confidence as f32), + ttl_observed: Some(ttl), + }, + tags: target.tags.clone(), + cpes: os_match.cpes, + }; + result.endpoints.push(endpoint_result); + result.fingerprints.push(frame); + + detected = true; + break; + } + None => { + tracing::debug!("No matching OS found"); + } + } + } + Ok(Some(Err(e))) => { + tracing::error!("Failed to receive packet: {}", e); + } + Ok(None) => { + break; + } + Err(e) => { + tracing::debug!("Timeout while waiting for response: {}", e); + break; + } + } + } + if detected { + break; + } + header_span.pb_inc(1); + } + drop(header_span); + } + result.probe_time = start_time.elapsed(); + Ok(result) +} diff --git a/src/output.rs b/src/output.rs deleted file mode 100644 index 39cd034..0000000 --- a/src/output.rs +++ /dev/null @@ -1,36 +0,0 @@ -use indicatif::ProgressStyle; - -pub const SECTION_DIVIDER: &str = "────────────────────────────────────────"; - -pub fn log(message: &str, level: &str) { - if crate::app::is_quiet_mode() { - return; - } - println!("[{}] {}", level, message); -} - -pub fn log_with_time(message: &str, level: &str) { - if crate::app::is_quiet_mode() { - return; - } - let now: String = crate::sys::time::get_systime(); - println!("[{}] [{}] {}", now, level, message); -} - -pub fn log_with_datetime(message: &str, level: &str) { - if crate::app::is_quiet_mode() { - return; - } - let now: String = crate::sys::time::get_sysdate(); - println!("[{}] [{}] {}", now, level, message); -} - -pub fn get_progress_style() -> ProgressStyle { - ProgressStyle::default_bar() - .template( - "{spinner:.green} {msg} [{elapsed_precise}] [{bar:40.cyan/blue}] {pos}/{len} ({eta})", - ) - .unwrap() - .tick_strings(&["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏", "✓"]) - .progress_chars("#>-") -} diff --git a/src/output/domain.rs b/src/output/domain.rs new file mode 100644 index 0000000..7e9db2e --- /dev/null +++ b/src/output/domain.rs @@ -0,0 +1,81 @@ +use termtree::Tree; +use std::net::IpAddr; +use crate::{dns::{Domain, DomainScanResult}, output::tree_label}; + +/// Print the domain scan results in a tree structure. +pub fn print_domain_tree(base_domain: &Domain, res: &DomainScanResult) { + // Create the root of the tree + let mut root = Tree::new(format!( + "Subdomains of {} — found: {} (elapsed: {:?})", + base_domain.name, + res.domains.len(), + res.scan_time + )); + + // base domain node + let mut base_node = Tree::new(tree_label(&base_domain.name)); + + if !base_domain.ips.is_empty() { + let mut v4 = Vec::new(); + let mut v6 = Vec::new(); + for ip in &base_domain.ips { + match ip { + IpAddr::V4(x) => v4.push(x), + IpAddr::V6(x) => v6.push(x), + } + } + if !v4.is_empty() { + let mut a = Tree::new(tree_label("A")); + for ip in v4 { + a.push(Tree::new(ip.to_string())); + } + base_node.push(a); + } + if !v6.is_empty() { + let mut aaaa = Tree::new(tree_label("AAAA")); + for ip in v6 { + aaaa.push(Tree::new(ip.to_string())); + } + base_node.push(aaaa); + } + } + + // Add subdomains under the base domain + let mut doms = res.domains.clone(); + doms.sort_by(|a, b| a.name.cmp(&b.name)); + + for d in doms { + let mut node = Tree::new(d.name); + + let mut v4 = Vec::new(); + let mut v6 = Vec::new(); + for ip in d.ips { + match ip { + IpAddr::V4(x) => v4.push(x), + IpAddr::V6(x) => v6.push(x), + } + } + + if !v4.is_empty() { + let mut a = Tree::new(tree_label("A")); + for ip in v4 { + a.push(Tree::new(ip.to_string())); + } + node.push(a); + } + if !v6.is_empty() { + let mut aaaa = Tree::new(tree_label("AAAA")); + for ip in v6 { + aaaa.push(Tree::new(ip.to_string())); + } + node.push(aaaa); + } + + base_node.push(node); + } + + root.push(base_node); + + println!("Scan report(s)"); + println!("{}", root); +} diff --git a/src/output/host.rs b/src/output/host.rs new file mode 100644 index 0000000..1a7e843 --- /dev/null +++ b/src/output/host.rs @@ -0,0 +1,79 @@ +use termtree::Tree; +use crate::output::{tree_label, ScanResult}; + +/// Print the scan report results in a tree structure. +pub fn print_report_tree(result: &ScanResult) { + let mut root = Tree::new(tree_label("Scan report(s)")); + + // Create a tree for each endpoint + for ep in &result.endpoints { + // Endpoint title + let title = if let Some(hn) = &ep.hostname { + format!("{} ({})", ep.ip, hn) + } else { + ep.ip.to_string() + }; + let mut ep_root = Tree::new(title); + + // Link-layer info + if ep.mac_addr.is_some() && !nex::net::ip::is_global_ip(&ep.ip) { + let mut mac_node = Tree::new(tree_label("link")); + if let Some(mac) = ep.mac_addr { + mac_node.push(Tree::new(tree_label(format!("mac: {}", mac)))); + } + if let Some(vendor) = &ep.vendor_name { + mac_node.push(Tree::new(tree_label(format!("vendor: {}", vendor)))); + } + ep_root.push(mac_node); + } + + // OS info + if ep.os.family.is_some() || ep.os.ttl_observed.is_some() || !ep.cpes.is_empty() { + let mut os_node = Tree::new(tree_label("os")); + if let Some(f) = &ep.os.family { + os_node.push(Tree::new(tree_label(format!("family: {}", f)))); + } + if let Some(ttl) = ep.os.ttl_observed { + os_node.push(Tree::new(tree_label(format!("TTL: {}", ttl)))); + } + if let Some(conf) = ep.os.confidence { + os_node.push(Tree::new(tree_label(format!("confidence: {:.2}", conf)))); + } + if !ep.cpes.is_empty() { + let mut cpe_node = Tree::new(tree_label("cpes")); + for c in &ep.cpes { + cpe_node.push(Tree::new(c.clone())); + } + os_node.push(cpe_node); + } + ep_root.push(os_node); + } + + // Port information + if !ep.ports.is_empty() { + for (port, pr) in &ep.ports { + let mut pnode = Tree::new(tree_label(format!("{}/{}", port.number, port.transport.as_str().to_uppercase()))); + pnode.push(Tree::new(tree_label(format!("state: {:?}", pr.state)))); + if let Some(name) = &pr.service.name { + pnode.push(Tree::new(tree_label(format!("service: {}", name)))); + } + if let Some(banner) = &pr.service.banner { + pnode.push(Tree::new(tree_label(format!("banner: {}", banner)))); + } + if let Some(prod) = &pr.service.product { + pnode.push(Tree::new(tree_label(format!("product: {}", prod)))); + } + if !pr.service.cpes.is_empty() { + let mut c = Tree::new(tree_label("cpes")); + for cp in &pr.service.cpes { + c.push(Tree::new(cp.clone())); + } + pnode.push(c); + } + ep_root.push(pnode); + } + } + root.push(ep_root); + } + println!("{}", root); +} diff --git a/src/output/interface.rs b/src/output/interface.rs new file mode 100644 index 0000000..9238132 --- /dev/null +++ b/src/output/interface.rs @@ -0,0 +1,87 @@ +use termtree::Tree; +use netdev::Interface; + +use crate::output::tree_label; + +/// Print the network interfaces in a tree structure. +pub fn print_interface_tree(ifaces: &[Interface]) { + let mut root = Tree::new(tree_label("Interfaces")); + for iface in ifaces { + let mut node = Tree::new(format!( + "{}{}", + iface.name, + if iface.default { " (default)" } else { "" } + )); + + node.push(Tree::new(format!("index: {}", iface.index))); + + if let Some(fn_name) = &iface.friendly_name { + node.push(Tree::new(format!("friendly_name: {}", fn_name))); + } + if let Some(desc) = &iface.description { + node.push(Tree::new(format!("description: {}", desc))); + } + + node.push(Tree::new(format!("type: {:?}", iface.if_type))); + node.push(Tree::new(format!("state: {:?}", iface.oper_state))); + if let Some(mac) = &iface.mac_addr { + node.push(Tree::new(format!("mac: {}", mac))); + } + if let Some(mtu) = iface.mtu { + node.push(Tree::new(format!("mtu: {}", mtu))); + } + + if !iface.ipv4.is_empty() { + let mut ipv4_tree = Tree::new(tree_label("IPv4")); + for net in &iface.ipv4 { + ipv4_tree.push(Tree::new(net.to_string())); + } + node.push(ipv4_tree); + } + + if !iface.ipv6.is_empty() { + let mut ipv6_tree = Tree::new(tree_label("IPv6")); + for (i, net) in iface.ipv6.iter().enumerate() { + let mut label = net.to_string(); + if let Some(scope) = iface.ipv6_scope_ids.get(i) { + label.push_str(&format!(" (scope_id={})", scope)); + } + ipv6_tree.push(Tree::new(label)); + } + node.push(ipv6_tree); + } + + if !iface.dns_servers.is_empty() { + let mut dns_tree = Tree::new(tree_label("DNS")); + for dns in &iface.dns_servers { + dns_tree.push(Tree::new(dns.to_string())); + } + node.push(dns_tree); + } + + if let Some(gw) = &iface.gateway { + let mut gw_node = Tree::new(tree_label("Gateway")); + // GW MAC + gw_node.push(Tree::new(format!("MAC: {}", gw.mac_addr))); + // GW IPv4/IPv6 + if !gw.ipv4.is_empty() { + let mut gw_tree = Tree::new(tree_label("IPv4")); + for ip in &gw.ipv4 { + gw_tree.push(Tree::new(ip.to_string())); + } + gw_node.push(gw_tree); + } + if !gw.ipv6.is_empty() { + let mut gw_tree = Tree::new(tree_label("IPv6")); + for ip in &gw.ipv6 { + gw_tree.push(Tree::new(ip.to_string())); + } + gw_node.push(gw_tree); + } + node.push(gw_node); + } + + root.push(node); + } + println!("{}", root); +} diff --git a/src/output/mod.rs b/src/output/mod.rs new file mode 100644 index 0000000..784b041 --- /dev/null +++ b/src/output/mod.rs @@ -0,0 +1,52 @@ +use std::time::Duration; +use nex::packet::frame::Frame; +use serde::{Deserialize, Serialize}; +use crate::endpoint::{Endpoint, EndpointResult}; + +pub mod port; +pub mod progress; +pub mod host; +pub mod ping; +pub mod trace; +pub mod nei; +pub mod domain; +pub mod interface; + +/// Convert a string into a tree label. +fn tree_label>(s: S) -> String { + s.into() +} + +/// The overall scan result containing endpoints and metadata. +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ScanResult { + pub endpoints: Vec, + pub scan_time: Duration, + pub fingerprints: Vec, +} + +impl ScanResult { + /// Construct a new, empty ScanResult. + pub fn new() -> Self { + Self { + endpoints: Vec::new(), + scan_time: Duration::new(0, 0), + fingerprints: Vec::new(), + } + } + + /// Get a list of all endpoints from the scan result. + pub fn get_endpoints(&self) -> Vec { + self.endpoints.iter().map(|e| e.to_endpoint()).collect() + } + + /// Get a list of active endpoints (those with active results). + pub fn get_active_endpoints(&self) -> Vec { + self.endpoints.iter().filter_map(|e| e.active_endpoint()).collect() + } + + /// Sort the endpoints by their IP addresses. + pub fn sort_endpoints(&mut self) { + self.endpoints.sort_by_key(|e| e.ip); + } +} diff --git a/src/output/nei.rs b/src/output/nei.rs new file mode 100644 index 0000000..e0fb348 --- /dev/null +++ b/src/output/nei.rs @@ -0,0 +1,36 @@ +use termtree::Tree; +use crate::nei::NeighborDiscoveryResult; + +/// Print the neighbor discovery results in a tree structure. +pub fn print_neighbor_tree(entries: &[NeighborDiscoveryResult]) { + if entries.is_empty() { + println!("No neighbors found."); + return; + } + + let mut root = Tree::new("Neighbors".to_string()); + + for e in entries { + let title = match &e.hostname { + Some(h) => format!("{} ({})", e.ip_addr, h), + None => format!("{}", e.ip_addr), + }; + let mut node = Tree::new(title); + + node.push(Tree::new(format!("MAC: {}", e.mac_addr.address()))); + + if let Some(vendor) = &e.vendor { + node.push(Tree::new(format!("Vendor: {}", vendor))); + } + + node.push(Tree::new(format!("Interface: {} (idx={})", e.if_name, e.if_index))); + + node.push(Tree::new(format!("Protoco: {}", e.protocol.as_str().to_uppercase()))); + + node.push(Tree::new(format!("RTT: {:.3}ms", e.rtt.as_secs_f64() * 1e3))); + + root.push(node); + } + + println!("{}", root); +} diff --git a/src/output/ping.rs b/src/output/ping.rs new file mode 100644 index 0000000..d3dd00b --- /dev/null +++ b/src/output/ping.rs @@ -0,0 +1,114 @@ +use std::time::Duration; +use netdev::MacAddr; +use termtree::Tree; + +use crate::{ping::result::PingResult, probe::ProbeStatusKind, protocol::Protocol}; + +/// Format a Duration as milliseconds with three decimal places. +fn fmt_ms(d: &Duration) -> String { + // milliseconds with three decimal places + format!("{:.3} ms", (d.as_nanos() as f64) / 1_000_000.0) +} + +/// Format a floating-point number as a percentage with one decimal place. +fn pct(loss: f64) -> String { + format!("{:.1}%", loss) +} + +/// Print the ping scan results in a tree structure. +pub fn print_ping_tree(res: &PingResult) { + let s = &res.stat; + + let title = match &res.hostname { + Some(hostname) => format!("{} ({})", res.ip_addr, hostname), + None => format!("{}", res.ip_addr), + }; + + // Packet loss rate + let sent = s.transmitted_count as f64; + let recv = s.received_count as f64; + let loss = if sent > 0.0 { ((sent - recv) / sent) * 100.0 } else { 0.0 }; + + let mut root = Tree::new(title); + + // summary + let first_res = res.first_response(); + let mut summary = Tree::new("Summary".to_string()); + if let Some(r) = first_res { + if r.mac_addr != MacAddr::zero() && !nex::net::ip::is_global_ip(&r.ip_addr) { + summary.push(Tree::new(format!("MAC: {}", r.mac_addr))); + } + } + summary.push(Tree::new(format!("IP: {}", res.ip_addr))); + if let Some(hostname) = &res.hostname { + summary.push(Tree::new(format!("Hostname: {}", hostname))); + } + summary.push(Tree::new(format!("Protocol: {}", format!("{:?}", res.protocol).to_uppercase()))); + match res.protocol { + Protocol::Icmp => {} + Protocol::Tcp => { + if let Some(port) = res.port_number { + summary.push(Tree::new(format!("Port: {}", port))); + } + } + Protocol::Udp => {} + _ => {} + } + summary.push(Tree::new(format!("Received/Sent: {}/{}", s.received_count, s.transmitted_count))); + summary.push(Tree::new(format!("Packet loss: {}", pct(loss)))); + summary.push(Tree::new(format!("Elapsed: {:?}", res.elapsed_time))); + if let Some(min) = &s.min { + let mut rtt = Tree::new("RTT".to_string()); + rtt.push(Tree::new(format!("MIN: {}", fmt_ms(min)))); + if let Some(avg) = &s.avg { rtt.push(Tree::new(format!("AVG: {}", fmt_ms(avg)))); } + if let Some(max) = &s.max { rtt.push(Tree::new(format!("MAX: {}", fmt_ms(max)))); } + summary.push(rtt); + } + root.push(summary); + + // replies + if !s.responses.is_empty() { + let mut replies = Tree::new("Replies".to_string()); + for r in &s.responses { + match r.probe_status.kind { + ProbeStatusKind::Done => { + let head = format!( + "#{} {} bytes from {}, RTT={}, TTL={}, HOP={}", + r.seq, + r.received_packet_size, + r.ip_addr, + fmt_ms(&r.rtt), + r.ttl, + r.hop + ) + .trim() + .to_string(); + + let mut node = Tree::new(head); + if let Some(port) = &r.port_number { + node.push(Tree::new(format!("Port: {}", port))); + } + if let Some(state) = &r.port_status { + node.push(Tree::new(format!("State: {}", state.as_str()))); + } + replies.push(node); + }, + _ => { + let err_head = format!( + "#{} {}: {}", + r.seq, + r.probe_status.kind.name(), + r.probe_status.message, + ) + .trim() + .to_string(); + let node = Tree::new(err_head); + replies.push(node); + }, + } + } + root.push(replies); + } + + println!("{}", root); +} diff --git a/src/output/port.rs b/src/output/port.rs new file mode 100644 index 0000000..64c4144 --- /dev/null +++ b/src/output/port.rs @@ -0,0 +1,233 @@ +use std::{collections::BTreeMap, net::IpAddr, time::{Duration, SystemTime}}; + +use nex::packet::frame::Frame; +use serde::{Deserialize, Serialize}; +use termtree::Tree; +use crate::{endpoint::{EndpointResult, Port, PortResult, PortState, ServiceInfo, TransportProtocol}, output::{tree_label, ScanResult}, service::{probe::ServiceProbe, ServiceDetectionResult}}; + +/// Results of OS probing +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct OsProbeResult { + pub endpoints: Vec, + pub probe_time: Duration, + pub fingerprints: Vec, +} + +impl OsProbeResult { + /// Construct a new, empty OsProbeResult. + pub fn new() -> Self { + Self { + endpoints: Vec::new(), + probe_time: Duration::new(0, 0), + fingerprints: Vec::new(), + } + } +} + +/// Comprehensive scan report combining various scan results. +#[derive(Serialize, Deserialize, Debug, Default)] +pub struct ScanReport { + pub meta: ReportMeta, + /// Keep IP as key for merging + #[serde(default)] + pub endpoints: BTreeMap, + #[serde(default)] + pub stats: ReportStats, +} + +/// Metadata about the scan report +#[derive(Serialize, Deserialize, Debug)] +pub struct ReportMeta { + pub tool: String, // "nrev" + pub version: String, // env!("CARGO_PKG_VERSION") + pub started_at: SystemTime, + pub finished_at: Option, +} + +impl Default for ReportMeta { + fn default() -> Self { + Self { + tool: "nrev".into(), + version: env!("CARGO_PKG_VERSION").into(), + started_at: SystemTime::now(), + finished_at: None, + } + } +} + +/// Statistics about the scan +#[derive(Serialize, Deserialize, Debug, Default)] +pub struct ReportStats { + pub hosts_total: usize, + pub ports_scanned: usize, + pub open_ports: usize, + pub duration_scan: Option, // PortScan + pub duration_service: Option, // ServiceDetect + pub duration_os: Option, // OS probe +} + +/// An attempt to probe a service on a port +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct PortProbeAttempt { + pub probe_id: ServiceProbe, + pub result: Result, +} + +impl ScanReport { + pub fn new() -> Self { Self::default() } + + /// Apply port scan results: merge endpoints, update stats + pub fn apply_port_scan(&mut self, ps: ScanResult) { + for ep in ps.endpoints { + // Upsert + self.endpoints + .entry(ep.ip) + .and_modify(|e| e.merge(ep.clone())) + .or_insert_with(|| ep); + } + self.stats.duration_scan = Some(ps.scan_time); + self.recompute_stats(); + } + + /// Apply service detection results: merge service info, update stats + pub fn apply_service_detection(&mut self, sd: ServiceDetectionResult) { + for r in sd.results { + let Some(ep) = self.endpoints.get_mut(&r.ip) else { + continue; + }; + // Upsert port result + let port_key = Port { number: r.port, transport: r.transport }; + let pr = ep.ports.entry(port_key).or_insert_with(|| PortResult { + port: port_key, + state: PortState::Open, + service: r.service_info.clone(), + rtt_ms: None, + }); + + pr.state = PortState::Open; + pr.port = port_key; + pr.service = select_better_service(pr.service.clone(), r.service_info); + } + self.stats.duration_service = Some(sd.scan_time); + self.recompute_stats(); + } + + /// Apply OS probe results: replace with the more confident one + pub fn apply_os_probe(&mut self, osr: OsProbeResult) { + for ep2 in osr.endpoints { + if let Some(ep) = self.endpoints.get_mut(&ep2.ip) { + ep.merge(ep2); + } else { + self.endpoints.insert(ep2.ip, ep2); + } + } + self.stats.duration_os = Some(osr.probe_time); + self.recompute_stats(); + } + + pub fn finish(&mut self) { + self.meta.finished_at = Some(SystemTime::now()); + let tcp_svc_db = crate::db::service::tcp_service_db(); + let udp_svc_db = crate::db::service::udp_service_db(); + // check service name. if service name is not in result, set it. + for ep in self.endpoints.values_mut() { + for (port, pr) in &mut ep.ports { + if pr.service.name.is_none() { + match port.transport { + TransportProtocol::Tcp => { + pr.service.name = tcp_svc_db.get_name(port.number).map(|s| s.to_string()); + } + TransportProtocol::Udp | TransportProtocol::Quic => { + pr.service.name = udp_svc_db.get_name(port.number).map(|s| s.to_string()); + } + } + } + } + } + } + pub fn as_vec(&self) -> Vec<&EndpointResult> { + self.endpoints.values().collect() + } + + fn recompute_stats(&mut self) { + self.stats.hosts_total = self.endpoints.len(); + let mut ports_scanned = 0usize; + let mut open_ports = 0usize; + for ep in self.endpoints.values() { + ports_scanned += ep.ports.len(); + open_ports += ep.ports.values().filter(|p| p.state == PortState::Open).count(); + } + self.stats.ports_scanned = ports_scanned; + self.stats.open_ports = open_ports; + } +} + +/// Choose the better ServiceInfo based on a simple scoring system. +fn select_better_service(cur: ServiceInfo, newv: ServiceInfo) -> ServiceInfo { + let old_score = score_service(&cur); + let new_score = score_service(&newv); + if new_score >= old_score { newv } else { cur } +} + +/// Score a ServiceInfo based on the presence of certain fields. +fn score_service(s: &ServiceInfo) -> usize { + let mut sc = 0; + if s.name.is_some() { sc += 1; } + if s.product.is_some() { sc += 1; } + if let Some(b) = &s.banner { + sc += 1; + // Check for HTTP 200 OK for additional points + if b.contains("HTTP") && b.contains("200 OK") { + sc += 1; + } + } + sc += s.cpes.len(); + sc +} + +/// Match and print OS detection results in a tree structure. +pub fn print_report_tree(rep: &ScanReport) { + let mut root = Tree::new(tree_label("Scan report(s)")); + for ep in rep.endpoints.values() { + let title = if let Some(hn) = &ep.hostname { + format!("{} ({})", ep.ip, hn) + } else { + format!("{}", ep.ip) + }; + let mut ep_root = Tree::new(title); + + // OS + if ep.os.family.is_some() || !ep.cpes.is_empty() { + let mut os_node = Tree::new(tree_label("os")); + if let Some(f) = &ep.os.family { os_node.push(Tree::new(tree_label(format!("family: {}", f)))); } + if let Some(v) = &ep.os.ttl_observed { os_node.push(Tree::new(tree_label(format!("TTL: {}", v)))); } + if !ep.cpes.is_empty() { + let mut cpe_node = Tree::new(tree_label("cpes")); + for c in &ep.cpes { cpe_node.push(Tree::new(c.clone())); } + os_node.push(cpe_node); + } + ep_root.push(os_node); + } + + // Ports + for (port, pr) in &ep.ports { + if pr.state != PortState::Open { + continue; + } + let mut pnode = Tree::new(tree_label(format!("{}/{}", port.number, port.transport.as_str().to_uppercase()))); + pnode.push(Tree::new(tree_label(format!("state: {:?}", pr.state)))); + if let Some(name) = &pr.service.name { pnode.push(Tree::new(tree_label(format!("service: {}", name)))); } + if let Some(b) = &pr.service.banner { pnode.push(Tree::new(tree_label(format!("banner: {}", b)))); } + if let Some(p) = &pr.service.product { pnode.push(Tree::new(tree_label(format!("product: {}", p)))); } + if !pr.service.cpes.is_empty() { + let mut c = Tree::new(tree_label("cpes")); + for cp in &pr.service.cpes { c.push(Tree::new(cp.clone())); } + pnode.push(c); + } + ep_root.push(pnode); + } + + root.push(ep_root); + } + println!("{}", root); +} diff --git a/src/output/progress.rs b/src/output/progress.rs new file mode 100644 index 0000000..09aa433 --- /dev/null +++ b/src/output/progress.rs @@ -0,0 +1,28 @@ +use indicatif::{ProgressState, ProgressStyle}; + +/// Get a progress bar style with a custom elapsed time formatter. +pub fn get_progress_style() -> ProgressStyle { + ProgressStyle::default_bar() + .template( + "{spinner:.green} {msg} [{elapsed_precise_subsec}] [{bar:40.cyan/blue}] {pos}/{len}", + ) + .unwrap() + .with_key("elapsed_precise_subsec", elapsed_precise_subsec) + .tick_strings(&["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏", "✓"]) + .progress_chars("#>-") +} + +/// Custom formatter for elapsed time with millisecond precision. +fn elapsed_precise_subsec( + state: &ProgressState, + writer: &mut dyn std::fmt::Write, +) { + let elapsed = state.elapsed(); + let secs = elapsed.as_secs(); + let sub_ms = elapsed.subsec_millis(); + let hours = secs / 3600; + let mins = (secs % 3600) / 60; + let s = secs % 60; + // HH:MM:SS.mmm + let _ = write!(writer, "{:02}:{:02}:{:02}.{:03}", hours, mins, s, sub_ms); +} diff --git a/src/output/trace.rs b/src/output/trace.rs new file mode 100644 index 0000000..c8c3a1d --- /dev/null +++ b/src/output/trace.rs @@ -0,0 +1,83 @@ +use std::net::IpAddr; +use netdev::MacAddr; +use termtree::Tree; + +use crate::endpoint::{Host, NodeType}; +use crate::trace::TraceResult; +use crate::probe::ProbeStatusKind; + +/// Format a Duration as HH:MM:SS.mmm +fn fmt_dur(d: std::time::Duration) -> String { + // HH:MM:SS.mmm + let s = d.as_secs(); + let ms = d.subsec_millis(); + format!("{:02}:{:02}:{:02}.{:03}", s/3600, (s%3600)/60, s%60, ms) +} + +/// Format an IP address with an optional hostname. +fn fmt_ip_host(ip: IpAddr, host: &Option) -> String { + if let Some(h) = host { + format!("{} ({})", ip, h) + } else { + ip.to_string() + } +} + +/// Print the traceroute results in a tree structure. +pub fn print_trace_tree(tr: &TraceResult, target: Host) { + if tr.nodes.is_empty() { + println!("(no hops)"); + return; + } + + // Check if the target was reached + let reached = tr.nodes.iter().any(|n| n.ip_addr == target.ip && matches!(n.probe_status.kind, ProbeStatusKind::Done)); + let mut root = if reached { + Tree::new(format!("Traceroute to {} - reached ({} hops, elapsed {})", + fmt_ip_host(target.ip, &target.hostname), tr.nodes.len(), fmt_dur(tr.elapsed_time))) + } else { + Tree::new(format!("Traceroute to {} - not reached ({} hops, elapsed {})", + fmt_ip_host(target.ip, &target.hostname), tr.nodes.len(), fmt_dur(tr.elapsed_time))) + }; + + let mut nodes = tr.nodes.clone(); + nodes.sort_by(|a, b| a.seq.cmp(&b.seq)); + + for n in nodes { + match n.probe_status.kind { + ProbeStatusKind::Done => { + let mut hop_node = Tree::new(format!( + "#{} {}", + n.seq, + fmt_ip_host(n.ip_addr, &n.host_name) + )); + + if n.mac_addr != MacAddr::zero() && n.node_type == NodeType::Gateway { + hop_node.push(Tree::new(format!("MAC: {}", n.mac_addr))); + } + hop_node.push(Tree::new(format!("RTT: {:.3}ms", n.rtt.as_secs_f64()*1000.0))); + hop_node.push(Tree::new(format!("TTL: {}", n.ttl))); + hop_node.push(Tree::new(format!("HOP: {}", n.hop))); + hop_node.push(Tree::new(format!("Type: {}", n.node_type.name()))); + + root.push(hop_node); + } + ProbeStatusKind::Timeout => { + let hop_node = Tree::new(format!( + "#{} timed out", + n.seq + )); + root.push(hop_node); + } + _ => { + let hop_node = Tree::new(format!( + "#{} unknown", + n.seq + )); + root.push(hop_node); + } + } + } + + println!("{}", root); +} diff --git a/src/packet/arp.rs b/src/packet/arp.rs index 1741ce6..207a705 100644 --- a/src/packet/arp.rs +++ b/src/packet/arp.rs @@ -1,38 +1,58 @@ -use crate::packet::setting::PacketBuildSetting; +use netdev::Interface; use nex::net::mac::MacAddr; +use nex::packet::builder::arp::ArpPacketBuilder; +use nex::packet::builder::ethernet::EthernetPacketBuilder; use nex::packet::ethernet::EtherType; -use nex::util::packet_builder::arp::ArpPacketBuilder; -use nex::util::packet_builder::builder::PacketBuilder; -use nex::util::packet_builder::ethernet::EthernetPacketBuilder; -use std::net::IpAddr; +use nex::packet::packet::Packet; +use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; /// Build ARP packet -pub fn build_arp_packet(setting: PacketBuildSetting) -> Vec { - let mut packet_builder = PacketBuilder::new(); - // Ethernet Header - let ethernet_packet_builder = EthernetPacketBuilder { - src_mac: setting.src_mac, - dst_mac: MacAddr::broadcast(), - ether_type: EtherType::Arp, +pub fn build_arp_packet(interface: &Interface, dst_ip: IpAddr) -> Vec { + let src_mac = interface.mac_addr.unwrap_or(MacAddr::zero()); + let src_ipv4 = crate::interface::get_interface_ipv4(interface).unwrap_or(Ipv4Addr::UNSPECIFIED); + let src_global_ipv6 = + crate::interface::get_interface_global_ipv6(interface).unwrap_or(Ipv6Addr::UNSPECIFIED); + let src_local_ipv6 = + crate::interface::get_interface_local_ipv6(interface).unwrap_or(Ipv6Addr::UNSPECIFIED); + + let src_ip: IpAddr = match dst_ip { + IpAddr::V4(_) => { + IpAddr::V4(src_ipv4) + }, + IpAddr::V6(_) => { + if nex::net::ip::is_global_ip(&dst_ip) { + IpAddr::V6(src_global_ipv6) + } else { + IpAddr::V6(src_local_ipv6) + } + }, }; - packet_builder.set_ethernet(ethernet_packet_builder); - match setting.src_ip { + + match src_ip { IpAddr::V4(src_ipv4) => { - match setting.dst_ip { + match dst_ip { IpAddr::V4(dst_ipv4) => { // ARP Header - let arp_packet = ArpPacketBuilder { - src_mac: setting.src_mac, - dst_mac: MacAddr::broadcast(), - src_ip: src_ipv4, - dst_ip: dst_ipv4, - }; - packet_builder.set_arp(arp_packet); + let arp_builder = ArpPacketBuilder::new(src_mac, src_ipv4, dst_ipv4) + .operation(nex::packet::arp::ArpOperation::Request); + // Ethernet Header + let eth_builder = EthernetPacketBuilder::new() + .source(src_mac) + .destination(MacAddr::broadcast()) + .ethertype(EtherType::Arp); + + let packet = eth_builder.payload(arp_builder.build().to_bytes()).build(); + + return packet.to_bytes().to_vec(); + } + IpAddr::V6(_) => { + // ARP is not used with IPv6, return empty vector + return Vec::new(); } - IpAddr::V6(_) => {} } } - IpAddr::V6(_) => {} + IpAddr::V6(_) => { + return Vec::new(); // ARP is not used with IPv6 + } } - packet_builder.packet() } diff --git a/src/packet/frame.rs b/src/packet/frame.rs deleted file mode 100644 index a577322..0000000 --- a/src/packet/frame.rs +++ /dev/null @@ -1,60 +0,0 @@ -use nex::packet::arp::ArpHeader; -use nex::packet::ethernet::EthernetHeader; -use nex::packet::frame::Frame; -use nex::packet::icmp::IcmpHeader; -use nex::packet::icmpv6::Icmpv6Header; -use nex::packet::ipv4::Ipv4Header; -use nex::packet::ipv6::Ipv6Header; -use nex::packet::tcp::TcpHeader; -use nex::packet::udp::UdpHeader; -use serde::{Deserialize, Serialize}; - -/// Packet Frame. Contains all the possible packet types -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct PacketFrame { - pub ethernet_header: Option, - pub arp_header: Option, - pub ipv4_header: Option, - pub ipv6_header: Option, - pub icmp_header: Option, - pub icmpv6_header: Option, - pub tcp_header: Option, - pub udp_header: Option, - pub payload: Vec, -} - -impl PacketFrame { - /// Constructs a new PacketFrame - pub fn new() -> PacketFrame { - PacketFrame { - ethernet_header: None, - arp_header: None, - ipv4_header: None, - ipv6_header: None, - icmp_header: None, - icmpv6_header: None, - tcp_header: None, - udp_header: None, - payload: vec![], - } - } - pub fn from_nex_frame(frame: &Frame) -> PacketFrame { - let mut packet_frame = PacketFrame::new(); - if let Some(datalink) = &frame.datalink { - packet_frame.ethernet_header = datalink.ethernet.clone(); - packet_frame.arp_header = datalink.arp.clone(); - } - if let Some(ip) = &frame.ip { - packet_frame.ipv4_header = ip.ipv4.clone(); - packet_frame.ipv6_header = ip.ipv6.clone(); - packet_frame.icmp_header = ip.icmp.clone(); - packet_frame.icmpv6_header = ip.icmpv6.clone(); - } - if let Some(transport) = &frame.transport { - packet_frame.tcp_header = transport.tcp.clone(); - packet_frame.udp_header = transport.udp.clone(); - } - packet_frame.payload = frame.payload.clone(); - packet_frame - } -} diff --git a/src/packet/icmp.rs b/src/packet/icmp.rs index b3355f7..9b21f8d 100644 --- a/src/packet/icmp.rs +++ b/src/packet/icmp.rs @@ -1,249 +1,104 @@ +use bytes::Bytes; +use netdev::{Interface, MacAddr}; +use nex::packet::builder::ethernet::EthernetPacketBuilder; +use nex::packet::builder::icmp::IcmpPacketBuilder; +use nex::packet::builder::icmpv6::Icmpv6PacketBuilder; +use nex::packet::builder::ipv4::Ipv4PacketBuilder; +use nex::packet::builder::ipv6::Ipv6PacketBuilder; use nex::packet::ethernet::EtherType; +use nex::packet::icmp; use nex::packet::icmp::IcmpType; +use nex::packet::icmpv6; use nex::packet::icmpv6::Icmpv6Type; -use nex::packet::ip::IpNextLevelProtocol; -use nex::util::packet_builder::builder::PacketBuilder; -use nex::util::packet_builder::ethernet::EthernetPacketBuilder; -use nex::util::packet_builder::icmp::IcmpPacketBuilder; -use nex::util::packet_builder::icmpv6::Icmpv6PacketBuilder; -use nex::util::packet_builder::ipv4::Ipv4PacketBuilder; -use nex::util::packet_builder::ipv6::Ipv6PacketBuilder; -use std::net::IpAddr; - -use crate::fp::setting::FingerprintType; -use crate::packet::setting::PacketBuildSetting; +use nex::packet::ip::IpNextProtocol; +use nex::packet::ipv4::Ipv4Flags; +use nex::packet::packet::Packet; +use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; /// Build ICMP packet. Supports both ICMPv4 and ICMPv6 -pub fn build_icmp_packet(setting: PacketBuildSetting) -> Vec { - let mut packet_builder = PacketBuilder::new(); - - // Ethernet Header - let ethernet_packet_builder = EthernetPacketBuilder { - src_mac: setting.src_mac, - dst_mac: setting.dst_mac, - ether_type: match setting.dst_ip { - IpAddr::V4(_) => EtherType::Ipv4, - IpAddr::V6(_) => EtherType::Ipv6, - }, +pub fn build_icmp_packet(interface: &Interface, dst_ip: IpAddr, is_ip_packet: bool) -> Vec { + let src_mac = interface.mac_addr.unwrap_or(MacAddr::zero()); + let dst_mac = match &interface.gateway { + Some(gateway) => gateway.mac_addr, + None => MacAddr::zero(), }; - packet_builder.set_ethernet(ethernet_packet_builder); + let src_ipv4 = crate::interface::get_interface_ipv4(interface).unwrap_or(Ipv4Addr::UNSPECIFIED); + let src_global_ipv6 = + crate::interface::get_interface_global_ipv6(interface).unwrap_or(Ipv6Addr::UNSPECIFIED); + let src_local_ipv6 = + crate::interface::get_interface_local_ipv6(interface).unwrap_or(Ipv6Addr::UNSPECIFIED); - // IP Header - match setting.dst_ip { - IpAddr::V4(dst_ipv4) => match setting.src_ip { - IpAddr::V4(src_ipv4) => { - let mut ipv4_packet_builder = - Ipv4PacketBuilder::new(src_ipv4, dst_ipv4, IpNextLevelProtocol::Icmp); - ipv4_packet_builder.ttl = Some(setting.hop_limit); - packet_builder.set_ipv4(ipv4_packet_builder); - } - IpAddr::V6(_) => {} - }, - IpAddr::V6(dst_ipv6) => match setting.src_ip { - IpAddr::V4(_) => {} - IpAddr::V6(src_ipv4) => { - let mut ipv6_packet_builder = - Ipv6PacketBuilder::new(src_ipv4, dst_ipv6, IpNextLevelProtocol::Icmpv6); - ipv6_packet_builder.hop_limit = Some(setting.hop_limit); - packet_builder.set_ipv6(ipv6_packet_builder); + let src_ip: IpAddr = match dst_ip { + IpAddr::V4(_) => { + IpAddr::V4(src_ipv4) + }, + IpAddr::V6(_) => { + if nex::net::ip::is_global_ip(&dst_ip) { + IpAddr::V6(src_global_ipv6) + } else { + IpAddr::V6(src_local_ipv6) } }, - } - // ICMP Header - match setting.dst_ip { - IpAddr::V4(dst_ipv4) => match setting.src_ip { - IpAddr::V4(src_ipv4) => { - let mut icmp_packet_builder = IcmpPacketBuilder::new(src_ipv4, dst_ipv4); - icmp_packet_builder.icmp_type = IcmpType::EchoRequest; - packet_builder.set_icmp(icmp_packet_builder); - } - IpAddr::V6(_) => {} - }, - IpAddr::V6(dst_ipv6) => match setting.src_ip { - IpAddr::V4(_) => {} - IpAddr::V6(src_ipv6) => { - let mut icmpv6_packet_builder = Icmpv6PacketBuilder::new(src_ipv6, dst_ipv6); - icmpv6_packet_builder.icmpv6_type = Icmpv6Type::EchoRequest; - packet_builder.set_icmpv6(icmpv6_packet_builder); - } - }, - } - if setting.ip_packet { - packet_builder.ip_packet() - } else { - packet_builder.packet() - } -} - -/// Build ICMP probe packet. Supports both ICMPv4 and ICMPv6 -pub fn build_icmp_probe_packet( - setting: PacketBuildSetting, - probe_type: FingerprintType, -) -> Vec { - let mut packet_builder = PacketBuilder::new(); - - // Ethernet Header - let ethernet_packet_builder = EthernetPacketBuilder { - src_mac: setting.src_mac, - dst_mac: setting.dst_mac, - ether_type: match setting.dst_ip { - IpAddr::V4(_) => EtherType::Ipv4, - IpAddr::V6(_) => EtherType::Ipv6, - }, }; - packet_builder.set_ethernet(ethernet_packet_builder); - // IP Header - match setting.dst_ip { - IpAddr::V4(dst_ipv4) => match setting.src_ip { - IpAddr::V4(src_ipv4) => { - let mut ipv4_packet_builder = - Ipv4PacketBuilder::new(src_ipv4, dst_ipv4, IpNextLevelProtocol::Icmp); - ipv4_packet_builder.ttl = Some(setting.hop_limit); - packet_builder.set_ipv4(ipv4_packet_builder); - } - IpAddr::V6(_) => {} - }, - IpAddr::V6(dst_ipv6) => match setting.src_ip { - IpAddr::V4(_) => {} - IpAddr::V6(src_ipv4) => { - let mut ipv6_packet_builder = - Ipv6PacketBuilder::new(src_ipv4, dst_ipv6, IpNextLevelProtocol::Icmpv6); - ipv6_packet_builder.hop_limit = Some(setting.hop_limit); - packet_builder.set_ipv6(ipv6_packet_builder); - } - }, - } - // ICMP Header - match setting.dst_ip { - IpAddr::V4(dst_ipv4) => match setting.src_ip { - IpAddr::V4(src_ipv4) => { - let mut icmp_packet_builder = IcmpPacketBuilder::new(src_ipv4, dst_ipv4); - match probe_type { - FingerprintType::IcmpEcho => { - icmp_packet_builder.icmp_type = IcmpType::EchoRequest; - } - FingerprintType::IcmpTimestamp => { - icmp_packet_builder.icmp_type = IcmpType::TimestampRequest; - } - FingerprintType::IcmpAddressMask => { - icmp_packet_builder.icmp_type = IcmpType::AddressMaskRequest; - } - FingerprintType::IcmpInformation => { - icmp_packet_builder.icmp_type = IcmpType::InformationRequest; - } - _ => { - icmp_packet_builder.icmp_type = IcmpType::EchoRequest; - } - } - packet_builder.set_icmp(icmp_packet_builder); - } - IpAddr::V6(_) => {} - }, - IpAddr::V6(dst_ipv6) => match setting.src_ip { - IpAddr::V4(_) => {} - IpAddr::V6(src_ipv6) => { - let mut icmpv6_packet_builder = Icmpv6PacketBuilder::new(src_ipv6, dst_ipv6); - icmpv6_packet_builder.icmpv6_type = Icmpv6Type::EchoRequest; - packet_builder.set_icmpv6(icmpv6_packet_builder); - } - }, - } - if setting.ip_packet { - packet_builder.ip_packet() - } else { - packet_builder.packet() - } -} - -pub fn build_ip_next_icmp_packet(setting: PacketBuildSetting) -> Vec { - // ICMP Header - match setting.dst_ip { - IpAddr::V4(dst_ipv4) => match setting.src_ip { - IpAddr::V4(src_ipv4) => { - let mut icmp_packet_builder = IcmpPacketBuilder::new(src_ipv4, dst_ipv4); - icmp_packet_builder.icmp_type = IcmpType::EchoRequest; - icmp_packet_builder.build() - } - IpAddr::V6(_) => Vec::new(), - }, - IpAddr::V6(dst_ipv6) => match setting.src_ip { - IpAddr::V4(_) => Vec::new(), - IpAddr::V6(src_ipv6) => { - let mut icmpv6_packet_builder = Icmpv6PacketBuilder::new(src_ipv6, dst_ipv6); - icmpv6_packet_builder.icmpv6_type = Icmpv6Type::EchoRequest; - icmpv6_packet_builder.build() - } - }, - } -} + let icmp_packet: Bytes = match (src_ip, dst_ip) { + (IpAddr::V4(src), IpAddr::V4(dst)) => IcmpPacketBuilder::new(src, dst) + .icmp_type(IcmpType::EchoRequest) + .icmp_code(icmp::echo_request::IcmpCodes::NoCode) + .echo_fields(0x1234, 0x1) + .payload(Bytes::from_static(b"hello")) + .build() + .to_bytes(), + (IpAddr::V6(src), IpAddr::V6(dst)) => Icmpv6PacketBuilder::new(src, dst) + .icmpv6_type(Icmpv6Type::EchoRequest) + .icmpv6_code(icmpv6::echo_request::Icmpv6Codes::NoCode) + .echo_fields(0x1234, 0x1) + .payload(Bytes::from_static(b"hello")) + .build() + .to_bytes(), + _ => panic!("Source and destination IP version mismatch"), + }; -/// Build ICMP trace packet -pub fn build_icmp_trace_packet(setting: PacketBuildSetting, hop_limit: Option) -> Vec { - let mut packet_builder = PacketBuilder::new(); + let ip_packet = match (src_ip, dst_ip) { + (IpAddr::V4(src), IpAddr::V4(dst)) => Ipv4PacketBuilder::new() + .source(src) + .destination(dst) + .protocol(IpNextProtocol::Icmp) + .flags(Ipv4Flags::DontFragment) + .payload(icmp_packet) + .build() + .to_bytes(), + (IpAddr::V6(src), IpAddr::V6(dst)) => Ipv6PacketBuilder::new() + .source(src) + .destination(dst) + .next_header(IpNextProtocol::Icmpv6) + .payload(icmp_packet) + .build() + .to_bytes(), + _ => unreachable!(), + }; - // Ethernet Header - let ethernet_packet_builder = EthernetPacketBuilder { - src_mac: setting.src_mac, - dst_mac: setting.dst_mac, - ether_type: match setting.dst_ip { + let ethernet_packet = EthernetPacketBuilder::new() + .source(if is_ip_packet { + MacAddr::zero() + } else { + src_mac + }) + .destination(if is_ip_packet { + MacAddr::zero() + } else { + dst_mac + }) + .ethertype(match dst_ip { IpAddr::V4(_) => EtherType::Ipv4, IpAddr::V6(_) => EtherType::Ipv6, - }, - }; - packet_builder.set_ethernet(ethernet_packet_builder); + }) + .payload(ip_packet) + .build(); - // IP Header - match setting.dst_ip { - IpAddr::V4(dst_ipv4) => match setting.src_ip { - IpAddr::V4(src_ipv4) => { - let mut ipv4_packet_builder = - Ipv4PacketBuilder::new(src_ipv4, dst_ipv4, IpNextLevelProtocol::Icmp); - if let Some(hoplimit) = hop_limit { - ipv4_packet_builder.ttl = Some(hoplimit); - } else { - ipv4_packet_builder.ttl = Some(setting.hop_limit); - } - packet_builder.set_ipv4(ipv4_packet_builder); - } - IpAddr::V6(_) => {} - }, - IpAddr::V6(dst_ipv6) => match setting.src_ip { - IpAddr::V4(_) => {} - IpAddr::V6(src_ipv4) => { - let mut ipv6_packet_builder = - Ipv6PacketBuilder::new(src_ipv4, dst_ipv6, IpNextLevelProtocol::Icmpv6); - if let Some(hoplimit) = hop_limit { - ipv6_packet_builder.hop_limit = Some(hoplimit); - } else { - ipv6_packet_builder.hop_limit = Some(setting.hop_limit); - } - packet_builder.set_ipv6(ipv6_packet_builder); - } - }, - } - // ICMP Header - match setting.dst_ip { - IpAddr::V4(dst_ipv4) => match setting.src_ip { - IpAddr::V4(src_ipv4) => { - let mut icmp_packet_builder = IcmpPacketBuilder::new(src_ipv4, dst_ipv4); - icmp_packet_builder.icmp_type = IcmpType::EchoRequest; - packet_builder.set_icmp(icmp_packet_builder); - } - IpAddr::V6(_) => {} - }, - IpAddr::V6(dst_ipv6) => match setting.src_ip { - IpAddr::V4(_) => {} - IpAddr::V6(src_ipv6) => { - let mut icmpv6_packet_builder = Icmpv6PacketBuilder::new(src_ipv6, dst_ipv6); - icmpv6_packet_builder.icmpv6_type = Icmpv6Type::EchoRequest; - packet_builder.set_icmpv6(icmpv6_packet_builder); - } - }, - } - if setting.ip_packet { - packet_builder.ip_packet() + if is_ip_packet { + ethernet_packet.ip_packet().unwrap().to_vec() } else { - packet_builder.packet() + ethernet_packet.to_bytes().to_vec() } } diff --git a/src/packet/mod.rs b/src/packet/mod.rs index 16aa7c7..d0ff892 100644 --- a/src/packet/mod.rs +++ b/src/packet/mod.rs @@ -1,7 +1,5 @@ -pub mod arp; -pub mod frame; -pub mod icmp; -pub mod ndp; -pub mod setting; pub mod tcp; pub mod udp; +pub mod icmp; +pub mod arp; +pub mod ndp; diff --git a/src/packet/ndp.rs b/src/packet/ndp.rs index 67189d7..94574f1 100644 --- a/src/packet/ndp.rs +++ b/src/packet/ndp.rs @@ -1,45 +1,73 @@ -use crate::packet::setting::PacketBuildSetting; +use netdev::Interface; use nex::net::mac::MacAddr; +use nex::packet::builder::ethernet::EthernetPacketBuilder; +use nex::packet::builder::ipv6::Ipv6PacketBuilder; +use nex::packet::builder::ndp::NdpPacketBuilder; use nex::packet::ethernet::EtherType; -use nex::packet::ethernet::MAC_ADDR_LEN; -use nex::packet::icmpv6::ndp::{NDP_OPT_PACKET_LEN, NDP_SOL_PACKET_LEN}; -use nex::packet::ip::IpNextLevelProtocol; -use nex::util::packet_builder::builder::PacketBuilder; -use nex::util::packet_builder::ethernet::EthernetPacketBuilder; -use nex::util::packet_builder::ipv6::Ipv6PacketBuilder; -use nex::util::packet_builder::ndp::NdpPacketBuilder; -use std::net::IpAddr; +use nex::packet::ip::IpNextProtocol; +use nex::packet::packet::Packet; +use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + +/// Compute multicast MAC address from solicited-node multicast IPv6 address +fn ipv6_multicast_mac(ipv6: &Ipv6Addr) -> MacAddr { + let segments = ipv6.segments(); + MacAddr::new( + 0x33, + 0x33, + ((segments[6] >> 8) & 0xff) as u8, + (segments[6] & 0xff) as u8, + ((segments[7] >> 8) & 0xff) as u8, + (segments[7] & 0xff) as u8, + ) +} /// Build NDP packet -pub fn build_ndp_packet(setting: PacketBuildSetting) -> Vec { - let mut packet_builder = PacketBuilder::new(); - let ethernet_packet_builder = EthernetPacketBuilder { - src_mac: setting.src_mac, - dst_mac: MacAddr::broadcast(), - ether_type: EtherType::Ipv6, - }; - packet_builder.set_ethernet(ethernet_packet_builder); +pub fn build_ndp_packet(interface: &Interface, dst_ip: IpAddr) -> Vec { + let src_mac = interface.mac_addr.unwrap_or(MacAddr::zero()); + let src_ipv4 = crate::interface::get_interface_ipv4(interface).unwrap_or(Ipv4Addr::UNSPECIFIED); + let src_global_ipv6 = + crate::interface::get_interface_global_ipv6(interface).unwrap_or(Ipv6Addr::UNSPECIFIED); + let src_local_ipv6 = + crate::interface::get_interface_local_ipv6(interface).unwrap_or(Ipv6Addr::UNSPECIFIED); - match setting.src_ip { - IpAddr::V4(_) => {} - IpAddr::V6(src_ipv6) => { - match setting.dst_ip { - IpAddr::V4(_) => {} - IpAddr::V6(dst_ipv6) => { - // IPv6 Header - let mut ipv6_packet_builder = - Ipv6PacketBuilder::new(src_ipv6, dst_ipv6, IpNextLevelProtocol::Icmpv6); - ipv6_packet_builder.payload_length = - Some((NDP_SOL_PACKET_LEN + NDP_OPT_PACKET_LEN + MAC_ADDR_LEN) as u16); - ipv6_packet_builder.hop_limit = Some(u8::MAX); - packet_builder.set_ipv6(ipv6_packet_builder); - // NDP Header - let ndp_packet_builder = - NdpPacketBuilder::new(setting.src_mac, src_ipv6, dst_ipv6); - packet_builder.set_ndp(ndp_packet_builder); - } + let src_ip: IpAddr = match dst_ip { + IpAddr::V4(_) => { + IpAddr::V4(src_ipv4) + }, + IpAddr::V6(_) => { + if nex::net::ip::is_global_ip(&dst_ip) { + IpAddr::V6(src_global_ipv6) + } else { + IpAddr::V6(src_local_ipv6) } + }, + }; + // Build NDP packet + //let ndp_payload_len = (NDP_SOL_PACKET_LEN + NDP_OPT_PACKET_LEN + MAC_ADDR_LEN) as u16; + match (src_ip, dst_ip) { + (IpAddr::V4(_), IpAddr::V4(_)) => { + panic!("NDP is not used with IPv4 addresses"); + } + (IpAddr::V6(src), IpAddr::V6(dst)) => { + let ipv6 = Ipv6PacketBuilder::new() + .source(src) + .destination(dst) + .next_header(IpNextProtocol::Icmpv6) + .hop_limit(255); + + let dst_mac = ipv6_multicast_mac(&dst); + + let ndp = NdpPacketBuilder::new(src_mac, src, dst); + + let ethernet = EthernetPacketBuilder::new() + .source(src_mac) + .destination(dst_mac) + .ethertype(EtherType::Ipv6) + .payload(ipv6.payload(ndp.build().to_bytes()).build().to_bytes()); + + let packet = ethernet.build().to_bytes(); + packet.to_vec() } + _ => panic!("Source and destination IP versions must match"), } - packet_builder.packet() } diff --git a/src/packet/setting.rs b/src/packet/setting.rs deleted file mode 100644 index f5957b6..0000000 --- a/src/packet/setting.rs +++ /dev/null @@ -1,170 +0,0 @@ -use crate::{ - config::DEFAULT_LOCAL_UDP_PORT, neighbor::setting::AddressResolveSetting, - ping::setting::PingSetting, trace::setting::TraceSetting, -}; -use netdev::mac::MacAddr; -use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; - -#[derive(Clone, Debug)] -pub struct PacketBuildSetting { - pub src_mac: MacAddr, - pub dst_mac: MacAddr, - pub src_ip: IpAddr, - pub dst_ip: IpAddr, - pub src_port: u16, - pub dst_port: u16, - pub hop_limit: u8, - pub payload: Vec, - pub ip_packet: bool, -} - -impl PacketBuildSetting { - pub fn new() -> Self { - Self { - src_mac: MacAddr::zero(), - dst_mac: MacAddr::zero(), - src_ip: IpAddr::V4(Ipv4Addr::LOCALHOST), - dst_ip: IpAddr::V4(Ipv4Addr::LOCALHOST), - src_port: 0, - dst_port: 0, - hop_limit: 64, - payload: Vec::new(), - ip_packet: false, - } - } - pub fn from_ping_setting(ping_setting: &PingSetting) -> Self { - match crate::interface::get_interface_by_index(ping_setting.if_index) { - Some(interface) => { - let dst_mac = match &interface.gateway { - Some(gateway) => gateway.mac_addr, - None => MacAddr::zero(), - }; - let src_ip = match ping_setting.dst_ip { - IpAddr::V4(_) => crate::interface::get_interface_ipv4(&interface) - .unwrap_or(IpAddr::V4(Ipv4Addr::LOCALHOST)), - IpAddr::V6(ipv6_addr) => { - if nex::net::ip::is_global_ipv6(&ipv6_addr) { - crate::interface::get_interface_global_ipv6(&interface) - .unwrap_or(IpAddr::V6(Ipv6Addr::LOCALHOST)) - } else { - crate::interface::get_interface_local_ipv6(&interface) - .unwrap_or(IpAddr::V6(Ipv6Addr::LOCALHOST)) - } - } - }; - Self { - src_mac: interface.mac_addr.unwrap_or(MacAddr::zero()), - dst_mac: dst_mac, - src_ip: src_ip, - dst_ip: ping_setting.dst_ip, - src_port: DEFAULT_LOCAL_UDP_PORT, - dst_port: ping_setting.dst_port.unwrap_or(0), - hop_limit: ping_setting.hop_limit, - payload: Vec::new(), - ip_packet: interface.is_tun() || interface.is_loopback(), - } - } - None => Self { - src_mac: MacAddr::zero(), - dst_mac: MacAddr::zero(), - src_ip: ping_setting.dst_ip, - dst_ip: ping_setting.dst_ip, - src_port: 0, - dst_port: 0, - hop_limit: ping_setting.hop_limit, - payload: Vec::new(), - ip_packet: false, - }, - } - } - pub fn from_trace_setting(ping_setting: &TraceSetting, seq_ttl: u8) -> Self { - match crate::interface::get_interface_by_index(ping_setting.if_index) { - Some(interface) => { - let dst_mac = match &interface.gateway { - Some(gateway) => gateway.mac_addr, - None => MacAddr::zero(), - }; - let src_ip = match ping_setting.dst_ip { - IpAddr::V4(_) => crate::interface::get_interface_ipv4(&interface) - .unwrap_or(IpAddr::V4(Ipv4Addr::LOCALHOST)), - IpAddr::V6(ipv6_addr) => { - if nex::net::ip::is_global_ipv6(&ipv6_addr) { - crate::interface::get_interface_global_ipv6(&interface) - .unwrap_or(IpAddr::V6(Ipv6Addr::LOCALHOST)) - } else { - crate::interface::get_interface_local_ipv6(&interface) - .unwrap_or(IpAddr::V6(Ipv6Addr::LOCALHOST)) - } - } - }; - Self { - src_mac: interface.mac_addr.unwrap_or(MacAddr::zero()), - dst_mac: dst_mac, - src_ip: src_ip, - dst_ip: ping_setting.dst_ip, - src_port: DEFAULT_LOCAL_UDP_PORT, - dst_port: ping_setting.dst_port, - hop_limit: seq_ttl, - payload: Vec::new(), - ip_packet: interface.is_tun() || interface.is_loopback(), - } - } - None => Self { - src_mac: MacAddr::zero(), - dst_mac: MacAddr::zero(), - src_ip: ping_setting.dst_ip, - dst_ip: ping_setting.dst_ip, - src_port: 0, - dst_port: 0, - hop_limit: seq_ttl, - payload: Vec::new(), - ip_packet: false, - }, - } - } - pub fn from_address_resolve_settomg(resolve_setting: &AddressResolveSetting) -> Self { - match crate::interface::get_interface_by_index(resolve_setting.if_index) { - Some(interface) => { - let dst_mac = match &interface.gateway { - Some(gateway) => gateway.mac_addr, - None => MacAddr::zero(), - }; - let src_ip = match resolve_setting.dst_ip { - IpAddr::V4(_) => crate::interface::get_interface_ipv4(&interface) - .unwrap_or(IpAddr::V4(Ipv4Addr::LOCALHOST)), - IpAddr::V6(ipv6_addr) => { - if nex::net::ip::is_global_ipv6(&ipv6_addr) { - crate::interface::get_interface_global_ipv6(&interface) - .unwrap_or(IpAddr::V6(Ipv6Addr::LOCALHOST)) - } else { - crate::interface::get_interface_local_ipv6(&interface) - .unwrap_or(IpAddr::V6(Ipv6Addr::LOCALHOST)) - } - } - }; - Self { - src_mac: interface.mac_addr.unwrap_or(MacAddr::zero()), - dst_mac: dst_mac, - src_ip: src_ip, - dst_ip: resolve_setting.dst_ip, - src_port: DEFAULT_LOCAL_UDP_PORT, - dst_port: 0, - hop_limit: 64, - payload: Vec::new(), - ip_packet: interface.is_tun() || interface.is_loopback(), - } - } - None => Self { - src_mac: MacAddr::zero(), - dst_mac: MacAddr::zero(), - src_ip: resolve_setting.dst_ip, - dst_ip: resolve_setting.dst_ip, - src_port: 0, - dst_port: 0, - hop_limit: 64, - payload: Vec::new(), - ip_packet: false, - }, - } - } -} diff --git a/src/packet/tcp.rs b/src/packet/tcp.rs index c68c7a2..4b58613 100644 --- a/src/packet/tcp.rs +++ b/src/packet/tcp.rs @@ -1,140 +1,107 @@ -use crate::packet::setting::PacketBuildSetting; -use nex::packet::ethernet::EtherType; -use nex::packet::ip::IpNextLevelProtocol; -use nex::packet::tcp::{TcpFlags, TcpOption}; -use nex::util::packet_builder::{ - builder::PacketBuilder, ethernet::EthernetPacketBuilder, ipv4::Ipv4PacketBuilder, - ipv6::Ipv6PacketBuilder, tcp::TcpPacketBuilder, +use bytes::Bytes; +use netdev::{Interface, MacAddr}; +use nex::packet::builder::{ + ethernet::EthernetPacketBuilder, ipv4::Ipv4PacketBuilder, ipv6::Ipv6PacketBuilder, + tcp::TcpPacketBuilder, }; -use std::net::{IpAddr, SocketAddr}; +use nex::packet::ethernet::EtherType; +use nex::packet::ip::IpNextProtocol; +use nex::packet::ipv4::Ipv4Flags; +use nex::packet::packet::Packet; +use nex::packet::tcp::{TcpFlags, TcpOptionPacket}; +use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + +use crate::config::default::DEFAULT_LOCAL_TCP_PORT; /// Build TCP SYN packet with default options -pub fn build_tcp_syn_packet(setting: PacketBuildSetting) -> Vec { - let mut packet_builder = PacketBuilder::new(); - let ethernet_packet_builder = EthernetPacketBuilder { - src_mac: setting.src_mac, - dst_mac: setting.dst_mac, - ether_type: match setting.dst_ip { - IpAddr::V4(_) => EtherType::Ipv4, - IpAddr::V6(_) => EtherType::Ipv6, - }, +pub fn build_tcp_syn_packet( + interface: &Interface, + dst_ip: IpAddr, + dst_port: u16, + is_ip_packet: bool +) -> Vec { + let src_mac = interface.mac_addr.unwrap_or(MacAddr::zero()); + let dst_mac = match &interface.gateway { + Some(gateway) => gateway.mac_addr, + None => MacAddr::zero(), }; - packet_builder.set_ethernet(ethernet_packet_builder); - match setting.src_ip { - IpAddr::V4(src_ipv4) => match setting.dst_ip { - IpAddr::V4(dst_ipv4) => { - let mut ipv4_packet_builder = - Ipv4PacketBuilder::new(src_ipv4, dst_ipv4, IpNextLevelProtocol::Tcp); - ipv4_packet_builder.total_length = Some(64); - ipv4_packet_builder.ttl = Some(setting.hop_limit); - packet_builder.set_ipv4(ipv4_packet_builder); - } - IpAddr::V6(_) => {} + let src_ipv4 = crate::interface::get_interface_ipv4(interface).unwrap_or(Ipv4Addr::UNSPECIFIED); + let src_global_ipv6 = + crate::interface::get_interface_global_ipv6(interface).unwrap_or(Ipv6Addr::UNSPECIFIED); + let src_local_ipv6 = + crate::interface::get_interface_local_ipv6(interface).unwrap_or(Ipv6Addr::UNSPECIFIED); + + let src_ip: IpAddr = match dst_ip { + IpAddr::V4(_) => { + IpAddr::V4(src_ipv4) }, - IpAddr::V6(src_ipv6) => match setting.dst_ip { - IpAddr::V4(_) => {} - IpAddr::V6(dst_ipv6) => { - let mut ipv6_packet_builder = - Ipv6PacketBuilder::new(src_ipv6, dst_ipv6, IpNextLevelProtocol::Tcp); - ipv6_packet_builder.payload_length = Some(44); - ipv6_packet_builder.hop_limit = Some(setting.hop_limit); - packet_builder.set_ipv6(ipv6_packet_builder); + IpAddr::V6(_) => { + if nex::net::ip::is_global_ip(&dst_ip) { + IpAddr::V6(src_global_ipv6) + } else { + IpAddr::V6(src_local_ipv6) } }, - } - let mut tcp_packet_builder = TcpPacketBuilder::new( - SocketAddr::new(setting.src_ip, setting.src_port), - SocketAddr::new(setting.dst_ip, setting.dst_port), - ); - tcp_packet_builder.flags = TcpFlags::SYN; - tcp_packet_builder.window = 65535; - tcp_packet_builder.options = vec![ - TcpOption::mss(1460), - TcpOption::nop(), - TcpOption::wscale(6), - TcpOption::nop(), - TcpOption::nop(), - TcpOption::timestamp(u32::MAX, u32::MIN), - TcpOption::sack_perm(), - ]; - packet_builder.set_tcp(tcp_packet_builder); + }; - if setting.ip_packet { - packet_builder.ip_packet() - } else { - packet_builder.packet() - } -} + // Packet builder for TCP SYN + let tcp_packet = TcpPacketBuilder::new(src_ip, dst_ip) + .source(DEFAULT_LOCAL_TCP_PORT) + .destination(dst_port) + .flags(TcpFlags::SYN) + .window(65535) + .options(vec![ + TcpOptionPacket::mss(1460), + TcpOptionPacket::nop(), + TcpOptionPacket::wscale(6), + TcpOptionPacket::nop(), + TcpOptionPacket::nop(), + TcpOptionPacket::timestamp(u32::MAX, u32::MIN), + TcpOptionPacket::sack_perm(), + ]) + .build(); -/// Build TCP SYN packet with minimum options -pub fn build_tcp_syn_packet_min(setting: PacketBuildSetting) -> Vec { - let mut packet_builder = PacketBuilder::new(); - let ethernet_packet_builder = EthernetPacketBuilder { - src_mac: setting.src_mac, - dst_mac: setting.dst_mac, - ether_type: match setting.dst_ip { + let ip_packet = match (src_ip, dst_ip) { + (IpAddr::V4(src), IpAddr::V4(dst)) => Ipv4PacketBuilder::new() + .source(src) + .destination(dst) + .protocol(IpNextProtocol::Tcp) + .flags(Ipv4Flags::DontFragment) + .payload(tcp_packet.to_bytes()) + .build() + .to_bytes(), + (IpAddr::V6(src), IpAddr::V6(dst)) => Ipv6PacketBuilder::new() + .source(src) + .destination(dst) + .next_header(IpNextProtocol::Tcp) + .payload(tcp_packet.to_bytes()) + .build() + .to_bytes(), + _ => unreachable!(), + }; + + let ethernet_packet = EthernetPacketBuilder::new() + .source(if is_ip_packet { + MacAddr::zero() + } else { + src_mac + }) + .destination(if is_ip_packet { + MacAddr::zero() + } else { + dst_mac + }) + .ethertype(match dst_ip { IpAddr::V4(_) => EtherType::Ipv4, IpAddr::V6(_) => EtherType::Ipv6, - }, - }; - packet_builder.set_ethernet(ethernet_packet_builder); - match setting.src_ip { - IpAddr::V4(src_ipv4) => match setting.dst_ip { - IpAddr::V4(dst_ipv4) => { - let mut ipv4_packet_builder = - Ipv4PacketBuilder::new(src_ipv4, dst_ipv4, IpNextLevelProtocol::Tcp); - ipv4_packet_builder.ttl = Some(setting.hop_limit); - packet_builder.set_ipv4(ipv4_packet_builder); - } - IpAddr::V6(_) => {} - }, - IpAddr::V6(src_ipv6) => match setting.dst_ip { - IpAddr::V4(_) => {} - IpAddr::V6(dst_ipv6) => { - let mut ipv6_packet_builder = - Ipv6PacketBuilder::new(src_ipv6, dst_ipv6, IpNextLevelProtocol::Tcp); - ipv6_packet_builder.hop_limit = Some(setting.hop_limit); - packet_builder.set_ipv6(ipv6_packet_builder); - } - }, - } - let mut tcp_packet_builder = TcpPacketBuilder::new( - SocketAddr::new(setting.src_ip, setting.src_port), - SocketAddr::new(setting.dst_ip, setting.dst_port), - ); - tcp_packet_builder.flags = TcpFlags::SYN; - tcp_packet_builder.window = 65535; - tcp_packet_builder.options = vec![ - TcpOption::mss(1460), - TcpOption::sack_perm(), - TcpOption::nop(), - TcpOption::nop(), - TcpOption::wscale(7), - ]; - packet_builder.set_tcp(tcp_packet_builder); + }) + .payload(ip_packet) + .build(); - if setting.ip_packet { - packet_builder.ip_packet() + let packet: Bytes = if is_ip_packet { + ethernet_packet.ip_packet().unwrap() } else { - packet_builder.packet() - } -} - -pub fn build_ip_next_tcp_syn_packet(setting: PacketBuildSetting) -> Vec { - let mut tcp_packet_builder = TcpPacketBuilder::new( - SocketAddr::new(setting.src_ip, setting.src_port), - SocketAddr::new(setting.dst_ip, setting.dst_port), - ); - tcp_packet_builder.flags = TcpFlags::SYN; - tcp_packet_builder.window = 65535; - tcp_packet_builder.options = vec![ - TcpOption::mss(1460), - TcpOption::nop(), - TcpOption::wscale(6), - TcpOption::nop(), - TcpOption::nop(), - TcpOption::timestamp(u32::MAX, u32::MIN), - TcpOption::sack_perm(), - ]; - tcp_packet_builder.build() + ethernet_packet.to_bytes() + }; + packet.to_vec() } diff --git a/src/packet/udp.rs b/src/packet/udp.rs index 08ec3d0..7f2ae13 100644 --- a/src/packet/udp.rs +++ b/src/packet/udp.rs @@ -1,100 +1,174 @@ -use crate::packet::setting::PacketBuildSetting; -use nex::packet::ethernet::EtherType; -use nex::packet::ip::IpNextLevelProtocol; -use nex::util::packet_builder::{ - builder::PacketBuilder, ethernet::EthernetPacketBuilder, ipv4::Ipv4PacketBuilder, - ipv6::Ipv6PacketBuilder, udp::UdpPacketBuilder, +use bytes::Bytes; +use netdev::{Interface, MacAddr}; +use nex::packet::builder::{ + ethernet::EthernetPacketBuilder, ipv4::Ipv4PacketBuilder, ipv6::Ipv6PacketBuilder, + udp::UdpPacketBuilder, }; -use std::net::{IpAddr, SocketAddr}; +use nex::packet::ethernet::EtherType; +use nex::packet::ip::IpNextProtocol; +use nex::packet::ipv4::Ipv4Flags; +use nex::packet::packet::Packet; +use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + +use crate::config::default::DEFAULT_LOCAL_UDP_PORT; +use crate::trace::TraceSetting; /// Build UDP packet -pub fn build_udp_packet(setting: PacketBuildSetting) -> Vec { - let mut packet_builder = PacketBuilder::new(); - - // Ethernet Header - let ethernet_packet_builder = EthernetPacketBuilder { - src_mac: setting.src_mac, - dst_mac: setting.dst_mac, - ether_type: match setting.dst_ip { - IpAddr::V4(_) => EtherType::Ipv4, - IpAddr::V6(_) => EtherType::Ipv6, - }, +pub fn build_udp_packet(interface: &Interface, dst_ip: IpAddr, dst_port: u16, is_ip_packet: bool) -> Vec { + let src_mac = interface.mac_addr.unwrap_or(MacAddr::zero()); + let dst_mac = match &interface.gateway { + Some(gateway) => gateway.mac_addr, + None => MacAddr::zero(), }; - packet_builder.set_ethernet(ethernet_packet_builder); - - // IP Header - match setting.dst_ip { - IpAddr::V4(dst_ipv4) => match setting.src_ip { - IpAddr::V4(src_ipv4) => { - let mut ipv4_packet_builder = - Ipv4PacketBuilder::new(src_ipv4, dst_ipv4, IpNextLevelProtocol::Udp); - ipv4_packet_builder.ttl = Some(setting.hop_limit); - packet_builder.set_ipv4(ipv4_packet_builder); - } - IpAddr::V6(_) => {} - }, - IpAddr::V6(dst_ipv6) => match setting.src_ip { - IpAddr::V4(_) => {} - IpAddr::V6(src_ipv4) => { - let mut ipv6_packet_builder = - Ipv6PacketBuilder::new(src_ipv4, dst_ipv6, IpNextLevelProtocol::Udp); - ipv6_packet_builder.hop_limit = Some(setting.hop_limit); - packet_builder.set_ipv6(ipv6_packet_builder); - } - }, - } - // UDP Header - match setting.dst_ip { - IpAddr::V4(dst_ipv4) => match setting.src_ip { - IpAddr::V4(src_ipv4) => { - let udp_packet_builder = UdpPacketBuilder::new( - SocketAddr::new(IpAddr::V4(src_ipv4), setting.src_port), - SocketAddr::new(IpAddr::V4(dst_ipv4), setting.dst_port), - ); - packet_builder.set_udp(udp_packet_builder); - } - IpAddr::V6(_) => {} + let src_ipv4 = crate::interface::get_interface_ipv4(interface).unwrap_or(Ipv4Addr::UNSPECIFIED); + let src_global_ipv6 = + crate::interface::get_interface_global_ipv6(interface).unwrap_or(Ipv6Addr::UNSPECIFIED); + let src_local_ipv6 = + crate::interface::get_interface_local_ipv6(interface).unwrap_or(Ipv6Addr::UNSPECIFIED); + + let src_ip: IpAddr = match dst_ip { + IpAddr::V4(_) => { + IpAddr::V4(src_ipv4) }, - IpAddr::V6(dst_ipv6) => match setting.src_ip { - IpAddr::V4(_) => {} - IpAddr::V6(src_ipv6) => { - let udp_packet_builder = UdpPacketBuilder::new( - SocketAddr::new(IpAddr::V6(src_ipv6), setting.src_port), - SocketAddr::new(IpAddr::V6(dst_ipv6), setting.dst_port), - ); - packet_builder.set_udp(udp_packet_builder); + IpAddr::V6(_) => { + if nex::net::ip::is_global_ip(&dst_ip) { + IpAddr::V6(src_global_ipv6) + } else { + IpAddr::V6(src_local_ipv6) } }, - } - if setting.ip_packet { - packet_builder.ip_packet() + }; + + let udp_packet = UdpPacketBuilder::new(src_ip, dst_ip) + .source(DEFAULT_LOCAL_UDP_PORT) + .destination(dst_port) + .build(); + + let ip_packet: Bytes = match (src_ip, dst_ip) { + (IpAddr::V4(src), IpAddr::V4(dst)) => Ipv4PacketBuilder::new() + .source(src) + .destination(dst) + .protocol(IpNextProtocol::Udp) + .flags(Ipv4Flags::DontFragment) + .payload(udp_packet.to_bytes()) + .build() + .to_bytes(), + (IpAddr::V6(src), IpAddr::V6(dst)) => Ipv6PacketBuilder::new() + .source(src) + .destination(dst) + .next_header(IpNextProtocol::Udp) + .payload(udp_packet.to_bytes()) + .build() + .to_bytes(), + _ => panic!("Source and destination IP version mismatch"), + }; + + let ethernet_packet = EthernetPacketBuilder::new() + .source(if is_ip_packet { + MacAddr::zero() + } else { + src_mac + }) + .destination(if is_ip_packet { + MacAddr::zero() + } else { + dst_mac + }) + .ethertype(match dst_ip { + IpAddr::V4(_) => EtherType::Ipv4, + IpAddr::V6(_) => EtherType::Ipv6, + }) + .payload(ip_packet) + .build(); + + let packet: Bytes = if is_ip_packet { + ethernet_packet.ip_packet().unwrap() } else { - packet_builder.packet() - } + ethernet_packet.to_bytes() + }; + + packet.to_vec() } -pub fn build_ip_next_udp_packet(setting: PacketBuildSetting) -> Vec { - // UDP Header - match setting.dst_ip { - IpAddr::V4(dst_ipv4) => match setting.src_ip { - IpAddr::V4(src_ipv4) => { - let udp_packet_builder = UdpPacketBuilder::new( - SocketAddr::new(IpAddr::V4(src_ipv4), setting.src_port), - SocketAddr::new(IpAddr::V4(dst_ipv4), setting.dst_port), - ); - udp_packet_builder.build() - } - IpAddr::V6(_) => Vec::new(), +/// Build UDP packet for traceroute with specific TTL +pub fn build_udp_trace_packet(interface: &Interface, trace_setting: &TraceSetting, seq_ttl: u8) -> Vec { + let src_mac = interface.mac_addr.unwrap_or(MacAddr::zero()); + let dst_mac = match &interface.gateway { + Some(gateway) => gateway.mac_addr, + None => MacAddr::zero(), + }; + let src_ipv4 = crate::interface::get_interface_ipv4(interface).unwrap_or(Ipv4Addr::UNSPECIFIED); + let src_global_ipv6 = + crate::interface::get_interface_global_ipv6(interface).unwrap_or(Ipv6Addr::UNSPECIFIED); + let src_local_ipv6 = + crate::interface::get_interface_local_ipv6(interface).unwrap_or(Ipv6Addr::UNSPECIFIED); + + let src_ip: IpAddr = match trace_setting.dst_ip { + IpAddr::V4(_) => { + IpAddr::V4(src_ipv4) }, - IpAddr::V6(dst_ipv6) => match setting.src_ip { - IpAddr::V4(_) => Vec::new(), - IpAddr::V6(src_ipv6) => { - let udp_packet_builder = UdpPacketBuilder::new( - SocketAddr::new(IpAddr::V6(src_ipv6), setting.src_port), - SocketAddr::new(IpAddr::V6(dst_ipv6), setting.dst_port), - ); - udp_packet_builder.build() + IpAddr::V6(_) => { + if nex::net::ip::is_global_ip(&trace_setting.dst_ip) { + IpAddr::V6(src_global_ipv6) + } else { + IpAddr::V6(src_local_ipv6) } }, - } + }; + + let dst_port = trace_setting.dst_port.unwrap_or(DEFAULT_LOCAL_UDP_PORT); + + let is_ip_packet = interface.is_tun() || interface.is_loopback(); + + let udp_packet = UdpPacketBuilder::new(src_ip, trace_setting.dst_ip) + .source(DEFAULT_LOCAL_UDP_PORT) + .destination(dst_port) + .build(); + + let ip_packet: Bytes = match (src_ip, trace_setting.dst_ip) { + (IpAddr::V4(src), IpAddr::V4(dst)) => Ipv4PacketBuilder::new() + .source(src) + .destination(dst) + .protocol(IpNextProtocol::Udp) + .flags(Ipv4Flags::DontFragment) + .ttl(seq_ttl) + .payload(udp_packet.to_bytes()) + .build() + .to_bytes(), + (IpAddr::V6(src), IpAddr::V6(dst)) => Ipv6PacketBuilder::new() + .source(src) + .destination(dst) + .next_header(IpNextProtocol::Udp) + .hop_limit(seq_ttl) + .payload(udp_packet.to_bytes()) + .build() + .to_bytes(), + _ => panic!("Source and destination IP version mismatch"), + }; + + let ethernet_packet = EthernetPacketBuilder::new() + .source(if is_ip_packet { + MacAddr::zero() + } else { + src_mac + }) + .destination(if is_ip_packet { + MacAddr::zero() + } else { + dst_mac + }) + .ethertype(match trace_setting.dst_ip { + IpAddr::V4(_) => EtherType::Ipv4, + IpAddr::V6(_) => EtherType::Ipv6, + }) + .payload(ip_packet) + .build(); + + let packet: Bytes = if is_ip_packet { + ethernet_packet.ip_packet().unwrap() + } else { + ethernet_packet.to_bytes() + }; + + packet.to_vec() } diff --git a/src/pcap/setting.rs b/src/pcap/setting.rs deleted file mode 100644 index 09152f6..0000000 --- a/src/pcap/setting.rs +++ /dev/null @@ -1,119 +0,0 @@ -use nex::net::interface::Interface; -use nex::packet::{ethernet::EtherType, ip::IpNextLevelProtocol}; -use serde::{Deserialize, Serialize}; -use std::collections::HashSet; -use std::net::IpAddr; -use std::time::Duration; - -use crate::interface; - -/// Packet capture options -#[derive(Serialize, Deserialize, Debug, Clone)] -pub struct PacketCaptureSetting { - /// Interface index - pub interface_index: u32, - /// Source IP addresses to filter. If empty, all source IP addresses will be captured - pub src_ips: HashSet, - /// Destination IP addresses to filter. If empty, all destination IP addresses will be captured - pub dst_ips: HashSet, - /// Source ports to filter. If empty, all source ports will be captured - pub src_ports: HashSet, - /// Destination ports to filter. If empty, all destination ports will be captured - pub dst_ports: HashSet, - /// Ether types to filter. If empty, all ether types will be captured - pub ether_types: HashSet, - /// IP protocols to filter. If empty, all IP protocols will be captured - pub ip_protocols: HashSet, - /// Capture duration limit - pub capture_timeout: Duration, - /// Read Timeout for read next packet (Linux, BPF only) - pub read_timeout: Duration, - /// Capture in promiscuous mode - pub promiscuous: bool, - /// Receive undefined packets - pub receive_undefined: bool, - /// Use TUN interface - pub tunnel: bool, - /// Use Loopback interface - pub loopback: bool, -} - -impl Default for PacketCaptureSetting { - fn default() -> Self { - let iface: Interface = netdev::get_default_interface().unwrap(); - Self { - interface_index: iface.index, - src_ips: HashSet::new(), - dst_ips: HashSet::new(), - src_ports: HashSet::new(), - dst_ports: HashSet::new(), - ether_types: HashSet::new(), - ip_protocols: HashSet::new(), - capture_timeout: Duration::MAX, - read_timeout: Duration::from_millis(200), - promiscuous: false, - receive_undefined: true, - tunnel: iface.is_tun(), - loopback: iface.is_loopback(), - } - } -} - -impl PacketCaptureSetting { - pub fn from_interface_index(if_index: u32) -> Option { - let iface = interface::get_interface_by_index(if_index)?; - let options = PacketCaptureSetting { - interface_index: iface.index, - src_ips: HashSet::new(), - dst_ips: HashSet::new(), - src_ports: HashSet::new(), - dst_ports: HashSet::new(), - ether_types: HashSet::new(), - ip_protocols: HashSet::new(), - capture_timeout: Duration::MAX, - read_timeout: Duration::from_millis(200), - promiscuous: false, - receive_undefined: true, - tunnel: iface.is_tun(), - loopback: iface.is_loopback(), - }; - Some(options) - } - pub fn from_interface_name(if_name: String) -> PacketCaptureSetting { - let iface = interface::get_interface_by_name(if_name).unwrap(); - let options: PacketCaptureSetting = PacketCaptureSetting { - interface_index: iface.index, - src_ips: HashSet::new(), - dst_ips: HashSet::new(), - src_ports: HashSet::new(), - dst_ports: HashSet::new(), - ether_types: HashSet::new(), - ip_protocols: HashSet::new(), - capture_timeout: Duration::MAX, - read_timeout: Duration::from_millis(200), - promiscuous: false, - receive_undefined: true, - tunnel: iface.is_tun(), - loopback: iface.is_loopback(), - }; - options - } - pub fn from_interface(iface: &Interface) -> PacketCaptureSetting { - let options = PacketCaptureSetting { - interface_index: iface.index, - src_ips: HashSet::new(), - dst_ips: HashSet::new(), - src_ports: HashSet::new(), - dst_ports: HashSet::new(), - ether_types: HashSet::new(), - ip_protocols: HashSet::new(), - capture_timeout: Duration::MAX, - read_timeout: Duration::from_millis(200), - promiscuous: false, - receive_undefined: true, - tunnel: iface.is_tun(), - loopback: iface.is_loopback(), - }; - options - } -} diff --git a/src/ping/mod.rs b/src/ping/mod.rs index d284651..1381f67 100644 --- a/src/ping/mod.rs +++ b/src/ping/mod.rs @@ -1,3 +1,69 @@ pub mod pinger; -pub mod result; pub mod setting; +pub mod result; +pub mod probe; + +use std::time::Duration; + +use anyhow::Result; +use netdev::Interface; + +use crate::{endpoint::Host, ping::{pinger::Pinger, setting::PingSetting}}; + +// Check reachability of the target and measure latency before probing +pub async fn initial_ping(interface: &Interface, dst_host: &Host, port: Option) -> Result { + match dst_host.hostname { + Some(ref name) => { + tracing::info!("Performing initial ping to {} ({})", name, dst_host.ip); + }, + None => { + tracing::info!("Performing initial ping to {}", dst_host.ip); + } + } + + // 1. Try ICMP ping + let icmp_setting: PingSetting = PingSetting::icmp_ping(&interface, dst_host.clone(), 1)?; + let pinger = Pinger::new(icmp_setting); + match pinger.run().await { + Ok(r) => { + if let Some(first) = r.first_response() { + return Ok(first.rtt); + } + }, + Err(e) => { + tracing::warn!("Initial ICMP ping failed: {}", e); + } + } + + // 2. Try UDP ping + let udp_setting: PingSetting = PingSetting::udp_ping(&interface, dst_host.clone(), 1)?; + let pinger = Pinger::new(udp_setting); + match pinger.run().await { + Ok(r) => { + if let Some(first) = r.first_response() { + return Ok(first.rtt); + } + }, + Err(e) => { + tracing::warn!("Initial UDP ping failed: {}", e); + } + } + + // 3. Try TCP ping + let target_port = port.unwrap_or(80); + let tcp_setting: PingSetting = PingSetting::tcp_ping(&interface, dst_host.clone(), target_port, 1)?; + let pinger = Pinger::new(tcp_setting); + match pinger.run().await { + Ok(r) => { + if let Some(first) = r.first_response() { + return Ok(first.rtt); + } + }, + Err(e) => { + tracing::warn!("Initial TCP ping failed: {}", e); + } + } + + anyhow::bail!("All initial ping methods failed"); + +} \ No newline at end of file diff --git a/src/ping/pinger.rs b/src/ping/pinger.rs index 1da20a3..e641405 100644 --- a/src/ping/pinger.rs +++ b/src/ping/pinger.rs @@ -1,20 +1,5 @@ -use super::result::{PingResult, PingStat}; -use super::setting::PingSetting; -use crate::host::{NodeType, PortStatus}; -use crate::packet::setting::PacketBuildSetting; -use crate::probe::{ProbeResult, ProbeStatus, ProbeStatusKind}; -use crate::protocol::Protocol; -use netdev::Interface; -use nex::datalink::{RawReceiver, RawSender}; -use nex::net::mac::MacAddr; -use nex::packet::frame::{Frame, ParseOption}; -use nex::packet::icmp::IcmpType; -use nex::packet::icmpv6::Icmpv6Type; -use nex::packet::tcp::TcpFlags; -use std::net::IpAddr; -use std::sync::mpsc::{channel, Receiver, Sender}; -use std::sync::{Arc, Mutex}; -use std::time::{Duration, Instant}; +use crate::{ping::{result::PingResult, setting::PingSetting}, protocol::Protocol}; +use anyhow::Result; /// Pinger structure. /// @@ -23,698 +8,22 @@ use std::time::{Duration, Instant}; pub struct Pinger { /// Probe Setting pub ping_setting: PingSetting, - /// Sender for progress messaging - tx: Arc>>, - /// Receiver for progress messaging - rx: Arc>>, } impl Pinger { - /// Create new Pinger instance with destination IP address - pub fn new(setting: PingSetting) -> Result { - // Check interface - if crate::interface::get_interface_by_index(setting.if_index).is_none() { - return Err(format!( - "Pinger::new: unable to get interface. index: {}", - setting.if_index - )); - } - let (tx, rx) = channel(); - let pinger = Pinger { - ping_setting: setting, - tx: Arc::new(Mutex::new(tx)), - rx: Arc::new(Mutex::new(rx)), - }; - return Ok(pinger); - } - /// Run ping - pub fn ping(&self) -> Result { - run_ping(&self.ping_setting, &self.tx) - } - /// Get progress receiver - pub fn get_progress_receiver(&self) -> Arc>> { - self.rx.clone() + /// Create a new Pinger instance. + pub fn new(ping_setting: PingSetting) -> Self { + Self { ping_setting } } -} - -fn run_ping( - setting: &PingSetting, - msg_tx: &Arc>>, -) -> Result { - let interface: Interface = match crate::interface::get_interface_by_index(setting.if_index) { - Some(interface) => interface, - None => { - return Err(format!( - "run_ping: unable to get interface by index {}", - setting.if_index - )) - } - }; - let config = nex::datalink::Config { - write_buffer_size: 4096, - read_buffer_size: 4096, - read_timeout: Some(setting.receive_timeout), - write_timeout: None, - channel_type: nex::datalink::ChannelType::Layer2, - bpf_fd_attempts: 1000, - linux_fanout: None, - promiscuous: false, - }; - // Create a channel to send/receive packet - let (mut tx, mut rx) = match nex::datalink::channel(&interface, config) { - Ok(nex::datalink::Channel::Ethernet(tx, rx)) => (tx, rx), - Ok(_) => return Err("run_ping: unable to create channel".to_string()), - Err(e) => return Err(format!("run_ping: unable to create channel: {}", e)), - }; - match setting.protocol { - crate::protocol::Protocol::ICMP => { - let result = icmp_ping(&mut tx, &mut rx, setting, msg_tx); - return Ok(result); - } - crate::protocol::Protocol::TCP => { - let result = tcp_ping(&mut tx, &mut rx, setting, msg_tx); - return Ok(result); - } - crate::protocol::Protocol::UDP => { - let result = udp_ping(&mut tx, &mut rx, setting, msg_tx); - return Ok(result); - } - _ => { - return Err("run_ping: unsupported protocol".to_string()); + /// Run the ping based on the specified protocol and return the results. + pub async fn run(&self) -> Result { + match self.ping_setting.protocol { + Protocol::Icmp => super::probe::icmp::run_icmp_ping(&self.ping_setting).await, + Protocol::Udp => super::probe::udp::run_udp_ping(&self.ping_setting).await, + Protocol::Tcp => super::probe::tcp::run_tcp_ping(&self.ping_setting).await, + _ => { + Err(anyhow::anyhow!("Unsupported protocol")) + }, } } } - -pub fn icmp_ping( - tx: &mut Box, - rx: &mut Box, - setting: &PingSetting, - msg_tx: &Arc>>, -) -> PingResult { - let mut result = PingResult::new(); - result.protocol = Protocol::ICMP; - let mut parse_option: ParseOption = ParseOption::default(); - if setting.tunnel { - let payload_offset = if setting.loopback { 14 } else { 0 }; - parse_option.from_ip_packet = true; - parse_option.offset = payload_offset; - } - result.start_time = crate::sys::time::get_sysdate(); - let start_time = Instant::now(); - let mut responses: Vec = Vec::new(); - let packet_setting: PacketBuildSetting = PacketBuildSetting::from_ping_setting(setting); - let icmp_packet: Vec = crate::packet::icmp::build_icmp_packet(packet_setting.clone()); - for seq in 1..setting.count + 1 { - //let icmp_packet: Vec = crate::packet::icmp::build_icmp_packet(PacketBuildSetting::from_ping_setting(setting)); - let send_time = Instant::now(); - match tx.send(&icmp_packet) { - Some(_) => {} - None => {} - } - loop { - match rx.next() { - Ok(packet) => { - let recv_time: Duration = Instant::now().duration_since(send_time); - let frame: Frame = Frame::from_bytes(&packet, parse_option.clone()); - // Datalink - let mut mac_addr: MacAddr = MacAddr::zero(); - if let Some(datalink_layer) = &frame.datalink { - // Ethernet - if let Some(ethernet_header) = &datalink_layer.ethernet { - mac_addr = ethernet_header.source; - } - } - if let Some(ip_layer) = &frame.ip { - // IPv4 - if let Some(ipv4_header) = &ip_layer.ipv4 { - if IpAddr::V4(ipv4_header.source) != setting.dst_ip - || IpAddr::V4(ipv4_header.destination) != packet_setting.src_ip - { - continue; - } - // IPv4 ICMP - if let Some(icmp_header) = &ip_layer.icmp { - if icmp_header.icmp_type == IcmpType::EchoReply { - let probe_result: ProbeResult = ProbeResult { - seq: seq, - mac_addr: mac_addr, - ip_addr: setting.dst_ip, - host_name: setting.dst_hostname.clone(), - port_number: None, - port_status: None, - ttl: ipv4_header.ttl, - hop: crate::ip::guess_initial_ttl(ipv4_header.ttl) - - ipv4_header.ttl, - rtt: recv_time, - probe_status: ProbeStatus::new(), - protocol: Protocol::ICMP, - node_type: NodeType::Destination, - sent_packet_size: icmp_packet.len(), - received_packet_size: packet.len(), - }; - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - } - // IPv6 - if let Some(ipv6_header) = &ip_layer.ipv6 { - if IpAddr::V6(ipv6_header.source) != setting.dst_ip - || IpAddr::V6(ipv6_header.destination) != packet_setting.src_ip - { - continue; - } - // ICMPv6 - if let Some(icmpv6_header) = &ip_layer.icmpv6 { - if icmpv6_header.icmpv6_type == Icmpv6Type::EchoReply { - let probe_result: ProbeResult = ProbeResult { - seq: seq, - mac_addr: mac_addr, - ip_addr: setting.dst_ip, - host_name: setting.dst_hostname.clone(), - port_number: None, - port_status: None, - ttl: ipv6_header.hop_limit, - hop: crate::ip::guess_initial_ttl(ipv6_header.hop_limit) - - ipv6_header.hop_limit, - rtt: recv_time, - probe_status: ProbeStatus::new(), - protocol: Protocol::ICMP, - node_type: NodeType::Destination, - sent_packet_size: icmp_packet.len(), - received_packet_size: packet.len(), - }; - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - } - } - } - Err(_e) => { - let probe_result = ProbeResult::timeout( - seq, - setting.dst_ip, - setting.dst_hostname.clone(), - Protocol::ICMP, - icmp_packet.len(), - ); - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - let wait_time: Duration = Instant::now().duration_since(send_time); - if wait_time > setting.receive_timeout { - let probe_result = ProbeResult::timeout( - seq, - setting.dst_ip, - setting.dst_hostname.clone(), - Protocol::ICMP, - icmp_packet.len(), - ); - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - if seq < setting.count { - std::thread::sleep(setting.send_rate); - } - } - let probe_time = Instant::now().duration_since(start_time); - result.end_time = crate::sys::time::get_sysdate(); - result.elapsed_time = probe_time; - let received_count: usize = responses - .iter() - .filter(|r| r.probe_status.kind == ProbeStatusKind::Done) - .count(); - if received_count == 0 { - result.probe_status = ProbeStatus::with_error_message("No response".to_string()); - } else { - let ping_stat: PingStat = PingStat { - responses: responses.clone(), - probe_time: probe_time, - transmitted_count: setting.count as usize, - received_count: received_count, - min: responses - .iter() - .map(|r| r.rtt) - .min() - .unwrap_or(Duration::from_millis(0)), - avg: responses - .iter() - .fold(Duration::from_millis(0), |acc, r| acc + r.rtt) - / received_count as u32, - max: responses - .iter() - .map(|r| r.rtt) - .max() - .unwrap_or(Duration::from_millis(0)), - }; - result.stat = ping_stat; - result.probe_status = ProbeStatus::new(); - } - result -} - -pub fn tcp_ping( - tx: &mut Box, - rx: &mut Box, - setting: &PingSetting, - msg_tx: &Arc>>, -) -> PingResult { - let mut result = PingResult::new(); - result.protocol = Protocol::ICMP; - let mut parse_option: ParseOption = ParseOption::default(); - if setting.tunnel { - let payload_offset = if setting.loopback { 14 } else { 0 }; - parse_option.from_ip_packet = true; - parse_option.offset = payload_offset; - } - result.start_time = crate::sys::time::get_sysdate(); - let start_time = Instant::now(); - let mut responses: Vec = Vec::new(); - let packet_setting: PacketBuildSetting = PacketBuildSetting::from_ping_setting(setting); - let tcp_packet: Vec = crate::packet::tcp::build_tcp_syn_packet(packet_setting.clone()); - for seq in 1..setting.count + 1 { - //let tcp_packet: Vec = crate::packet::tcp::build_tcp_packet(setting.clone(), None); - let send_time = Instant::now(); - match tx.send(&tcp_packet) { - Some(_) => {} - None => {} - } - loop { - match rx.next() { - Ok(packet) => { - let recv_time: Duration = Instant::now().duration_since(send_time); - let frame: Frame = Frame::from_bytes(&packet, parse_option.clone()); - // Datalink - let mut mac_addr: MacAddr = MacAddr::zero(); - if let Some(datalink_layer) = &frame.datalink { - // Ethernet - if let Some(ethernet_header) = &datalink_layer.ethernet { - mac_addr = ethernet_header.source; - } - } - // So deep nested... but this is simplest way to check TCP packet safely. - if let Some(ip_layer) = &frame.ip { - if let Some(ipv4_header) = &ip_layer.ipv4 { - if IpAddr::V4(ipv4_header.source) != setting.dst_ip - || IpAddr::V4(ipv4_header.destination) != packet_setting.src_ip - { - continue; - } - } - if let Some(ipv6_header) = &ip_layer.ipv6 { - if IpAddr::V6(ipv6_header.source) != setting.dst_ip - || IpAddr::V6(ipv6_header.destination) != packet_setting.src_ip - { - continue; - } - } - if let Some(transport_layer) = &frame.transport { - if let Some(tcp_header) = &transport_layer.tcp { - if let Some(port) = setting.dst_port { - if tcp_header.source != port { - continue; - } - } - let mut probe_result: ProbeResult = ProbeResult { - seq: seq, - mac_addr: mac_addr, - ip_addr: setting.dst_ip, - host_name: setting.dst_hostname.clone(), - port_number: Some(tcp_header.source), - port_status: None, - ttl: 0, - hop: 0, - rtt: recv_time, - probe_status: ProbeStatus::new(), - protocol: Protocol::TCP, - node_type: NodeType::Destination, - sent_packet_size: tcp_packet.len(), - received_packet_size: packet.len(), - }; - if tcp_header.flags == TcpFlags::SYN | TcpFlags::ACK { - probe_result.port_status = Some(PortStatus::Open); - if let Some(ipv4) = &ip_layer.ipv4 { - if IpAddr::V4(ipv4.source) != setting.dst_ip { - continue; - } - probe_result.ttl = ipv4.ttl; - probe_result.hop = - crate::ip::guess_initial_ttl(ipv4.ttl) - ipv4.ttl; - } else if let Some(ipv6) = &ip_layer.ipv6 { - if IpAddr::V6(ipv6.source) != setting.dst_ip { - continue; - } - probe_result.ttl = ipv6.hop_limit; - probe_result.hop = - crate::ip::guess_initial_ttl(ipv6.hop_limit) - - ipv6.hop_limit; - } - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } else if tcp_header.flags == TcpFlags::RST | TcpFlags::ACK { - probe_result.port_status = Some(PortStatus::Closed); - if let Some(ipv4) = &ip_layer.ipv4 { - if IpAddr::V4(ipv4.source) != setting.dst_ip { - continue; - } - probe_result.ttl = ipv4.ttl; - probe_result.hop = - crate::ip::guess_initial_ttl(ipv4.ttl) - ipv4.ttl; - } else if let Some(ipv6) = &ip_layer.ipv6 { - if IpAddr::V6(ipv6.source) != setting.dst_ip { - continue; - } - probe_result.ttl = ipv6.hop_limit; - probe_result.hop = - crate::ip::guess_initial_ttl(ipv6.hop_limit) - - ipv6.hop_limit; - } - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - } - } - } - Err(_e) => { - let mut probe_result = ProbeResult::timeout( - seq, - setting.dst_ip, - setting.dst_hostname.clone(), - Protocol::TCP, - tcp_packet.len(), - ); - probe_result.port_number = setting.dst_port; - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - let wait_time: Duration = Instant::now().duration_since(send_time); - if wait_time > setting.receive_timeout { - let mut probe_result = ProbeResult::timeout( - seq, - setting.dst_ip, - setting.dst_hostname.clone(), - Protocol::TCP, - tcp_packet.len(), - ); - probe_result.port_number = setting.dst_port; - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - if seq < setting.count { - std::thread::sleep(setting.send_rate); - } - } - let probe_time = Instant::now().duration_since(start_time); - result.end_time = crate::sys::time::get_sysdate(); - result.elapsed_time = probe_time; - let received_count: usize = responses - .iter() - .filter(|r| r.probe_status.kind == ProbeStatusKind::Done) - .count(); - if received_count == 0 { - result.probe_status = ProbeStatus::with_error_message("No response".to_string()); - } else { - let ping_stat: PingStat = PingStat { - responses: responses.clone(), - probe_time: probe_time, - transmitted_count: setting.count as usize, - received_count: received_count, - min: responses - .iter() - .map(|r| r.rtt) - .min() - .unwrap_or(Duration::from_millis(0)), - avg: responses - .iter() - .fold(Duration::from_millis(0), |acc, r| acc + r.rtt) - / received_count as u32, - max: responses - .iter() - .map(|r| r.rtt) - .max() - .unwrap_or(Duration::from_millis(0)), - }; - result.stat = ping_stat; - result.probe_status = ProbeStatus::new(); - } - result -} - -pub fn udp_ping( - tx: &mut Box, - rx: &mut Box, - setting: &PingSetting, - msg_tx: &Arc>>, -) -> PingResult { - let mut result = PingResult::new(); - result.protocol = Protocol::UDP; - let mut parse_option: ParseOption = ParseOption::default(); - if setting.tunnel { - let payload_offset = if setting.loopback { 14 } else { 0 }; - parse_option.from_ip_packet = true; - parse_option.offset = payload_offset; - } - result.start_time = crate::sys::time::get_sysdate(); - let start_time = Instant::now(); - let mut responses: Vec = Vec::new(); - let packet_setting: PacketBuildSetting = PacketBuildSetting::from_ping_setting(setting); - let udp_packet: Vec = crate::packet::udp::build_udp_packet(packet_setting.clone()); - for seq in 1..setting.count + 1 { - //let udp_packet: Vec = crate::packet::udp::build_udp_packet(setting.clone(), None); - let send_time = Instant::now(); - match tx.send(&udp_packet) { - Some(_) => {} - None => {} - } - loop { - match rx.next() { - Ok(packet) => { - let recv_time: Duration = Instant::now().duration_since(send_time); - let frame: Frame = Frame::from_bytes(&packet, parse_option.clone()); - // Datalink - let mut mac_addr: MacAddr = MacAddr::zero(); - if let Some(datalink_layer) = &frame.datalink { - // Ethernet - if let Some(ethernet_header) = &datalink_layer.ethernet { - mac_addr = ethernet_header.source; - } - } - if let Some(ip_layer) = &frame.ip { - // IPv4 - if let Some(ipv4_header) = &ip_layer.ipv4 { - if IpAddr::V4(ipv4_header.source) != setting.dst_ip - || IpAddr::V4(ipv4_header.destination) != packet_setting.src_ip - { - continue; - } - // ICMP - if let Some(icmp_header) = &ip_layer.icmp { - if icmp_header.icmp_type == IcmpType::DestinationUnreachable { - let probe_result: ProbeResult = ProbeResult { - seq: seq, - mac_addr: mac_addr, - ip_addr: setting.dst_ip, - host_name: setting.dst_hostname.clone(), - port_number: setting.dst_port, - port_status: Some(PortStatus::Closed), - ttl: ipv4_header.ttl, - hop: crate::ip::guess_initial_ttl(ipv4_header.ttl) - - ipv4_header.ttl, - rtt: recv_time, - probe_status: ProbeStatus::new(), - protocol: Protocol::UDP, - node_type: NodeType::Destination, - sent_packet_size: udp_packet.len(), - received_packet_size: packet.len(), - }; - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - } - // IPv6 - if let Some(ipv6_header) = &ip_layer.ipv6 { - if IpAddr::V6(ipv6_header.destination) != packet_setting.src_ip { - continue; - } - // ICMPv6 - if let Some(icmpv6_header) = &ip_layer.icmpv6 { - if icmpv6_header.icmpv6_type == Icmpv6Type::DestinationUnreachable { - let probe_result: ProbeResult = ProbeResult { - seq: seq, - mac_addr: mac_addr, - ip_addr: setting.dst_ip, - host_name: setting.dst_hostname.clone(), - port_number: setting.dst_port, - port_status: Some(PortStatus::Closed), - ttl: ipv6_header.hop_limit, - hop: crate::ip::guess_initial_ttl(ipv6_header.hop_limit) - - ipv6_header.hop_limit, - rtt: recv_time, - probe_status: ProbeStatus::new(), - protocol: Protocol::UDP, - node_type: NodeType::Destination, - sent_packet_size: udp_packet.len(), - received_packet_size: packet.len(), - }; - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - } - } - } - Err(_e) => { - let probe_result = ProbeResult::timeout( - seq, - setting.dst_ip, - setting.dst_hostname.clone(), - Protocol::UDP, - udp_packet.len(), - ); - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - let wait_time: Duration = Instant::now().duration_since(send_time); - if wait_time > setting.receive_timeout { - let probe_result = ProbeResult::timeout( - seq, - setting.dst_ip, - setting.dst_hostname.clone(), - Protocol::UDP, - udp_packet.len(), - ); - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - if seq < setting.count { - std::thread::sleep(setting.send_rate); - } - } - let probe_time = Instant::now().duration_since(start_time); - result.end_time = crate::sys::time::get_sysdate(); - result.elapsed_time = probe_time; - let received_count: usize = responses - .iter() - .filter(|r| r.probe_status.kind == ProbeStatusKind::Done) - .count(); - if received_count == 0 { - result.probe_status = ProbeStatus::with_error_message("No response".to_string()); - } else { - let ping_stat: PingStat = PingStat { - responses: responses.clone(), - probe_time: probe_time, - transmitted_count: setting.count as usize, - received_count: received_count, - min: responses - .iter() - .map(|r| r.rtt) - .min() - .unwrap_or(Duration::from_millis(0)), - avg: responses - .iter() - .fold(Duration::from_millis(0), |acc, r| acc + r.rtt) - / received_count as u32, - max: responses - .iter() - .map(|r| r.rtt) - .max() - .unwrap_or(Duration::from_millis(0)), - }; - result.stat = ping_stat; - result.probe_status = ProbeStatus::new(); - } - result -} diff --git a/src/ping/probe/icmp.rs b/src/ping/probe/icmp.rs new file mode 100644 index 0000000..46bb46c --- /dev/null +++ b/src/ping/probe/icmp.rs @@ -0,0 +1,264 @@ +use std::collections::HashSet; +use std::net::IpAddr; +use std::time::{Duration, Instant}; +use futures::stream::StreamExt; +use futures::future::poll_fn; +use netdev::MacAddr; +use nex::packet::frame::{Frame, ParseOption}; +use nex::packet::icmp::IcmpType; +use nex::packet::icmpv6::Icmpv6Type; +use crate::endpoint::NodeType; +use crate::ping::result::PingStat; +use crate::probe::{ProbeStatus, ProbeStatusKind}; +use crate::{ping::{result::PingResult, setting::PingSetting}, probe::ProbeResult, protocol::Protocol}; +use anyhow::Result; +use nex::datalink::async_io::{async_channel, AsyncChannel}; +use tracing_indicatif::span_ext::IndicatifSpanExt; + +/// Run ICMP Ping and return the results. +pub async fn run_icmp_ping(setting: &PingSetting) -> Result { + let mut result = PingResult::new(); + result.protocol = Protocol::Icmp; + + let interface = match crate::interface::get_interface_by_index(setting.if_index) { + Some(interface) => interface, + None => return Err(anyhow::anyhow!("Interface not found")), + }; + let src_ip_set: HashSet = interface.ip_addrs().iter().map(|ip| ip.clone()).collect(); + // Create sender + let config = nex::datalink::Config { + write_buffer_size: 4096, + read_buffer_size: 4096, + read_timeout: Some(setting.receive_timeout), + write_timeout: None, + channel_type: nex::datalink::ChannelType::Layer2, + bpf_fd_attempts: 1000, + linux_fanout: None, + promiscuous: false, + }; + + let AsyncChannel::Ethernet(mut tx, mut rx) = async_channel(&interface, config)? + else { + unreachable!(); + }; + + let mut responses: Vec = Vec::new(); + + let mut parse_option: ParseOption = ParseOption::default(); + if interface.is_tun() || (cfg!(any(target_os = "macos", target_os = "ios")) && interface.is_loopback()) { + let payload_offset = if interface.is_loopback() { 14 } else { 0 }; + parse_option.from_ip_packet = true; + parse_option.offset = payload_offset; + } + + let header_span = tracing::info_span!("ping"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message(&format!("ping ({})", setting.dst_ip)); + header_span.pb_set_length(setting.count as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + + let start_time = Instant::now(); + let icmp_packet = crate::packet::icmp::build_icmp_packet(&interface, setting.dst_ip, false); + for seq in 1..setting.count + 1 { + let send_time = Instant::now(); + match poll_fn(|cx| tx.poll_send(cx, &icmp_packet)).await { + Ok(_) => { + }, + Err(e) => eprintln!("Failed to send packet: {}", e), + } + loop { + match tokio::time::timeout(setting.receive_timeout, rx.next()).await { + Ok(Some(Ok(packet))) => { + let rtt = send_time.elapsed(); + let frame = match Frame::from_buf(&packet, parse_option.clone()) { + Some(frame) => frame, + None => { + eprintln!("Failed to parse packet: {:?}", packet); + continue; + } + }; + let mut mac_addr: MacAddr = MacAddr::zero(); + if let Some(datalink_layer) = &frame.datalink { + // Ethernet + if let Some(ethernet_header) = &datalink_layer.ethernet { + mac_addr = ethernet_header.source; + } + } + if let Some(ip_layer) = &frame.ip { + // IPv4 + if let Some(ipv4_header) = &ip_layer.ipv4 { + if IpAddr::V4(ipv4_header.source) == setting.dst_ip + && src_ip_set.contains(&IpAddr::V4(ipv4_header.destination)) + { + // IPv4 ICMP + if let Some(icmp_header) = &ip_layer.icmp { + if icmp_header.icmp_type == IcmpType::EchoReply { + let probe_result: ProbeResult = ProbeResult { + seq: seq, + mac_addr: mac_addr, + ip_addr: setting.dst_ip, + host_name: setting.dst_hostname.clone(), + port_number: None, + port_status: None, + ttl: ipv4_header.ttl, + hop: crate::util::ip::initial_ttl(ipv4_header.ttl) + - ipv4_header.ttl, + rtt: rtt, + probe_status: ProbeStatus::new(), + protocol: Protocol::Icmp, + node_type: NodeType::Destination, + sent_packet_size: icmp_packet.len(), + received_packet_size: packet.len(), + }; + tracing::info!("Reply from {}, bytes={} RTT={:?} TTL={}", setting.dst_ip, packet.len(), rtt, ipv4_header.ttl); + responses.push(probe_result); + header_span.pb_inc(1); + break; + } + } + } + } + // IPv6 + if let Some(ipv6_header) = &ip_layer.ipv6 { + if IpAddr::V6(ipv6_header.source) == setting.dst_ip + && src_ip_set.contains(&IpAddr::V6(ipv6_header.destination)) + { + // ICMPv6 + if let Some(icmpv6_header) = &ip_layer.icmpv6 { + if icmpv6_header.icmpv6_type == Icmpv6Type::EchoReply { + let probe_result: ProbeResult = ProbeResult { + seq: seq, + mac_addr: mac_addr, + ip_addr: setting.dst_ip, + host_name: setting.dst_hostname.clone(), + port_number: None, + port_status: None, + ttl: ipv6_header.hop_limit, + hop: crate::util::ip::initial_ttl(ipv6_header.hop_limit) + - ipv6_header.hop_limit, + rtt: rtt, + probe_status: ProbeStatus::new(), + protocol: Protocol::Icmp, + node_type: NodeType::Destination, + sent_packet_size: icmp_packet.len(), + received_packet_size: packet.len(), + }; + tracing::info!("Reply from {}, bytes={} RTT={:?} TTL={}", setting.dst_ip, packet.len(), rtt, ipv6_header.hop_limit); + responses.push(probe_result); + header_span.pb_inc(1); + break; + } + } + } + } + } + }, + Ok(Some(Err(e))) => { + tracing::error!("Failed to receive packet: {}", e); + header_span.pb_inc(1); + break; + }, + Ok(None) => { + tracing::error!("Channel closed"); + header_span.pb_inc(1); + break; + }, + Err(_) => { + tracing::error!("Request timeout for seq {}", seq); + let probe_result = ProbeResult::timeout( + seq, + setting.dst_ip, + setting.dst_hostname.clone(), + Protocol::Icmp, + icmp_packet.len(), + ); + responses.push(probe_result); + + header_span.pb_inc(1); + break; + } + } + + let elapsed_time: Duration = send_time.elapsed(); + if elapsed_time > setting.receive_timeout { + tracing::error!("Request timeout for seq {}", seq); + let probe_result = ProbeResult::timeout( + seq, + setting.dst_ip, + setting.dst_hostname.clone(), + Protocol::Icmp, + icmp_packet.len(), + ); + responses.push(probe_result); + + header_span.pb_inc(1); + break; + } + } + if !setting.send_rate.is_zero() { + tokio::time::sleep(setting.send_rate).await; + } + } + + // Finish header span + drop(header_span); + + let elapsed_time = start_time.elapsed(); + let received_count: usize = responses + .iter() + .filter(|r| r.probe_status.kind == ProbeStatusKind::Done) + .count(); + + let min_opt = if received_count > 0 { + let min = responses + .iter() + .map(|r| r.rtt) + .min() + .unwrap_or(Duration::from_millis(0)); + Some(min) + } else { + None + }; + + let avg_opt = if received_count > 0 { + let total = responses + .iter() + .map(|r| r.rtt) + .fold(Duration::from_millis(0), |acc, rtt| acc + rtt); + Some(total / received_count as u32) + } else { + None + }; + + let max_opt = if received_count > 0 { + let max = responses + .iter() + .map(|r| r.rtt) + .max() + .unwrap_or(Duration::from_millis(0)); + Some(max) + } else { + None + }; + + let ping_stat: PingStat = PingStat { + responses: responses.clone(), + probe_time: elapsed_time, + transmitted_count: setting.count as usize, + received_count: received_count, + min: min_opt, + avg: avg_opt, + max: max_opt, + }; + + result.probe_status = ProbeStatus::new(); + result.elapsed_time = elapsed_time; + result.ip_addr = setting.dst_ip; + result.hostname = setting.dst_hostname.clone(); + result.port_number = setting.dst_port; + result.protocol = Protocol::Icmp; + result.stat = ping_stat; + + Ok(result) +} diff --git a/src/ping/probe/mod.rs b/src/ping/probe/mod.rs new file mode 100644 index 0000000..decb943 --- /dev/null +++ b/src/ping/probe/mod.rs @@ -0,0 +1,3 @@ +pub mod icmp; +pub mod tcp; +pub mod udp; diff --git a/src/ping/probe/tcp.rs b/src/ping/probe/tcp.rs new file mode 100644 index 0000000..903b6c9 --- /dev/null +++ b/src/ping/probe/tcp.rs @@ -0,0 +1,276 @@ +use std::collections::HashSet; +use std::net::IpAddr; +use std::time::{Duration, Instant}; +use futures::stream::StreamExt; +use futures::future::poll_fn; +use netdev::MacAddr; +use nex::packet::frame::{Frame, ParseOption}; +use nex::packet::tcp::TcpFlags; +use crate::endpoint::{NodeType, PortState}; +use crate::ping::result::PingStat; +use crate::probe::{ProbeStatus, ProbeStatusKind}; +use crate::{ping::{result::PingResult, setting::PingSetting}, probe::ProbeResult, protocol::Protocol}; +use anyhow::Result; +use nex::datalink::async_io::{async_channel, AsyncChannel}; +use tracing_indicatif::span_ext::IndicatifSpanExt; + +/// Run TCP Ping and return the results. +pub async fn run_tcp_ping(setting: &PingSetting) -> Result { + let mut result = PingResult::new(); + result.protocol = Protocol::Tcp; + let dst_port: u16 = setting.dst_port.unwrap_or(80); + + let interface = match crate::interface::get_interface_by_index(setting.if_index) { + Some(interface) => interface, + None => return Err(anyhow::anyhow!("Interface not found")), + }; + let src_ip_set: HashSet = interface.ip_addrs().iter().map(|ip| ip.clone()).collect(); + // Create sender + let config = nex::datalink::Config { + write_buffer_size: 4096, + read_buffer_size: 4096, + read_timeout: Some(setting.receive_timeout), + write_timeout: None, + channel_type: nex::datalink::ChannelType::Layer2, + bpf_fd_attempts: 1000, + linux_fanout: None, + promiscuous: false, + }; + + let AsyncChannel::Ethernet(mut tx, mut rx) = async_channel(&interface, config)? + else { + unreachable!(); + }; + + let mut responses: Vec = Vec::new(); + + let mut parse_option: ParseOption = ParseOption::default(); + if interface.is_tun() || (cfg!(any(target_os = "macos", target_os = "ios")) && interface.is_loopback()) { + let payload_offset = if interface.is_loopback() { 14 } else { 0 }; + parse_option.from_ip_packet = true; + parse_option.offset = payload_offset; + } + + let header_span = tracing::info_span!("ping"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message(&format!("ping ({})", setting.dst_ip)); + header_span.pb_set_length(setting.count as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + + let start_time = Instant::now(); + let tcp_packet = crate::packet::tcp::build_tcp_syn_packet(&interface, setting.dst_ip, dst_port, false); + for seq in 1..setting.count + 1 { + let send_time = Instant::now(); + match poll_fn(|cx| tx.poll_send(cx, &tcp_packet)).await { + Ok(_) => { + }, + Err(e) => eprintln!("Failed to send packet: {}", e), + } + loop { + match tokio::time::timeout(setting.receive_timeout, rx.next()).await { + Ok(Some(Ok(packet))) => { + let rtt = send_time.elapsed(); + let frame = match Frame::from_buf(&packet, parse_option.clone()) { + Some(frame) => frame, + None => { + eprintln!("Failed to parse packet: {:?}", packet); + continue; + } + }; + let mut mac_addr: MacAddr = MacAddr::zero(); + if let Some(datalink_layer) = &frame.datalink { + // Ethernet + if let Some(ethernet_header) = &datalink_layer.ethernet { + mac_addr = ethernet_header.source; + } + } + if let Some(ip_layer) = &frame.ip { + // IPv4 + if let Some(ipv4_header) = &ip_layer.ipv4 { + if IpAddr::V4(ipv4_header.source) == setting.dst_ip + && src_ip_set.contains(&IpAddr::V4(ipv4_header.destination)) + { + if let Some(transport) = &frame.transport { + if let Some(tcp) = &transport.tcp { + let port_state: PortState = if (tcp.flags & (TcpFlags::SYN | TcpFlags::ACK)) == (TcpFlags::SYN | TcpFlags::ACK) { + PortState::Open + } else if (tcp.flags & TcpFlags::RST) != 0 { + PortState::Closed + } else { + PortState::Filtered + }; + let probe_result: ProbeResult = ProbeResult { + seq: seq, + mac_addr: mac_addr, + ip_addr: setting.dst_ip, + host_name: setting.dst_hostname.clone(), + port_number: Some(dst_port), + port_status: Some(port_state), + ttl: ipv4_header.ttl, + hop: crate::util::ip::initial_ttl(ipv4_header.ttl) + - ipv4_header.ttl, + rtt: rtt, + probe_status: ProbeStatus::new(), + protocol: Protocol::Tcp, + node_type: NodeType::Destination, + sent_packet_size: tcp_packet.len(), + received_packet_size: packet.len(), + }; + tracing::info!("Reply from {}:{}, State={} bytes={} RTT={:?} TTL={}", setting.dst_ip, dst_port, port_state.as_str(), packet.len(), rtt, ipv4_header.ttl); + responses.push(probe_result); + header_span.pb_inc(1); + break; + } + } + } + } + // IPv6 + if let Some(ipv6_header) = &ip_layer.ipv6 { + if IpAddr::V6(ipv6_header.source) == setting.dst_ip + && src_ip_set.contains(&IpAddr::V6(ipv6_header.destination)) + { + if let Some(transport) = &frame.transport { + if let Some(tcp) = &transport.tcp { + let port_state: PortState = if (tcp.flags & (TcpFlags::SYN | TcpFlags::ACK)) == (TcpFlags::SYN | TcpFlags::ACK) { + PortState::Open + } else if (tcp.flags & TcpFlags::RST) != 0 { + PortState::Closed + } else { + PortState::Filtered + }; + let probe_result: ProbeResult = ProbeResult { + seq: seq, + mac_addr: mac_addr, + ip_addr: setting.dst_ip, + host_name: setting.dst_hostname.clone(), + port_number: Some(dst_port), + port_status: Some(port_state), + ttl: ipv6_header.hop_limit, + hop: crate::util::ip::initial_ttl(ipv6_header.hop_limit) + - ipv6_header.hop_limit, + rtt: rtt, + probe_status: ProbeStatus::new(), + protocol: Protocol::Tcp, + node_type: NodeType::Destination, + sent_packet_size: tcp_packet.len(), + received_packet_size: packet.len(), + }; + tracing::info!("Reply from {}:{}, State={} bytes={} RTT={:?} TTL={}", setting.dst_ip, dst_port, port_state.as_str(), packet.len(), rtt, ipv6_header.hop_limit); + responses.push(probe_result); + header_span.pb_inc(1); + break; + } + } + } + } + } + }, + Ok(Some(Err(e))) => { + tracing::error!("Failed to receive packet: {}", e); + header_span.pb_inc(1); + break; + }, + Ok(None) => { + tracing::error!("Channel closed"); + header_span.pb_inc(1); + break; + }, + Err(_) => { + tracing::error!("Request timeout for seq {}", seq); + let probe_result = ProbeResult::timeout( + seq, + setting.dst_ip, + setting.dst_hostname.clone(), + Protocol::Tcp, + tcp_packet.len(), + ); + responses.push(probe_result); + + header_span.pb_inc(1); + break; + } + } + + let elapsed_time: Duration = send_time.elapsed(); + if elapsed_time > setting.receive_timeout { + tracing::error!("Request timeout for seq {}", seq); + let probe_result = ProbeResult::timeout( + seq, + setting.dst_ip, + setting.dst_hostname.clone(), + Protocol::Tcp, + tcp_packet.len(), + ); + responses.push(probe_result); + + header_span.pb_inc(1); + break; + } + } + if !setting.send_rate.is_zero() { + tokio::time::sleep(setting.send_rate).await; + } + } + + // Finish header span + drop(header_span); + + let elapsed_time = start_time.elapsed(); + let received_count: usize = responses + .iter() + .filter(|r| r.probe_status.kind == ProbeStatusKind::Done) + .count(); + + let min_opt = if received_count > 0 { + let min = responses + .iter() + .map(|r| r.rtt) + .min() + .unwrap_or(Duration::from_millis(0)); + Some(min) + } else { + None + }; + + let avg_opt = if received_count > 0 { + let total = responses + .iter() + .map(|r| r.rtt) + .fold(Duration::from_millis(0), |acc, rtt| acc + rtt); + Some(total / received_count as u32) + } else { + None + }; + + let max_opt = if received_count > 0 { + let max = responses + .iter() + .map(|r| r.rtt) + .max() + .unwrap_or(Duration::from_millis(0)); + Some(max) + } else { + None + }; + + let ping_stat: PingStat = PingStat { + responses: responses.clone(), + probe_time: elapsed_time, + transmitted_count: setting.count as usize, + received_count: received_count, + min: min_opt, + avg: avg_opt, + max: max_opt, + }; + + result.probe_status = ProbeStatus::new(); + result.elapsed_time = elapsed_time; + result.ip_addr = setting.dst_ip; + result.hostname = setting.dst_hostname.clone(); + result.port_number = setting.dst_port; + result.protocol = Protocol::Tcp; + result.stat = ping_stat; + + Ok(result) +} diff --git a/src/ping/probe/udp.rs b/src/ping/probe/udp.rs new file mode 100644 index 0000000..dec7c5c --- /dev/null +++ b/src/ping/probe/udp.rs @@ -0,0 +1,265 @@ +use std::collections::HashSet; +use std::net::IpAddr; +use std::time::{Duration, Instant}; +use futures::stream::StreamExt; +use futures::future::poll_fn; +use netdev::MacAddr; +use nex::packet::frame::{Frame, ParseOption}; +use nex::packet::icmp::IcmpType; +use nex::packet::icmpv6::Icmpv6Type; +use crate::config::default::DEFAULT_BASE_TARGET_UDP_PORT; +use crate::endpoint::NodeType; +use crate::ping::result::PingStat; +use crate::probe::{ProbeStatus, ProbeStatusKind}; +use crate::{ping::{result::PingResult, setting::PingSetting}, probe::ProbeResult, protocol::Protocol}; +use anyhow::Result; +use nex::datalink::async_io::{async_channel, AsyncChannel}; +use tracing_indicatif::span_ext::IndicatifSpanExt; + +/// Run UDP Ping and return the results. +pub async fn run_udp_ping(setting: &PingSetting) -> Result { + let mut result = PingResult::new(); + result.protocol = Protocol::Udp; + + let interface = match crate::interface::get_interface_by_index(setting.if_index) { + Some(interface) => interface, + None => return Err(anyhow::anyhow!("Interface not found")), + }; + let src_ip_set: HashSet = interface.ip_addrs().iter().map(|ip| ip.clone()).collect(); + // Create sender + let config = nex::datalink::Config { + write_buffer_size: 4096, + read_buffer_size: 4096, + read_timeout: Some(setting.receive_timeout), + write_timeout: None, + channel_type: nex::datalink::ChannelType::Layer2, + bpf_fd_attempts: 1000, + linux_fanout: None, + promiscuous: false, + }; + + let AsyncChannel::Ethernet(mut tx, mut rx) = async_channel(&interface, config)? + else { + unreachable!(); + }; + + let mut responses: Vec = Vec::new(); + + let mut parse_option: ParseOption = ParseOption::default(); + if interface.is_tun() || (cfg!(any(target_os = "macos", target_os = "ios")) && interface.is_loopback()) { + let payload_offset = if interface.is_loopback() { 14 } else { 0 }; + parse_option.from_ip_packet = true; + parse_option.offset = payload_offset; + } + + let header_span = tracing::info_span!("ping"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message(&format!("ping ({})", setting.dst_ip)); + header_span.pb_set_length(setting.count as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + + let start_time = Instant::now(); + let udp_packet = crate::packet::udp::build_udp_packet(&interface, setting.dst_ip, DEFAULT_BASE_TARGET_UDP_PORT, false); + for seq in 1..setting.count + 1 { + let send_time = Instant::now(); + match poll_fn(|cx| tx.poll_send(cx, &udp_packet)).await { + Ok(_) => { + }, + Err(e) => eprintln!("Failed to send packet: {}", e), + } + loop { + match tokio::time::timeout(setting.receive_timeout, rx.next()).await { + Ok(Some(Ok(packet))) => { + let rtt = send_time.elapsed(); + let frame = match Frame::from_buf(&packet, parse_option.clone()) { + Some(frame) => frame, + None => { + eprintln!("Failed to parse packet: {:?}", packet); + continue; + } + }; + let mut mac_addr: MacAddr = MacAddr::zero(); + if let Some(datalink_layer) = &frame.datalink { + // Ethernet + if let Some(ethernet_header) = &datalink_layer.ethernet { + mac_addr = ethernet_header.source; + } + } + if let Some(ip_layer) = &frame.ip { + // IPv4 + if let Some(ipv4_header) = &ip_layer.ipv4 { + if IpAddr::V4(ipv4_header.source) == setting.dst_ip + && src_ip_set.contains(&IpAddr::V4(ipv4_header.destination)) + { + // IPv4 ICMP + if let Some(icmp_header) = &ip_layer.icmp { + if icmp_header.icmp_type == IcmpType::DestinationUnreachable { + let probe_result: ProbeResult = ProbeResult { + seq: seq, + mac_addr: mac_addr, + ip_addr: setting.dst_ip, + host_name: setting.dst_hostname.clone(), + port_number: None, + port_status: None, + ttl: ipv4_header.ttl, + hop: crate::util::ip::initial_ttl(ipv4_header.ttl) + - ipv4_header.ttl, + rtt: rtt, + probe_status: ProbeStatus::new(), + protocol: Protocol::Udp, + node_type: NodeType::Destination, + sent_packet_size: udp_packet.len(), + received_packet_size: packet.len(), + }; + tracing::info!("Reply from {}, bytes={} RTT={:?} TTL={}", setting.dst_ip, packet.len(), rtt, ipv4_header.ttl); + responses.push(probe_result); + header_span.pb_inc(1); + break; + } + } + } + } + // IPv6 + if let Some(ipv6_header) = &ip_layer.ipv6 { + if IpAddr::V6(ipv6_header.source) == setting.dst_ip + && src_ip_set.contains(&IpAddr::V6(ipv6_header.destination)) + { + // ICMPv6 + if let Some(icmpv6_header) = &ip_layer.icmpv6 { + if icmpv6_header.icmpv6_type == Icmpv6Type::DestinationUnreachable { + let probe_result: ProbeResult = ProbeResult { + seq: seq, + mac_addr: mac_addr, + ip_addr: setting.dst_ip, + host_name: setting.dst_hostname.clone(), + port_number: None, + port_status: None, + ttl: ipv6_header.hop_limit, + hop: crate::util::ip::initial_ttl(ipv6_header.hop_limit) + - ipv6_header.hop_limit, + rtt: rtt, + probe_status: ProbeStatus::new(), + protocol: Protocol::Udp, + node_type: NodeType::Destination, + sent_packet_size: udp_packet.len(), + received_packet_size: packet.len(), + }; + tracing::info!("Reply from {}, bytes={} RTT={:?} TTL={}", setting.dst_ip, packet.len(), rtt, ipv6_header.hop_limit); + responses.push(probe_result); + header_span.pb_inc(1); + break; + } + } + } + } + } + }, + Ok(Some(Err(e))) => { + tracing::error!("Failed to receive packet: {}", e); + header_span.pb_inc(1); + break; + }, + Ok(None) => { + tracing::error!("Channel closed"); + header_span.pb_inc(1); + break; + }, + Err(_) => { + tracing::error!("Request timeout for seq {}", seq); + let probe_result = ProbeResult::timeout( + seq, + setting.dst_ip, + setting.dst_hostname.clone(), + Protocol::Udp, + udp_packet.len(), + ); + responses.push(probe_result); + + header_span.pb_inc(1); + break; + } + } + + let elapsed_time: Duration = send_time.elapsed(); + if elapsed_time > setting.receive_timeout { + tracing::error!("Request timeout for seq {}", seq); + let probe_result = ProbeResult::timeout( + seq, + setting.dst_ip, + setting.dst_hostname.clone(), + Protocol::Udp, + udp_packet.len(), + ); + responses.push(probe_result); + + header_span.pb_inc(1); + break; + } + } + if !setting.send_rate.is_zero() { + tokio::time::sleep(setting.send_rate).await; + } + } + + // Finish header span + drop(header_span); + + let elapsed_time = start_time.elapsed(); + let received_count: usize = responses + .iter() + .filter(|r| r.probe_status.kind == ProbeStatusKind::Done) + .count(); + + let min_opt = if received_count > 0 { + let min = responses + .iter() + .map(|r| r.rtt) + .min() + .unwrap_or(Duration::from_millis(0)); + Some(min) + } else { + None + }; + + let avg_opt = if received_count > 0 { + let total = responses + .iter() + .map(|r| r.rtt) + .fold(Duration::from_millis(0), |acc, rtt| acc + rtt); + Some(total / received_count as u32) + } else { + None + }; + + let max_opt = if received_count > 0 { + let max = responses + .iter() + .map(|r| r.rtt) + .max() + .unwrap_or(Duration::from_millis(0)); + Some(max) + } else { + None + }; + + let ping_stat: PingStat = PingStat { + responses: responses.clone(), + probe_time: elapsed_time, + transmitted_count: setting.count as usize, + received_count: received_count, + min: min_opt, + avg: avg_opt, + max: max_opt, + }; + + result.probe_status = ProbeStatus::new(); + result.elapsed_time = elapsed_time; + result.ip_addr = setting.dst_ip; + result.hostname = setting.dst_hostname.clone(); + result.port_number = setting.dst_port; + result.protocol = Protocol::Udp; + result.stat = ping_stat; + + Ok(result) +} diff --git a/src/ping/result.rs b/src/ping/result.rs index 60b511a..563154d 100644 --- a/src/ping/result.rs +++ b/src/ping/result.rs @@ -1,8 +1,8 @@ -use crate::probe::{ProbeResult, ProbeStatus}; -use crate::protocol::Protocol; +use crate::{probe::{ProbeResult, ProbeStatus, ProbeStatusKind}, protocol::Protocol}; use serde::{Deserialize, Serialize}; -use std::time::Duration; +use std::{net::{IpAddr, Ipv4Addr}, time::Duration}; +/// Statistics of ping results #[derive(Serialize, Deserialize, Clone, Debug)] pub struct PingStat { /// Ping responses @@ -14,11 +14,11 @@ pub struct PingStat { /// Received packets pub received_count: usize, /// Minimum RTT - pub min: Duration, + pub min: Option, /// Avarage RTT - pub avg: Duration, + pub avg: Option, /// Maximum RTT - pub max: Duration, + pub max: Option, } impl PingStat { @@ -28,23 +28,22 @@ impl PingStat { probe_time: Duration::from_millis(0), transmitted_count: 0, received_count: 0, - min: Duration::from_millis(0), - avg: Duration::from_millis(0), - max: Duration::from_millis(0), + min: None, + avg: None, + max: None, } } } +/// Result of a ping operation #[derive(Serialize, Deserialize, Clone, Debug)] pub struct PingResult { pub stat: PingStat, pub probe_status: ProbeStatus, - /// start-time in RFC 3339 and ISO 8601 date and time string - pub start_time: String, - /// end-time in RFC 3339 and ISO 8601 date and time string - pub end_time: String, - /// Elapsed time pub elapsed_time: Duration, + pub ip_addr: IpAddr, + pub hostname: Option, + pub port_number: Option, pub protocol: Protocol, } @@ -53,40 +52,20 @@ impl PingResult { PingResult { stat: PingStat::new(), probe_status: ProbeStatus::new(), - start_time: String::new(), - end_time: String::new(), elapsed_time: Duration::from_millis(0), - protocol: Protocol::ICMP, + ip_addr: IpAddr::V4(Ipv4Addr::UNSPECIFIED), + hostname: None, + port_number: None, + protocol: Protocol::Icmp, } } -} - -#[derive(Serialize, Deserialize, Clone, Debug)] -pub struct TracerouteResult { - pub nodes: Vec, - pub probe_status: ProbeStatus, - /// start-time in RFC 3339 and ISO 8601 date and time string - pub start_time: String, - /// end-time in RFC 3339 and ISO 8601 date and time string - pub end_time: String, - /// Elapsed time - pub elapsed_time: Duration, - pub protocol: Protocol, -} - -impl TracerouteResult { - pub fn new() -> TracerouteResult { - TracerouteResult { - nodes: Vec::new(), - probe_status: ProbeStatus::new(), - start_time: String::new(), - end_time: String::new(), - elapsed_time: Duration::from_millis(0), - protocol: Protocol::UDP, - } + /// Return first successful response + pub fn first_response(&self) -> Option<&ProbeResult> { + self.stat.responses.iter().find(|r| r.probe_status.kind == ProbeStatusKind::Done) } } +/// Result of device resolution (ARP/NDP) #[derive(Serialize, Deserialize, Clone, Debug)] pub struct DeviceResolveResult { pub results: Vec, @@ -95,7 +74,6 @@ pub struct DeviceResolveResult { pub start_time: String, /// end-time in RFC 3339 and ISO 8601 date and time string pub end_time: String, - /// Elapsed time pub elapsed_time: Duration, pub protocol: Protocol, } @@ -108,7 +86,7 @@ impl DeviceResolveResult { start_time: String::new(), end_time: String::new(), elapsed_time: Duration::from_millis(0), - protocol: Protocol::ARP, + protocol: Protocol::Arp, } } } diff --git a/src/ping/setting.rs b/src/ping/setting.rs index 0ca1733..25b0e70 100644 --- a/src/ping/setting.rs +++ b/src/ping/setting.rs @@ -1,16 +1,17 @@ use std::net::Ipv4Addr; use std::{net::IpAddr, time::Duration}; - +use anyhow::Result; use netdev::Interface; use serde::{Deserialize, Serialize}; - -use crate::config::{DEFAULT_HOP_LIMIT, DEFAULT_PING_COUNT}; +use crate::config::default::{DEFAULT_BASE_TARGET_UDP_PORT, DEFAULT_HOP_LIMIT, DEFAULT_PING_COUNT}; +use crate::endpoint::Host; use crate::protocol::Protocol; +/// Settings for a ping operation #[derive(Deserialize, Serialize, Clone, Debug)] pub struct PingSetting { pub if_index: u32, - pub dst_hostname: String, + pub dst_hostname: Option, pub dst_ip: IpAddr, pub dst_port: Option, pub hop_limit: u8, @@ -27,11 +28,11 @@ impl Default for PingSetting { fn default() -> Self { Self { if_index: 0, - dst_hostname: "localhost".to_string(), + dst_hostname: None, dst_ip: IpAddr::V4(Ipv4Addr::LOCALHOST), dst_port: None, hop_limit: DEFAULT_HOP_LIMIT, - protocol: Protocol::ICMP, + protocol: Protocol::Icmp, count: DEFAULT_PING_COUNT, receive_timeout: Duration::from_secs(1), probe_timeout: Duration::from_secs(30), @@ -43,22 +44,23 @@ impl Default for PingSetting { } impl PingSetting { + /// Create a new ICMP ping setting pub fn icmp_ping( interface: &Interface, - dst_ip_addr: IpAddr, + dst_host: Host, count: u32, - ) -> Result { + ) -> Result { let use_tun = interface.is_tun(); let loopback = interface.is_loopback(); let setting = PingSetting { if_index: interface.index, - dst_ip: dst_ip_addr, - dst_hostname: dst_ip_addr.to_string(), + dst_ip: dst_host.ip, + dst_hostname: dst_host.hostname, dst_port: None, hop_limit: 64, count: count, - protocol: Protocol::ICMP, + protocol: Protocol::Icmp, receive_timeout: Duration::from_secs(1), probe_timeout: Duration::from_secs(30), send_rate: Duration::from_secs(1), @@ -67,23 +69,24 @@ impl PingSetting { }; Ok(setting) } + /// Create a new TCP ping setting pub fn tcp_ping( interface: &Interface, - dst_ip_addr: IpAddr, + dst_host: Host, dst_port: u16, count: u32, - ) -> Result { + ) -> Result { let use_tun = interface.is_tun(); let loopback = interface.is_loopback(); let setting = PingSetting { if_index: interface.index, - dst_ip: dst_ip_addr, - dst_hostname: dst_ip_addr.to_string(), + dst_ip: dst_host.ip, + dst_hostname: dst_host.hostname, dst_port: Some(dst_port), hop_limit: 64, count: count, - protocol: Protocol::TCP, + protocol: Protocol::Tcp, receive_timeout: Duration::from_secs(1), probe_timeout: Duration::from_secs(30), send_rate: Duration::from_secs(1), @@ -92,22 +95,23 @@ impl PingSetting { }; Ok(setting) } + /// Create a new UDP ping setting pub fn udp_ping( interface: &Interface, - dst_ip_addr: IpAddr, + dst_host: Host, count: u32, - ) -> Result { + ) -> Result { let use_tun = interface.is_tun(); let loopback = interface.is_loopback(); let setting: PingSetting = PingSetting { if_index: interface.index, - dst_ip: dst_ip_addr, - dst_hostname: dst_ip_addr.to_string(), - dst_port: Some(crate::config::DEFAULT_BASE_TARGET_UDP_PORT), + dst_ip: dst_host.ip, + dst_hostname: dst_host.hostname, + dst_port: Some(DEFAULT_BASE_TARGET_UDP_PORT), hop_limit: 64, count: count, - protocol: Protocol::UDP, + protocol: Protocol::Udp, receive_timeout: Duration::from_secs(1), probe_timeout: Duration::from_secs(30), send_rate: Duration::from_secs(1), diff --git a/src/probe.rs b/src/probe.rs index c2df529..5a9d377 100644 --- a/src/probe.rs +++ b/src/probe.rs @@ -1,10 +1,37 @@ -use crate::host::{NodeType, PortStatus}; +use crate::endpoint::{Endpoint, NodeType, PortState}; use crate::protocol::Protocol; use nex::net::mac::MacAddr; use serde::{Deserialize, Serialize}; +use std::collections::HashMap; use std::net::IpAddr; use std::time::Duration; +/// Settings for probe +#[derive(Debug, Clone)] +pub struct ProbeSetting { + pub target_endpoints: Vec, + pub if_index: u32, + pub host_concurrency: usize, + pub port_concurrency: usize, + pub task_timeout: Duration, + pub connect_timeout: Duration, + pub wait_time: Duration, + pub send_rate: Duration, +} + +impl ProbeSetting { + /// Get a map of IP addresses to hostnames for DNS resolution + pub fn get_dns_map(&self) -> HashMap { + let mut map = HashMap::new(); + for ep in &self.target_endpoints { + if let Some(hostname) = &ep.hostname { + map.insert(ep.ip, hostname.clone()); + } + } + map + } +} + /// Status of probe #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum ProbeStatusKind { @@ -17,6 +44,7 @@ pub enum ProbeStatusKind { } impl ProbeStatusKind { + /// Get the name of the status pub fn name(&self) -> String { match *self { ProbeStatusKind::Done => String::from("Done"), @@ -26,6 +54,7 @@ impl ProbeStatusKind { } } +/// Status of probe #[derive(Serialize, Deserialize, Clone, Debug)] pub struct ProbeStatus { pub kind: ProbeStatusKind, @@ -33,18 +62,21 @@ pub struct ProbeStatus { } impl ProbeStatus { + /// Create a new ProbeStatus with Done kind pub fn new() -> ProbeStatus { ProbeStatus { kind: ProbeStatusKind::Done, message: String::new(), } } + /// Create a new ProbeStatus with Error kind and message pub fn with_error_message(message: String) -> ProbeStatus { ProbeStatus { kind: ProbeStatusKind::Error, message: message, } } + /// Create a new ProbeStatus with Timeout kind and message pub fn with_timeout_message(message: String) -> ProbeStatus { ProbeStatus { kind: ProbeStatusKind::Timeout, @@ -53,6 +85,7 @@ impl ProbeStatus { } } +/// Result of probe #[derive(Serialize, Deserialize, Clone, Debug)] pub struct ProbeResult { /// Sequence number @@ -62,11 +95,11 @@ pub struct ProbeResult { /// IP address pub ip_addr: IpAddr, /// Host name - pub host_name: String, + pub host_name: Option, /// Port pub port_number: Option, /// Port Status - pub port_status: Option, + pub port_status: Option, /// Time To Live pub ttl: u8, /// Number of hops @@ -86,28 +119,30 @@ pub struct ProbeResult { } impl ProbeResult { + /// Create a new ProbeResult with default values pub fn new() -> ProbeResult { ProbeResult { seq: 0, mac_addr: MacAddr::zero(), ip_addr: IpAddr::V4(std::net::Ipv4Addr::LOCALHOST), - host_name: String::new(), + host_name: None, port_number: None, port_status: None, ttl: 0, hop: 0, rtt: Duration::from_millis(0), probe_status: ProbeStatus::new(), - protocol: Protocol::ICMP, + protocol: Protocol::Icmp, node_type: NodeType::Destination, sent_packet_size: 0, received_packet_size: 0, } } + /// Create a new ProbeResult with timeout status pub fn timeout( seq: u32, ip_addr: IpAddr, - host_name: String, + host_name: Option, protocol: Protocol, sent_packet_size: usize, ) -> ProbeResult { @@ -131,6 +166,7 @@ impl ProbeResult { received_packet_size: 0, } } + /// Create a new ProbeResult for trace timeout pub fn trace_timeout( seq: u32, protocol: Protocol, @@ -141,7 +177,7 @@ impl ProbeResult { seq: seq, mac_addr: MacAddr::zero(), ip_addr: IpAddr::V4(std::net::Ipv4Addr::UNSPECIFIED), - host_name: String::new(), + host_name: None, port_number: None, port_status: None, ttl: 0, diff --git a/src/protocol.rs b/src/protocol.rs new file mode 100644 index 0000000..44fb3c5 --- /dev/null +++ b/src/protocol.rs @@ -0,0 +1,27 @@ +use serde::{Deserialize, Serialize}; +use clap::ValueEnum; + +/// Supported protocols for probing +#[derive(Deserialize, Serialize, Copy, Clone, Debug, ValueEnum, Eq, PartialEq)] +pub enum Protocol { + Icmp, + Udp, + Tcp, + Quic, + Arp, + Ndp +} + +impl Protocol { + /// Get the protocol as a string + pub fn as_str(&self) -> &str { + match self { + Protocol::Icmp => "icmp", + Protocol::Udp => "udp", + Protocol::Tcp => "tcp", + Protocol::Quic => "quic", + Protocol::Arp => "arp", + Protocol::Ndp => "ndp", + } + } +} diff --git a/src/protocol/mod.rs b/src/protocol/mod.rs deleted file mode 100644 index 96c4af9..0000000 --- a/src/protocol/mod.rs +++ /dev/null @@ -1,32 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Deserialize, Serialize, Clone, Debug, PartialEq, Eq)] -pub enum Protocol { - ARP, - NDP, - ICMP, - TCP, - UDP, -} - -impl Protocol { - pub fn from_str(s: &str) -> Option { - match s.to_lowercase().as_str() { - "arp" => Some(Protocol::ARP), - "ndp" => Some(Protocol::NDP), - "icmp" => Some(Protocol::ICMP), - "tcp" => Some(Protocol::TCP), - "udp" => Some(Protocol::UDP), - _ => None, - } - } - pub fn to_str(&self) -> &str { - match self { - Protocol::ARP => "ARP", - Protocol::NDP => "NDP", - Protocol::ICMP => "ICMP", - Protocol::TCP => "TCP", - Protocol::UDP => "UDP", - } - } -} diff --git a/src/scan/async_io.rs b/src/scan/async_io.rs deleted file mode 100644 index 84ac754..0000000 --- a/src/scan/async_io.rs +++ /dev/null @@ -1,490 +0,0 @@ -use futures::stream::{self, StreamExt}; -use netdev::Interface; -use nex::socket::{AsyncSocket, IpVersion, SocketOption, SocketType}; -use std::net::{IpAddr, SocketAddr}; -use std::sync::mpsc::{self, Sender}; -use std::sync::{Arc, Mutex}; -use std::time::Duration; - -use crate::host::{Host, Port, PortStatus}; - -use super::packet::{build_hostscan_ip_next_packet, build_portscan_ip_next_packet}; -use super::result::ScanResult; -use super::setting::{HostScanSetting, PortScanSetting}; - -use crate::config::PCAP_WAIT_TIME_MILLIS; -use crate::packet::frame::PacketFrame; -use crate::pcap::PacketCaptureOptions; -use nex::packet::ip::IpNextLevelProtocol; -use std::collections::HashSet; -use std::thread; - -use super::result::{parse_hostscan_result, parse_portscan_result, ScanStatus}; -use super::setting::{HostScanType, PortScanType}; - -pub(crate) async fn send_portscan_packets( - interface: &Interface, - socket: &AsyncSocket, - scan_setting: &PortScanSetting, - ptx: &Arc>>, -) { - let fut_host = stream::iter(scan_setting.targets.clone()).for_each_concurrent( - scan_setting.concurrency, - |dst| async move { - let fut_port = stream::iter(dst.get_ports()).for_each_concurrent( - scan_setting.concurrency, - |port| { - let target = dst.clone(); - let dst_socket_addr: SocketAddr = SocketAddr::new(target.ip_addr, port); - async move { - let packet_bytes: Vec = - build_portscan_ip_next_packet(&interface, target.ip_addr, port); - match socket.send_to(&packet_bytes, dst_socket_addr).await { - Ok(_) => {} - Err(_) => {} - } - match ptx.lock() { - Ok(lr) => match lr.send(dst_socket_addr) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - //thread::sleep(scan_setting.send_rate); - } - }, - ); - fut_port.await; - }, - ); - fut_host.await; -} - -pub(crate) async fn send_hostscan_packets( - interface: &Interface, - scan_setting: &HostScanSetting, - ptx: &Arc>>, -) { - let fut_host = stream::iter(scan_setting.targets.clone()).for_each_concurrent( - scan_setting.concurrency, - |dst| async move { - let socket: AsyncSocket = match scan_setting.scan_type { - HostScanType::IcmpPingScan => match dst.ip_addr { - IpAddr::V4(_) => { - let socket_option = SocketOption { - ip_version: IpVersion::V4, - socket_type: SocketType::Raw, - protocol: Some(IpNextLevelProtocol::Icmp), - non_blocking: true, - }; - AsyncSocket::new(socket_option).unwrap() - } - IpAddr::V6(_) => { - let socket_option = SocketOption { - ip_version: IpVersion::V6, - socket_type: SocketType::Raw, - protocol: Some(IpNextLevelProtocol::Icmpv6), - non_blocking: true, - }; - AsyncSocket::new(socket_option).unwrap() - } - }, - HostScanType::TcpPingScan => { - let socket_option = SocketOption { - ip_version: if dst.ip_addr.is_ipv4() { - IpVersion::V4 - } else { - IpVersion::V6 - }, - socket_type: SocketType::Raw, - protocol: Some(IpNextLevelProtocol::Tcp), - non_blocking: true, - }; - AsyncSocket::new(socket_option).unwrap() - } - HostScanType::UdpPingScan => { - let socket_option = SocketOption { - ip_version: if dst.ip_addr.is_ipv4() { - IpVersion::V4 - } else { - IpVersion::V6 - }, - socket_type: SocketType::Raw, - protocol: Some(IpNextLevelProtocol::Udp), - non_blocking: true, - }; - AsyncSocket::new(socket_option).unwrap() - } - }; - let dst_socket_addr: SocketAddr = SocketAddr::new(dst.ip_addr, 0); - let packet_bytes = - build_hostscan_ip_next_packet(&interface, &dst, &scan_setting.scan_type); - match socket.send_to(&packet_bytes, dst_socket_addr).await { - Ok(_) => {} - Err(_) => {} - } - match ptx.lock() { - Ok(lr) => match lr.send(dst) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - //thread::sleep(scan_setting.send_rate); - }, - ); - fut_host.await; -} - -pub async fn try_connect_ports( - target: Host, - concurrency: usize, - timeout: Duration, - ptx: &Arc>>, -) -> Host { - let (channel_tx, channel_rx) = mpsc::channel(); - let fut = stream::iter(target.get_ports()).for_each_concurrent(concurrency, |port| { - let channel_tx = channel_tx.clone(); - async move { - let socket_addr: SocketAddr = SocketAddr::new(target.ip_addr, port); - match AsyncSocket::new_with_async_connect_timeout(&socket_addr, timeout).await { - Ok(async_socket) => { - let _ = channel_tx.send(port); - match async_socket.shutdown(std::net::Shutdown::Both).await { - Ok(_) => {} - Err(_) => {} - } - } - Err(_) => {} - } - match ptx.lock() { - Ok(lr) => match lr.send(socket_addr) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - } - }); - fut.await; - drop(channel_tx); - let mut open_ports: Vec = vec![]; - loop { - match channel_rx.recv() { - Ok(port) => { - open_ports.push(Port { - number: port, - status: PortStatus::Open, - service_name: String::new(), - service_version: String::new(), - }); - } - Err(_) => { - break; - } - } - } - Host { - ip_addr: target.ip_addr, - hostname: target.hostname, - ports: open_ports, - mac_addr: target.mac_addr, - vendor_name: target.vendor_name, - os_family: String::new(), - ttl: target.ttl, - } -} - -pub fn run_connect_scan( - scan_setting: PortScanSetting, - ptx: &Arc>>, -) -> ScanResult { - let rt = tokio::runtime::Runtime::new().unwrap(); - let result = rt.block_on(async { - let start_time = std::time::Instant::now(); - let mut tasks = vec![]; - for target in scan_setting.targets { - let ptx = ptx.clone(); - tasks.push(tokio::spawn(async move { - let host = - try_connect_ports(target, scan_setting.concurrency, scan_setting.timeout, &ptx) - .await; - host - })); - } - let mut hosts: Vec = vec![]; - for task in tasks { - match task.await { - Ok(host) => { - hosts.push(host); - } - Err(e) => { - println!("error: {}", e); - } - } - } - let mut result = ScanResult::new(); - result.hosts = hosts; - result.scan_time = start_time.elapsed(); - result.scan_status = crate::scan::result::ScanStatus::Done; - result - }); - result -} - -pub(crate) async fn scan_hosts( - scan_setting: HostScanSetting, - ptx: &Arc>>, -) -> ScanResult { - let interface = match crate::interface::get_interface_by_index(scan_setting.if_index) { - Some(interface) => interface, - None => return ScanResult::new(), - }; - // Create sender - let config = nex::datalink::Config { - write_buffer_size: 4096, - read_buffer_size: 4096, - read_timeout: Some(scan_setting.wait_time), - write_timeout: None, - channel_type: nex::datalink::ChannelType::Layer2, - bpf_fd_attempts: 1000, - linux_fanout: None, - promiscuous: false, - }; - let (mut _tx, mut rx) = match nex::datalink::channel(&interface, config) { - Ok(nex::datalink::Channel::Ethernet(tx, rx)) => (tx, rx), - Ok(_) => return ScanResult::error("Unhandled channel type".to_string()), - Err(e) => return ScanResult::error(format!("Failed to create channel: {}", e)), - }; - let mut capture_options: PacketCaptureOptions = PacketCaptureOptions { - interface_index: interface.index, - interface_name: interface.name.clone(), - src_ips: HashSet::new(), - dst_ips: HashSet::new(), - src_ports: HashSet::new(), - dst_ports: HashSet::new(), - ether_types: HashSet::new(), - ip_protocols: HashSet::new(), - capture_timeout: scan_setting.timeout, - read_timeout: scan_setting.wait_time, - promiscuous: false, - receive_undefined: false, - tunnel: interface.is_tun(), - loopback: interface.is_loopback(), - }; - for target in scan_setting.targets.clone() { - capture_options.src_ips.insert(target.ip_addr); - } - match scan_setting.scan_type { - HostScanType::IcmpPingScan => { - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Icmp); - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Icmpv6); - } - HostScanType::TcpPingScan => { - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Tcp); - for target in scan_setting.targets.clone() { - for port in target.get_ports() { - capture_options.src_ports.insert(port); - } - } - } - HostScanType::UdpPingScan => { - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Udp); - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Icmp); - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Icmpv6); - } - } - let stop: Arc> = Arc::new(Mutex::new(false)); - let stop_handle = Arc::clone(&stop); - let packets: Arc>> = Arc::new(Mutex::new(vec![])); - let receive_packets: Arc>> = Arc::clone(&packets); - // Spawn pcap thread - let pcap_handler = thread::spawn(move || { - let packets: Vec = - crate::pcap::start_capture(&mut rx, capture_options, &stop_handle); - match receive_packets.lock() { - Ok(mut receive_packets) => { - for p in packets { - receive_packets.push(p); - } - } - Err(e) => { - eprintln!("Failed to lock receive_packets: {}", e); - } - } - }); - - // Wait for listener to start (need fix for better way) - thread::sleep(Duration::from_millis(PCAP_WAIT_TIME_MILLIS)); - let start_time = std::time::Instant::now(); - // Send probe packets - send_hostscan_packets(&interface, &scan_setting, ptx).await; - thread::sleep(scan_setting.wait_time); - // Stop pcap - match stop.lock() { - Ok(mut stop) => { - *stop = true; - } - Err(e) => { - eprintln!("Failed to lock stop: {}", e); - } - } - // Wait for listener to stop - match pcap_handler.join() { - Ok(_) => {} - Err(e) => { - eprintln!("Failed to join pcap_handler: {:?}", e); - } - } - - let mut scan_result: ScanResult = ScanResult::new(); - match packets.lock() { - Ok(packets) => { - scan_result = parse_hostscan_result(packets.clone(), scan_setting); - } - Err(e) => { - eprintln!("Failed to lock packets: {}", e); - } - } - scan_result.scan_time = start_time.elapsed(); - scan_result.scan_status = ScanStatus::Done; - scan_result -} - -pub(crate) async fn scan_ports( - scan_setting: PortScanSetting, - ptx: &Arc>>, -) -> ScanResult { - let interface = match crate::interface::get_interface_by_index(scan_setting.if_index) { - Some(interface) => interface, - None => return ScanResult::new(), - }; - // Create sender - let config = nex::datalink::Config { - write_buffer_size: 4096, - read_buffer_size: 4096, - read_timeout: Some(scan_setting.wait_time), - write_timeout: None, - channel_type: nex::datalink::ChannelType::Layer2, - bpf_fd_attempts: 1000, - linux_fanout: None, - promiscuous: false, - }; - let (mut _tx, mut rx) = match nex::datalink::channel(&interface, config) { - Ok(nex::datalink::Channel::Ethernet(tx, rx)) => (tx, rx), - Ok(_) => return ScanResult::error("Unhandled channel type".to_string()), - Err(e) => return ScanResult::error(format!("Failed to create channel: {}", e)), - }; - let socket_option = SocketOption { - ip_version: if scan_setting.targets.len() > 0 { - if scan_setting.targets[0].ip_addr.is_ipv4() { - IpVersion::V4 - } else { - IpVersion::V6 - } - } else { - IpVersion::V4 - }, - socket_type: SocketType::Raw, - protocol: Some(IpNextLevelProtocol::Tcp), - non_blocking: true, - }; - let socket: AsyncSocket = AsyncSocket::new(socket_option).unwrap(); - let mut capture_options: PacketCaptureOptions = PacketCaptureOptions { - interface_index: interface.index, - interface_name: interface.name.clone(), - src_ips: HashSet::new(), - dst_ips: HashSet::new(), - src_ports: HashSet::new(), - dst_ports: HashSet::new(), - ether_types: HashSet::new(), - ip_protocols: HashSet::new(), - capture_timeout: scan_setting.timeout, - read_timeout: scan_setting.wait_time, - promiscuous: false, - receive_undefined: false, - tunnel: interface.is_tun(), - loopback: interface.is_loopback(), - }; - for target in scan_setting.targets.clone() { - capture_options.src_ips.insert(target.ip_addr); - capture_options.src_ports.extend(target.get_ports()); - } - match scan_setting.scan_type { - PortScanType::TcpSynScan => { - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Tcp); - } - PortScanType::TcpConnectScan => { - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Tcp); - } - } - let stop: Arc> = Arc::new(Mutex::new(false)); - let stop_handle = Arc::clone(&stop); - let packets: Arc>> = Arc::new(Mutex::new(vec![])); - let receive_packets: Arc>> = Arc::clone(&packets); - // Spawn pcap thread - let pcap_handler = thread::spawn(move || { - let packets: Vec = - crate::pcap::start_capture(&mut rx, capture_options, &stop_handle); - match receive_packets.lock() { - Ok(mut receive_packets) => { - for p in packets { - receive_packets.push(p); - } - } - Err(e) => { - eprintln!("Failed to lock receive_packets: {}", e); - } - } - }); - // Wait for listener to start (need fix for better way) - thread::sleep(Duration::from_millis(PCAP_WAIT_TIME_MILLIS)); - let start_time = std::time::Instant::now(); - // Send probe packets - send_portscan_packets(&interface, &socket, &scan_setting, ptx).await; - thread::sleep(scan_setting.wait_time); - // Stop pcap - match stop.lock() { - Ok(mut stop) => { - *stop = true; - } - Err(e) => { - eprintln!("Failed to lock stop: {}", e); - } - } - // Wait for listener to stop - match pcap_handler.join() { - Ok(_) => {} - Err(e) => { - eprintln!("Failed to join pcap_handler: {:?}", e); - } - } - let mut scan_result: ScanResult = ScanResult::new(); - match packets.lock() { - Ok(packets) => { - scan_result = parse_portscan_result(packets.clone(), scan_setting); - } - Err(e) => { - eprintln!("Failed to lock packets: {}", e); - } - } - scan_result.scan_time = start_time.elapsed(); - scan_result.scan_status = ScanStatus::Done; - scan_result -} diff --git a/src/scan/blocking.rs b/src/scan/blocking.rs deleted file mode 100644 index 1490336..0000000 --- a/src/scan/blocking.rs +++ /dev/null @@ -1,352 +0,0 @@ -use crate::config::PCAP_WAIT_TIME_MILLIS; -use crate::host::Host; -use crate::packet::frame::PacketFrame; -use crate::pcap::PacketCaptureOptions; -use crate::scan::setting::{HostScanSetting, PortScanSetting}; -use netdev::Interface; -use nex::datalink::RawSender; -use nex::packet::ip::IpNextLevelProtocol; -use std::collections::HashSet; -use std::net::SocketAddr; -use std::sync::mpsc::Sender; -use std::sync::{Arc, Mutex}; -use std::thread; -use std::time::Duration; - -use super::packet::{build_hostscan_packet, build_portscan_packet}; -use super::result::{parse_hostscan_result, parse_portscan_result, ScanResult, ScanStatus}; -use super::setting::{HostScanType, PortScanType}; - -pub(crate) fn send_hostscan_packets( - tx: &mut Box, - interface: &Interface, - targets: Vec, - ptx: &Arc>>, - scan_type: HostScanType, -) { - // Acquire message sender lock - let ptx_lock = match ptx.lock() { - Ok(ptx) => ptx, - Err(e) => { - eprintln!("Failed to lock ptx: {}", e); - return; - } - }; - for target in targets { - let packet = build_hostscan_packet(&interface, &target, &scan_type, false); - match tx.send(&packet) { - Some(_) => { - // Notify packet sent - match ptx_lock.send(target) { - Ok(_) => {} - Err(e) => { - eprintln!("Failed to send message: {}", e); - } - } - } - None => { - eprintln!("Failed to send packet"); - } - } - } - // Drop message sender lock - drop(ptx_lock); -} - -pub(crate) fn send_portscan_packets( - tx: &mut Box, - interface: &Interface, - targets: Vec, - ptx: &Arc>>, - scan_type: PortScanType, -) { - // Acquire message sender lock - let ptx_lock = match ptx.lock() { - Ok(ptx) => ptx, - Err(e) => { - eprintln!("Failed to lock ptx: {}", e); - return; - } - }; - for target in targets { - match scan_type { - PortScanType::TcpSynScan => { - for port in target.ports { - let packet = - build_portscan_packet(&interface, target.ip_addr, port.number, false); - match tx.send(&packet) { - Some(_) => { - // Notify packet sent - match ptx_lock.send(SocketAddr::new(target.ip_addr, port.number)) { - Ok(_) => {} - Err(e) => { - eprintln!("Failed to send message: {}", e); - } - } - } - None => { - eprintln!("Failed to send packet"); - } - } - } - } - PortScanType::TcpConnectScan => { - // TODO - } - } - } - // Drop message sender lock - drop(ptx_lock); -} - -pub(crate) fn scan_hosts( - scan_setting: HostScanSetting, - ptx: &Arc>>, -) -> ScanResult { - let interface = match crate::interface::get_interface_by_index(scan_setting.if_index) { - Some(interface) => interface, - None => return ScanResult::new(), - }; - // Create sender - let config = nex::datalink::Config { - write_buffer_size: 4096, - read_buffer_size: 4096, - read_timeout: Some(scan_setting.wait_time), - write_timeout: None, - channel_type: nex::datalink::ChannelType::Layer2, - bpf_fd_attempts: 1000, - linux_fanout: None, - promiscuous: false, - }; - let (mut tx, mut rx) = match nex::datalink::channel(&interface, config) { - Ok(nex::datalink::Channel::Ethernet(tx, rx)) => (tx, rx), - Ok(_) => return ScanResult::error("Unhandled channel type".to_string()), - Err(e) => return ScanResult::error(format!("Failed to create channel: {}", e)), - }; - let mut capture_options: PacketCaptureOptions = PacketCaptureOptions { - interface_index: interface.index, - interface_name: interface.name.clone(), - src_ips: HashSet::new(), - dst_ips: HashSet::new(), - src_ports: HashSet::new(), - dst_ports: HashSet::new(), - ether_types: HashSet::new(), - ip_protocols: HashSet::new(), - capture_timeout: scan_setting.timeout, - read_timeout: scan_setting.wait_time, - promiscuous: false, - receive_undefined: false, - tunnel: interface.is_tun(), - loopback: interface.is_loopback(), - }; - for target in scan_setting.targets.clone() { - capture_options.src_ips.insert(target.ip_addr); - } - match scan_setting.scan_type { - HostScanType::IcmpPingScan => { - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Icmp); - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Icmpv6); - } - HostScanType::TcpPingScan => { - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Tcp); - for target in scan_setting.targets.clone() { - for port in target.ports { - capture_options.src_ports.insert(port.number); - } - } - } - HostScanType::UdpPingScan => { - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Udp); - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Icmp); - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Icmpv6); - } - } - let stop: Arc> = Arc::new(Mutex::new(false)); - let stop_handle = Arc::clone(&stop); - let packets: Arc>> = Arc::new(Mutex::new(vec![])); - let receive_packets: Arc>> = Arc::clone(&packets); - // Spawn pcap thread - let pcap_handler = thread::spawn(move || { - let packets: Vec = - crate::pcap::start_capture(&mut rx, capture_options, &stop_handle); - match receive_packets.lock() { - Ok(mut receive_packets) => { - for p in packets { - receive_packets.push(p); - } - } - Err(e) => { - eprintln!("Failed to lock receive_packets: {}", e); - } - } - }); - // Wait for listener to start (need fix for better way) - thread::sleep(Duration::from_millis(PCAP_WAIT_TIME_MILLIS)); - let start_time = std::time::Instant::now(); - // Send probe packets - send_hostscan_packets( - &mut tx, - &interface, - scan_setting.targets.clone(), - ptx, - scan_setting.scan_type.clone(), - ); - thread::sleep(scan_setting.wait_time); - // Stop pcap - match stop.lock() { - Ok(mut stop) => { - *stop = true; - } - Err(e) => { - eprintln!("Failed to lock stop: {}", e); - } - } - // Wait for listener to stop - match pcap_handler.join() { - Ok(_) => {} - Err(e) => { - eprintln!("Failed to join pcap_handler: {:?}", e); - } - } - let mut scan_result: ScanResult = ScanResult::new(); - match packets.lock() { - Ok(packets) => { - scan_result = parse_hostscan_result(packets.clone(), scan_setting); - } - Err(e) => { - eprintln!("Failed to lock packets: {}", e); - } - } - scan_result.scan_time = start_time.elapsed(); - scan_result.scan_status = ScanStatus::Done; - scan_result -} - -pub(crate) fn scan_ports( - scan_setting: PortScanSetting, - ptx: &Arc>>, -) -> ScanResult { - let interface = match crate::interface::get_interface_by_index(scan_setting.if_index) { - Some(interface) => interface, - None => return ScanResult::new(), - }; - // Create sender - let config = nex::datalink::Config { - write_buffer_size: 4096, - read_buffer_size: 4096, - read_timeout: Some(scan_setting.wait_time), - write_timeout: None, - channel_type: nex::datalink::ChannelType::Layer2, - bpf_fd_attempts: 1000, - linux_fanout: None, - promiscuous: false, - }; - let (mut tx, mut rx) = match nex::datalink::channel(&interface, config) { - Ok(nex::datalink::Channel::Ethernet(tx, rx)) => (tx, rx), - Ok(_) => return ScanResult::error("Unhandled channel type".to_string()), - Err(e) => return ScanResult::error(format!("Failed to create channel: {}", e)), - }; - let mut capture_options: PacketCaptureOptions = PacketCaptureOptions { - interface_index: interface.index, - interface_name: interface.name.clone(), - src_ips: HashSet::new(), - dst_ips: HashSet::new(), - src_ports: HashSet::new(), - dst_ports: HashSet::new(), - ether_types: HashSet::new(), - ip_protocols: HashSet::new(), - capture_timeout: scan_setting.timeout, - read_timeout: scan_setting.wait_time, - promiscuous: false, - receive_undefined: false, - tunnel: interface.is_tun(), - loopback: interface.is_loopback(), - }; - for target in scan_setting.targets.clone() { - capture_options.src_ips.insert(target.ip_addr); - capture_options.src_ports.extend(target.get_ports()); - } - match scan_setting.scan_type { - PortScanType::TcpSynScan => { - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Tcp); - } - PortScanType::TcpConnectScan => { - capture_options - .ip_protocols - .insert(IpNextLevelProtocol::Tcp); - } - } - let stop: Arc> = Arc::new(Mutex::new(false)); - let stop_handle = Arc::clone(&stop); - let packets: Arc>> = Arc::new(Mutex::new(vec![])); - let receive_packets: Arc>> = Arc::clone(&packets); - // Spawn pcap thread - let pcap_handler = thread::spawn(move || { - let packets: Vec = - crate::pcap::start_capture(&mut rx, capture_options, &stop_handle); - match receive_packets.lock() { - Ok(mut receive_packets) => { - for p in packets { - receive_packets.push(p); - } - } - Err(e) => { - eprintln!("Failed to lock receive_packets: {}", e); - } - } - }); - // Wait for listener to start (need fix for better way) - thread::sleep(Duration::from_millis(PCAP_WAIT_TIME_MILLIS)); - let start_time = std::time::Instant::now(); - // Send probe packets - send_portscan_packets( - &mut tx, - &interface, - scan_setting.targets.clone(), - ptx, - scan_setting.scan_type.clone(), - ); - thread::sleep(scan_setting.wait_time); - // Stop pcap - match stop.lock() { - Ok(mut stop) => { - *stop = true; - } - Err(e) => { - eprintln!("Failed to lock stop: {}", e); - } - } - // Wait for listener to stop - match pcap_handler.join() { - Ok(_) => {} - Err(e) => { - eprintln!("Failed to join pcap_handler: {:?}", e); - } - } - let mut scan_result: ScanResult = ScanResult::new(); - match packets.lock() { - Ok(packets) => { - scan_result = parse_portscan_result(packets.clone(), scan_setting); - } - Err(e) => { - eprintln!("Failed to lock packets: {}", e); - } - } - scan_result.scan_time = start_time.elapsed(); - scan_result.scan_status = ScanStatus::Done; - scan_result -} diff --git a/src/scan/mod.rs b/src/scan/mod.rs index c722db6..ded2588 100644 --- a/src/scan/mod.rs +++ b/src/scan/mod.rs @@ -1,8 +1,52 @@ -pub mod async_io; -pub mod blocking; -pub mod packet; -pub mod payload; -pub mod result; -pub mod scanner; -pub mod service; -pub mod setting; +use anyhow::Result; + +use crate::{cli::{HostScanProto, PortScanMethod}, endpoint::TransportProtocol, output::ScanResult, probe::ProbeSetting}; + +pub mod probe; + +/// A port scanner that can perform scans using different methods and transport protocols. +pub struct PortScanner { + pub settings: ProbeSetting, + pub scan_method: PortScanMethod, + pub transport: TransportProtocol, +} + +impl PortScanner { + /// Create a new PortScanner instance. + pub fn new(settings: ProbeSetting, transport: TransportProtocol, scan_method: PortScanMethod) -> Self { + Self { + settings, + scan_method, + transport, + } + } + /// Run the port scan based on the specified transport protocol and method. + pub async fn run(&self) -> Result { + match self.transport { + TransportProtocol::Tcp => probe::tcp::run_port_scan(self.settings.clone(), self.scan_method).await, + TransportProtocol::Quic => probe::quic::run_port_scan(self.settings.clone(), self.scan_method).await, + _ => anyhow::bail!("Unsupported transport protocol: {:?}", self.transport), + } + } +} + +/// A host scanner that can perform scans using different protocols. +pub struct HostScanner { + pub settings: ProbeSetting, + pub protocol: HostScanProto, +} + +impl HostScanner { + /// Create a new HostScanner instance. + pub fn new(settings: ProbeSetting, protocol: HostScanProto) -> Self { + Self { settings, protocol } + } + /// Run the host scan based on the specified protocol. + pub async fn run(&self) -> Result { + match self.protocol { + HostScanProto::Icmp => probe::icmp::run_host_scan(self.settings.clone()).await, + HostScanProto::Udp => probe::udp::run_host_scan(self.settings.clone()).await, + HostScanProto::Tcp => probe::tcp::run_host_scan(self.settings.clone()).await, + } + } +} diff --git a/src/scan/packet.rs b/src/scan/packet.rs deleted file mode 100644 index 4a54a47..0000000 --- a/src/scan/packet.rs +++ /dev/null @@ -1,203 +0,0 @@ -use super::setting::HostScanType; -use crate::config::{DEFAULT_HOP_LIMIT, DEFAULT_LOCAL_TCP_PORT, DEFAULT_LOCAL_UDP_PORT}; -use crate::host::Host; -use crate::packet::setting::PacketBuildSetting; -use netdev::Interface; -use nex::net::ip::is_global_ipv6; -use std::net::IpAddr; - -pub(crate) fn build_hostscan_packet( - interface: &Interface, - target_host: &Host, - scan_type: &HostScanType, - ip_packet: bool, -) -> Vec { - let mut build_setting = PacketBuildSetting::new(); - if let Some(mac_addr) = &interface.mac_addr { - build_setting.src_mac = *mac_addr; - } - if let Some(gateway) = &interface.gateway { - build_setting.dst_mac = gateway.mac_addr; - } - match target_host.ip_addr { - IpAddr::V4(ipv4_addr) => { - interface.ipv4.iter().for_each(|ipv4| { - build_setting.src_ip = IpAddr::V4(ipv4.addr()); - }); - build_setting.dst_ip = IpAddr::V4(ipv4_addr); - } - IpAddr::V6(ipv6_addr) => { - if is_global_ipv6(&ipv6_addr) { - interface.ipv6.iter().for_each(|ipv6| { - if is_global_ipv6(&ipv6.addr()) { - build_setting.src_ip = IpAddr::V6(ipv6.addr()); - } - }); - } else { - interface.ipv6.iter().for_each(|ipv6| { - build_setting.src_ip = IpAddr::V6(ipv6.addr()); - }); - } - build_setting.dst_ip = IpAddr::V6(ipv6_addr); - } - } - if target_host.ports.len() > 0 { - build_setting.dst_port = target_host.ports[0].number; - } - build_setting.hop_limit = DEFAULT_HOP_LIMIT; - if ip_packet || interface.is_tun() || interface.is_loopback() { - build_setting.ip_packet = true; - } - match scan_type { - HostScanType::IcmpPingScan => crate::packet::icmp::build_icmp_packet(build_setting), - HostScanType::TcpPingScan => { - build_setting.src_port = DEFAULT_LOCAL_TCP_PORT; - crate::packet::tcp::build_tcp_syn_packet(build_setting) - } - HostScanType::UdpPingScan => { - build_setting.src_port = DEFAULT_LOCAL_UDP_PORT; - crate::packet::udp::build_udp_packet(build_setting) - } - } -} - -pub(crate) fn build_hostscan_ip_next_packet( - interface: &Interface, - target_host: &Host, - scan_type: &HostScanType, -) -> Vec { - let mut build_setting = PacketBuildSetting::new(); - if let Some(mac_addr) = &interface.mac_addr { - build_setting.src_mac = *mac_addr; - } - if let Some(gateway) = &interface.gateway { - build_setting.dst_mac = gateway.mac_addr; - } - match target_host.ip_addr { - IpAddr::V4(ipv4_addr) => { - interface.ipv4.iter().for_each(|ipv4| { - build_setting.src_ip = IpAddr::V4(ipv4.addr()); - }); - build_setting.dst_ip = IpAddr::V4(ipv4_addr); - } - IpAddr::V6(ipv6_addr) => { - if is_global_ipv6(&ipv6_addr) { - interface.ipv6.iter().for_each(|ipv6| { - if is_global_ipv6(&ipv6.addr()) { - build_setting.src_ip = IpAddr::V6(ipv6.addr()); - } - }); - } else { - interface.ipv6.iter().for_each(|ipv6| { - build_setting.src_ip = IpAddr::V6(ipv6.addr()); - }); - } - build_setting.dst_ip = IpAddr::V6(ipv6_addr); - } - } - if target_host.ports.len() > 0 { - build_setting.dst_port = target_host.ports[0].number; - } - build_setting.hop_limit = DEFAULT_HOP_LIMIT; - if interface.is_tun() || interface.is_loopback() { - build_setting.ip_packet = true; - } - match scan_type { - HostScanType::IcmpPingScan => crate::packet::icmp::build_ip_next_icmp_packet(build_setting), - HostScanType::TcpPingScan => { - build_setting.src_port = DEFAULT_LOCAL_TCP_PORT; - crate::packet::tcp::build_ip_next_tcp_syn_packet(build_setting) - } - HostScanType::UdpPingScan => { - build_setting.src_port = DEFAULT_LOCAL_UDP_PORT; - crate::packet::udp::build_ip_next_udp_packet(build_setting) - } - } -} - -pub(crate) fn build_portscan_packet( - interface: &Interface, - target_ip_addr: IpAddr, - target_port: u16, - ip_packet: bool, -) -> Vec { - let mut build_setting = PacketBuildSetting::new(); - if let Some(mac_addr) = &interface.mac_addr { - build_setting.src_mac = *mac_addr; - } - if let Some(gateway) = &interface.gateway { - build_setting.dst_mac = gateway.mac_addr; - } - match target_ip_addr { - IpAddr::V4(ipv4_addr) => { - interface.ipv4.iter().for_each(|ipv4| { - build_setting.src_ip = IpAddr::V4(ipv4.addr()); - }); - build_setting.dst_ip = IpAddr::V4(ipv4_addr); - } - IpAddr::V6(ipv6_addr) => { - if is_global_ipv6(&ipv6_addr) { - interface.ipv6.iter().for_each(|ipv6| { - if is_global_ipv6(&ipv6.addr()) { - build_setting.src_ip = IpAddr::V6(ipv6.addr()); - } - }); - } else { - interface.ipv6.iter().for_each(|ipv6| { - build_setting.src_ip = IpAddr::V6(ipv6.addr()); - }); - } - build_setting.dst_ip = IpAddr::V6(ipv6_addr); - } - } - build_setting.dst_port = target_port; - build_setting.hop_limit = DEFAULT_HOP_LIMIT; - if ip_packet || interface.is_tun() || interface.is_loopback() { - build_setting.ip_packet = true; - } - build_setting.src_port = DEFAULT_LOCAL_TCP_PORT; - crate::packet::tcp::build_tcp_syn_packet(build_setting) -} - -pub(crate) fn build_portscan_ip_next_packet( - interface: &Interface, - target_ip_addr: IpAddr, - target_port: u16, -) -> Vec { - let mut build_setting = PacketBuildSetting::new(); - if let Some(mac_addr) = &interface.mac_addr { - build_setting.src_mac = *mac_addr; - } - if let Some(gateway) = &interface.gateway { - build_setting.dst_mac = gateway.mac_addr; - } - match target_ip_addr { - IpAddr::V4(ipv4_addr) => { - interface.ipv4.iter().for_each(|ipv4| { - build_setting.src_ip = IpAddr::V4(ipv4.addr()); - }); - build_setting.dst_ip = IpAddr::V4(ipv4_addr); - } - IpAddr::V6(ipv6_addr) => { - if is_global_ipv6(&ipv6_addr) { - interface.ipv6.iter().for_each(|ipv6| { - if is_global_ipv6(&ipv6.addr()) { - build_setting.src_ip = IpAddr::V6(ipv6.addr()); - } - }); - } else { - interface.ipv6.iter().for_each(|ipv6| { - build_setting.src_ip = IpAddr::V6(ipv6.addr()); - }); - } - build_setting.dst_ip = IpAddr::V6(ipv6_addr); - } - } - build_setting.dst_port = target_port; - build_setting.hop_limit = DEFAULT_HOP_LIMIT; - if interface.is_tun() || interface.is_loopback() { - build_setting.ip_packet = true; - } - build_setting.src_port = DEFAULT_LOCAL_TCP_PORT; - crate::packet::tcp::build_ip_next_tcp_syn_packet(build_setting) -} diff --git a/src/scan/payload.rs b/src/scan/payload.rs deleted file mode 100644 index 5e11a2d..0000000 --- a/src/scan/payload.rs +++ /dev/null @@ -1,198 +0,0 @@ -/// Payloads for service detection -#[derive(Clone, Debug, PartialEq, Eq)] -pub enum PayloadType { - /// No payload. Just open TCP connection and read response. - Null, - /// HTTP request - Http, - /// HTTPS request - Https, - /// Common payload. Write payload and read response. - Common, - /// Common payload for TLS. Write payload and read response with TLS. - CommonTls, -} - -/// Payload information for service detection -#[derive(Clone, Debug, PartialEq)] -pub struct PayloadInfo { - pub payload: Vec, - pub payload_type: PayloadType, -} - -/// Payload builder for service detection -#[derive(Clone, Debug)] -pub struct PayloadBuilder { - payload_info: PayloadInfo, -} - -impl PayloadBuilder { - /// Create new PayloadBuilder - pub fn new() -> Self { - PayloadBuilder { - payload_info: PayloadInfo { - payload: vec![], - payload_type: PayloadType::Common, - }, - } - } - /// Create new PayloadBuilder for TLS - pub fn new_tls() -> Self { - PayloadBuilder { - payload_info: PayloadInfo { - payload: vec![], - payload_type: PayloadType::CommonTls, - }, - } - } - /// Add byte to payload - pub fn add_byte(&mut self, byte: u8) -> &mut Self { - self.payload_info.payload.push(byte); - self - } - /// Add bytes to payload - pub fn add_bytes(&mut self, bytes: &[u8]) -> &mut Self { - self.payload_info.payload.extend_from_slice(bytes); - self - } - /// Add bytes (from string) to payload - pub fn add_str(&mut self, s: &str) -> &mut Self { - self.payload_info.payload.extend_from_slice(s.as_bytes()); - self - } - /// Enable/Diable TLS - pub fn set_tls(&mut self, tls_enabled: bool) -> &mut Self { - if tls_enabled { - self.payload_info.payload_type = PayloadType::CommonTls; - } else { - self.payload_info.payload_type = PayloadType::Common; - } - self - } - /// Return payload as Vec - pub fn bytes(self) -> Vec { - self.payload_info.payload - } - /// Return payload as PayloadInfo - pub fn payload(self) -> PayloadInfo { - self.payload_info - } - /* pub fn null() -> PayloadInfo { - PayloadInfo { - payload: vec![0x00], - payload_type: PayloadType::Null, - } - } */ - /// Create a new PayloadInfo with a generic line - pub fn generic_line() -> PayloadInfo { - PayloadInfo { - payload: "\r\n\r\n".as_bytes().to_vec(), - payload_type: PayloadType::Common, - } - } - /// Create a new PayloadInfo with a generic line for TLS - pub fn generic_line_tls() -> PayloadInfo { - PayloadInfo { - payload: "\r\n\r\n".as_bytes().to_vec(), - payload_type: PayloadType::CommonTls, - } - } - /// Create a new PayloadInfo with a hello message - pub fn hello() -> PayloadInfo { - PayloadInfo { - payload: "EHLO\r\n".as_bytes().to_vec(), - payload_type: PayloadType::Common, - } - } - /// Create a new PayloadInfo with a hello message for TLS - pub fn hello_tls() -> PayloadInfo { - PayloadInfo { - payload: "EHLO\r\n".as_bytes().to_vec(), - payload_type: PayloadType::CommonTls, - } - } - /// Create a new PayloadInfo with a HTTP head request - pub fn http_head() -> PayloadInfo { - PayloadInfo { - payload: "HEAD / HTTP/1.0\r\n\r\n".as_bytes().to_vec(), - payload_type: PayloadType::Http, - } - } - /// Create a new PayloadInfo with a HTTPS head request - pub fn https_head(hostname: &str) -> PayloadInfo { - let req: String = format!( - "HEAD / HTTP/1.1\r\nHost: {}\r\nConnection: close\r\nAccept-Encoding: identity\r\n\r\n", - hostname - ); - PayloadInfo { - payload: req.into_bytes(), - payload_type: PayloadType::Https, - } - } - /// Create a new PayloadInfo with a HTTP get request - pub fn http_get(path: &str) -> PayloadInfo { - let req = format!("GET {} HTTP/1.1\r\nHost: example.com\r\n\r\n", path); - PayloadInfo { - payload: req.into_bytes(), - payload_type: PayloadType::Http, - } - } - /// Create a new PayloadInfo with a HTTPS get request - pub fn https_get(path: &str, hostname: &str) -> PayloadInfo { - let req = format!( - "GET {} HTTP/1.1\r\nHost: {}\r\nConnection: close\r\nAccept-Encoding: identity\r\n\r\n", - path, hostname - ); - PayloadInfo { - payload: req.into_bytes(), - payload_type: PayloadType::Https, - } - } - /* pub fn ftp_user(username: &str) -> PayloadInfo { - let req = format!("USER {}\r\n", username); - PayloadInfo { - payload: req.into_bytes(), - payload_type: PayloadType::Common, - } - } */ - /* pub fn smtp_ehlo() -> PayloadInfo { - PayloadInfo { - payload: "EHLO example.com\r\n".as_bytes().to_vec(), - payload_type: PayloadType::Common, - } - } */ - /* pub fn tls_1_1_session_request() -> PayloadInfo { - PayloadInfo { - payload: vec![ - 0x16, 0x03, 0x02, // Content Type: Handshake (22), Version: TLS 1.1 (0x0302) - 0x00, 0x01, 0xfc, 0x01, 0x00, 0x00, 0xf8, // Length: 1 byte, Handshake Type: Session Request (0x00) - ], - payload_type: PayloadType::CommonTls, - } - } */ - /* pub fn tls_1_2_session_request() -> PayloadInfo { - PayloadInfo { - payload: vec![ - 0x16, 0x03, 0x03, // Content Type: Handshake (22), Version: TLS 1.2 (0x0303) - 0x00, 0x01, 0xfc, 0x01, 0x00, 0x00, 0xf8, // Length: 1 byte, Handshake Type: Session Request (0x00) - ], - payload_type: PayloadType::CommonTls, - } - } */ - /* pub fn tls_1_3_session_request() -> PayloadInfo { - PayloadInfo { - payload: vec![ - 0x16, 0x03, 0x04, // Content Type: Handshake (22), Version: TLS 1.3 (0x0304) - 0x00, 0x01, 0xfc, 0x01, 0x00, 0x00, 0xf8, // Length: 1 byte, Handshake Type: Session Request (0x00) - ], - payload_type: PayloadType::CommonTls, - } - } */ - /* pub fn ssh_public_key_request(username: &str) -> PayloadInfo { - let payload = format!("{}\0ssh-connection\0\0\0\0\0\0\0\0\0\0\0\0\0\0", username); - PayloadInfo { - payload: payload.as_bytes().to_vec(), - payload_type: PayloadType::Common, - } - } */ -} diff --git a/src/scan/probe/icmp.rs b/src/scan/probe/icmp.rs new file mode 100644 index 0000000..3372e3b --- /dev/null +++ b/src/scan/probe/icmp.rs @@ -0,0 +1,207 @@ +use std::collections::{BTreeMap, HashMap, HashSet}; +use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + +use futures::future::poll_fn; +use netdev::{Interface, MacAddr}; +use nex::datalink::async_io::{async_channel, AsyncChannel, AsyncRawSender}; +use nex::packet::frame::Frame; +use nex::packet::ip::IpNextProtocol; +use tracing_indicatif::span_ext::IndicatifSpanExt; +use anyhow::Result; +use crate::{output::ScanResult, scan::ProbeSetting}; +use crate::capture::pcap::PacketCaptureOptions; +use crate::endpoint::{EndpointResult, OsGuess}; + +/// Send ICMP Echo Request packets to the specified target endpoints +pub async fn send_hostscan_packets( + tx: &mut Box, + interface: &Interface, + scan_setting: &ProbeSetting, +) { + let header_span = tracing::info_span!("icmp_host_scan"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message("HostScan"); + header_span.pb_set_length(scan_setting.target_endpoints.len() as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + + for target in &scan_setting.target_endpoints { + let packet = crate::packet::icmp::build_icmp_packet(&interface, target.ip, false); + // Send a packet using poll_fn. + match poll_fn(|cx| tx.poll_send(cx, &packet)).await { + Ok(_) => { + if !scan_setting.send_rate.is_zero() { + tokio::time::sleep(scan_setting.send_rate).await; + } + }, + Err(e) => eprintln!("Failed to send packet: {}", e), + } + header_span.pb_inc(1); + } + drop(header_span); +} + +/// Run host scan using ICMP Echo Request packets and return the results. +pub async fn run_host_scan(setting: ProbeSetting) -> Result { + let interface = match crate::interface::get_interface_by_index(setting.if_index) { + Some(interface) => interface, + None => return Err(anyhow::anyhow!("Interface not found")), + }; + // Create sender + let config = nex::datalink::Config { + write_buffer_size: 4096, + read_buffer_size: 4096, + read_timeout: Some(setting.wait_time), + write_timeout: None, + channel_type: nex::datalink::ChannelType::Layer2, + bpf_fd_attempts: 1000, + linux_fanout: None, + promiscuous: false, + }; + + let AsyncChannel::Ethernet(mut tx, mut rx) = async_channel(&interface, config)? + else { + unreachable!(); + }; + + let mut capture_options: PacketCaptureOptions = PacketCaptureOptions { + interface_index: interface.index, + interface_name: interface.name.clone(), + src_ips: HashSet::new(), + dst_ips: HashSet::new(), + src_ports: HashSet::new(), + dst_ports: HashSet::new(), + ether_types: HashSet::new(), + ip_protocols: HashSet::new(), + capture_timeout: setting.task_timeout, + read_timeout: setting.wait_time, + promiscuous: false, + receive_undefined: false, + tunnel: interface.is_tun(), + loopback: interface.is_loopback(), + }; + for endpoint in &setting.target_endpoints { + capture_options.src_ips.insert(endpoint.ip); + } + capture_options.ip_protocols.insert(IpNextProtocol::Icmp); + capture_options.ip_protocols.insert(IpNextProtocol::Icmpv6); + + + let (ready_tx, ready_rx) = tokio::sync::oneshot::channel(); + let (stop_tx, mut stop_rx) = tokio::sync::oneshot::channel(); + + let capture_handle: tokio::task::JoinHandle<_> = tokio::spawn(async move { + crate::capture::pcap::start_capture( + &mut rx, + capture_options, + ready_tx, + &mut stop_rx, + ) + .await + }); + + // Wait for listener to start + let _ = ready_rx; + let start_time = std::time::Instant::now(); + // Send probe packets + send_hostscan_packets(&mut tx, &interface, &setting).await; + tokio::time::sleep(setting.wait_time).await; + // Stop pcap + let _ = stop_tx.send(()); + let frames = capture_handle.await.unwrap(); + let dns_map = setting.get_dns_map(); + let mut result = parse_hostscan_result(frames, &interface, &dns_map); + result.scan_time = start_time.elapsed(); + Ok(result) +} + +/// Parse captured packets and extract scan results. +fn parse_hostscan_result( + packets: Vec, + iface: &Interface, + dns_map: &HashMap, +) -> ScanResult { + let oui_db = crate::db::oui::oui_db(); + let if_ipv4_set: HashSet = iface.ipv4_addrs().into_iter().collect(); + let if_ipv6_set: HashSet = iface.ipv6_addrs().into_iter().collect(); + let mut result: ScanResult = ScanResult::new(); + let mut endpoint_map: HashMap = HashMap::new(); + for p in packets { + if p.ip.is_none() { + continue; + } + let mut mac_addr: MacAddr; + if let Some(datalink) = &p.datalink { + if let Some(ethernet_frame) = &datalink.ethernet { + if ethernet_frame.destination != iface.mac_addr.unwrap_or(MacAddr::zero()) { + continue; + } + mac_addr = ethernet_frame.source; + } else { + mac_addr = MacAddr::zero(); + } + } else { + mac_addr = MacAddr::zero(); + } + let ip_addr: IpAddr; + let ttl: u8; + if let Some(ip) = &p.ip { + // Expect ICMP or ICMPv6 Port Unreachable + if ip.icmp.is_none() && ip.icmpv6.is_none() { + continue; + } + if let Some(ipv4_packet) = &ip.ipv4 { + if if_ipv4_set.contains(&ipv4_packet.source) { + mac_addr = iface.mac_addr.unwrap_or(MacAddr::zero()); + ttl = crate::util::ip::initial_ttl(ipv4_packet.ttl); + }else{ + ttl = ipv4_packet.ttl; + } + ip_addr = IpAddr::V4(ipv4_packet.source); + } else if let Some(ipv6_packet) = &ip.ipv6 { + if if_ipv6_set.contains(&ipv6_packet.source) { + mac_addr = iface.mac_addr.unwrap_or(MacAddr::zero()); + ttl = crate::util::ip::initial_ttl(ipv6_packet.hop_limit); + }else { + ttl = ipv6_packet.hop_limit; + } + ip_addr = IpAddr::V6(ipv6_packet.source); + } else { + continue; + } + } else { + continue; + } + + let vendor_name_opt: Option; + if let Some(oui) = oui_db.lookup_mac(&mac_addr) { + if let Some(vendor_detail) = &oui.vendor_detail { + vendor_name_opt = Some(vendor_detail.clone()); + } else { + vendor_name_opt = Some(oui.vendor.clone()); + } + } else { + vendor_name_opt = None; + } + + endpoint_map + .entry(ip_addr) + .or_insert(EndpointResult { + ip: ip_addr, + hostname: dns_map.get(&ip_addr).cloned(), + ports: BTreeMap::new(), + mac_addr: Some(mac_addr), + vendor_name: vendor_name_opt, + os: OsGuess::default().with_ttl_observed(ttl), + tags: Vec::new(), + cpes: Vec::new(), + }); + + result.fingerprints.push(p.clone()); + + } + for (_ip, endpoint) in endpoint_map { + result.endpoints.push(endpoint); + } + result +} diff --git a/src/scan/probe/mod.rs b/src/scan/probe/mod.rs new file mode 100644 index 0000000..5a350cd --- /dev/null +++ b/src/scan/probe/mod.rs @@ -0,0 +1,4 @@ +pub mod tcp; +pub mod udp; +pub mod quic; +pub mod icmp; diff --git a/src/scan/probe/quic.rs b/src/scan/probe/quic.rs new file mode 100644 index 0000000..5a00471 --- /dev/null +++ b/src/scan/probe/quic.rs @@ -0,0 +1,165 @@ +use std::{collections::BTreeMap, time::Duration}; + +use anyhow::Result; +use futures::StreamExt; +use tokio::sync::mpsc; +use tracing_indicatif::span_ext::IndicatifSpanExt; +use crate::{cli::PortScanMethod, endpoint::{EndpointResult, OsGuess, Port, PortResult, PortState, ServiceInfo, TransportProtocol}, output::ScanResult, scan::ProbeSetting, service::probe::quic::quic_client_config}; + +/// Try to connect to the given ports on the target endpoint using QUIC protocol. +/// Concurrency specifies the number of concurrent connection attempts. +pub async fn try_connect_ports( + target: crate::endpoint::Endpoint, + concurrency: usize, + timeout: Duration, +) -> Result { + let alpn: [&[u8]; 8] = [ + b"h3".as_slice(), + b"h3-34".as_slice(), b"h3-33".as_slice(), b"h3-32".as_slice(), b"h3-31".as_slice(), b"h3-30".as_slice(), b"h3-29".as_slice(), + b"hq-29".as_slice(), + ]; + let (ch_tx, mut ch_rx) = mpsc::unbounded_channel::(); + let header_span = tracing::info_span!("quic_connect_scan"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message(&format!("QUIC PortScan ({})", target.ip)); + header_span.pb_set_length(target.ports.len() as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + + let span_rx = header_span.clone(); + let recv_task = tokio::spawn(async move { + let mut open_ports: BTreeMap = BTreeMap::new(); + while let Some(port_result) = ch_rx.recv().await { + open_ports.insert(port_result.port.clone(), port_result); + // Update progress bar + span_rx.pb_inc(1); + } + open_ports + }); + + let hostname = target.hostname.clone().unwrap_or_else(|| target.ip.to_string()); + let prod = futures::stream::iter(target.socket_addrs(TransportProtocol::Quic)).for_each_concurrent(concurrency, move |socket_addr| { + let ch_tx = ch_tx.clone(); + let hostname = hostname.clone(); + let client_cfg = quic_client_config(true, &alpn).unwrap(); + + async move { + let mut endpoint = match quinn::Endpoint::client((if target.ip.is_ipv6() { "[::]:0" } else { "0.0.0.0:0" }).parse().unwrap()) { + Ok(ep) => ep, + Err(_) => return, + }; + endpoint.set_default_client_config(client_cfg.clone()); + let connect_fut = match endpoint.connect(socket_addr, hostname.as_str()) { + Ok(connecting) => { + connecting + } + Err(e) => { + tracing::error!("Failed to connect to {}: {}", socket_addr, e); + return; + } + }; + let mut port_result = PortResult { + port: Port::new(socket_addr.port(), TransportProtocol::Udp), + state: PortState::Closed, + service: ServiceInfo::default(), + rtt_ms: None, + }; + match tokio::time::timeout(timeout, connect_fut).await { + Ok(quinn_conn) => { + match quinn_conn { + Ok(conn) => { + // Connection succeeded + port_result.state = PortState::Open; + conn.close(0u32.into(), b"Connection closed by client"); + } + Err(e) => { + match e { + quinn::ConnectionError::VersionMismatch + | quinn::ConnectionError::TransportError(_) + | quinn::ConnectionError::ConnectionClosed(_) + | quinn::ConnectionError::ApplicationClosed(_) + | quinn::ConnectionError::Reset => { + // Error, but QUIC service is still running + // So we classify it as open + port_result.state = PortState::Open; + }, + _ => {}, + } + } + } + } + Err(e) => { + // Timeout + tracing::error!("Failed to connect to {}: {}", socket_addr, e); + } + } + let _ = ch_tx.send(port_result); + } + }); + + let prod_task = tokio::spawn(prod); + let (results_res, _prod_res) = tokio::join!(recv_task, prod_task); + let open_ports = results_res?; + // Finish header span + drop(header_span); + + let ep = EndpointResult { + ip: target.ip, + hostname: target.hostname, + ports: open_ports, + mac_addr: target.mac_addr, + vendor_name: None, + os: OsGuess::default(), + tags: target.tags, + cpes: Vec::new(), + }; + Ok(ep) +} + +/// Run a QUIC connect scan based on the provided probe settings. +pub async fn run_connect_scan( + setting: ProbeSetting, +) -> Result { + let start_time = std::time::Instant::now(); + let mut tasks = vec![]; + for target in setting.target_endpoints { + tasks.push(tokio::spawn(async move { + let host = try_connect_ports( + target, + setting.port_concurrency, + setting.connect_timeout, + ) + .await; + host + })); + } + let mut endpoints: Vec = vec![]; + for task in tasks { + match task.await { + Ok(endpoint) => { + match endpoint { + Ok(ep) => endpoints.push(ep), + Err(e) => { + tracing::error!("Failed to connect to endpoint: {}", e); + } + } + } + Err(e) => { + tracing::error!("Failed to join task: {}", e); + } + } + } + let mut result = ScanResult::new(); + result.endpoints = endpoints; + result.scan_time = start_time.elapsed(); + result.fingerprints = Vec::new(); + Ok(result) +} + +/// Run a QUIC port scan using the specified probe settings and method. +pub async fn run_port_scan( + setting: ProbeSetting, + _method: PortScanMethod, +) -> Result { + run_connect_scan(setting).await +} diff --git a/src/scan/probe/tcp.rs b/src/scan/probe/tcp.rs new file mode 100644 index 0000000..f50085d --- /dev/null +++ b/src/scan/probe/tcp.rs @@ -0,0 +1,609 @@ +use futures::stream::{self, StreamExt}; +use futures::future::poll_fn; +use netdev::{Interface, MacAddr}; +use nex::datalink::async_io::{async_channel, AsyncChannel, AsyncRawSender}; +use nex::packet::frame::Frame; +use nex::packet::ip::IpNextProtocol; +use nex::packet::tcp::TcpFlags; +use nex::socket::tcp::{AsyncTcpSocket, TcpConfig}; +use tracing_indicatif::span_ext::IndicatifSpanExt; +use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; +use std::time::Duration; +use tokio::io::AsyncWriteExt; +use std::collections::{BTreeMap, HashMap, HashSet}; +use anyhow::Result; +use tokio::sync::mpsc; + +use crate::capture::pcap::PacketCaptureOptions; +use crate::cli::{PortScanMethod}; +use crate::endpoint::{Endpoint, EndpointResult, OsGuess, Port, PortResult, PortState, ServiceInfo, TransportProtocol}; +use crate::output::ScanResult; +use crate::probe::ProbeSetting; + +/// Try to connect to the given ports on the target endpoint using TCP protocol. +/// Concurrency specifies the number of concurrent connection attempts. +pub async fn try_connect_ports( + target: Endpoint, + concurrency: usize, + timeout: Duration, +) -> Result { + let (ch_tx, mut ch_rx) = mpsc::unbounded_channel::(); + let header_span = tracing::info_span!("tcp_connect_scan"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message(&format!("TCP PortScan ({})", target.ip)); + header_span.pb_set_length(target.ports.len() as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + + let span_rx = header_span.clone(); + let recv_task = tokio::spawn(async move { + let mut open_ports: BTreeMap = BTreeMap::new(); + while let Some(port_result) = ch_rx.recv().await { + open_ports.insert(port_result.port.clone(), port_result); + // Update progress bar + span_rx.pb_inc(1); + } + open_ports + }); + + let prod = stream::iter(target.socket_addrs(TransportProtocol::Tcp)).for_each_concurrent(concurrency, move |socket_addr| { + let ch_tx = ch_tx.clone(); + async move { + let cfg = if socket_addr.is_ipv4() { + TcpConfig::v4_stream() + } else { + TcpConfig::v6_stream() + }; + let socket = AsyncTcpSocket::from_config(&cfg).unwrap(); + let mut port_result = PortResult { + port: Port::new(socket_addr.port(), TransportProtocol::Tcp), + state: PortState::Closed, + service: ServiceInfo::default(), + rtt_ms: None, + }; + match socket.connect_timeout(socket_addr, timeout).await { + Ok(mut stream) => { + port_result.state = PortState::Open; + match stream.shutdown().await { + Ok(_) => {} + Err(_) => {} + } + } + Err(_) => {} + } + let _ = ch_tx.send(port_result); + } + }); + let prod_task = tokio::spawn(prod); + let (results_res, _prod_res) = tokio::join!(recv_task, prod_task); + let open_ports = results_res?; + // Finish header span + drop(header_span); + Ok(EndpointResult { + ip: target.ip, + hostname: target.hostname, + ports: open_ports, + mac_addr: target.mac_addr, + vendor_name: None, + os: OsGuess::default(), + tags: target.tags, + cpes: Vec::new(), + }) +} + +/// Run a TCP connect scan based on the provided probe settings. +pub async fn run_connect_scan( + setting: ProbeSetting, +) -> Result { + let start_time = std::time::Instant::now(); + let mut tasks = vec![]; + for target in setting.target_endpoints { + tasks.push(tokio::spawn(async move { + let host = try_connect_ports( + target, + setting.port_concurrency, + setting.connect_timeout, + ) + .await; + host + })); + } + let mut endpoints: Vec = vec![]; + for task in tasks { + match task.await { + Ok(endpoint_result) => { + match endpoint_result { + Ok(endpoint) => { + endpoints.push(endpoint); + } + Err(e) => { + tracing::error!("error: {}", e); + } + } + } + Err(e) => { + tracing::error!("error: {}", e); + } + } + } + let mut result = ScanResult::new(); + result.endpoints = endpoints; + result.scan_time = start_time.elapsed(); + result.fingerprints = Vec::new(); + Ok(result) +} + +/// Send TCP SYN packets for port scanning. +pub async fn send_portscan_packets( + tx: &mut Box, + interface: &Interface, + scan_setting: &ProbeSetting, +) { + let mut sent: usize = 0; + for target in &scan_setting.target_endpoints { + let header_span = tracing::info_span!("tcp_syn_scan"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message(&format!("PortScan ({})", target.ip)); + header_span.pb_set_length(target.ports.len() as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + + for port in &target.ports { + let packet = + crate::packet::tcp::build_tcp_syn_packet(&interface, target.ip, port.number, false); + + // Send a packet using poll_fn. + match poll_fn(|cx| tx.poll_send(cx, &packet)).await { + Ok(_) => { + if !scan_setting.send_rate.is_zero() && sent < 64 { + tokio::time::sleep(scan_setting.send_rate).await; + } + sent += 1; + } + Err(e) => eprintln!("Failed to send packet: {}", e), + } + header_span.pb_inc(1); + } + drop(header_span); + } +} + +/// Send TCP SYN packets for host scanning. +pub async fn send_hostscan_packets( + tx: &mut Box, + interface: &Interface, + scan_setting: &ProbeSetting, +) { + let header_span = tracing::info_span!("tcp_syn_host_scan"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message("HostScan"); + header_span.pb_set_length(scan_setting.target_endpoints.len() as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + + for target in &scan_setting.target_endpoints { + for port in &target.ports { + let packet = + crate::packet::tcp::build_tcp_syn_packet(&interface, target.ip, port.number, false); + + // Send a packet using poll_fn. + match poll_fn(|cx| tx.poll_send(cx, &packet)).await { + Ok(_) => { + if !scan_setting.send_rate.is_zero() { + tokio::time::sleep(scan_setting.send_rate).await; + } + } + Err(e) => eprintln!("Failed to send packet: {}", e), + } + } + header_span.pb_inc(1); + } + drop(header_span); +} + +/// Run a TCP SYN scan based on the provided probe settings. +pub async fn run_syn_scan( + setting: ProbeSetting, +) -> Result { + let interface = match crate::interface::get_interface_by_index(setting.if_index) { + Some(interface) => interface, + None => return Err(anyhow::anyhow!("Interface not found")), + }; + // Create sender + let config = nex::datalink::Config { + write_buffer_size: 4096, + read_buffer_size: 4096, + read_timeout: Some(setting.wait_time), + write_timeout: None, + channel_type: nex::datalink::ChannelType::Layer2, + bpf_fd_attempts: 1000, + linux_fanout: None, + promiscuous: false, + }; + + let AsyncChannel::Ethernet(mut tx, mut rx) = async_channel(&interface, config)? + else { + unreachable!(); + }; + + let mut capture_options: PacketCaptureOptions = PacketCaptureOptions { + interface_index: interface.index, + interface_name: interface.name.clone(), + src_ips: HashSet::new(), + dst_ips: HashSet::new(), + src_ports: HashSet::new(), + dst_ports: HashSet::new(), + ether_types: HashSet::new(), + ip_protocols: HashSet::new(), + capture_timeout: setting.task_timeout, + read_timeout: setting.wait_time, + promiscuous: false, + receive_undefined: false, + tunnel: interface.is_tun(), + loopback: interface.is_loopback(), + }; + for endpoint in setting.target_endpoints.clone() { + capture_options.src_ips.insert(endpoint.ip); + capture_options.src_ports.extend(endpoint.ports.iter().map(|p| p.number)); + } + capture_options.ip_protocols.insert(IpNextProtocol::Tcp); + + let (ready_tx, ready_rx) = tokio::sync::oneshot::channel(); + let (stop_tx, mut stop_rx) = tokio::sync::oneshot::channel(); + + let capture_handle: tokio::task::JoinHandle<_> = tokio::spawn(async move { + crate::capture::pcap::start_capture( + &mut rx, + capture_options, + ready_tx, + &mut stop_rx, + ) + .await + }); + + // Wait for listener to start + let _ = ready_rx; + let start_time = std::time::Instant::now(); + // Send probe packets + send_portscan_packets(&mut tx, &interface, &setting).await; + tokio::time::sleep(setting.wait_time).await; + // Stop pcap + let _ = stop_tx.send(()); + let frames = capture_handle.await.unwrap(); + let dns_map = setting.get_dns_map(); + let mut result = parse_portscan_result(frames, &interface, &dns_map); + result.scan_time = start_time.elapsed(); + Ok(result) +} + +/// Run a TCP port scan using the specified probe settings and method. +pub async fn run_port_scan( + setting: ProbeSetting, + method: PortScanMethod +) -> Result { + match method { + PortScanMethod::Connect => { + return run_connect_scan(setting).await; + } + PortScanMethod::Syn => { + return run_syn_scan(setting).await; + } + } +} + +/// Run a TCP host scan based on the provided probe settings. +pub async fn run_host_scan(setting: ProbeSetting) -> Result { + let interface = match crate::interface::get_interface_by_index(setting.if_index) { + Some(interface) => interface, + None => return Err(anyhow::anyhow!("Interface not found")), + }; + // Create sender + let config = nex::datalink::Config { + write_buffer_size: 4096, + read_buffer_size: 4096, + read_timeout: Some(setting.wait_time), + write_timeout: None, + channel_type: nex::datalink::ChannelType::Layer2, + bpf_fd_attempts: 1000, + linux_fanout: None, + promiscuous: false, + }; + + let AsyncChannel::Ethernet(mut tx, mut rx) = async_channel(&interface, config)? + else { + unreachable!(); + }; + + let mut capture_options: PacketCaptureOptions = PacketCaptureOptions { + interface_index: interface.index, + interface_name: interface.name.clone(), + src_ips: HashSet::new(), + dst_ips: HashSet::new(), + src_ports: HashSet::new(), + dst_ports: HashSet::new(), + ether_types: HashSet::new(), + ip_protocols: HashSet::new(), + capture_timeout: setting.task_timeout, + read_timeout: setting.wait_time, + promiscuous: false, + receive_undefined: false, + tunnel: interface.is_tun(), + loopback: interface.is_loopback(), + }; + for endpoint in &setting.target_endpoints { + capture_options.src_ips.insert(endpoint.ip); + capture_options.src_ports.extend(endpoint.ports.iter().map(|p| p.number)); + } + capture_options.ip_protocols.insert(IpNextProtocol::Tcp); + + let (ready_tx, ready_rx) = tokio::sync::oneshot::channel(); + let (stop_tx, mut stop_rx) = tokio::sync::oneshot::channel(); + + let capture_handle: tokio::task::JoinHandle<_> = tokio::spawn(async move { + crate::capture::pcap::start_capture( + &mut rx, + capture_options, + ready_tx, + &mut stop_rx, + ) + .await + }); + + // Wait for listener to start + let _ = ready_rx; + let start_time = std::time::Instant::now(); + // Send probe packets + send_hostscan_packets(&mut tx, &interface, &setting).await; + tokio::time::sleep(setting.wait_time).await; + // Stop pcap + let _ = stop_tx.send(()); + let frames = capture_handle.await.unwrap(); + let dns_map = setting.get_dns_map(); + let mut result = parse_hostscan_result(frames, &interface, &dns_map); + result.scan_time = start_time.elapsed(); + Ok(result) +} + +/// Parse port scan results from captured packets. +fn parse_portscan_result( + packets: Vec, + iface: &Interface, + dns_map: &HashMap, +) -> ScanResult { + let mut result: ScanResult = ScanResult::new(); + let mut socket_set: HashSet = HashSet::new(); + let mut endpoint_map: HashMap = HashMap::new(); + for p in packets { + if p.ip.is_none() || p.transport.is_none() { + continue; + } + let mac_addr: MacAddr; + if let Some(datalink) = &p.datalink { + if let Some(ethernet_frame) = &datalink.ethernet { + if ethernet_frame.destination != iface.mac_addr.unwrap_or(MacAddr::zero()) { + continue; + } + mac_addr = ethernet_frame.source; + } else { + mac_addr = MacAddr::zero(); + } + } else { + mac_addr = MacAddr::zero(); + } + let ip_addr: IpAddr; + let ttl: u8; + let port: PortResult; + if let Some(ip) = &p.ip { + if let Some(ipv4_packet) = &ip.ipv4 { + ip_addr = IpAddr::V4(ipv4_packet.source); + ttl = ipv4_packet.ttl; + } else if let Some(ipv6_packet) = &ip.ipv6 { + ip_addr = IpAddr::V6(ipv6_packet.source); + ttl = ipv6_packet.hop_limit; + } else { + continue; + } + } else { + continue; + } + if let Some(transport) = &p.transport { + if let Some(tcp_packet) = &transport.tcp { + if socket_set.contains(&SocketAddr::new(ip_addr,tcp_packet.source)) { + continue; + } + let f = tcp_packet.flags; + if (f & TcpFlags::RST) != 0 { + port = PortResult { + port: Port::new(tcp_packet.source, TransportProtocol::Tcp), + state: PortState::Closed, + service: ServiceInfo::default(), + rtt_ms: None, + }; + } else if (f & (TcpFlags::SYN | TcpFlags::ACK)) == (TcpFlags::SYN | TcpFlags::ACK) { + port = PortResult { + port: Port::new(tcp_packet.source, TransportProtocol::Tcp), + state: PortState::Open, + service: ServiceInfo::default(), + rtt_ms: None, + }; + } else { + continue; + } + } else { + continue; + } + } else { + continue; + } + endpoint_map + .entry(ip_addr) + .or_insert(EndpointResult { + ip: ip_addr, + hostname: dns_map.get(&ip_addr).cloned(), + ports: BTreeMap::new(), + mac_addr: Some(mac_addr), + vendor_name: None, + os: OsGuess::default().with_ttl_observed(ttl), + tags: Vec::new(), + cpes: Vec::new(), + }) + .ports + .insert(port.port.clone(), port.clone()); + + result.fingerprints.push(p.clone()); + socket_set.insert(SocketAddr::new(ip_addr, port.port.number)); + + } + for (ip, endpoint) in endpoint_map { + let mut ep = EndpointResult::new(ip); + ep.hostname = endpoint.hostname; + ep.mac_addr = endpoint.mac_addr; + ep.vendor_name = endpoint.vendor_name; + ep.os = endpoint.os; + ep.tags = endpoint.tags; + for (_port, port_result) in endpoint.ports { + ep.upsert_port(port_result); + } + result.endpoints.push(ep); + } + result +} + +/// Parse host scan results from captured packets. +fn parse_hostscan_result( + packets: Vec, + iface: &Interface, + dns_map: &HashMap, +) -> ScanResult { + let oui_db = crate::db::oui::oui_db(); + let if_ipv4_set: HashSet = iface.ipv4_addrs().into_iter().collect(); + let if_ipv6_set: HashSet = iface.ipv6_addrs().into_iter().collect(); + let mut result: ScanResult = ScanResult::new(); + let mut socket_set: HashSet = HashSet::new(); + let mut endpoint_map: HashMap = HashMap::new(); + for p in packets { + if p.ip.is_none() || p.transport.is_none() { + continue; + } + let mut mac_addr: MacAddr; + if let Some(datalink) = &p.datalink { + if let Some(ethernet_frame) = &datalink.ethernet { + if ethernet_frame.destination != iface.mac_addr.unwrap_or(MacAddr::zero()) { + continue; + } + mac_addr = ethernet_frame.source; + } else { + mac_addr = MacAddr::zero(); + } + } else { + mac_addr = MacAddr::zero(); + } + let ip_addr: IpAddr; + let ttl: u8; + let port: PortResult; + if let Some(ip) = &p.ip { + if let Some(ipv4_packet) = &ip.ipv4 { + if if_ipv4_set.contains(&ipv4_packet.source) { + mac_addr = iface.mac_addr.unwrap_or(MacAddr::zero()); + ttl = crate::util::ip::initial_ttl(ipv4_packet.ttl); + }else{ + ttl = ipv4_packet.ttl; + } + ip_addr = IpAddr::V4(ipv4_packet.source); + } else if let Some(ipv6_packet) = &ip.ipv6 { + if if_ipv6_set.contains(&ipv6_packet.source) { + mac_addr = iface.mac_addr.unwrap_or(MacAddr::zero()); + ttl = crate::util::ip::initial_ttl(ipv6_packet.hop_limit); + }else { + ttl = ipv6_packet.hop_limit; + } + ip_addr = IpAddr::V6(ipv6_packet.source); + } else { + continue; + } + } else { + continue; + } + if let Some(transport) = &p.transport { + if let Some(tcp_packet) = &transport.tcp { + if socket_set.contains(&SocketAddr::new(ip_addr,tcp_packet.source)) { + continue; + } + let f = tcp_packet.flags; + if (f & (TcpFlags::SYN | TcpFlags::ACK)) == (TcpFlags::SYN | TcpFlags::ACK) { + port = PortResult { + port: Port::new(tcp_packet.source, TransportProtocol::Tcp), + state: PortState::Open, + service: ServiceInfo::default(), + rtt_ms: None, + }; + } else { + continue; + } + } else { + continue; + } + } else { + continue; + } + + let vendor_name_opt: Option; + if let Some(oui) = oui_db.lookup_mac(&mac_addr) { + if let Some(vendor_detail) = &oui.vendor_detail { + vendor_name_opt = Some(vendor_detail.clone()); + } else { + vendor_name_opt = Some(oui.vendor.clone()); + } + } else { + vendor_name_opt = None; + } + + let mut os_guess = OsGuess::default().with_ttl_observed(ttl); + let mut cpes: Vec = Vec::new(); + + match crate::os::match_tcpip_signatures(&p) { + Some(os_match) => { + os_guess.family = Some(os_match.family); + os_guess.confidence = Some(os_match.confidence as f32); + os_guess.ttl_observed = Some(ttl); + cpes = os_match.cpes; + } + None => { + tracing::debug!("No matching OS found"); + } + } + + endpoint_map + .entry(ip_addr) + .or_insert(EndpointResult { + ip: ip_addr, + hostname: dns_map.get(&ip_addr).cloned(), + ports: BTreeMap::new(), + mac_addr: Some(mac_addr), + vendor_name: vendor_name_opt, + os: os_guess, + tags: Vec::new(), + cpes: cpes, + }) + .ports + .insert(port.port.clone(), port.clone()); + + result.fingerprints.push(p.clone()); + socket_set.insert(SocketAddr::new(ip_addr, port.port.number)); + + } + for (ip, endpoint) in endpoint_map { + let mut ep = EndpointResult::new(ip); + ep.hostname = endpoint.hostname; + ep.mac_addr = endpoint.mac_addr; + ep.vendor_name = endpoint.vendor_name; + ep.os = endpoint.os; + ep.cpes = endpoint.cpes; + ep.tags = endpoint.tags; + for (_port, port_result) in endpoint.ports { + ep.upsert_port(port_result); + } + result.endpoints.push(ep); + } + result +} diff --git a/src/scan/probe/udp.rs b/src/scan/probe/udp.rs new file mode 100644 index 0000000..4235f1f --- /dev/null +++ b/src/scan/probe/udp.rs @@ -0,0 +1,207 @@ +use std::collections::{BTreeMap, HashMap, HashSet}; +use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + +use futures::future::poll_fn; +use netdev::{Interface, MacAddr}; +use nex::datalink::async_io::{async_channel, AsyncChannel, AsyncRawSender}; +use nex::packet::frame::Frame; +use nex::packet::ip::IpNextProtocol; +use tracing_indicatif::span_ext::IndicatifSpanExt; +use anyhow::Result; +use crate::{config::default::DEFAULT_BASE_TARGET_UDP_PORT, output::ScanResult, probe::ProbeSetting}; +use crate::capture::pcap::PacketCaptureOptions; +use crate::endpoint::{EndpointResult, OsGuess}; + +/// Send UDP packets for host scanning. +pub async fn send_hostscan_packets( + tx: &mut Box, + interface: &Interface, + scan_setting: &ProbeSetting, +) { + let header_span = tracing::info_span!("udp_host_scan"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message("HostScan"); + header_span.pb_set_length(scan_setting.target_endpoints.len() as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + + for target in &scan_setting.target_endpoints { + let packet = crate::packet::udp::build_udp_packet(&interface, target.ip, DEFAULT_BASE_TARGET_UDP_PORT, false); + // Send a packet using poll_fn. + match poll_fn(|cx| tx.poll_send(cx, &packet)).await { + Ok(_) => { + if !scan_setting.send_rate.is_zero() { + tokio::time::sleep(scan_setting.send_rate).await; + } + }, + Err(e) => eprintln!("Failed to send packet: {}", e), + } + header_span.pb_inc(1); + } + drop(header_span); +} + +/// Run a UDP host scan based on the provided probe settings. +pub async fn run_host_scan(setting: ProbeSetting) -> Result { + let interface = match crate::interface::get_interface_by_index(setting.if_index) { + Some(interface) => interface, + None => return Err(anyhow::anyhow!("Interface not found")), + }; + // Create sender + let config = nex::datalink::Config { + write_buffer_size: 4096, + read_buffer_size: 4096, + read_timeout: Some(setting.wait_time), + write_timeout: None, + channel_type: nex::datalink::ChannelType::Layer2, + bpf_fd_attempts: 1000, + linux_fanout: None, + promiscuous: false, + }; + + let AsyncChannel::Ethernet(mut tx, mut rx) = async_channel(&interface, config)? + else { + unreachable!(); + }; + + let mut capture_options: PacketCaptureOptions = PacketCaptureOptions { + interface_index: interface.index, + interface_name: interface.name.clone(), + src_ips: HashSet::new(), + dst_ips: HashSet::new(), + src_ports: HashSet::new(), + dst_ports: HashSet::new(), + ether_types: HashSet::new(), + ip_protocols: HashSet::new(), + capture_timeout: setting.task_timeout, + read_timeout: setting.wait_time, + promiscuous: false, + receive_undefined: false, + tunnel: interface.is_tun(), + loopback: interface.is_loopback(), + }; + for endpoint in &setting.target_endpoints { + capture_options.src_ips.insert(endpoint.ip); + } + capture_options.ip_protocols.insert(IpNextProtocol::Udp); + capture_options.ip_protocols.insert(IpNextProtocol::Icmp); + capture_options.ip_protocols.insert(IpNextProtocol::Icmpv6); + + let (ready_tx, ready_rx) = tokio::sync::oneshot::channel(); + let (stop_tx, mut stop_rx) = tokio::sync::oneshot::channel(); + + let capture_handle: tokio::task::JoinHandle<_> = tokio::spawn(async move { + crate::capture::pcap::start_capture( + &mut rx, + capture_options, + ready_tx, + &mut stop_rx, + ) + .await + }); + + // Wait for listener to start + let _ = ready_rx; + let start_time = std::time::Instant::now(); + // Send probe packets + send_hostscan_packets(&mut tx, &interface, &setting).await; + tokio::time::sleep(setting.wait_time).await; + // Stop pcap + let _ = stop_tx.send(()); + let frames = capture_handle.await.unwrap(); + let dns_map = setting.get_dns_map(); + let mut result = parse_hostscan_result(frames, &interface, &dns_map); + result.scan_time = start_time.elapsed(); + Ok(result) +} + +/// Parse host scan results from captured packets. +fn parse_hostscan_result( + packets: Vec, + iface: &Interface, + dns_map: &HashMap, +) -> ScanResult { + let oui_db = crate::db::oui::oui_db(); + let if_ipv4_set: HashSet = iface.ipv4_addrs().into_iter().collect(); + let if_ipv6_set: HashSet = iface.ipv6_addrs().into_iter().collect(); + let mut result: ScanResult = ScanResult::new(); + let mut endpoint_map: HashMap = HashMap::new(); + for p in packets { + if p.ip.is_none() { + continue; + } + let mut mac_addr: MacAddr; + if let Some(datalink) = &p.datalink { + if let Some(ethernet_frame) = &datalink.ethernet { + if ethernet_frame.destination != iface.mac_addr.unwrap_or(MacAddr::zero()) { + continue; + } + mac_addr = ethernet_frame.source; + } else { + mac_addr = MacAddr::zero(); + } + } else { + mac_addr = MacAddr::zero(); + } + let ip_addr: IpAddr; + let ttl: u8; + if let Some(ip) = &p.ip { + // Expect ICMP or ICMPv6 Port Unreachable + if ip.icmp.is_none() && ip.icmpv6.is_none() { + continue; + } + if let Some(ipv4_packet) = &ip.ipv4 { + if if_ipv4_set.contains(&ipv4_packet.source) { + mac_addr = iface.mac_addr.unwrap_or(MacAddr::zero()); + ttl = crate::util::ip::initial_ttl(ipv4_packet.ttl); + }else{ + ttl = ipv4_packet.ttl; + } + ip_addr = IpAddr::V4(ipv4_packet.source); + } else if let Some(ipv6_packet) = &ip.ipv6 { + if if_ipv6_set.contains(&ipv6_packet.source) { + mac_addr = iface.mac_addr.unwrap_or(MacAddr::zero()); + ttl = crate::util::ip::initial_ttl(ipv6_packet.hop_limit); + }else { + ttl = ipv6_packet.hop_limit; + } + ip_addr = IpAddr::V6(ipv6_packet.source); + } else { + continue; + } + } else { + continue; + } + + let vendor_name_opt: Option; + if let Some(oui) = oui_db.lookup_mac(&mac_addr) { + if let Some(vendor_detail) = &oui.vendor_detail { + vendor_name_opt = Some(vendor_detail.clone()); + } else { + vendor_name_opt = Some(oui.vendor.clone()); + } + } else { + vendor_name_opt = None; + } + + endpoint_map + .entry(ip_addr) + .or_insert(EndpointResult { + ip: ip_addr, + hostname: dns_map.get(&ip_addr).cloned(), + ports: BTreeMap::new(), + mac_addr: Some(mac_addr), + vendor_name: vendor_name_opt, + os: OsGuess::default().with_ttl_observed(ttl), + tags: Vec::new(), + cpes: Vec::new(), + }); + + result.fingerprints.push(p.clone()); + + } + for (_ip, endpoint) in endpoint_map { + result.endpoints.push(endpoint); + } + result +} diff --git a/src/scan/result.rs b/src/scan/result.rs deleted file mode 100644 index a093539..0000000 --- a/src/scan/result.rs +++ /dev/null @@ -1,397 +0,0 @@ -use netdev::mac::MacAddr; -use netdev::Interface; -use nex::packet::tcp::TcpFlags; - -use crate::host::{Host, Port, PortStatus}; -use crate::packet::frame::PacketFrame; -use std::collections::HashSet; -use std::net::{IpAddr, SocketAddr}; -use std::time::Duration; - -use super::setting::{HostScanSetting, HostScanType, PortScanSetting}; - -use serde::{Deserialize, Serialize}; - -/// Status of scan task -#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] -pub enum ScanStatus { - Done, - Timeout, - Error(String), -} - -/// Result of scan -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct ScanResult { - /// List of scanned Host info and their respective ports - pub hosts: Vec, - /// Time taken to scan - pub scan_time: Duration, - /// Status of the scan task - pub scan_status: ScanStatus, - /// Captured packet fingerprints - pub fingerprints: Vec, -} - -impl ScanResult { - pub fn new() -> ScanResult { - ScanResult { - hosts: vec![], - scan_time: Duration::from_millis(0), - scan_status: ScanStatus::Done, - fingerprints: vec![], - } - } - pub fn error(message: String) -> ScanResult { - ScanResult { - hosts: vec![], - scan_time: Duration::from_millis(0), - scan_status: ScanStatus::Error(message), - fingerprints: vec![], - } - } - /// Returns IP addresses from the scan result - pub fn get_hosts(&self) -> Vec { - let mut hosts: Vec = vec![]; - for host in self.hosts.clone() { - hosts.push(host.ip_addr); - } - hosts - } - /// Get open ports of the specified IP address from the scan results - pub fn get_open_port_numbers(&self, ip_addr: IpAddr) -> Vec { - let mut open_ports: Vec = vec![]; - self.hosts.iter().for_each(|host_info| { - if host_info.ip_addr == ip_addr { - host_info - .ports - .iter() - .for_each(|port_info| match port_info.status { - PortStatus::Open => { - open_ports.push(port_info.number); - } - _ => {} - }); - } - }); - open_ports - } - /// Get open port fingerprint - pub fn get_syn_ack_fingerprint(&self, ip_addr: IpAddr, port: u16) -> Option { - for fingerprint in self.fingerprints.iter() { - if let Some(ipv4_packet) = &fingerprint.ipv4_header { - if ipv4_packet.source == ip_addr { - if let Some(tcp_packet) = &fingerprint.tcp_header { - if tcp_packet.source == port - && tcp_packet.flags == TcpFlags::SYN | TcpFlags::ACK - { - return Some(fingerprint.clone()); - } - } - } - } else if let Some(ipv6_packet) = &fingerprint.ipv6_header { - if ipv6_packet.source == ip_addr { - if let Some(tcp_packet) = &fingerprint.tcp_header { - if tcp_packet.source == port - && tcp_packet.flags == TcpFlags::SYN | TcpFlags::ACK - { - return Some(fingerprint.clone()); - } - } - } - } - } - None - } - pub fn get_host(&self, ip_addr: IpAddr) -> Option { - for host in self.hosts.iter() { - if host.ip_addr == ip_addr { - return Some(host.clone()); - } - } - None - } - pub fn sort_hosts(&mut self) { - self.hosts.sort_by(|a, b| a.ip_addr.cmp(&b.ip_addr)); - } - pub fn sort_ports(&mut self) { - for host in self.hosts.iter_mut() { - host.ports.sort_by(|a, b| a.number.cmp(&b.number)); - } - } -} - -/// Result of a service probe -#[derive(Clone, Debug, PartialEq)] -pub struct ServiceProbeResult { - pub port: u16, - pub service_name: String, - pub service_detail: Option, - pub response: Vec, - pub error: Option, -} - -impl ServiceProbeResult { - /// Create a new successful probe result - pub fn new(port: u16, service_name: String, response: Vec) -> Self { - ServiceProbeResult { - port, - service_name, - service_detail: None, - response, - error: None, - } - } - - /// Create a new probe result with an error - pub fn with_error(port: u16, service_name: String, error: ServiceProbeError) -> Self { - ServiceProbeResult { - port, - service_name, - service_detail: None, - response: Vec::new(), - error: Some(error), - } - } - - /// Check if the result contains an error - pub fn has_error(&self) -> bool { - self.error.is_some() - } - - /// Get a reference to the contained error, if any - pub fn error(&self) -> Option<&ServiceProbeError> { - self.error.as_ref() - } - - /// Extract the error, consuming the result - pub fn into_error(self) -> Option { - self.error - } -} - -#[derive(Clone, Debug, PartialEq)] -pub enum ServiceProbeError { - ConnectionError(String), - WriteError(String), - ReadError(String), - TlsError(String), - CustomError(String), -} - -pub(crate) fn parse_hostscan_result( - packets: Vec, - scan_setting: HostScanSetting, -) -> ScanResult { - let mut result: ScanResult = ScanResult::new(); - let iface: Interface = match crate::interface::get_interface_by_index(scan_setting.if_index) { - Some(iface) => iface, - None => return ScanResult::error("Interface not found".to_string()), - }; - let iface_ips: HashSet = crate::interface::get_local_ips(scan_setting.if_index); - for p in packets { - let mac_addr: MacAddr; - if let Some(ethernet_frame) = &p.ethernet_header { - if ethernet_frame.destination != iface.mac_addr.unwrap_or(MacAddr::zero()) { - continue; - } - mac_addr = ethernet_frame.source; - } else { - mac_addr = MacAddr::zero(); - } - let mut ports: Vec = vec![]; - match scan_setting.scan_type { - HostScanType::IcmpPingScan => { - if p.icmp_header.is_none() && p.icmpv6_header.is_none() { - continue; - } - } - HostScanType::TcpPingScan => { - if p.tcp_header.is_none() { - continue; - } - if let Some(tcp_packet) = &p.tcp_header { - if tcp_packet.flags == TcpFlags::SYN | TcpFlags::ACK { - let port_info: Port = Port { - number: tcp_packet.source, - status: PortStatus::Open, - service_name: String::new(), - service_version: String::new(), - }; - ports.push(port_info); - } else if tcp_packet.flags == TcpFlags::RST | TcpFlags::ACK { - let port_info: Port = Port { - number: tcp_packet.source, - status: PortStatus::Closed, - service_name: String::new(), - service_version: String::new(), - }; - ports.push(port_info); - } else { - continue; - } - } else { - continue; - } - } - HostScanType::UdpPingScan => { - if p.icmp_header.is_none() && p.icmp_header.is_none() { - continue; - } - } - } - let host_info: Host = if let Some(ipv4_packet) = &p.ipv4_header { - Host { - ip_addr: IpAddr::V4(ipv4_packet.source), - hostname: scan_setting - .dns_map - .get(&IpAddr::V4(ipv4_packet.source)) - .unwrap_or(&String::new()) - .clone(), - ports: ports, - mac_addr: if iface_ips.contains(&IpAddr::V4(ipv4_packet.source)) { - iface.mac_addr.unwrap_or(MacAddr::zero()) - } else { - mac_addr - }, - vendor_name: String::new(), - os_family: String::new(), - ttl: ipv4_packet.ttl, - } - } else if let Some(ipv6_packet) = &p.ipv6_header { - Host { - ip_addr: IpAddr::V6(ipv6_packet.source), - hostname: scan_setting - .dns_map - .get(&IpAddr::V6(ipv6_packet.source)) - .unwrap_or(&String::new()) - .clone(), - ports: ports, - mac_addr: if iface_ips.contains(&IpAddr::V6(ipv6_packet.source)) { - iface.mac_addr.unwrap_or(MacAddr::zero()) - } else { - mac_addr - }, - vendor_name: String::new(), - os_family: String::new(), - ttl: ipv6_packet.hop_limit, - } - } else { - continue; - }; - if !result.hosts.contains(&host_info) { - result.hosts.push(host_info); - result.fingerprints.push(p.clone()); - } - } - return result; -} - -pub(crate) fn parse_portscan_result( - packets: Vec, - scan_setting: PortScanSetting, -) -> ScanResult { - let mut result: ScanResult = ScanResult::new(); - let mut socket_set: HashSet = HashSet::new(); - let iface: Interface = match crate::interface::get_interface_by_index(scan_setting.if_index) { - Some(iface) => iface, - None => return ScanResult::error("Interface not found".to_string()), - }; - for p in packets { - if p.ipv4_header.is_none() && p.ipv6_header.is_none() { - continue; - } - let mac_addr: MacAddr; - if let Some(ethernet_frame) = &p.ethernet_header { - if ethernet_frame.destination != iface.mac_addr.unwrap_or(MacAddr::zero()) { - continue; - } - mac_addr = ethernet_frame.source; - } else { - mac_addr = MacAddr::zero(); - } - let ip_addr: IpAddr = { - if let Some(ipv4_packet) = &p.ipv4_header { - if let Some(tcp_packet) = &p.tcp_header { - if socket_set.contains(&SocketAddr::new( - IpAddr::V4(ipv4_packet.source), - tcp_packet.source, - )) { - continue; - } - } else { - continue; - } - IpAddr::V4(ipv4_packet.source) - } else if let Some(ipv6_packet) = &p.ipv6_header { - if let Some(tcp_packet) = &p.tcp_header { - if socket_set.contains(&SocketAddr::new( - IpAddr::V6(ipv6_packet.source), - tcp_packet.source, - )) { - continue; - } - } else { - continue; - } - IpAddr::V6(ipv6_packet.source) - } else { - continue; - } - }; - let ttl = if let Some(ipv4_packet) = &p.ipv4_header { - ipv4_packet.ttl - } else if let Some(ipv6_packet) = &p.ipv6_header { - ipv6_packet.hop_limit - } else { - 0 - }; - let port_info: Port = if let Some(tcp_packet) = &p.tcp_header { - if tcp_packet.flags == TcpFlags::SYN | TcpFlags::ACK { - Port { - number: tcp_packet.source, - status: PortStatus::Open, - service_name: String::new(), - service_version: String::new(), - } - } else if tcp_packet.flags == TcpFlags::RST | TcpFlags::ACK { - Port { - number: tcp_packet.source, - status: PortStatus::Closed, - service_name: String::new(), - service_version: String::new(), - } - } else { - continue; - } - } else { - continue; - }; - let mut exists: bool = false; - for host in result.hosts.iter_mut() { - if host.ip_addr == ip_addr { - host.ports.push(port_info.clone()); - exists = true; - } - } - if !exists { - let host_info: Host = Host { - ip_addr: ip_addr, - hostname: scan_setting - .dns_map - .get(&ip_addr) - .unwrap_or(&String::new()) - .clone(), - ports: vec![port_info.clone()], - mac_addr: mac_addr, - vendor_name: String::new(), - os_family: String::new(), - ttl: ttl, - }; - result.hosts.push(host_info); - } - result.fingerprints.push(p.clone()); - socket_set.insert(SocketAddr::new(ip_addr, port_info.number)); - } - result -} diff --git a/src/scan/scanner.rs b/src/scan/scanner.rs deleted file mode 100644 index 473f9ab..0000000 --- a/src/scan/scanner.rs +++ /dev/null @@ -1,122 +0,0 @@ -use crate::host::Host; -use crate::scan::setting::{HostScanSetting, PortScanSetting}; -use std::collections::HashMap; -use std::net::SocketAddr; -use std::sync::mpsc::{channel, Receiver, Sender}; -use std::sync::{Arc, Mutex}; - -use super::async_io; -use super::blocking; -use super::result::{ScanResult, ServiceProbeResult}; -use super::setting::ServiceProbeSetting; - -/// Host Scanner -#[derive(Clone, Debug)] -pub struct HostScanner { - /// Scan Setting - pub scan_setting: HostScanSetting, - /// Sender for progress messaging - pub tx: Arc>>, - /// Receiver for progress messaging - pub rx: Arc>>, -} - -impl HostScanner { - /// Create new HostScanner - pub fn new(scan_setting: HostScanSetting) -> Self { - let (tx, rx) = channel(); - Self { - scan_setting, - tx: Arc::new(Mutex::new(tx)), - rx: Arc::new(Mutex::new(rx)), - } - } - /// Get progress receiver - pub fn get_progress_receiver(&self) -> Arc>> { - self.rx.clone() - } - // Scan hosts - pub fn scan(&self) -> ScanResult { - if self.scan_setting.async_scan { - let rt = tokio::runtime::Runtime::new().unwrap(); - rt.block_on(async_io::scan_hosts(self.scan_setting.clone(), &self.tx)) - } else { - blocking::scan_hosts(self.scan_setting.clone(), &self.tx) - } - } -} - -/// Port Scanner -#[derive(Clone, Debug)] -pub struct PortScanner { - /// Scan Setting - pub scan_setting: PortScanSetting, - /// Sender for progress messaging - pub tx: Arc>>, - /// Receiver for progress messaging - pub rx: Arc>>, -} - -impl PortScanner { - /// Create new PortScanner - pub fn new(scan_setting: PortScanSetting) -> Self { - let (tx, rx) = channel(); - Self { - scan_setting, - tx: Arc::new(Mutex::new(tx)), - rx: Arc::new(Mutex::new(rx)), - } - } - /// Get progress receiver - pub fn get_progress_receiver(&self) -> Arc>> { - self.rx.clone() - } - /// Scan ports - pub fn scan(&self) -> ScanResult { - match self.scan_setting.scan_type { - crate::scan::setting::PortScanType::TcpSynScan => { - if self.scan_setting.async_scan { - let rt = tokio::runtime::Runtime::new().unwrap(); - rt.block_on(async_io::scan_ports(self.scan_setting.clone(), &self.tx)) - } else { - blocking::scan_ports(self.scan_setting.clone(), &self.tx) - } - } - crate::scan::setting::PortScanType::TcpConnectScan => { - async_io::run_connect_scan(self.scan_setting.clone(), &self.tx) - } - } - } -} - -/// Struct for service detection -#[derive(Clone, Debug)] -pub struct ServiceDetector { - /// Probe setting for service detection - pub setting: ServiceProbeSetting, - /// Sender for progress messaging - pub tx: Arc>>, - /// Receiver for progress messaging - pub rx: Arc>>, -} - -impl ServiceDetector { - /// Create new ServiceDetector - pub fn new(setting: ServiceProbeSetting) -> Self { - let (tx, rx) = channel(); - Self { - setting, - tx: Arc::new(Mutex::new(tx)), - rx: Arc::new(Mutex::new(rx)), - } - } - /// Get progress receiver - pub fn get_progress_receiver(&self) -> Arc>> { - self.rx.clone() - } - /// Run service detection - pub fn run(&self) -> HashMap { - let rt = tokio::runtime::Runtime::new().unwrap(); - rt.block_on(super::service::run_service_probe(&self.setting, &self.tx)) - } -} diff --git a/src/scan/service.rs b/src/scan/service.rs deleted file mode 100644 index 1fc2cdb..0000000 --- a/src/scan/service.rs +++ /dev/null @@ -1,428 +0,0 @@ -use super::payload::{PayloadInfo, PayloadType}; -use super::result::{ServiceProbeError, ServiceProbeResult}; -use super::setting::ServiceProbeSetting; -use crate::db::tcp_service::PORT_SERVICE_MAP; -use futures::stream::{self, StreamExt}; -use std::collections::HashMap; -use std::net::{IpAddr, SocketAddr}; -use std::sync::mpsc::Sender; -use std::sync::{Arc, Mutex}; -use std::time::Duration; -use tokio::io::{AsyncReadExt, AsyncWriteExt}; -use tokio::net::TcpStream; -use tokio_rustls::TlsConnector; - -/// Parse HTTP header and return server name -/// -/// The server name possibly contains version number. -fn parse_http_header(res_bytes: &Vec) -> Option { - let res_string: String = res_bytes.iter().map(|&c| c as char).collect(); - let header_fields: Vec<&str> = res_string.split("\r\n").collect(); - if header_fields.len() == 1 { - if res_string.contains("Server:") { - return Some(res_string); - } else { - return None; - } - } - for field in header_fields { - if field.contains("Server:") { - let server_info: String = field.trim().to_string(); - return Some(server_info); - } - } - None -} - -/// Read to end and return response as Vec -/// This ignore io::Error on read_to_end because it is expected when reading response. -/// If no response is received, and io::Error is occurred, return Err. -async fn read_response_timeout( - tcp_stream: &mut TcpStream, - timeout_duration: Duration, -) -> std::io::Result> { - let mut response = Vec::new(); - let mut buf = [0u8; 1024]; - - loop { - match tokio::time::timeout(timeout_duration, tcp_stream.read(&mut buf)).await { - Ok(Ok(0)) => break, - Ok(Ok(n)) => { - response.extend_from_slice(&buf[..n]); - break; - } - Ok(Err(e)) => return Err(e), - Err(_) => break, - } - } - - if response.is_empty() { - Err(std::io::Error::new( - std::io::ErrorKind::TimedOut, - "No response", - )) - } else { - Ok(response) - } -} - -fn set_read_timeout(tcp_stream: TcpStream, timeout: Duration) -> std::io::Result { - // Convert to std::net::TcpStream - let std_tcp_stream = tcp_stream.into_std()?; - // Set read timeout - std_tcp_stream.set_read_timeout(Some(timeout))?; - // Convert back to tokio TcpStream - let tokio_tcp_stream = TcpStream::from_std(std_tcp_stream)?; - Ok(tokio_tcp_stream) -} - -async fn probe_port( - ip_addr: IpAddr, - hostname: String, - port: u16, - payload_info: Option, - timeout: Duration, -) -> ServiceProbeResult { - let service_name: String = match PORT_SERVICE_MAP.get(&port) { - Some(name) => name.to_string(), - None => String::new(), - }; - let socket_addr: SocketAddr = SocketAddr::new(ip_addr, port); - let tcp_stream = match tokio::time::timeout(timeout, TcpStream::connect(socket_addr)).await { - Ok(connect_result) => match connect_result { - Ok(tcp_stream) => tcp_stream, - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ConnectionError(e.to_string()), - ) - } - }, - Err(elapsed) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ConnectionError(elapsed.to_string()), - ) - } - }; - // Set read timeout - let mut tcp_stream = match set_read_timeout(tcp_stream, timeout) { - Ok(tcp_stream) => tcp_stream, - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ConnectionError(e.to_string()), - ) - } - }; - if let Some(payload) = payload_info { - match payload.payload_type { - PayloadType::Http => match tcp_stream.write_all(&payload.payload).await { - Ok(_) => { - match tcp_stream.flush().await { - Ok(_) => {} - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::WriteError(e.to_string()), - ) - } - } - match read_response_timeout(&mut tcp_stream, timeout).await { - Ok(res) => { - let mut result = - ServiceProbeResult::new(port, service_name, res.clone()); - result.service_detail = parse_http_header(&res); - return result; - } - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ReadError(e.to_string()), - ) - } - } - } - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::WriteError(e.to_string()), - ) - } - }, - PayloadType::Https => { - let native_certs = crate::tls::cert::get_native_certs().unwrap(); - let config = rustls::ClientConfig::builder() - .with_root_certificates(native_certs) - .with_no_client_auth(); - let tls_connector = TlsConnector::from(Arc::new(config)); - let name = match rustls_pki_types::ServerName::try_from(hostname) { - Ok(name) => name, - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ConnectionError(e.to_string()), - ) - } - }; - let mut tls_stream = - match tokio::time::timeout(timeout, tls_connector.connect(name, tcp_stream)) - .await - { - Ok(connect_result) => match connect_result { - Ok(tls_stream) => tls_stream, - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ConnectionError(e.to_string()), - ) - } - }, - Err(elapsed) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ConnectionError(elapsed.to_string()), - ) - } - }; - match tls_stream.write_all(&payload.payload).await { - Ok(_) => { - match tls_stream.flush().await { - Ok(_) => {} - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::WriteError(e.to_string()), - ) - } - } - let mut buf: Vec = Vec::new(); - match tls_stream.read_to_end(&mut buf).await { - Ok(_) => { - let mut result = - ServiceProbeResult::new(port, service_name, buf.clone()); - result.service_detail = parse_http_header(&buf); - return result; - } - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ReadError(e.to_string()), - ) - } - } - } - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::WriteError(e.to_string()), - ) - } - } - } - PayloadType::Common => match tcp_stream.write_all(&payload.payload).await { - Ok(_) => { - match tcp_stream.flush().await { - Ok(_) => {} - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::WriteError(e.to_string()), - ) - } - } - match read_response_timeout(&mut tcp_stream, timeout).await { - Ok(res) => { - let mut result = - ServiceProbeResult::new(port, service_name, res.clone()); - result.service_detail = Some( - String::from_utf8(res) - .unwrap_or(String::new()) - .replace("\r\n", ""), - ); - return result; - } - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ReadError(e.to_string()), - ) - } - } - } - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::WriteError(e.to_string()), - ) - } - }, - PayloadType::CommonTls => { - let native_certs = crate::tls::cert::get_native_certs().unwrap(); - let config = rustls::ClientConfig::builder() - .with_root_certificates(native_certs) - .with_no_client_auth(); - let tls_connector = TlsConnector::from(Arc::new(config)); - let name = match rustls_pki_types::ServerName::try_from(hostname) { - Ok(name) => name, - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ConnectionError(e.to_string()), - ) - } - }; - let mut tls_stream = - match tokio::time::timeout(timeout, tls_connector.connect(name, tcp_stream)) - .await - { - Ok(connect_result) => match connect_result { - Ok(tls_stream) => tls_stream, - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ConnectionError(e.to_string()), - ) - } - }, - Err(elapsed) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ConnectionError(elapsed.to_string()), - ) - } - }; - match tls_stream.write_all(&payload.payload).await { - Ok(_) => { - match tls_stream.flush().await { - Ok(_) => {} - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::WriteError(e.to_string()), - ) - } - } - let mut buf: Vec = Vec::new(); - match tls_stream.read_to_end(&mut buf).await { - Ok(_) => { - let mut result = - ServiceProbeResult::new(port, service_name, buf.clone()); - result.service_detail = Some( - String::from_utf8(buf).unwrap_or(String::new()).to_string(), - ); - return result; - } - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ReadError(e.to_string()), - ) - } - } - } - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::WriteError(e.to_string()), - ) - } - } - } - PayloadType::Null => match read_response_timeout(&mut tcp_stream, timeout).await { - Ok(res) => { - let mut result = ServiceProbeResult::new(port, service_name, res.clone()); - result.service_detail = Some( - String::from_utf8(res) - .unwrap_or(String::new()) - .replace("\r\n", ""), - ); - return result; - } - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ReadError(e.to_string()), - ) - } - }, - } - } else { - match read_response_timeout(&mut tcp_stream, timeout).await { - Ok(res) => { - let mut result = ServiceProbeResult::new(port, service_name, res.clone()); - result.service_detail = Some( - String::from_utf8(res) - .unwrap_or(String::new()) - .replace("\r\n", ""), - ); - return result; - } - Err(e) => { - return ServiceProbeResult::with_error( - port, - service_name, - ServiceProbeError::ReadError(e.to_string()), - ) - } - } - } -} - -pub async fn run_service_probe( - setting: &ServiceProbeSetting, - ptx: &Arc>>, -) -> HashMap { - let service_map: Arc>> = - Arc::new(Mutex::new(HashMap::new())); - let fut_port = - stream::iter(setting.clone().ports).for_each_concurrent(setting.concurrent_limit, |port| { - let c_service_map: Arc>> = - Arc::clone(&service_map); - async move { - let ip_addr = setting.ip_addr; - let hostname = setting.hostname.clone(); - let probe_result: ServiceProbeResult = probe_port( - ip_addr, - hostname, - port, - setting.payload_map.get(&port).cloned(), - setting.read_timeout, - ) - .await; - c_service_map.lock().unwrap().insert(port, probe_result); - match ptx.lock() { - Ok(lr) => match lr.send(SocketAddr::new(ip_addr, port)) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - } - }); - fut_port.await; - let result_map: HashMap = service_map.lock().unwrap().clone(); - result_map -} diff --git a/src/scan/setting.rs b/src/scan/setting.rs deleted file mode 100644 index 75a07b7..0000000 --- a/src/scan/setting.rs +++ /dev/null @@ -1,376 +0,0 @@ -use crate::host::Host; -use crate::protocol::Protocol; -use crate::scan::payload::PayloadBuilder; -use rand::seq::SliceRandom; -use serde::{Deserialize, Serialize}; -use std::collections::HashMap; -use std::net::{IpAddr, Ipv4Addr}; -use std::time::Duration; - -use crate::config::DEFAULT_PORTS_CONCURRENCY; - -use super::payload::PayloadInfo; - -/* /// Scan Type -#[derive(Deserialize, Serialize, Clone, Debug)] -pub enum ScanType { - /// Port scan type. - PortScan(PortScanType), - /// Host scan type. - HostScan(HostScanType), -} - */ - -/// Port Scan Type -#[derive(Deserialize, Serialize, Clone, Debug)] -pub enum PortScanType { - /// Default fast port scan type. - /// - /// Send TCP packet with SYN flag to the target ports and check response. - TcpSynScan, - /// Attempt TCP connection and check port status. - /// - /// Slow but can be run without administrator privileges. - TcpConnectScan, -} - -impl PortScanType { - pub fn from_str(scan_type: &str) -> PortScanType { - match scan_type { - "SYN" | "TCP-SYN" | "TCP_SYN" => PortScanType::TcpSynScan, - "CONNECT" | "TCP-CONNECT" | "TCP_CONNECT" => PortScanType::TcpConnectScan, - _ => PortScanType::TcpSynScan, - } - } - pub fn to_str(&self) -> &str { - match self { - PortScanType::TcpSynScan => "TCP-SYN", - PortScanType::TcpConnectScan => "TCP-CONNECT", - } - } -} - -#[derive(Deserialize, Serialize, Clone, Debug)] -pub struct PortScanSetting { - pub if_index: u32, - pub targets: Vec, - pub protocol: Protocol, - pub scan_type: PortScanType, - pub concurrency: usize, - pub timeout: Duration, - pub wait_time: Duration, - pub send_rate: Duration, - pub randomize: bool, - pub minimize_packet: bool, - pub dns_map: HashMap, - pub async_scan: bool, -} - -impl Default for PortScanSetting { - fn default() -> Self { - Self { - if_index: 0, - targets: Vec::new(), - protocol: Protocol::TCP, - scan_type: PortScanType::TcpSynScan, - concurrency: DEFAULT_PORTS_CONCURRENCY, - timeout: Duration::from_secs(30), - wait_time: Duration::from_secs(200), - send_rate: Duration::from_millis(0), - randomize: true, - minimize_packet: false, - dns_map: HashMap::new(), - async_scan: false, - } - } -} - -impl PortScanSetting { - // support builder pattern for all fields - pub fn set_if_index(mut self, if_index: u32) -> Self { - self.if_index = if_index; - self - } - pub fn add_target(mut self, target: Host) -> Self { - self.targets.push(target); - self - } - pub fn set_targets(mut self, targets: Vec) -> Self { - self.targets = targets; - self - } - pub fn set_protocol(mut self, protocol: Protocol) -> Self { - self.protocol = protocol; - self - } - pub fn set_scan_type(mut self, scan_type: PortScanType) -> Self { - self.scan_type = scan_type; - self - } - pub fn set_concurrency(mut self, concurrency: usize) -> Self { - self.concurrency = concurrency; - self - } - pub fn set_timeout(mut self, timeout: Duration) -> Self { - self.timeout = timeout; - self - } - pub fn set_wait_time(mut self, wait_time: Duration) -> Self { - self.wait_time = wait_time; - self - } - pub fn set_send_rate(mut self, send_rate: Duration) -> Self { - self.send_rate = send_rate; - self - } - pub fn set_randomize(mut self, randomize: bool) -> Self { - self.randomize = randomize; - self - } - pub fn set_minimize_packet(mut self, minimize_packet: bool) -> Self { - self.minimize_packet = minimize_packet; - self - } - pub fn set_dns_map(mut self, dns_map: HashMap) -> Self { - self.dns_map = dns_map; - self - } - pub fn set_async_scan(mut self, async_scan: bool) -> Self { - self.async_scan = async_scan; - self - } - pub fn randomize_hosts(&mut self) { - let mut rng = rand::thread_rng(); - self.targets.shuffle(&mut rng); - } - pub fn randomize_ports(&mut self) { - for target in &mut self.targets { - target.ports.shuffle(&mut rand::thread_rng()); - } - } -} - -/// Host Scan Type -#[derive(Deserialize, Serialize, Clone, Debug)] -pub enum HostScanType { - /// Default host scan type. - /// - /// Send ICMP echo request and check response. - IcmpPingScan, - /// Perform host scan for a specific service. - /// - /// Send TCP packets with SYN flag to a specific port and check response. - TcpPingScan, - /// Send UDP packets to a probably closed port and check response. - /// This expects ICMP port unreachable message. - UdpPingScan, -} - -impl HostScanType { - pub fn from_str(scan_type: &str) -> HostScanType { - match scan_type { - "ICMP" | "ICMP-PING" | "ICMP_PING" => HostScanType::IcmpPingScan, - "TCP" | "TCP-PING" | "TCP_PING" => HostScanType::TcpPingScan, - "UDP" | "UDP-PING" | "UDP_PING" => HostScanType::UdpPingScan, - _ => HostScanType::IcmpPingScan, - } - } - pub fn to_str(&self) -> &str { - match self { - HostScanType::IcmpPingScan => "ICMP-PING", - HostScanType::TcpPingScan => "TCP-PING", - HostScanType::UdpPingScan => "UDP-PING", - } - } -} - -#[derive(Deserialize, Serialize, Clone, Debug)] -pub struct HostScanSetting { - pub if_index: u32, - pub targets: Vec, - pub protocol: Protocol, - pub scan_type: HostScanType, - pub concurrency: usize, - pub timeout: Duration, - pub wait_time: Duration, - pub send_rate: Duration, - pub randomize: bool, - pub minimize_packet: bool, - pub dns_map: HashMap, - pub async_scan: bool, -} - -impl Default for HostScanSetting { - fn default() -> Self { - Self { - if_index: 0, - targets: Vec::new(), - protocol: Protocol::ICMP, - scan_type: HostScanType::IcmpPingScan, - concurrency: DEFAULT_PORTS_CONCURRENCY, - timeout: Duration::from_secs(30), - wait_time: Duration::from_secs(200), - send_rate: Duration::from_millis(0), - randomize: true, - minimize_packet: false, - dns_map: HashMap::new(), - async_scan: false, - } - } -} - -impl HostScanSetting { - // support builder pattern for all fields - pub fn set_if_index(mut self, if_index: u32) -> Self { - self.if_index = if_index; - self - } - pub fn set_targets(mut self, targets: Vec) -> Self { - self.targets = targets; - self - } - pub fn set_protocol(mut self, protocol: Protocol) -> Self { - self.protocol = protocol; - self - } - pub fn set_scan_type(mut self, scan_type: HostScanType) -> Self { - self.scan_type = scan_type; - self - } - pub fn set_concurrency(mut self, concurrency: usize) -> Self { - self.concurrency = concurrency; - self - } - pub fn set_timeout(mut self, timeout: Duration) -> Self { - self.timeout = timeout; - self - } - pub fn set_wait_time(mut self, wait_time: Duration) -> Self { - self.wait_time = wait_time; - self - } - pub fn set_send_rate(mut self, send_rate: Duration) -> Self { - self.send_rate = send_rate; - self - } - pub fn set_randomize(mut self, randomize: bool) -> Self { - self.randomize = randomize; - self - } - pub fn set_minimize_packet(mut self, minimize_packet: bool) -> Self { - self.minimize_packet = minimize_packet; - self - } - pub fn set_dns_map(mut self, dns_map: HashMap) -> Self { - self.dns_map = dns_map; - self - } - pub fn add_target(mut self, target: Host) -> Self { - self.targets.push(target); - self - } - pub fn set_async_scan(mut self, async_scan: bool) -> Self { - self.async_scan = async_scan; - self - } - pub fn randomize_hosts(&mut self) { - let mut rng = rand::thread_rng(); - self.targets.shuffle(&mut rng); - } - pub fn randomize_ports(&mut self) { - for target in &mut self.targets { - target.ports.shuffle(&mut rand::thread_rng()); - } - } -} - -/// Probe setting for service detection -#[derive(Clone, Debug)] -pub struct ServiceProbeSetting { - /// Destination IP address - pub ip_addr: IpAddr, - /// Destination Host Name - pub hostname: String, - /// Target ports for service detection - pub ports: Vec, - /// TCP connect (open) timeout - pub connect_timeout: Duration, - /// TCP read timeout - pub read_timeout: Duration, - /// SSL/TLS certificate validation when detecting HTTPS services. - /// - /// Default value is false, which means validation is enabled. - pub accept_invalid_certs: bool, - /// Payloads for specified ports. - /// - /// If not set, default null probe will be used. (No payload, just open TCP connection and read response) - pub payload_map: HashMap, - /// Concurrent connection limit for service detection - pub concurrent_limit: usize, -} - -impl ServiceProbeSetting { - /// Create new ProbeSetting - pub fn new() -> ServiceProbeSetting { - ServiceProbeSetting { - ip_addr: IpAddr::V4(Ipv4Addr::LOCALHOST), - hostname: String::new(), - ports: vec![], - connect_timeout: Duration::from_millis(200), - read_timeout: Duration::from_secs(5), - accept_invalid_certs: false, - payload_map: HashMap::new(), - concurrent_limit: 10, - } - } - pub fn default(ip_addr: IpAddr, hostname: String, ports: Vec) -> ServiceProbeSetting { - let mut payload_map: HashMap = HashMap::new(); - let http_head = PayloadBuilder::http_head(); - let https_head = PayloadBuilder::https_head(&hostname); - payload_map.insert(80, http_head.clone()); - payload_map.insert(443, https_head.clone()); - payload_map.insert(8080, http_head); - payload_map.insert(8443, https_head); - ServiceProbeSetting { - ip_addr: ip_addr, - hostname: hostname, - ports: ports, - connect_timeout: Duration::from_secs(1), - read_timeout: Duration::from_secs(5), - accept_invalid_certs: false, - payload_map: payload_map, - concurrent_limit: 10, - } - } - /// Set Destination IP address - pub fn with_ip_addr(&mut self, ip_addr: IpAddr) -> &mut Self { - self.ip_addr = ip_addr; - self - } - /// Set Destination Host Name. If IP address is not set, it will be resolved from the hostname. - pub fn with_hostname(&mut self, hostname: String) -> &mut Self { - self.hostname = hostname; - if self.ip_addr == IpAddr::V4(Ipv4Addr::LOCALHOST) - || self.ip_addr == IpAddr::V4(Ipv4Addr::UNSPECIFIED) - || self.ip_addr == IpAddr::V6(std::net::Ipv6Addr::LOCALHOST) - || self.ip_addr == IpAddr::V6(std::net::Ipv6Addr::UNSPECIFIED) - { - if let Some(ip_addr) = crate::dns::lookup_host_name(&self.hostname) { - self.ip_addr = ip_addr; - } - } - self - } - /// Add target port - pub fn add_port(&mut self, port: u16) { - self.ports.push(port); - } - /// Set connect (open) timeout in milliseconds - pub fn set_connect_timeout_millis(&mut self, connect_timeout_millis: u64) { - self.connect_timeout = Duration::from_millis(connect_timeout_millis); - } - /// Set TCP read timeout in milliseconds - pub fn set_read_timeout_millis(&mut self, read_timeout_millis: u64) { - self.read_timeout = Duration::from_millis(read_timeout_millis); - } -} diff --git a/src/service/mod.rs b/src/service/mod.rs new file mode 100644 index 0000000..82c4dea --- /dev/null +++ b/src/service/mod.rs @@ -0,0 +1,281 @@ +use std::time::Duration; +use regex::{Regex, RegexBuilder}; +use anyhow::{Result, bail}; +use futures::stream::{self, StreamExt}; +use tokio::{io::{AsyncRead, AsyncReadExt}, net::TcpStream, time::{timeout, Instant}}; +use tokio::sync::mpsc; +use tracing_indicatif::span_ext::IndicatifSpanExt; + +use crate::{endpoint::Endpoint, service::probe::{PortProbe, PortProbeResult, ProbeContext, ServiceProbe}}; + +pub mod probe; +mod payload; + +/// Configuration for service probing +#[derive(Clone,Debug)] +pub struct ServiceProbeConfig { + pub timeout: Duration, + pub max_concurrency: usize, + pub max_read_size: usize, + pub sni: bool, + pub skip_cert_verify: bool, +} + +/// Result of service detection on multiple endpoints +pub struct ServiceDetectionResult { + pub results: Vec, + pub scan_time: Duration, +} + +/// Service detector that runs probes against endpoints +pub struct ServiceDetector { + pub config: ServiceProbeConfig, +} + +impl ServiceDetector { + /// Create a new ServiceDetector with the given configuration + pub fn new(config: ServiceProbeConfig) -> Self { + ServiceDetector { + config + } + } + /// Detect services on the given endpoint using configured probes + pub async fn detect_services(config: ServiceProbeConfig, endpoint: Endpoint) -> Result> { + let port_probe_db = crate::db::service::port_probe_db(); + let service_probe_db = crate::db::service::service_probe_db(); + let (ch_tx, mut ch_rx) = mpsc::unbounded_channel::>>(); + + let header_span = tracing::info_span!("detect_services"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message(&format!("Service Probe ({})", endpoint.ip)); + //header_span.pb_set_finish_message("Service Probe(task)(completed)"); + header_span.pb_set_length(endpoint.ports.len() as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + //let header_span_enter = header_span.enter(); + + let mut results = Vec::new(); + let span_rx = header_span.clone(); + let recv_task = tokio::spawn(async move { + while let Some(port_results) = ch_rx.recv().await { + for res in port_results { + match res { + Ok(r) => results.push(r), + Err(e) => tracing::error!("Probe failed: {}", e), + } + } + // Update progress bar + span_rx.pb_inc(1); + } + results + }); + + let ports = endpoint.ports.clone(); + let prod = stream::iter(ports).for_each_concurrent(config.max_concurrency, move |port| { + let tx = ch_tx.clone(); + let endpoint = endpoint.clone(); + let port_probe_db = port_probe_db.clone(); + let service_probe_db = service_probe_db.clone(); + async move { + // Perform service detection for each endpoint + let mut results: Vec> = Vec::new(); + if let Some(probes) = port_probe_db.get(&port) { + for probe in probes { + let probe_payload = match service_probe_db.get(&probe) { + Some(payload) => payload, + None => { + results.push(Err(anyhow::anyhow!("No payload for probe {:?}", probe))); + continue; + } + }; + let port_probe: PortProbe = PortProbe { + probe_id: probe.clone(), + probe_name: probe_payload.id.clone(), + port: port.number, + transport: port.transport, + payload: probe_payload.payload.clone(), + payload_encoding: probe_payload.payload_encoding, + }; + let ctx = ProbeContext { + ip: endpoint.ip, + hostname: endpoint.hostname.clone(), + probe: port_probe, + timeout: config.timeout, + max_read_size: config.max_read_size, + sni: config.sni, + skip_cert_verify: config.skip_cert_verify, + }; + + let r = match probe { + ServiceProbe::TcpHTTPGet | ServiceProbe::TcpHTTPSGet | ServiceProbe::TcpHTTPOptions => { + probe::http::HttpProbe::run(ctx).await + }, + ServiceProbe::TcpTlsSession => { + probe::tls::TlsProbe::run(ctx).await + }, + ServiceProbe::TcpGenericLines | ServiceProbe::TcpHelp => { + probe::generic::GenericProbe::run(ctx).await + }, + ServiceProbe::UdpDNSVersionBindReq | ServiceProbe::TcpDNSVersionBindReq => { + probe::dns::DnsProbe::run(ctx).await + }, + ServiceProbe::UdpQuic => { + probe::quic::QuicProbe::run(ctx).await + }, + _ => { + probe::null::NullProbe::run(ctx).await + } + }; + results.push(r); + } + } else { + let ctx = ProbeContext { + ip: endpoint.ip, + hostname: endpoint.hostname.clone(), + probe: PortProbe::null_probe(port.number, port.transport), + timeout: config.timeout, + max_read_size: config.max_read_size, + sni: config.sni, + skip_cert_verify: config.skip_cert_verify, + }; + results.push(probe::null::NullProbe::run(ctx).await); + } + let _ = tx.send(results); + } + }); + + let prod_task = tokio::spawn(prod); + let (results_res, _prod_res) = tokio::join!(recv_task, prod_task); + let results = results_res?; + // Finish header span + drop(header_span); + Ok(results) + } + + pub async fn run_service_detection(&self, targets: Vec) -> Result { + let start_time = Instant::now(); + let mut tasks = vec![]; + for endpoint in targets { + let endpoint = endpoint.clone(); + let conf = self.config.clone(); + tasks.push(tokio::spawn(async move { + let probe_results = Self::detect_services( + conf, + endpoint + ) + .await; + probe_results + })); + } + let mut results: Vec = Vec::new(); + for task in tasks { + if let Ok(r) = task.await { + match r { + Ok(mut result) => { + // Merge results + results.append(&mut result); + }, + Err(e) => { + tracing::error!("Service detection failed: {}", e); + } + } + } + } + Ok(ServiceDetectionResult { + results, + scan_time: start_time.elapsed(), + }) + } +} + +pub fn set_read_timeout(tcp_stream: TcpStream, timeout: Duration) -> std::io::Result { + // Convert to std::net::TcpStream + let std_tcp_stream = tcp_stream.into_std()?; + // Set read timeout + std_tcp_stream.set_read_timeout(Some(timeout))?; + // Convert back to tokio TcpStream + let tokio_tcp_stream = TcpStream::from_std(std_tcp_stream)?; + Ok(tokio_tcp_stream) +} + +pub async fn read_timeout( + reader: &mut S, + idle_timeout: Duration, + total_timeout: Duration, + max_bytes: usize, +) -> Result> +where + S: AsyncRead + Unpin, +{ + let start = Instant::now(); + let mut buf = [0u8; 4096]; + let mut out = Vec::new(); + + loop { + // Check total timeout + let elapsed = start.elapsed(); + if elapsed >= total_timeout { + break; + } + let remaining_total = total_timeout - elapsed; + let wait = idle_timeout.min(remaining_total); + + match timeout(wait, reader.read(&mut buf)).await { + // Closed by peer + Ok(Ok(0)) => break, + // Data read + Ok(Ok(n)) => { + if out.len() > max_bytes { + bail!("response exceeded max_bytes ({} > {})", out.len(), max_bytes); + } + out.extend_from_slice(&buf[..n]); + + continue; + } + // Read error + Ok(Err(e)) => bail!("error reading response: {e}"), + // Idle timeout (no data received) + Err(_elapsed) => break, + } + } + + if out.is_empty() { + bail!("no response within time limits"); + } + Ok(out) +} + +// Build a regex with given pattern and flags +fn build_regex(pat: &str, flags: &str) -> anyhow::Result { + let mut b = RegexBuilder::new(pat); + b.case_insensitive(flags.contains('i')).dot_matches_new_line(flags.contains('s')); + //b.multi_line(true); + Ok(b.build()?) +} + +/// Build a regex for HTTP headers (multi-line, case-insensitive, dot matches new line) +fn build_http_regex(pat: &str) -> anyhow::Result { + Ok(RegexBuilder::new(pat) + .multi_line(true) + .case_insensitive(true) + .dot_matches_new_line(true) + .build()?) +} + +/// Expand CPE templates with regex capture groups +fn expand_cpe_templates(cpe_list: &[String], caps: ®ex::Captures) -> Vec { + let mut out = Vec::with_capacity(cpe_list.len()); + for t in cpe_list { + let mut s = t.clone(); + // Replace $1, $2, ... $99 with corresponding capture groups + for i in (1..=99).rev() { + let needle = format!("${}", i); + if s.contains(&needle) { + let repl = caps.get(i).map(|m| m.as_str()).unwrap_or(""); + s = s.replace(&needle, repl); + } + } + out.push(s); + } + out +} diff --git a/src/service/payload.rs b/src/service/payload.rs new file mode 100644 index 0000000..39e139a --- /dev/null +++ b/src/service/payload.rs @@ -0,0 +1,48 @@ +use anyhow::Result; +use base64::{engine::general_purpose, Engine as _}; +use crate::service::probe::{PayloadEncoding, PortProbe}; + +/// Context for building payloads +#[derive(Default, Clone)] +pub struct PayloadContext<'a> { + pub hostname: Option<&'a str>, + pub path: Option<&'a str>, +} + +/// Payload builder for service detection +pub struct PayloadBuilder { + pub probe: PortProbe, +} + +impl PayloadBuilder { + pub fn new(probe: PortProbe) -> Self { + PayloadBuilder { probe } + } + + /// Decode payload bytes (raw/base64). Returns error on decode failure. + pub fn payload(&self, ctx: PayloadContext) -> Result> { + match self.probe.payload_encoding { + PayloadEncoding::Raw => { + let mut s = self.probe.payload.clone(); + + if s.contains("$HOST") { + let host = ctx.hostname.ok_or_else(|| { + anyhow::anyhow!("probe {} requires hostname (found $HOST in payload)", self.probe.probe_id.as_str()) + })?; + s = s.replace("$HOST", host); + } + if s.contains("$PATH") { + let path = ctx.path.unwrap_or("/"); + s = s.replace("$PATH", path); + } + + Ok(s.into_bytes()) + } + PayloadEncoding::Base64 => { + general_purpose::STANDARD + .decode(&self.probe.payload) + .map_err(|e| anyhow::anyhow!("base64 decode failed for {}: {}", self.probe.probe_id.as_str(), e)) + } + } + } +} diff --git a/src/service/probe/dns.rs b/src/service/probe/dns.rs new file mode 100644 index 0000000..a987cab --- /dev/null +++ b/src/service/probe/dns.rs @@ -0,0 +1,253 @@ +use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; + +use anyhow::Result; +use crate::{endpoint::ServiceInfo, service::{build_regex, expand_cpe_templates, probe::{PortProbeResult, ProbeContext, ServiceProbe}}}; + +use hickory_proto::{ + op::{Message, MessageType, OpCode, Query}, + rr::{DNSClass, Name, RecordType}, + serialize::binary::{BinEncodable, BinEncoder}, +}; +use tokio::{io::{AsyncReadExt, AsyncWriteExt}, net::{TcpStream, UdpSocket}}; + +/// Build a DNS query message for "version.bind" TXT record in CHAOS class. +fn build_version_bind_query() -> anyhow::Result> { + let mut msg = Message::new(); + msg.set_id(fastrand::u16(..)); + msg.set_message_type(MessageType::Query); + msg.set_op_code(OpCode::Query); + msg.set_recursion_desired(false); + + let name = Name::from_ascii("version.bind.")?; + let mut q = Query::query(name, RecordType::TXT); + // CHAOS class for version.bind + q.set_query_class(DNSClass::CH); + msg.add_query(q); + + let mut bytes = Vec::with_capacity(64); + let mut enc = BinEncoder::new(&mut bytes); + msg.emit(&mut enc)?; + Ok(bytes) +} + +/// Perform a DNS version.bind query over UDP. +async fn run_dns_version_bind_udp(addr: std::net::SocketAddr, idle: std::time::Duration, _total: std::time::Duration, max_bytes: usize) +-> anyhow::Result<(String, bool)> { + let q = build_version_bind_query()?; + let local = if addr.is_ipv6() { + SocketAddr::new(IpAddr::V6(Ipv6Addr::UNSPECIFIED), 0) + } else { + SocketAddr::new(IpAddr::V4(Ipv4Addr::UNSPECIFIED), 0) + }; + let sock = UdpSocket::bind(local).await?; + sock.connect(addr).await?; + sock.send(&q).await?; + + // Receive response + let mut buf = vec![0u8; max_bytes.min(4096)]; + let n = tokio::time::timeout(idle, sock.recv(&mut buf)).await??; + buf.truncate(n); + + let msg = Message::from_vec(&buf)?; + let truncated = msg.truncated(); + + // Extract TXT record + let mut txt = String::new(); + for ans in msg.answers() { + if ans.record_type() == RecordType::TXT && ans.name().to_ascii().eq_ignore_ascii_case("version.bind.") { + if ans.dns_class() == DNSClass::CH { + if let hickory_proto::rr::RData::TXT(t) = ans.data() { + let joined = t.txt_data().iter().map(|b| String::from_utf8_lossy(b).to_string()) + .collect::>().join(""); + txt = joined; + break; + } + } + } + } + + if txt.is_empty() { + anyhow::bail!("no TXT answer for version.bind"); + } + Ok((txt, truncated)) +} + +/// Perform a DNS version.bind query over TCP. +async fn run_dns_version_bind_tcp(addr: std::net::SocketAddr, idle: std::time::Duration, total: std::time::Duration, max_bytes: usize) +-> anyhow::Result { + let mut stream = tokio::time::timeout(total, TcpStream::connect(addr)).await??; + + let q = build_version_bind_query()?; + let mut framed = Vec::with_capacity(q.len() + 2); + framed.extend_from_slice(&(q.len() as u16).to_be_bytes()); + framed.extend_from_slice(&q); + stream.write_all(&framed).await?; + stream.flush().await?; + + // Read the first 2 bytes for length + let mut lenbuf = [0u8; 2]; + tokio::time::timeout(idle, stream.read_exact(&mut lenbuf)).await??; + let want = u16::from_be_bytes(lenbuf) as usize; + if want > max_bytes { anyhow::bail!("dns/tcp response exceeds max_bytes"); } + + let mut buf = vec![0u8; want]; + tokio::time::timeout(idle, stream.read_exact(&mut buf)).await??; + + let msg = hickory_proto::op::Message::from_vec(&buf)?; + // Extract TXT record + for ans in msg.answers() { + if ans.record_type() == RecordType::TXT && ans.name().to_ascii().eq_ignore_ascii_case("version.bind.") { + if ans.dns_class() == DNSClass::CH { + if let hickory_proto::rr::RData::TXT(t) = ans.data() { + let joined = t.txt_data().iter().map(|b| String::from_utf8_lossy(b).to_string()) + .collect::>().join(""); + if !joined.is_empty() { return Ok(joined); } + } + } + } + } + anyhow::bail!("no TXT answer for version.bind over TCP"); +} + +/// Match response text against known service signatures. +/// (service, cpes) +fn match_response_signatures( + probe_id: &str, + text: &str, +) -> anyhow::Result)>> { + let sigdb = crate::db::service::response_signatures_db(); + let mut best_service: String = String::new(); + let mut cpes: Vec = Vec::new(); + for sig in sigdb { + if !sig.probe_id.eq_ignore_ascii_case(probe_id) { + continue; + } + + let re = match build_regex(&sig.regex, "") { + Ok(r) => r, + Err(_) => build_regex(&sig.regex, "i")?, + }; + if let Some(caps) = re.captures(text) { + if best_service.is_empty() && !sig.service.is_empty() { + best_service = sig.service.clone(); + } + let cs = expand_cpe_templates(&sig.cpe, &caps); + if !cs.is_empty() { + cpes.extend(cs); + // Generic CPEs can have multiple candidates, so it's okay to continue collecting + } + } + } + if best_service.is_empty() && cpes.is_empty() { + Ok(None) + } else { + Ok(Some((best_service, cpes))) + } +} + +/// A DNS probe that performs version.bind queries to identify DNS services. +pub struct DnsProbe; + +impl DnsProbe { + /// Run the DNS probe with the given context. + pub async fn run(ctx: ProbeContext) -> Result { + let addr = std::net::SocketAddr::new(ctx.ip, ctx.probe.port); + // Try UDP first + if matches!(ctx.probe.probe_id, ServiceProbe::UdpDNSVersionBindReq | ServiceProbe::TcpDNSVersionBindReq) { + tracing::debug!("DNS Version Bind Probe (UDP): {}:{}", ctx.ip, ctx.probe.port); + match run_dns_version_bind_udp(addr, ctx.timeout, ctx.timeout, ctx.max_read_size).await { + Ok((txt, truncated)) => { + let mut svc = ServiceInfo::default(); + let udp_svc_db = crate::db::service::udp_service_db(); + svc.name = udp_svc_db.get_name(ctx.probe.port).map(|s| s.to_string()); + svc.banner = Some(txt.clone()); + svc.raw = Some(txt.clone()); + // Match (using UDP-side) + let hits = match_response_signatures( + "udp:dns_version_bind_req", &txt + )?; + if let Some((best_service, cpes)) = hits { + svc.name = Some(best_service); + svc.cpes = cpes; + } + // If truncated, try TCP as well + if truncated { + if let Ok(txt2) = run_dns_version_bind_tcp(addr, ctx.timeout, ctx.timeout, ctx.max_read_size).await { + svc.raw = Some(txt2.clone()); + let hits2 = match_response_signatures( + "tcp:dns_version_bind_req", &txt2 + )?; + if let Some((best_service, cpes)) = hits2 { + svc.name = Some(best_service); + svc.cpes = cpes; + } + } + } + let probe_result: PortProbeResult = PortProbeResult { + ip: ctx.ip, + hostname: ctx.hostname, + port: ctx.probe.port, + transport: ctx.probe.transport, + probe_id: ctx.probe.probe_id, + service_info: svc, + }; + return Ok(probe_result); + } + Err(e) => { + tracing::debug!("DNS Version Bind Probe (UDP) failed: {}", e); + tracing::debug!("Attempting DNS Version Bind Probe (TCP): {}:{}", ctx.ip, ctx.probe.port); + let mut svc = ServiceInfo::default(); + let tcp_svc_db = crate::db::service::tcp_service_db(); + svc.name = tcp_svc_db.get_name(ctx.probe.port).map(|s| s.to_string()); + // If UDP failed, try TCP + if let Ok(txt) = run_dns_version_bind_tcp(addr, ctx.timeout, ctx.timeout, ctx.max_read_size).await { + svc.banner = Some(txt.clone()); + svc.raw = Some(txt.clone()); + let hits = match_response_signatures( + "tcp:dns_version_bind_req", &txt + )?; + if let Some((best_service, cpes)) = hits { + svc.name = Some(best_service); + svc.cpes = cpes; + } + } + let probe_result: PortProbeResult = PortProbeResult { + ip: ctx.ip, + hostname: ctx.hostname, + port: ctx.probe.port, + transport: ctx.probe.transport, + probe_id: ctx.probe.probe_id, + service_info: svc, + }; + return Ok(probe_result); + } + } + } + + // If UDP not selected or failed, and TCP is selected + if matches!(ctx.probe.probe_id, ServiceProbe::TcpDNSVersionBindReq) { + tracing::debug!("DNS Version Bind Probe (TCP): {}:{}", ctx.ip, ctx.probe.port); + let txt = run_dns_version_bind_tcp(addr, ctx.timeout, ctx.timeout, ctx.max_read_size).await?; + let mut svc = ServiceInfo::default(); + let tcp_svc_db = crate::db::service::tcp_service_db(); + svc.name = tcp_svc_db.get_name(ctx.probe.port).map(|s| s.to_string()); + svc.banner = Some(txt.clone()); + svc.raw = Some(txt.clone()); + let hits = match_response_signatures("tcp:dns_version_bind_req", &txt)?; + if let Some((best_service, cpes)) = hits { + svc.name = Some(best_service); + svc.cpes = cpes; + } + let probe_result: PortProbeResult = PortProbeResult { + ip: ctx.ip, + hostname: ctx.hostname, + port: ctx.probe.port, + transport: ctx.probe.transport, + probe_id: ctx.probe.probe_id, + service_info: svc, + }; + return Ok(probe_result); + } + anyhow::bail!("unsupported probe for dns version.bind") + } +} diff --git a/src/service/probe/generic.rs b/src/service/probe/generic.rs new file mode 100644 index 0000000..221169f --- /dev/null +++ b/src/service/probe/generic.rs @@ -0,0 +1,122 @@ +use std::net::SocketAddr; +use anyhow::Result; +use tokio::{io::{AsyncWriteExt}, net::TcpStream, time::timeout}; + +use crate::{ + endpoint::ServiceInfo, + service::{ + build_regex, expand_cpe_templates, payload::{PayloadBuilder, PayloadContext}, probe::{PortProbeResult, ProbeContext}, read_timeout + }, +}; + +#[derive(Debug, Default, Clone)] +struct BannerLite { + first_line: Option, + raw_text: String, +} + +/// First line (terminated by \r\n or \n) is treated as banner. +fn parse_banner(bytes: &[u8], max_preview: usize) -> BannerLite { + let raw = String::from_utf8_lossy(bytes); + let mut out = BannerLite::default(); + out.raw_text = if raw.len() > max_preview { + raw[..max_preview].to_string() + } else { + raw.to_string() + }; + let first = out.raw_text.split(|c| c == '\n').next().unwrap_or("").trim_end_matches('\r'); + if !first.is_empty() { + out.first_line = Some(first.to_string()); + } + out +} + +/// Match response text against known service signatures. +/// (service, cpes) +fn match_signatures( + probe_id: &str, + text: &str, +) -> anyhow::Result)>> { + let sigdb = crate::db::service::response_signatures_db(); + let mut best_service: String = String::new(); + let mut cpes: Vec = Vec::new(); + for sig in sigdb { + if !sig.probe_id.eq_ignore_ascii_case(probe_id) { + continue; + } + + let re = match build_regex(&sig.regex, "") { + Ok(r) => r, + Err(_) => build_regex(&sig.regex, "i")?, + }; + if let Some(caps) = re.captures(text) { + if best_service.is_empty() && !sig.service.is_empty() { + best_service = sig.service.clone(); + } + let cs = expand_cpe_templates(&sig.cpe, &caps); + if !cs.is_empty() { + cpes.extend(cs); + // Generic CPEs can have multiple candidates, so it's okay to continue collecting + } + } + } + Ok(Some((best_service, cpes))) +} + +/// A generic probe that connects to a TCP port, optionally sends a payload, and reads the response. +pub struct GenericProbe; + +impl GenericProbe { + /// Run the generic probe with the given context. + pub async fn run(ctx: ProbeContext) -> Result { + tracing::debug!("Generic Probe: {}:{} - Connecting", ctx.ip, ctx.probe.port); + let addr: SocketAddr = SocketAddr::new(ctx.ip, ctx.probe.port); + let mut stream = timeout(ctx.timeout, TcpStream::connect(addr)).await??; + + tracing::debug!("Generic Probe: {}:{} - Connected", ctx.ip, ctx.probe.port); + + // If payload is present, send it + let payload = PayloadBuilder::new(ctx.probe.clone()) + .payload(PayloadContext::default()) + .unwrap_or_default(); + if !payload.is_empty() { + timeout(ctx.timeout, stream.write_all(&payload)).await??; + stream.flush().await?; + } + + // Apply idle/total timeout + max byte limit for reading + let idle = ctx.timeout; + let total = ctx.timeout; + tracing::debug!("Generic Probe: {}:{} - Reading response(timeout: {})", ctx.ip, ctx.probe.port, total.as_millis()); + let bytes = read_timeout(&mut stream, idle, total, ctx.max_read_size).await?; + + // Extract banner + let banner = parse_banner(&bytes, 64 * 1024); + + tracing::debug!("Generic Probe: {}:{} - Banner: {:?}", ctx.ip, ctx.probe.port, banner.first_line); + + // Match signatures + let hit = match_signatures(ctx.probe.probe_id.as_str(), &banner.raw_text)?; + + // Build result + let mut svc = ServiceInfo::default(); + if let Some((service_name, cpes)) = hit { + svc.name = Some(service_name); + if !cpes.is_empty() { + svc.cpes = cpes; + } + } + // If name is still empty, keep banner + svc.banner = banner.first_line.clone(); + svc.raw = Some(banner.raw_text); + let probe_result: PortProbeResult = PortProbeResult { + ip: ctx.ip, + hostname: ctx.hostname, + port: ctx.probe.port, + transport: ctx.probe.transport, + probe_id: ctx.probe.probe_id, + service_info: svc, + }; + Ok(probe_result) + } +} diff --git a/src/service/probe/http.rs b/src/service/probe/http.rs new file mode 100644 index 0000000..361289a --- /dev/null +++ b/src/service/probe/http.rs @@ -0,0 +1,267 @@ +use std::{collections::HashMap, net::SocketAddr}; + +use anyhow::Result; +use rustls_pki_types::ServerName; +use tokio::{io::{AsyncWriteExt}, net::TcpStream, time::timeout}; +use tokio_rustls::{TlsConnector, rustls::{ClientConfig, RootCertStore}}; +use std::sync::Arc; + +use crate::{endpoint::ServiceInfo, service::{build_http_regex, expand_cpe_templates, payload::{PayloadBuilder, PayloadContext}, probe::{PortProbeResult, ProbeContext, ServiceProbe}, read_timeout}}; +use super::tls::SkipServerVerification; + +/// A lightweight representation of an HTTP response for analysis. +#[derive(Debug, Default, Clone)] +pub struct HttpResponseLite { + pub status_line: Option, + pub status_code: Option, + pub headers: HashMap, + pub header_text: String, + pub body: Vec, + pub raw_text: String, +} + +/// Parse raw bytes into an HttpResponseLite structure. +fn parse_http_response(bytes: &[u8], body_limit: usize) -> HttpResponseLite { + const HDR_MAX: usize = 64 * 1024; + let mut res = HttpResponseLite::default(); + + // Find the end of headers in the byte array (prefer \r\n\r\n, else try \n\n) + let hdr_end = bytes + .windows(4) + .position(|w| w == b"\r\n\r\n") + .map(|p| p + 4) + .or_else(|| bytes.windows(2).position(|w| w == b"\n\n").map(|p| p + 2)) + .unwrap_or_else(|| bytes.len().min(HDR_MAX)); + + let header_bytes = &bytes[..hdr_end.min(bytes.len())]; + let body_bytes = if hdr_end < bytes.len() { &bytes[hdr_end..] } else { &[][..] }; + + // Convert header bytes to a lossy UTF-8 string + let header_text = String::from_utf8_lossy(header_bytes); + res.header_text = header_text.to_string(); + + // Parse status line and headers into the structure. Try \r\n first, then \n if not found. + let mut lines = header_text.split("\r\n"); + if header_text.find("\r\n").is_none() { + lines = header_text.split("\n"); + } + + if let Some(first) = lines.next() { + let line = first.trim().to_string(); + res.status_line = Some(line.clone()); + if let Some(code) = line.split_whitespace().nth(1).and_then(|s| s.parse::().ok()) { + res.status_code = Some(code); + } + } + for line in lines { + if let Some((k, v)) = line.split_once(':') { + res.headers.insert(k.trim().to_ascii_lowercase(), v.trim().to_string()); + } + } + + // Limit body size to body_limit + let take = body_bytes.len().min(body_limit); + res.body.extend_from_slice(&body_bytes[..take]); + + // Construct raw_text as "headers + CRLFCRLF + first N bytes of body" + // for easier and safer regex matching later + let mut raw = header_text.into_owned(); + raw.push_str("\r\n\r\n"); + raw.push_str(&String::from_utf8_lossy(&body_bytes[..take])); + res.raw_text = raw; + + res +} + +/// Match HTTP response against known service signatures. +/// Returns matched CPEs if any. +fn match_http_signatures( + service_keys: &[&str], + _probe_id: &str, + http_res: &HttpResponseLite, +) -> anyhow::Result> { + let sigdb = crate::db::service::response_signatures_db(); + let mut hits = Vec::new(); + + 'outer: for sig in sigdb { + if !service_keys.iter().any(|k| sig.service.eq_ignore_ascii_case(k)) { + continue; + } + + /* if !sig.probe_id.is_empty() && !sig.probe_id.eq_ignore_ascii_case(probe_id) { + continue; + } */ + + let re = build_http_regex(&sig.regex)?; + + if let Some(caps) = re.captures(&http_res.header_text) { + let cpes = expand_cpe_templates(&sig.cpe, &caps); + if !cpes.is_empty() { + hits.extend(cpes); + break 'outer; + } + } + } + Ok(hits) +} + +/// An HTTP probe that can send HTTP/HTTPS requests and analyze responses. +pub struct HttpProbe; + +impl HttpProbe { + /// Run the HTTP probe with the given context. + pub async fn run(ctx: ProbeContext) -> Result { + let addr: SocketAddr = SocketAddr::new(ctx.ip, ctx.probe.port); + let hostname = ctx.hostname.clone().unwrap_or_else(|| ctx.ip.to_string()); + let mut tcp_stream = timeout(ctx.timeout, TcpStream::connect(addr)).await??; + let payload_builder = PayloadBuilder::new(ctx.probe.clone()); + let tcp_svc_db = crate::db::service::tcp_service_db(); + match ctx.probe.probe_id { + ServiceProbe::TcpHTTPGet => { + tracing::debug!("HTTP Probe: {}:{} - Sending HTTP GET", ctx.ip, ctx.probe.port); + let payload: Vec = payload_builder.payload(PayloadContext::default())?; + timeout(ctx.timeout, tcp_stream.write_all(&payload)).await??; + tcp_stream.flush().await?; + let res: Vec = read_timeout(&mut tcp_stream, ctx.timeout, ctx.timeout, ctx.max_read_size).await?; + let http_res = parse_http_response(&res, 64 * 1024); + tracing::debug!("HTTP Probe: {}:{} - Header: {:?}", ctx.ip, ctx.probe.port, http_res.header_text); + let mut svc = ServiceInfo::default(); + svc.name = tcp_svc_db.get_name(ctx.probe.port).map(|s| s.to_string()); + svc.banner = http_res.status_line.clone(); + svc.product = http_res.headers.get("server").cloned(); + svc.raw = Some(http_res.raw_text.clone()); + + tracing::debug!("HTTP Probe: {}:{} - Banner: {:?}, Server {:?}", ctx.ip, ctx.probe.port, svc.banner, svc.product); + + // Match signatures + let cpes = match_http_signatures( + &["http"], + "tcp:http_get", + &http_res, + )?; + if !cpes.is_empty() { + svc.cpes = cpes; + } + let probe_result: PortProbeResult = PortProbeResult { + ip: ctx.ip, + hostname: ctx.hostname, + port: ctx.probe.port, + transport: ctx.probe.transport, + probe_id: ctx.probe.probe_id, + service_info: svc, + }; + tracing::debug!("HTTP Probe Result: {:?}", probe_result); + return Ok(probe_result); + }, + ServiceProbe::TcpHTTPSGet => { + tracing::debug!("HTTP Probe: {}:{} - Sending HTTPS GET", ctx.ip, ctx.probe.port); + let payload_ctx = PayloadContext { + hostname: ctx.hostname.as_deref(), + path: Some("/".into()), + }; + let payload: Vec = payload_builder.payload(payload_ctx)?; + + // rustls config + let mut roots = RootCertStore::empty(); + for cert in rustls_native_certs::load_native_certs()? { let _ = roots.add(cert); } + let mut config = ClientConfig::builder() + .with_root_certificates(roots) + .with_no_client_auth(); + + // Set ALPN protocols + //config.alpn_protocols = vec!["h2".into(), "http/1.1".into()]; + config.alpn_protocols = vec!["http/1.1".into()]; + + if ctx.skip_cert_verify { + config.dangerous().set_certificate_verifier(SkipServerVerification::new()); + } + + let connector = TlsConnector::from(Arc::new(config)); + let sni_name = if ctx.sni { + ServerName::try_from(hostname)? + } else { + ServerName::try_from("localhost")? + }; + + let mut tls_stream = timeout(ctx.timeout, connector.connect(sni_name, tcp_stream)).await??; + // server connection + let conn = tls_stream.get_ref().1; + + let mut svc = ServiceInfo::default(); + svc.name = tcp_svc_db.get_name(ctx.probe.port).map(|s| s.to_string()); + + svc.tls_info = super::tls::extract_tls_info(&ctx, &conn); + + tls_stream.write_all(&payload).await?; + tls_stream.flush().await?; + let res: Vec = read_timeout(&mut tls_stream, ctx.timeout, ctx.timeout, ctx.max_read_size).await?; + let http_res = parse_http_response(&res, 64 * 1024); + tracing::debug!("HTTP Probe: {}:{} - Header: {:?}", ctx.ip, ctx.probe.port, http_res.header_text); + svc.banner = http_res.status_line.clone(); + svc.product = http_res.headers.get("server").cloned(); + svc.raw = Some(http_res.raw_text.clone()); + + tracing::debug!("HTTPS Probe: {}:{} - Banner: {:?}, Server {:?}", ctx.ip, ctx.probe.port, svc.banner, svc.product); + tracing::debug!("RAW: {:?}", svc.raw); + + // Match signatures + let cpes = match_http_signatures( + &["http"], + "tcp:https_get", + &http_res, + )?; + if !cpes.is_empty() { + svc.cpes = cpes; + } + let probe_result: PortProbeResult = PortProbeResult { + ip: ctx.ip, + hostname: ctx.hostname, + port: ctx.probe.port, + transport: ctx.probe.transport, + probe_id: ctx.probe.probe_id, + service_info: svc, + }; + tracing::debug!("HTTP Probe Result: {:?}", probe_result); + return Ok(probe_result); + }, + ServiceProbe::TcpHTTPOptions => { + tracing::debug!("HTTP Probe: {}:{} - Sending HTTP OPTIONS", ctx.ip, ctx.probe.port); + let payload: Vec = payload_builder.payload(PayloadContext::default())?; + timeout(ctx.timeout, tcp_stream.write_all(&payload)).await??; + tcp_stream.flush().await?; + let res: Vec = read_timeout(&mut tcp_stream, ctx.timeout, ctx.timeout, ctx.max_read_size).await?; + let http_res = parse_http_response(&res, 64 * 1024); + tracing::debug!("HTTP Probe: {}:{} - Header: {:?}", ctx.ip, ctx.probe.port, http_res.header_text); + let mut svc = ServiceInfo::default(); + svc.name = tcp_svc_db.get_name(ctx.probe.port).map(|s| s.to_string()); + svc.banner = http_res.status_line.clone(); + svc.product = http_res.headers.get("server").cloned(); + svc.raw = Some(http_res.raw_text.clone()); + + tracing::debug!("HTTP Probe: {}:{} - Banner: {:?}, Server {:?}", ctx.ip, ctx.probe.port, svc.banner, svc.product); + + // Match signatures + let cpes = match_http_signatures( + &["http"], + "tcp:http_options", + &http_res, + )?; + if !cpes.is_empty() { + svc.cpes = cpes; + } + let probe_result: PortProbeResult = PortProbeResult { + ip: ctx.ip, + hostname: ctx.hostname, + port: ctx.probe.port, + transport: ctx.probe.transport, + probe_id: ctx.probe.probe_id, + service_info: svc, + }; + tracing::debug!("HTTP Probe Result: {:?}", probe_result); + return Ok(probe_result); + } + _ => {}, + } + Err(anyhow::anyhow!("Failed to probe HTTP service at {}", addr)) + } +} diff --git a/src/service/probe/mod.rs b/src/service/probe/mod.rs new file mode 100644 index 0000000..05e75af --- /dev/null +++ b/src/service/probe/mod.rs @@ -0,0 +1,217 @@ +pub mod null; +pub mod generic; +pub mod http; +pub mod tls; +pub mod dns; +pub mod quic; + +use std::{collections::BTreeMap, net::IpAddr, time::Duration}; + +use serde::{Deserialize, Serialize}; + +use crate::{endpoint::{ServiceInfo, TransportProtocol}}; + +/// Metadata for the database +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct Meta { + pub name: String, + pub version: String, +} + +/// Supported service probes +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Hash)] +pub enum ServiceProbe { + TcpNull, + TcpGenericLines, + TcpHTTPGet, + TcpHTTPSGet, + TcpHTTPOptions, + TcpDNSVersionBindReq, + TcpHelp, + TcpTlsSession, + UdpDNSVersionBindReq, + UdpQuic, +} + +impl ServiceProbe { + /// Convert the ServiceProbe enum to its string representation. + pub fn as_str(&self) -> &str { + match self { + ServiceProbe::TcpNull => "tcp:null", + ServiceProbe::TcpGenericLines => "tcp:generic_lines", + ServiceProbe::TcpHTTPGet => "tcp:http_get", + ServiceProbe::TcpHTTPSGet => "tcp:https_get", + ServiceProbe::TcpHTTPOptions => "tcp:http_options", + ServiceProbe::TcpDNSVersionBindReq => "tcp:dns_version_bind_req", + ServiceProbe::TcpHelp => "tcp:help", + ServiceProbe::TcpTlsSession => "tcp:tls_session", + ServiceProbe::UdpDNSVersionBindReq => "udp:dns_version_bind_req", + ServiceProbe::UdpQuic => "udp:quic", + } + } + /// Create a ServiceProbe enum from its string representation. + pub fn from_str(s: &str) -> Option { + match s { + "tcp:null" => Some(ServiceProbe::TcpNull), + "tcp:generic_lines" => Some(ServiceProbe::TcpGenericLines), + "tcp:http_get" => Some(ServiceProbe::TcpHTTPGet), + "tcp:https_get" => Some(ServiceProbe::TcpHTTPSGet), + "tcp:http_options" => Some(ServiceProbe::TcpHTTPOptions), + "tcp:dns_version_bind_req" => Some(ServiceProbe::TcpDNSVersionBindReq), + "tcp:help" => Some(ServiceProbe::TcpHelp), + "tcp:tls_session" => Some(ServiceProbe::TcpTlsSession), + "udp:dns_version_bind_req" => Some(ServiceProbe::UdpDNSVersionBindReq), + "udp:quic" => Some(ServiceProbe::UdpQuic), + _ => None, + } + } + /// Get the transport protocol associated with the ServiceProbe. + pub fn transport(&self) -> TransportProtocol { + match self { + ServiceProbe::TcpNull | ServiceProbe::TcpGenericLines | ServiceProbe::TcpHTTPGet + | ServiceProbe::TcpHTTPSGet | ServiceProbe::TcpHTTPOptions + | ServiceProbe::TcpDNSVersionBindReq | ServiceProbe::TcpHelp + | ServiceProbe::TcpTlsSession => TransportProtocol::Tcp, + ServiceProbe::UdpDNSVersionBindReq | ServiceProbe::UdpQuic => TransportProtocol::Udp, + } + } +} + +/// Encoding type for probe payloads +#[derive(Serialize, Deserialize, Clone, Copy, Debug)] +#[serde(rename_all = "lowercase")] +pub enum PayloadEncoding { + Raw, + Base64, +} + +/// Database mapping ports to associated probes +#[derive(Serialize, Deserialize)] +pub struct PortProbeDb { + pub meta: Meta, + // port -> probe_id[] + pub map: BTreeMap>, +} + +impl PortProbeDb { + /// Create a new empty PortProbeDb + pub fn new() -> Self { + PortProbeDb { + meta: Meta { + name: "Port Probe Database".into(), + version: "1.0".into(), + }, + map: BTreeMap::new(), + } + } +} + +/// Definition of a probe payload +#[derive(Serialize, Deserialize, Clone)] +pub struct ProbePayload { + pub id: String, + pub protocol: TransportProtocol, + pub name: String, + pub payload: String, + pub payload_encoding: PayloadEncoding, + pub wait_ms: Option, + pub ports: Vec, +} + +/// Database of probe payloads +#[derive(Serialize, Deserialize)] +pub struct ProbePayloadDb { + pub meta: Meta, + pub probes: Vec, +} + +impl ProbePayloadDb { + /// Create a new empty ProbePayloadDb + pub fn new() -> Self { + ProbePayloadDb { + meta: Meta { + name: "Probe Payload Database".into(), + version: "1.0".into(), + }, + probes: Vec::new(), + } + } +} + +/// Definition of a response signature for service identification +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct ResponseSignature { + pub probe_id: String, + pub service: String, + pub regex: String, + pub regex_literal_tokens: Vec, + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub cpe: Vec, +} + +/// Database of response signatures +#[derive(Serialize, Deserialize)] +pub struct ResponseSignaturesDb { + pub meta: Meta, + pub signatures: Vec, +} + +impl ResponseSignaturesDb { + /// Create a new empty SignaturesDb + pub fn new() -> Self { + ResponseSignaturesDb { + meta: Meta { + name: "Signatures Database".into(), + version: "1.0".into(), + }, + signatures: Vec::new(), + } + } +} + +/// Definition of a port probe +#[derive(Debug, Clone)] +pub struct PortProbe { + pub probe_id: ServiceProbe, + pub probe_name: String, + pub port: u16, + pub transport: TransportProtocol, + pub payload: String, // Raw or Base64 + pub payload_encoding: PayloadEncoding, +} + +impl PortProbe { + pub fn null_probe(port: u16, transport: TransportProtocol) -> Self { + PortProbe { + probe_id: ServiceProbe::TcpNull, + probe_name: "tcp:null".into(), + port, + transport, + payload: String::new(), + payload_encoding: PayloadEncoding::Raw, + } + } +} + +/// Context for running a probe against a target +#[derive(Debug, Clone)] +pub struct ProbeContext { + pub ip: IpAddr, + pub hostname: Option, + pub probe: PortProbe, + pub timeout: Duration, + pub max_read_size: usize, + pub sni: bool, + pub skip_cert_verify: bool, +} + +/// Result of running a probe against a target +#[derive(Debug, Clone)] +pub struct PortProbeResult { + pub ip: IpAddr, + pub hostname: Option, + pub port: u16, + pub transport: TransportProtocol, + pub probe_id: ServiceProbe, + pub service_info: ServiceInfo, +} diff --git a/src/service/probe/null.rs b/src/service/probe/null.rs new file mode 100644 index 0000000..8b5aaae --- /dev/null +++ b/src/service/probe/null.rs @@ -0,0 +1,144 @@ +use std::net::SocketAddr; +use anyhow::{bail, Result}; +use tokio::{io::{AsyncWriteExt}, net::TcpStream, time::timeout}; + +use crate::{ + endpoint::ServiceInfo, + service::{ + build_regex, expand_cpe_templates, payload::{PayloadBuilder, PayloadContext}, probe::{PortProbeResult, ProbeContext, ServiceProbe}, read_timeout + }, +}; + +/// Lightweight representation of a service banner +#[derive(Debug, Default, Clone)] +struct BannerLite { + first_line: Option, + raw_text: String, +} + +/// Determine if a string looks like a text line +fn looks_like_text_line(s: &str) -> bool { + let t = s.trim(); + if t.is_empty() { + return false; + } + // ASCII printable characters and whitespace ratio + let printable = t.chars().filter(|&c| c.is_ascii_graphic() || c.is_ascii_whitespace()).count(); + let ratio = printable as f32 / t.len() as f32; + ratio >= 0.6 +} + +/// Extract banner: +/// 1. If the first line looks like text, use it +/// 2. If not, use the second line if it exists +/// 3. If neither exists, use the first line (raw) +fn parse_banner(bytes: &[u8], max_preview: usize) -> BannerLite { + let raw = String::from_utf8_lossy(bytes); + let mut out = BannerLite::default(); + + out.raw_text = if raw.len() > max_preview { + raw[..max_preview].to_string() + } else { + raw.to_string() + }; + + let mut lines = out.raw_text.split(|c| c == '\n').map(|l| l.trim_end_matches('\r')); + + let first = lines.next().unwrap_or(""); + let second = lines.next().unwrap_or(""); + + if looks_like_text_line(first) { + out.first_line = Some(first.to_string()); + } else if !second.is_empty() { + out.first_line = Some(second.to_string()); + } else if !first.is_empty() { + out.first_line = Some(first.to_string()); + } + out +} + +/// Match response text against known service signatures for tcp:NULL probes. +/// (service, cpes) +fn match_null_signatures( + probe_id: &str, + text: &str, +) -> anyhow::Result)>> { + let sigdb = crate::db::service::response_signatures_db(); + for sig in sigdb { + if !sig.probe_id.eq_ignore_ascii_case(probe_id) { + continue; + } + let re = match build_regex(&sig.regex, "") { + Ok(r) => r, + Err(_) => build_regex(&sig.regex, "i")?, + }; + if let Some(caps) = re.captures(text) { + let cpes = expand_cpe_templates(&sig.cpe, &caps); + return Ok(Some((sig.service.clone(), cpes))); + } + } + Ok(None) +} + +/// Probe implementation for tcp:null (no payload) +pub struct NullProbe; + +impl NullProbe { + pub async fn run(ctx: ProbeContext) -> Result { + // Pre-check + if ctx.probe.probe_id != ServiceProbe::TcpNull { + bail!("NullProbe invoked with non-tcp:null probe_id: {:?}", ctx.probe.probe_id); + } + + tracing::debug!("Null Probe: {}:{} - Connecting", ctx.ip, ctx.probe.port); + let addr: SocketAddr = SocketAddr::new(ctx.ip, ctx.probe.port); + let mut stream = timeout(ctx.timeout, TcpStream::connect(addr)).await??; + + tracing::debug!("Null Probe: {}:{} - Connected", ctx.ip, ctx.probe.port); + + // if payload is present, send it (should not happen for tcp:null, but just in case) + let payload = PayloadBuilder::new(ctx.probe.clone()) + .payload(PayloadContext::default()) + .unwrap_or_default(); + if !payload.is_empty() { + timeout(ctx.timeout, stream.write_all(&payload)).await??; + stream.flush().await?; + } + + // Apply idle/total timeout and max byte limit for reading + let idle = ctx.timeout; + let total = ctx.timeout; + tracing::debug!("Null Probe: {}:{} - Reading response(timeout: {})", ctx.ip, ctx.probe.port, total.as_millis()); + let bytes = read_timeout(&mut stream, idle, total, ctx.max_read_size).await?; + + // Parse banner from response + let banner = parse_banner(&bytes, 64 * 1024); + + tracing::debug!("TCP NULL Probe: {}:{} - Banner: {:?}", ctx.ip, ctx.probe.port, banner.first_line); + + // Match signatures (tcp:NULL) + let hit = match_null_signatures( "tcp:NULL", &banner.raw_text)?; + + // Construct service info + let mut svc = ServiceInfo::default(); + let tcp_svc_db = crate::db::service::tcp_service_db(); + svc.name = tcp_svc_db.get_name(ctx.probe.port).map(|s| s.to_string()); + if let Some((_service_name, cpes)) = hit { + if !cpes.is_empty() { + svc.cpes = cpes; + } + } + // Even if name is still unknown, keep the banner + svc.banner = banner.first_line.clone(); + svc.raw = Some(banner.raw_text); + let probe_result: PortProbeResult = PortProbeResult { + ip: ctx.ip, + hostname: ctx.hostname, + port: ctx.probe.port, + transport: ctx.probe.transport, + probe_id: ctx.probe.probe_id, + service_info: svc, + }; + Ok(probe_result) + } +} diff --git a/src/service/probe/quic.rs b/src/service/probe/quic.rs new file mode 100644 index 0000000..2eca02a --- /dev/null +++ b/src/service/probe/quic.rs @@ -0,0 +1,217 @@ +use anyhow::Result; +use bytes::{Buf, BytesMut}; +use x509_parser::prelude::FromDer; +use std::{net::SocketAddr, sync::Arc}; +use quinn::{ClientConfig, Endpoint}; +use rustls::{ClientConfig as RustlsClientConfig, RootCertStore}; +use http::{Request, Method}; + +use crate::{ + endpoint::{ServiceInfo, TlsInfo}, + service::{ + probe::{ProbeContext, PortProbeResult, tls::SkipServerVerification}, + }, +}; + +/// Create a QUIC client configuration with optional certificate verification skipping and ALPN protocols. +pub fn quic_client_config(skip_verify: bool, alpn: &[&[u8]]) -> Result { + let mut roots = RootCertStore::empty(); + for cert in rustls_native_certs::load_native_certs()? { + let _ = roots.add(cert); + } + let mut tls = RustlsClientConfig::builder() + .with_root_certificates(roots) + .with_no_client_auth(); + if skip_verify { + tls.dangerous().set_certificate_verifier(SkipServerVerification::new()); + } + tls.enable_early_data = true; + tls.alpn_protocols = alpn.iter().map(|p| p.to_vec()).collect(); + let client_conf = quinn::crypto::rustls::QuicClientConfig::try_from(tls)?; + Ok(ClientConfig::new(Arc::new(client_conf))) +} + +/// Probe implementation for UDP QUIC (with optional HTTP/3) +pub struct QuicProbe; + +impl QuicProbe { + pub async fn run(ctx: ProbeContext) -> Result { + let addr = SocketAddr::new(ctx.ip, ctx.probe.port); + let hostname = ctx.hostname.clone().unwrap_or_else(|| ctx.ip.to_string()); + + // Set ALPN protocols + let alpn = [ + b"h3".as_slice(), + b"h3-34".as_slice(), b"h3-33".as_slice(), b"h3-32".as_slice(), b"h3-31".as_slice(), b"h3-30".as_slice(), b"h3-29".as_slice(), + b"hq-29".as_slice(), + ]; + let client_cfg = quic_client_config(ctx.skip_cert_verify, &alpn)?; + let mut endpoint = Endpoint::client((if ctx.ip.is_ipv6() { "[::]:0" } else { "0.0.0.0:0" }).parse().unwrap())?; + endpoint.set_default_client_config(client_cfg); + + // Connect to the server (SNI is hostname or "localhost") + let server_name = if ctx.sni { hostname.as_str() } else { "localhost" }; + let connect_fut = endpoint.connect(addr, server_name)?; + let quinn_conn = tokio::time::timeout(ctx.timeout, connect_fut).await??; + + // QUIC connection is established. Get ALPN + let alpn_proto = match quinn_conn.handshake_data() { + Some(data) => { + match data.downcast::() { + Ok(hd) => { + match hd.protocol { + Some(ref p) => Some(String::from_utf8_lossy(p).to_string()), + None => None, + } + }, + Err(_) => None, + } + }, + None => None, + }; + + let cert_der_bytes: Option> = quinn_conn + .peer_identity() + .and_then(|any| any.downcast_ref::>().cloned()) + .and_then(|vec_der| vec_der.into_iter().next()) + .map(|der| der.to_vec()); + + // Construct TlsInfo + let mut tls_info = TlsInfo::default(); + tls_info.alpn = alpn_proto.clone(); + // Fixed to TLS 1.3 for QUIC + tls_info.version = Some("TLSv1_3".into()); + if let Some(bytes) = cert_der_bytes.as_deref() { + if let Ok((_, x509)) = x509_parser::prelude::X509Certificate::from_der(bytes) { + tls_info.subject = x509.subject() + .iter_common_name() + .next() + .and_then(|cn| cn.as_str().ok()) + .map(|s| s.to_string()); + tls_info.issuer = x509.issuer() + .iter_common_name() + .next() + .and_then(|cn| cn.as_str().ok()) + .map(|s| s.to_string()); + let mut sans = Vec::new(); + for ext in x509.extensions() { + if let x509_parser::extensions::ParsedExtension::SubjectAlternativeName(san) = ext.parsed_extension() { + for name in san.general_names.iter() { + sans.push(name.to_string()); + } + } + } + tls_info.san_list = sans; + tls_info.not_before = Some(x509.validity().not_before.to_string()); + tls_info.not_after = Some(x509.validity().not_after.to_string()); + tls_info.serial_hex = Some(x509.raw_serial_as_string()); + tls_info.sig_algorithm = Some(crate::db::tls::oid_sig_name( + x509.signature_algorithm.oid().to_id_string().as_str(), + )); + tls_info.pubkey_algorithm = Some(crate::db::tls::oid_pubkey_name( + x509.public_key().algorithm.oid().to_id_string().as_str(), + )); + } + } + + // If ALPN indicates HTTP/3, perform a simple GET request + if let Some(alpn_s) = &alpn_proto { + if alpn_s.starts_with("h3") { + // HTTP/3 client initialization + tracing::debug!("HTTP/3 Probe: {}:{} - Connecting", ctx.ip, ctx.probe.port); + let h3_quinn_conn = h3_quinn::Connection::new(quinn_conn); + let (mut driver, mut send_request) = h3::client::new(h3_quinn_conn).await?; + let drive = async move { + return Err::<(), h3::error::ConnectionError>(futures::future::poll_fn(|cx| driver.poll_close(cx)).await); + }; + + let request = async move { + let mut svc = ServiceInfo::default(); + // Simple GET request + let req = Request::builder() + .method(Method::GET) + .uri("https://".to_string() + server_name + "/") + .header("Host", server_name) + .header("User-Agent", "nrev/0.1 (probe)") + .body(()) + .unwrap(); + + tracing::debug!("HTTP/3 Probe: {}:{} - Sending request", ctx.ip, ctx.probe.port); + // Send request + let mut stream = send_request.send_request(req).await?; + //let mut stream = tokio::time::timeout(ctx.timeout, send_request.send_request(req)).await??; + stream.finish().await?; + + // Receive response (headers) + tracing::debug!("HTTP/3 Probe: {}:{} - Receiving response", ctx.ip, ctx.probe.port); + let res = stream.recv_response().await?; + // Extract status and Server headers + let udp_svc_db = crate::db::service::udp_service_db(); + svc.name = udp_svc_db.get_name(ctx.probe.port).map(|s| s.to_string()); + svc.banner = Some(format!("HTTP/3 {}", res.status())); + svc.quic_version = Some("1".into()); + if let Some(val) = res.headers().get("server") { + if let Ok(s) = val.to_str() { + svc.product = Some(s.to_string()); + } + } + + // receiving potential response body + let mut read = 0usize; + let max_body = 8 * 1024; + let mut body_bytes = BytesMut::new(); + while let Some(chunk) = stream.recv_data().await? { + let bytes: &[u8] = chunk.chunk(); + body_bytes.extend_from_slice(bytes); + read += bytes.len(); + if read >= max_body { break; } + } + + svc.raw = Some(format!("alpn=h3; status={}", res.status())); + + Ok::(svc) + }; + + let (req_res, _drive_res) = tokio::join!(request, drive); + match req_res { + Ok(mut svc) => { + tracing::debug!("HTTP/3 Probe: {}:{} - Request succeeded", ctx.ip, ctx.probe.port); + tracing::debug!("HTTP/3 Probe Result: {:?}", svc); + svc.tls_info = Some(tls_info.clone()); + let probe_result = PortProbeResult { + ip: ctx.ip, + hostname: ctx.hostname, + port: ctx.probe.port, + transport: ctx.probe.transport, + probe_id: ctx.probe.probe_id, + service_info: svc, + }; + return Ok(probe_result); + }, + Err(e) => { + tracing::error!("HTTP/3 Probe: {}:{} - Request failed: {}", ctx.ip, ctx.probe.port, e); + } + } + } + } + + let mut svc = ServiceInfo::default(); + svc.name = Some("quic".into()); + svc.quic_version = Some("1".into()); + svc.tls_info = Some(tls_info); + + let probe_result = PortProbeResult { + ip: ctx.ip, + hostname: ctx.hostname, + port: ctx.probe.port, + transport: ctx.probe.transport, + probe_id: ctx.probe.probe_id, + service_info: svc, + }; + + // Wait for the connection to be closed + endpoint.wait_idle().await; + + Ok(probe_result) + } +} diff --git a/src/service/probe/tls.rs b/src/service/probe/tls.rs new file mode 100644 index 0000000..850b4ff --- /dev/null +++ b/src/service/probe/tls.rs @@ -0,0 +1,181 @@ +use anyhow::Result; +use rustls::client::danger::ServerCertVerifier; +use rustls::pki_types::{CertificateDer, ServerName, UnixTime}; +use rustls::ClientConnection; +use tokio::{net::TcpStream, time::timeout}; +use tokio_rustls::{TlsConnector, rustls::{ClientConfig, RootCertStore}}; +use std::sync::Arc; +use x509_parser::prelude::{FromDer, ParsedExtension, X509Certificate}; +use std::net::SocketAddr; +use crate::endpoint::TlsInfo; +use crate::{endpoint::ServiceInfo}; +use crate::service::probe::{PortProbeResult, ProbeContext}; + +/// Dummy certificate verifier that treats any certificate as valid. +/// NOTE, such verification is vulnerable to MITM attacks, but convenient for testing. +#[derive(Debug)] +pub struct SkipServerVerification(Arc); + +impl SkipServerVerification { + pub fn new() -> Arc { + Arc::new(Self(Arc::new(rustls::crypto::ring::default_provider()))) + } +} + +impl ServerCertVerifier for SkipServerVerification { + fn verify_server_cert( + &self, + _end_entity: &CertificateDer<'_>, + _intermediates: &[CertificateDer<'_>], + _server_name: &ServerName<'_>, + _ocsp: &[u8], + _now: UnixTime, + ) -> Result { + Ok(rustls::client::danger::ServerCertVerified::assertion()) + } + + fn verify_tls12_signature( + &self, + message: &[u8], + cert: &CertificateDer<'_>, + dss: &rustls::DigitallySignedStruct, + ) -> Result { + rustls::crypto::verify_tls12_signature( + message, + cert, + dss, + &self.0.signature_verification_algorithms, + ) + } + + fn verify_tls13_signature( + &self, + message: &[u8], + cert: &CertificateDer<'_>, + dss: &rustls::DigitallySignedStruct, + ) -> Result { + rustls::crypto::verify_tls13_signature( + message, + cert, + dss, + &self.0.signature_verification_algorithms, + ) + } + + fn supported_verify_schemes(&self) -> Vec { + self.0.signature_verification_algorithms.supported_schemes() + } +} + +/// Extract TLS info from a ClientConnection +pub fn extract_tls_info(probe_ctx: &ProbeContext, client_conn: &ClientConnection) -> Option { + let mut tls_info = TlsInfo::default(); + if let Some(version) = client_conn.protocol_version() { + if let Some(version) = version.as_str() { + tls_info.version = Some(version.to_string()); + } + } + if let Some(cs) = client_conn.negotiated_cipher_suite() { + if let Some(cs) = cs.suite().as_str() { + tls_info.cipher_suite = Some(cs.to_string()); + } + } + if let Some(alpn) = client_conn.alpn_protocol() { + tls_info.alpn = Some(String::from_utf8_lossy(alpn).to_string()); + } + + if let Some(cert) = client_conn.peer_certificates().and_then(|v| v.first()).cloned() { + tls_info.sni = probe_ctx.hostname.clone(); + match X509Certificate::from_der(&cert) { + Ok((_, x509)) => { + // Subject + let subject = x509.subject().iter_common_name() + .next() + .and_then(|cn| cn.as_str().ok()) + .map(|s| s.to_string()); + + // Issuer + let issuer = x509.issuer().iter_common_name() + .next() + .and_then(|cn| cn.as_str().ok()) + .map(|s| s.to_string()); + + // SAN (Subject Alternative Name) + let mut san_list = Vec::new(); + for ext in x509.extensions() { + if let ParsedExtension::SubjectAlternativeName(san) = ext.parsed_extension() { + for name in san.general_names.iter() { + san_list.push(name.to_string()); + } + } + } + + tls_info.subject = subject; + tls_info.issuer = issuer; + tls_info.san_list = san_list; + tls_info.not_before = Some(x509.validity().not_before.to_string()); + tls_info.not_after = Some(x509.validity().not_after.to_string()); + tls_info.serial_hex = Some(x509.raw_serial_as_string()); + let sig_alg_name = crate::db::tls::oid_sig_name(x509.signature_algorithm.oid().to_id_string().as_str()); + tls_info.sig_algorithm = Some(sig_alg_name); + let pubkey_alg_name = crate::db::tls::oid_pubkey_name(x509.public_key().algorithm.oid().to_id_string().as_str()); + tls_info.pubkey_algorithm = Some(pubkey_alg_name); + + } + Err(e) => { + tracing::warn!("Failed to parse certificate: {}", e); + } + } + } + Some(tls_info) +} + +/// Probe implementation for tcp:tls +pub struct TlsProbe; + +impl TlsProbe { + /// Run the TLS probe with the given context. + pub async fn run(ctx: ProbeContext) -> Result { + let addr: SocketAddr = SocketAddr::new(ctx.ip, ctx.probe.port); + let hostname = ctx.hostname.clone().unwrap_or_else(|| ctx.ip.to_string()); + let tcp_stream = timeout(ctx.timeout, TcpStream::connect(addr)).await??; + + // rustls config + let mut roots = RootCertStore::empty(); + for cert in rustls_native_certs::load_native_certs()? { let _ = roots.add(cert); } + let mut config = ClientConfig::builder() + .with_root_certificates(roots) + .with_no_client_auth(); + + if ctx.skip_cert_verify { + config.dangerous().set_certificate_verifier(SkipServerVerification::new()); + } + + let connector = TlsConnector::from(Arc::new(config)); + let sni_name = if ctx.sni { + ServerName::try_from(hostname)? + } else { + ServerName::try_from("localhost")? + }; + + let tls_stream = timeout(ctx.timeout, connector.connect(sni_name, tcp_stream)).await??; + let conn = tls_stream.get_ref().1; // server connection + + let mut svc = ServiceInfo::default(); + let tcp_svc_db = crate::db::service::tcp_service_db(); + svc.name = tcp_svc_db.get_name(ctx.probe.port).map(|s| s.to_string()); + + svc.tls_info = crate::service::probe::tls::extract_tls_info(&ctx, &conn); + + let probe_result: PortProbeResult = PortProbeResult { + ip: ctx.ip, + hostname: ctx.hostname, + port: ctx.probe.port, + transport: ctx.probe.transport, + probe_id: ctx.probe.probe_id, + service_info: svc, + }; + tracing::debug!("TLS Probe Result: {:?}", probe_result); + return Ok(probe_result); + } +} diff --git a/src/sys/id.rs b/src/sys/id.rs deleted file mode 100644 index eb03ee8..0000000 --- a/src/sys/id.rs +++ /dev/null @@ -1,11 +0,0 @@ -use uuid::Uuid; - -pub fn get_probe_id() -> String { - let id = Uuid::new_v4(); - id.to_string().replace("-", "") -} - -pub fn get_host_id(hostname: String) -> String { - let id = Uuid::new_v5(&Uuid::NAMESPACE_DNS, hostname.as_bytes()); - id.to_string().replace("-", "") -} diff --git a/src/sys/mod.rs b/src/sys/mod.rs deleted file mode 100644 index b8bab1c..0000000 --- a/src/sys/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod id; -pub mod os; -pub mod time; diff --git a/src/sys/os.rs b/src/sys/os.rs deleted file mode 100644 index 58f4b76..0000000 --- a/src/sys/os.rs +++ /dev/null @@ -1,14 +0,0 @@ -#[cfg(target_os = "windows")] -pub fn get_os_type() -> String { - "windows".to_owned() -} - -#[cfg(target_os = "linux")] -pub fn get_os_type() -> String { - "linux".to_owned() -} - -#[cfg(target_os = "macos")] -pub fn get_os_type() -> String { - "macos".to_owned() -} diff --git a/src/sys/time.rs b/src/sys/time.rs deleted file mode 100644 index 59f31fa..0000000 --- a/src/sys/time.rs +++ /dev/null @@ -1,20 +0,0 @@ -use std::time::Duration; - -pub fn get_sysdate() -> String { - let now = chrono::Local::now(); - now.to_rfc3339() -} - -pub fn get_systime() -> String { - let now = chrono::Local::now(); - now.format("%H:%M:%S").to_string() -} - -pub fn ceil_duration_millis(duration: Duration) -> Duration { - let millis = duration.as_millis(); - if millis % 1000 == 0 { - duration - } else { - Duration::from_millis(millis as u64 + 1) - } -} diff --git a/src/time.rs b/src/time.rs new file mode 100644 index 0000000..13e258b --- /dev/null +++ b/src/time.rs @@ -0,0 +1,22 @@ +use tracing_subscriber::fmt::time::FormatTime; +use std::fmt; +use chrono::Local; + +/// DateTime format for logging that includes date, time, and timezone (YYYY-MM-DD HH:MM:SS.mmmmmm+00:00) +/// Same as `ChronoLocal::rfc_3339()` but with a custom format +pub struct LocalDateTime; + +impl FormatTime for LocalDateTime { + fn format_time(&self, w: &mut tracing_subscriber::fmt::format::Writer<'_>) -> fmt::Result { + write!(w, "{}", Local::now().format("%Y-%m-%d %H:%M:%S%.6f%:z")) + } +} + +/// Time format for logging that only includes the time (HH:MM:SS.mmmmmm+00:00) +pub struct LocalTimeOnly; + +impl FormatTime for LocalTimeOnly { + fn format_time(&self, w: &mut tracing_subscriber::fmt::format::Writer<'_>) -> fmt::Result { + write!(w, "{}", Local::now().format("%H:%M:%S%.6f%:z")) + } +} diff --git a/src/tls/cert.rs b/src/tls/cert.rs deleted file mode 100644 index 1a50fd9..0000000 --- a/src/tls/cert.rs +++ /dev/null @@ -1,90 +0,0 @@ -use anyhow::Result; -use rustls::client::danger::ServerCertVerifier; -use rustls::pki_types::{CertificateDer, ServerName, UnixTime}; -use std::sync::Arc; -use std::{fs, io, path::Path}; - -/// Get the native certificates from the system. return rustls::RootCertStore -pub(crate) fn get_native_certs() -> io::Result { - let mut root_store = rustls::RootCertStore::empty(); - match rustls_native_certs::load_native_certs() { - Ok(certs) => { - for cert in certs { - match root_store.add(cert) { - Ok(_) => {} - Err(_) => {} - } - } - Ok(root_store) - } - Err(e) => return Err(e), - } -} - -/// Load certificate chain from a file -#[allow(dead_code)] -pub(crate) fn load_certs(cert_path: &Path) -> Result>> { - let cert_chain = fs::read(cert_path)?; - let cert_chain = if cert_path.extension().map_or(false, |x| x == "der") { - vec![CertificateDer::from(cert_chain)] - } else { - rustls_pemfile::certs(&mut &*cert_chain).collect::, _>>()? - }; - Ok(cert_chain) -} - -/// Dummy certificate verifier that treats any certificate as valid. -/// NOTE, such verification is vulnerable to MITM attacks, but convenient for testing. -#[derive(Debug)] -pub struct SkipServerVerification(Arc); - -impl SkipServerVerification { - pub fn new() -> Arc { - Arc::new(Self(Arc::new(rustls::crypto::ring::default_provider()))) - } -} - -impl ServerCertVerifier for SkipServerVerification { - fn verify_server_cert( - &self, - _end_entity: &CertificateDer<'_>, - _intermediates: &[CertificateDer<'_>], - _server_name: &ServerName<'_>, - _ocsp: &[u8], - _now: UnixTime, - ) -> Result { - Ok(rustls::client::danger::ServerCertVerified::assertion()) - } - - fn verify_tls12_signature( - &self, - message: &[u8], - cert: &CertificateDer<'_>, - dss: &rustls::DigitallySignedStruct, - ) -> Result { - rustls::crypto::verify_tls12_signature( - message, - cert, - dss, - &self.0.signature_verification_algorithms, - ) - } - - fn verify_tls13_signature( - &self, - message: &[u8], - cert: &CertificateDer<'_>, - dss: &rustls::DigitallySignedStruct, - ) -> Result { - rustls::crypto::verify_tls13_signature( - message, - cert, - dss, - &self.0.signature_verification_algorithms, - ) - } - - fn supported_verify_schemes(&self) -> Vec { - self.0.signature_verification_algorithms.supported_schemes() - } -} diff --git a/src/tls/key.rs b/src/tls/key.rs deleted file mode 100644 index 32f65f1..0000000 --- a/src/tls/key.rs +++ /dev/null @@ -1,16 +0,0 @@ -use anyhow::anyhow; -use anyhow::Result; -use rustls::pki_types::{PrivateKeyDer, PrivatePkcs8KeyDer}; -use std::{fs, path::Path}; - -/// Load private key from a file -#[allow(dead_code)] -pub(crate) fn load_key(key_path: &Path) -> Result> { - let key = fs::read(key_path)?; - let key = if key_path.extension().map_or(false, |x| x == "der") { - PrivateKeyDer::Pkcs8(PrivatePkcs8KeyDer::from(key)) - } else { - rustls_pemfile::private_key(&mut &*key)?.ok_or_else(|| anyhow!("no keys found"))? - }; - Ok(key) -} diff --git a/src/tls/mod.rs b/src/tls/mod.rs deleted file mode 100644 index cb3a5d7..0000000 --- a/src/tls/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod cert; -pub mod key; diff --git a/src/trace/mod.rs b/src/trace/mod.rs index f3d0b8d..8d5bd96 100644 --- a/src/trace/mod.rs +++ b/src/trace/mod.rs @@ -1,2 +1,116 @@ -pub mod setting; -pub mod tracer; +pub mod probe; + +use std::net::Ipv4Addr; +use std::{net::IpAddr, time::Duration}; + +use netdev::Interface; +use serde::{Deserialize, Serialize}; +use anyhow::Result; + +use crate::config::default::{DEFAULT_BASE_TARGET_UDP_PORT, DEFAULT_HOP_LIMIT}; +use crate::endpoint::Host; +use crate::probe::{ProbeResult, ProbeStatus}; +use crate::protocol::Protocol; + +/// Settings for traceroute operations. +#[derive(Deserialize, Serialize, Clone, Debug)] +pub struct TraceSetting { + pub if_index: u32, + pub dst_hostname: Option, + pub dst_ip: IpAddr, + pub dst_port: Option, + pub hop_limit: u8, + pub protocol: Protocol, + pub receive_timeout: Duration, + pub probe_timeout: Duration, + pub send_rate: Duration, + pub tunnel: bool, + pub loopback: bool, +} + +impl Default for TraceSetting { + fn default() -> Self { + Self { + if_index: 0, + dst_hostname: None, + dst_ip: IpAddr::V4(Ipv4Addr::LOCALHOST), + dst_port: Some(DEFAULT_BASE_TARGET_UDP_PORT), + hop_limit: DEFAULT_HOP_LIMIT, + protocol: Protocol::Udp, + receive_timeout: Duration::from_secs(1), + probe_timeout: Duration::from_secs(30), + send_rate: Duration::from_secs(1), + tunnel: false, + loopback: false, + } + } +} + +impl TraceSetting { + /// Create a UDP trace setting from the given interface and destination host. + pub fn udp_trace(interface: &Interface, dst_host: &Host) -> Result { + let use_tun = interface.is_tun(); + let loopback = interface.is_loopback(); + + let setting = TraceSetting { + if_index: interface.index, + dst_ip: dst_host.ip, + dst_hostname: dst_host.hostname.clone(), + dst_port: Some(DEFAULT_BASE_TARGET_UDP_PORT), + hop_limit: 64, + protocol: Protocol::Udp, + receive_timeout: Duration::from_secs(1), + probe_timeout: Duration::from_secs(30), + send_rate: Duration::from_secs(1), + tunnel: use_tun, + loopback: loopback, + }; + Ok(setting) + } +} + +/// Result of a traceroute operation. +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct TraceResult { + pub nodes: Vec, + pub probe_status: ProbeStatus, + pub elapsed_time: Duration, + pub protocol: Protocol, +} + +impl TraceResult { + /// Create a new empty TraceResult. + pub fn new() -> TraceResult { + TraceResult { + nodes: Vec::new(), + probe_status: ProbeStatus::new(), + elapsed_time: Duration::from_millis(0), + protocol: Protocol::Udp, + } + } +} + +/// Tracer structure. +/// +/// Supports UDP Traceroute. +#[derive(Clone, Debug)] +pub struct Tracer { + /// Probe Setting + pub setting: TraceSetting, +} + +impl Tracer { + /// Create a new Tracer instance. + pub fn new(setting: TraceSetting) -> Self { + Self { setting } + } + /// Run the traceroute based on the specified protocol. + pub async fn run(&self) -> Result { + match self.setting.protocol { + Protocol::Udp => probe::udp::run_udp_trace(&self.setting).await, + _ => { + Err(anyhow::anyhow!("Unsupported protocol")) + }, + } + } +} diff --git a/src/trace/probe/mod.rs b/src/trace/probe/mod.rs new file mode 100644 index 0000000..7e5aaa1 --- /dev/null +++ b/src/trace/probe/mod.rs @@ -0,0 +1 @@ +pub mod udp; diff --git a/src/trace/probe/udp.rs b/src/trace/probe/udp.rs new file mode 100644 index 0000000..ce4909c --- /dev/null +++ b/src/trace/probe/udp.rs @@ -0,0 +1,274 @@ +use anyhow::Result; +use crate::trace::{TraceResult, TraceSetting}; +use std::net::IpAddr; +use std::time::{Duration, Instant}; +use futures::stream::StreamExt; +use futures::future::poll_fn; +use netdev::MacAddr; +use nex::packet::frame::{Frame, ParseOption}; +use nex::packet::icmp::IcmpType; +use nex::packet::icmpv6::Icmpv6Type; +use crate::endpoint::NodeType; +use crate::probe::ProbeStatus; +use crate::{probe::ProbeResult, protocol::Protocol}; +use nex::datalink::async_io::{async_channel, AsyncChannel}; +use tracing_indicatif::span_ext::IndicatifSpanExt; + +/// Run a UDP traceroute based on the provided trace settings. +pub async fn run_udp_trace(setting: &TraceSetting) -> Result { + let mut result = TraceResult::new(); + result.protocol = Protocol::Udp; + + let interface = match crate::interface::get_interface_by_index(setting.if_index) { + Some(interface) => interface, + None => return Err(anyhow::anyhow!("Interface not found")), + }; + // Create sender + let config = nex::datalink::Config { + write_buffer_size: 4096, + read_buffer_size: 4096, + read_timeout: Some(setting.receive_timeout), + write_timeout: None, + channel_type: nex::datalink::ChannelType::Layer2, + bpf_fd_attempts: 1000, + linux_fanout: None, + promiscuous: false, + }; + + let AsyncChannel::Ethernet(mut tx, mut rx) = async_channel(&interface, config)? + else { + unreachable!(); + }; + + let mut responses: Vec = Vec::new(); + + let mut parse_option: ParseOption = ParseOption::default(); + if interface.is_tun() || (cfg!(any(target_os = "macos", target_os = "ios")) && interface.is_loopback()) { + let payload_offset = if interface.is_loopback() { 14 } else { 0 }; + parse_option.from_ip_packet = true; + parse_option.offset = payload_offset; + } + + let header_span = tracing::info_span!("trace"); + header_span.pb_set_style(&crate::output::progress::get_progress_style()); + header_span.pb_set_message(&format!("trace ({})", setting.dst_ip)); + header_span.pb_set_length(setting.hop_limit as u64); + header_span.pb_set_position(0); + header_span.pb_start(); + + let mut dst_reached: bool = false; + let start_time = Instant::now(); + for seq_ttl in 1..setting.hop_limit { + let udp_packet = crate::packet::udp::build_udp_trace_packet(&interface, &setting, seq_ttl); + let send_time = Instant::now(); + match poll_fn(|cx| tx.poll_send(cx, &udp_packet)).await { + Ok(_) => { + }, + Err(e) => eprintln!("Failed to send packet: {}", e), + } + loop { + match tokio::time::timeout(setting.receive_timeout, rx.next()).await { + Ok(Some(Ok(packet))) => { + let rtt = send_time.elapsed(); + let frame = match Frame::from_buf(&packet, parse_option.clone()) { + Some(frame) => frame, + None => { + eprintln!("Failed to parse packet: {:?}", packet); + continue; + } + }; + let mut mac_addr: MacAddr = MacAddr::zero(); + if let Some(datalink_layer) = &frame.datalink { + // Ethernet + if let Some(ethernet_header) = &datalink_layer.ethernet { + mac_addr = ethernet_header.source; + } + } + if let Some(ip_layer) = &frame.ip { + // IPv4 + if let Some(ipv4_header) = &ip_layer.ipv4 { + // IPv4 ICMP + if let Some(icmp_header) = &ip_layer.icmp { + match icmp_header.icmp_type { + IcmpType::TimeExceeded => { + let probe_result: ProbeResult = ProbeResult { + seq: seq_ttl as u32, + mac_addr: mac_addr, + ip_addr: IpAddr::V4(ipv4_header.source), + host_name: None, + port_number: None, + port_status: None, + ttl: ipv4_header.ttl, + hop: crate::util::ip::initial_ttl(ipv4_header.ttl) + - ipv4_header.ttl, + rtt: rtt, + probe_status: ProbeStatus::new(), + protocol: Protocol::Udp, + node_type: if seq_ttl == 1 { + NodeType::Gateway + } else { + NodeType::Hop + }, + sent_packet_size: udp_packet.len(), + received_packet_size: packet.len(), + }; + tracing::info!("#{} Reply from {}, RTT={:?} TTL={} Type={}", seq_ttl, ipv4_header.source, rtt, ipv4_header.ttl, probe_result.node_type.as_str()); + responses.push(probe_result); + header_span.pb_inc(1); + break; + } + IcmpType::DestinationUnreachable => { + if IpAddr::V4(ipv4_header.source) == setting.dst_ip { + let probe_result: ProbeResult = ProbeResult { + seq: seq_ttl as u32, + mac_addr: mac_addr, + ip_addr: setting.dst_ip, + host_name: setting.dst_hostname.clone(), + port_number: None, + port_status: None, + ttl: ipv4_header.ttl, + hop: crate::util::ip::initial_ttl(ipv4_header.ttl) + - ipv4_header.ttl, + rtt: rtt, + probe_status: ProbeStatus::new(), + protocol: Protocol::Udp, + node_type: NodeType::Destination, + sent_packet_size: udp_packet.len(), + received_packet_size: packet.len(), + }; + tracing::info!("#{} Reply from {}, RTT={:?} TTL={} Type={}", seq_ttl, ipv4_header.source, rtt, ipv4_header.ttl, probe_result.node_type.as_str()); + responses.push(probe_result); + header_span.pb_inc(1); + dst_reached = true; + break; + } + } + _ => {} + } + } + } + // IPv6 + if let Some(ipv6_header) = &ip_layer.ipv6 { + // ICMPv6 + if let Some(icmpv6_header) = &ip_layer.icmpv6 { + match icmpv6_header.icmpv6_type { + Icmpv6Type::TimeExceeded => { + let probe_result: ProbeResult = ProbeResult { + seq: seq_ttl as u32, + mac_addr: mac_addr, + ip_addr: IpAddr::V6(ipv6_header.source), + host_name: None, + port_number: None, + port_status: None, + ttl: ipv6_header.hop_limit, + hop: crate::util::ip::initial_ttl(ipv6_header.hop_limit) + - ipv6_header.hop_limit, + rtt: rtt, + probe_status: ProbeStatus::new(), + protocol: Protocol::Udp, + node_type: if seq_ttl == 1 { + NodeType::Gateway + } else { + NodeType::Hop + }, + sent_packet_size: udp_packet.len(), + received_packet_size: packet.len(), + }; + tracing::info!("#{} Reply from {}, RTT={:?} TTL={} Type={}", seq_ttl, ipv6_header.source, rtt, ipv6_header.hop_limit, probe_result.node_type.as_str()); + responses.push(probe_result); + header_span.pb_inc(1); + break; + }, + Icmpv6Type::DestinationUnreachable => { + if IpAddr::V6(ipv6_header.source) == setting.dst_ip { + let probe_result: ProbeResult = ProbeResult { + seq: seq_ttl as u32, + mac_addr: mac_addr, + ip_addr: setting.dst_ip, + host_name: setting.dst_hostname.clone(), + port_number: None, + port_status: None, + ttl: ipv6_header.hop_limit, + hop: crate::util::ip::initial_ttl(ipv6_header.hop_limit) + - ipv6_header.hop_limit, + rtt: rtt, + probe_status: ProbeStatus::new(), + protocol: Protocol::Udp, + node_type: NodeType::Destination, + sent_packet_size: udp_packet.len(), + received_packet_size: packet.len(), + }; + tracing::info!("#{} Reply from {}, RTT={:?} TTL={} Type={}", seq_ttl, ipv6_header.source, rtt, ipv6_header.hop_limit, probe_result.node_type.as_str()); + responses.push(probe_result); + header_span.pb_inc(1); + dst_reached = true; + break; + } + } + _ => {} + } + } + } + } + }, + Ok(Some(Err(e))) => { + tracing::error!("Failed to receive packet: {}", e); + header_span.pb_inc(1); + break; + }, + Ok(None) => { + tracing::error!("Channel closed"); + header_span.pb_inc(1); + break; + }, + Err(_) => { + tracing::error!("Request timeout for seq {}", seq_ttl as u32); + let probe_result = ProbeResult::timeout( + seq_ttl as u32, + setting.dst_ip, + setting.dst_hostname.clone(), + Protocol::Udp, + udp_packet.len(), + ); + responses.push(probe_result); + + header_span.pb_inc(1); + break; + } + } + + let elapsed_time: Duration = send_time.elapsed(); + if elapsed_time > setting.receive_timeout { + tracing::error!("Request timeout for seq {}", seq_ttl as u32); + let probe_result = ProbeResult::timeout( + seq_ttl as u32, + setting.dst_ip, + setting.dst_hostname.clone(), + Protocol::Udp, + udp_packet.len(), + ); + responses.push(probe_result); + + header_span.pb_inc(1); + break; + } + } + if dst_reached { + break; + } + if !setting.send_rate.is_zero() && seq_ttl < setting.hop_limit { + tokio::time::sleep(setting.send_rate).await; + } + } + + // Finish header span + drop(header_span); + + let elapsed_time = start_time.elapsed(); + result.probe_status = ProbeStatus::new(); + result.elapsed_time = elapsed_time; + result.nodes = responses; + result.protocol = Protocol::Udp; + + Ok(result) +} diff --git a/src/trace/setting.rs b/src/trace/setting.rs deleted file mode 100644 index 1c1c54e..0000000 --- a/src/trace/setting.rs +++ /dev/null @@ -1,63 +0,0 @@ -use std::net::Ipv4Addr; -use std::{net::IpAddr, time::Duration}; - -use netdev::Interface; -use serde::{Deserialize, Serialize}; - -use crate::config::{DEFAULT_BASE_TARGET_UDP_PORT, DEFAULT_HOP_LIMIT}; -use crate::protocol::Protocol; - -#[derive(Deserialize, Serialize, Clone, Debug)] -pub struct TraceSetting { - pub if_index: u32, - pub dst_hostname: String, - pub dst_ip: IpAddr, - pub dst_port: u16, - pub hop_limit: u8, - pub protocol: Protocol, - pub receive_timeout: Duration, - pub probe_timeout: Duration, - pub send_rate: Duration, - pub tunnel: bool, - pub loopback: bool, -} - -impl Default for TraceSetting { - fn default() -> Self { - Self { - if_index: 0, - dst_hostname: "localhost".to_string(), - dst_ip: IpAddr::V4(Ipv4Addr::LOCALHOST), - dst_port: DEFAULT_BASE_TARGET_UDP_PORT, - hop_limit: DEFAULT_HOP_LIMIT, - protocol: Protocol::UDP, - receive_timeout: Duration::from_secs(1), - probe_timeout: Duration::from_secs(30), - send_rate: Duration::from_secs(1), - tunnel: false, - loopback: false, - } - } -} - -impl TraceSetting { - pub fn udp_trace(interface: &Interface, dst_ip_addr: IpAddr) -> Result { - let use_tun = interface.is_tun(); - let loopback = interface.is_loopback(); - - let setting = TraceSetting { - if_index: interface.index, - dst_ip: dst_ip_addr, - dst_hostname: dst_ip_addr.to_string(), - dst_port: DEFAULT_BASE_TARGET_UDP_PORT, - hop_limit: 64, - protocol: Protocol::UDP, - receive_timeout: Duration::from_secs(1), - probe_timeout: Duration::from_secs(30), - send_rate: Duration::from_secs(1), - tunnel: use_tun, - loopback: loopback, - }; - Ok(setting) - } -} diff --git a/src/trace/tracer.rs b/src/trace/tracer.rs deleted file mode 100644 index 5b9db44..0000000 --- a/src/trace/tracer.rs +++ /dev/null @@ -1,344 +0,0 @@ -use crate::host::{NodeType, PortStatus}; -use crate::packet::setting::PacketBuildSetting; -use crate::ping::result::TracerouteResult; -use crate::probe::{ProbeResult, ProbeStatus}; -use crate::protocol::Protocol; -use netdev::Interface; -use nex::datalink::{RawReceiver, RawSender}; -use nex::net::mac::MacAddr; -use nex::packet::frame::{Frame, ParseOption}; -use nex::packet::icmp::IcmpType; -use nex::packet::icmpv6::Icmpv6Type; -use std::net::IpAddr; -use std::sync::mpsc::{channel, Receiver, Sender}; -use std::sync::{Arc, Mutex}; -use std::time::{Duration, Instant}; - -use super::setting::TraceSetting; - -/// Tracer structure. -/// -/// Supports UDP Traceroute. -#[derive(Clone, Debug)] -pub struct Tracer { - /// Probe Setting - pub probe_setting: TraceSetting, - /// Sender for progress messaging - tx: Arc>>, - /// Receiver for progress messaging - rx: Arc>>, -} - -impl Tracer { - /// Create new Tracer instance with setting - pub fn new(setting: TraceSetting) -> Result { - // Check interface - if crate::interface::get_interface_by_index(setting.if_index).is_none() { - return Err(format!( - "Tracer::new: unable to get interface. index: {}", - setting.if_index - )); - } - let (tx, rx) = channel(); - let tracer = Tracer { - probe_setting: setting, - tx: Arc::new(Mutex::new(tx)), - rx: Arc::new(Mutex::new(rx)), - }; - return Ok(tracer); - } - /// Run traceroute - pub fn trace(&self) -> Result { - run_traceroute(&self.probe_setting, &self.tx) - } - /// Get progress receiver - pub fn get_progress_receiver(&self) -> Arc>> { - self.rx.clone() - } -} - -fn run_traceroute( - setting: &TraceSetting, - msg_tx: &Arc>>, -) -> Result { - let interface: Interface = match crate::interface::get_interface_by_index(setting.if_index) { - Some(interface) => interface, - None => { - return Err(format!( - "run_traceroute: unable to get interface by index {}", - setting.if_index - )) - } - }; - let config = nex::datalink::Config { - write_buffer_size: 4096, - read_buffer_size: 4096, - read_timeout: Some(setting.receive_timeout), - write_timeout: None, - channel_type: nex::datalink::ChannelType::Layer2, - bpf_fd_attempts: 1000, - linux_fanout: None, - promiscuous: false, - }; - // Create a channel to send/receive packet - let (mut tx, mut rx) = match nex::datalink::channel(&interface, config) { - Ok(nex::datalink::Channel::Ethernet(tx, rx)) => (tx, rx), - Ok(_) => return Err("run_traceroute: unable to create channel".to_string()), - Err(e) => return Err(format!("run_traceroute: unable to create channel: {}", e)), - }; - match setting.protocol { - crate::protocol::Protocol::ICMP => Err("ICMP traceroute is not supported".to_string()), - crate::protocol::Protocol::TCP => Err("TCP traceroute is not supported".to_string()), - crate::protocol::Protocol::UDP => { - let result = udp_trace(&mut tx, &mut rx, setting, msg_tx); - return Ok(result); - } - _ => { - return Err("run_ping: unsupported protocol".to_string()); - } - } -} - -pub fn udp_trace( - tx: &mut Box, - rx: &mut Box, - setting: &TraceSetting, - msg_tx: &Arc>>, -) -> TracerouteResult { - let mut result = TracerouteResult::new(); - result.protocol = Protocol::UDP; - let mut parse_option: ParseOption = ParseOption::default(); - if setting.tunnel { - let payload_offset = if setting.loopback { 14 } else { 0 }; - parse_option.from_ip_packet = true; - parse_option.offset = payload_offset; - } - result.start_time = crate::sys::time::get_sysdate(); - let start_time = Instant::now(); - let mut responses: Vec = Vec::new(); - let mut dst_reached: bool = false; - for seq_ttl in 1..setting.hop_limit { - let packet_setting: PacketBuildSetting = - PacketBuildSetting::from_trace_setting(setting, seq_ttl); - let udp_packet: Vec = crate::packet::udp::build_udp_packet(packet_setting.clone()); - //let udp_packet: Vec = crate::packet::udp::build_udp_packet(setting.clone(), Some(seq_ttl)); - let send_time = Instant::now(); - match tx.send(&udp_packet) { - Some(_) => {} - None => {} - } - loop { - match rx.next() { - Ok(packet) => { - let recv_time: Duration = Instant::now().duration_since(send_time); - let frame: Frame = Frame::from_bytes(&packet, parse_option.clone()); - // Datalink - let mut mac_addr: MacAddr = MacAddr::zero(); - if let Some(datalink_layer) = &frame.datalink { - // Ethernet - if let Some(ethernet_header) = &datalink_layer.ethernet { - mac_addr = ethernet_header.source; - } - } - if let Some(ip_layer) = &frame.ip { - // IPv4 - if let Some(ipv4_header) = &ip_layer.ipv4 { - if IpAddr::V4(ipv4_header.destination) != packet_setting.src_ip { - continue; - } - // ICMP - if let Some(icmp_header) = &ip_layer.icmp { - match icmp_header.icmp_type { - IcmpType::TimeExceeded => { - let probe_result: ProbeResult = ProbeResult { - seq: seq_ttl as u32, - mac_addr: mac_addr, - ip_addr: IpAddr::V4(ipv4_header.source), - host_name: ipv4_header.source.to_string(), - port_number: None, - port_status: None, - ttl: ipv4_header.ttl, - hop: crate::ip::guess_initial_ttl(ipv4_header.ttl) - - ipv4_header.ttl, - rtt: recv_time, - probe_status: ProbeStatus::new(), - protocol: Protocol::UDP, - node_type: if seq_ttl == 1 { - NodeType::DefaultGateway - } else { - NodeType::Relay - }, - sent_packet_size: udp_packet.len(), - received_packet_size: packet.len(), - }; - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - IcmpType::DestinationUnreachable => { - let probe_result: ProbeResult = ProbeResult { - seq: seq_ttl as u32, - mac_addr: mac_addr, - ip_addr: IpAddr::V4(ipv4_header.source), - host_name: ipv4_header.source.to_string(), - port_number: Some(setting.dst_port), - port_status: Some(PortStatus::Closed), - ttl: ipv4_header.ttl, - hop: crate::ip::guess_initial_ttl(ipv4_header.ttl) - - ipv4_header.ttl, - rtt: recv_time, - probe_status: ProbeStatus::new(), - protocol: Protocol::UDP, - node_type: NodeType::Destination, - sent_packet_size: udp_packet.len(), - received_packet_size: packet.len(), - }; - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - dst_reached = true; - break; - } - _ => {} - } - } - } - // IPv6 - if let Some(ipv6_header) = &ip_layer.ipv6 { - if IpAddr::V6(ipv6_header.destination) != packet_setting.src_ip { - continue; - } - // ICMPv6 - if let Some(icmpv6_header) = &ip_layer.icmpv6 { - match icmpv6_header.icmpv6_type { - Icmpv6Type::TimeExceeded => { - let probe_result: ProbeResult = ProbeResult { - seq: seq_ttl as u32, - mac_addr: mac_addr, - ip_addr: IpAddr::V6(ipv6_header.source), - host_name: ipv6_header.source.to_string(), - port_number: None, - port_status: None, - ttl: ipv6_header.hop_limit, - hop: crate::ip::guess_initial_ttl( - ipv6_header.hop_limit, - ) - ipv6_header.hop_limit, - rtt: recv_time, - probe_status: ProbeStatus::new(), - protocol: Protocol::UDP, - node_type: if seq_ttl == 1 { - NodeType::DefaultGateway - } else { - NodeType::Relay - }, - sent_packet_size: udp_packet.len(), - received_packet_size: packet.len(), - }; - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - Icmpv6Type::DestinationUnreachable => { - let probe_result: ProbeResult = ProbeResult { - seq: seq_ttl as u32, - mac_addr: mac_addr, - ip_addr: IpAddr::V6(ipv6_header.source), - host_name: ipv6_header.source.to_string(), - port_number: Some(setting.dst_port), - port_status: Some(PortStatus::Closed), - ttl: ipv6_header.hop_limit, - hop: crate::ip::guess_initial_ttl( - ipv6_header.hop_limit, - ) - ipv6_header.hop_limit, - rtt: recv_time, - probe_status: ProbeStatus::new(), - protocol: Protocol::UDP, - node_type: NodeType::Destination, - sent_packet_size: udp_packet.len(), - received_packet_size: packet.len(), - }; - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - dst_reached = true; - break; - } - _ => {} - } - } - } - } - } - Err(_e) => { - let probe_result = ProbeResult::trace_timeout( - seq_ttl as u32, - Protocol::UDP, - udp_packet.len(), - NodeType::Relay, - ); - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - let wait_time: Duration = Instant::now().duration_since(send_time); - if wait_time > setting.receive_timeout { - let probe_result = ProbeResult::trace_timeout( - seq_ttl as u32, - Protocol::UDP, - udp_packet.len(), - NodeType::Relay, - ); - responses.push(probe_result.clone()); - match msg_tx.lock() { - Ok(lr) => match lr.send(probe_result) { - Ok(_) => {} - Err(_) => {} - }, - Err(_) => {} - } - break; - } - } - if dst_reached { - break; - } - if seq_ttl < setting.hop_limit { - std::thread::sleep(setting.send_rate); - } - } - let probe_time = Instant::now().duration_since(start_time); - result.end_time = crate::sys::time::get_sysdate(); - result.elapsed_time = probe_time; - result.nodes = responses; - result.probe_status = ProbeStatus::new(); - result -} diff --git a/src/util/ip.rs b/src/util/ip.rs new file mode 100644 index 0000000..0eaec74 --- /dev/null +++ b/src/util/ip.rs @@ -0,0 +1,39 @@ +use std::net::IpAddr; + +use netdev::Interface; + +/// Initial TTL class based on TTL(IPv4) or Hop Limit(IPv6) +pub fn initial_ttl(ttl: u8) -> u8 { + match ttl { + 0..=64 => 64, + 65..=128 => 128, + _ => 255, + } +} + +/// Get the next hop IP address for a target IP address based on the interface's routing information. +pub fn next_hop_ip(iface: &Interface, target: IpAddr) -> Option { + match target { + IpAddr::V4(dst) => { + // Check if the target IP is in the same network as the interface + if let Some(_) = iface.ipv4.iter().find(|ipnet| ipnet.contains(&dst)) { + return Some(IpAddr::V4(dst)); + } + // off-link, return the default gateway (IPv4) + match &iface.gateway { + Some(gw) => gw.ipv4.iter().next().map(|ip| IpAddr::V4(*ip)), + None => None, + } + } + IpAddr::V6(dst) => { + if let Some(_) = iface.ipv6.iter().find(|ipnet| ipnet.contains(&dst)) { + return Some(IpAddr::V6(dst)); + } + // off-link, return the default gateway (IPv6) + match &iface.gateway { + Some(gw) => gw.ipv6.iter().next().map(|ip| IpAddr::V6(*ip)), + None => None, + } + } + } +} diff --git a/src/util/json.rs b/src/util/json.rs new file mode 100644 index 0000000..47de179 --- /dev/null +++ b/src/util/json.rs @@ -0,0 +1,29 @@ +use std::fs::File; +use std::io::Write; +use std::path::Path; +use anyhow::Result; +use serde::Serialize; + +/// JSON output style +pub enum JsonStyle { + /// Compact one-line JSON + Compact, + /// Pretty printed (indented) JSON + Pretty, +} + +/// Save any serializable data to a JSON file. +pub fn save_json_output(data: &T, out_path: &Path, style: JsonStyle) -> Result<()> { + // Serialize depending on style + let json = match style { + JsonStyle::Compact => serde_json::to_string(data)?, + JsonStyle::Pretty => serde_json::to_string_pretty(data)?, + }; + + // Write to file (create or truncate) + let mut file = File::create(out_path)?; + file.write_all(json.as_bytes())?; + file.flush()?; // ensure it's written + + Ok(()) +} diff --git a/src/util/mod.rs b/src/util/mod.rs index 42d1925..1d2daf6 100644 --- a/src/util/mod.rs +++ b/src/util/mod.rs @@ -1,2 +1,2 @@ -pub mod setting; -pub mod tree; +pub mod ip; +pub mod json; diff --git a/src/util/setting.rs b/src/util/setting.rs deleted file mode 100644 index ae34269..0000000 --- a/src/util/setting.rs +++ /dev/null @@ -1,26 +0,0 @@ -use std::time::Duration; - -const DEFAULT_WAIT_TIME_FACTOR: f64 = 2.0; -const MINIMUM_WAIT_TIME: Duration = Duration::from_millis(50); - -pub fn caluculate_wait_time(rtt: Duration) -> Duration { - if rtt < MINIMUM_WAIT_TIME { - return MINIMUM_WAIT_TIME; - } - - let num_cores = num_cpus::get_physical(); - let num_threads = num_cpus::get(); - - let factor = if num_cores <= 2 || num_threads <= 4 { - // If the number of cores is less than or equal to 2 - // or the number of threads is less than or equal to 4 - // , increase the factor - DEFAULT_WAIT_TIME_FACTOR * 2.0 - } else { - // Otherwise, the factor is the default value - DEFAULT_WAIT_TIME_FACTOR - }; - - let wait_time = rtt.as_secs_f64() * factor; - Duration::from_secs_f64(wait_time) -} diff --git a/src/util/tree.rs b/src/util/tree.rs deleted file mode 100644 index 0558c4a..0000000 --- a/src/util/tree.rs +++ /dev/null @@ -1,16 +0,0 @@ -pub fn node_label(label: &str, value: Option<&str>, delimiter: Option<&str>) -> String { - match value { - Some(value) => { - let delimiter = match delimiter { - Some(delimiter) => delimiter, - None => ":", - }; - //Tree::new(format!("{}{} {}", label, delimiter, value)) - format!("{}{} {}", label, delimiter, value) - } - None => { - //Tree::new(label.to_string()) - label.to_string() - } - } -}